From 74b26c8c290c81de00c134bf63e315a803f5c259 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Wed, 12 Nov 2025 13:41:59 +0900 Subject: [PATCH 01/94] doc: Fix incorrect synopsis for ALTER PUBLICATION ... DROP ... The synopsis for the ALTER PUBLICATION ... DROP ... command incorrectly implied that a column list and WHERE clause could be specified as part of the publication object. However, these options are not allowed for DROP operations, making the documentation misleading. This commit corrects the synopsis to clearly show only the valid forms of publication objects. Backpatched to v15, where the incorrect synopsis was introduced. Author: Peter Smith Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/CAHut+PsPu+47Q7b0o6h1r-qSt90U3zgbAHMHUag5o5E1Lo+=uw@mail.gmail.com Backpatch-through: 15 --- doc/src/sgml/ref/alter_publication.sgml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/src/sgml/ref/alter_publication.sgml b/doc/src/sgml/ref/alter_publication.sgml index c84b11f47a7..9e7f60a290a 100644 --- a/doc/src/sgml/ref/alter_publication.sgml +++ b/doc/src/sgml/ref/alter_publication.sgml @@ -23,7 +23,7 @@ PostgreSQL documentation ALTER PUBLICATION name ADD publication_object [, ...] ALTER PUBLICATION name SET publication_object [, ...] -ALTER PUBLICATION name DROP publication_object [, ...] +ALTER PUBLICATION name DROP publication_drop_object [, ...] ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] ) ALTER PUBLICATION name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER PUBLICATION name RENAME TO new_name @@ -32,6 +32,11 @@ ALTER PUBLICATION name RENAME TO table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] [, ... ] TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ] + +where publication_drop_object is one of: + + TABLE [ ONLY ] table_name [ * ] [, ... ] + TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ] @@ -55,8 +60,7 @@ ALTER PUBLICATION name RENAME TO DROP TABLES IN SCHEMA will not drop any schema tables that were specified using FOR TABLE/ - ADD TABLE, and the combination of DROP - with a WHERE clause is not allowed. + ADD TABLE. From 97cd4b65af6c71b31a9c08f5838c6cdd58c1866c Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 12 Nov 2025 12:20:16 +0200 Subject: [PATCH 02/94] Fix pg_upgrade around multixid and mxoff wraparound pg_resetwal didn't accept multixid 0 or multixact offset UINT32_MAX, but they are both valid values that can appear in the control file. That caused pg_upgrade to fail if you tried to upgrade a cluster exactly at multixid or offset wraparound, because pg_upgrade calls pg_resetwal to restore multixid/offset on the new cluster to the values from the old cluster. To fix, allow those values in pg_resetwal. Fixes bugs #18863 and #18865 reported by Dmitry Kovalenko. Backpatch down to v15. Version 14 has the same bug, but the patch doesn't apply cleanly there. It could be made to work but it doesn't seem worth the effort given how rare it is to hit this problem with pg_upgrade, and how few people are upgrading to v14 anymore. Author: Maxim Orlov Discussion: https://www.postgresql.org/message-id/CACG%3DezaApSMTjd%3DM2Sfn5Ucuggd3FG8Z8Qte8Xq9k5-%2BRQis-g@mail.gmail.com Discussion: https://www.postgresql.org/message-id/18863-72f08858855344a2@postgresql.org Discussion: https://www.postgresql.org/message-id/18865-d4c66cf35c2a67af@postgresql.org Backpatch-through: 15 --- src/bin/pg_resetwal/pg_resetwal.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/bin/pg_resetwal/pg_resetwal.c b/src/bin/pg_resetwal/pg_resetwal.c index d4772a29650..cae5923e04b 100644 --- a/src/bin/pg_resetwal/pg_resetwal.c +++ b/src/bin/pg_resetwal/pg_resetwal.c @@ -69,8 +69,10 @@ static TransactionId set_xid = 0; static TransactionId set_oldest_commit_ts_xid = 0; static TransactionId set_newest_commit_ts_xid = 0; static Oid set_oid = 0; +static bool mxid_given = false; static MultiXactId set_mxid = 0; -static MultiXactOffset set_mxoff = (MultiXactOffset) -1; +static bool mxoff_given = false; +static MultiXactOffset set_mxoff = 0; static uint32 minXlogTli = 0; static XLogSegNo minXlogSegNo = 0; static int WalSegSz; @@ -114,6 +116,7 @@ main(int argc, char *argv[]) MultiXactId set_oldestmxid = 0; char *endptr; char *endptr2; + int64 tmpi64; char *DataDir = NULL; char *log_fname = NULL; int fd; @@ -250,8 +253,6 @@ main(int argc, char *argv[]) pg_log_error_hint("Try \"%s --help\" for more information.", progname); exit(1); } - if (set_mxid == 0) - pg_fatal("multitransaction ID (-m) must not be 0"); /* * XXX It'd be nice to have more sanity checks here, e.g. so @@ -259,19 +260,23 @@ main(int argc, char *argv[]) */ if (set_oldestmxid == 0) pg_fatal("oldest multitransaction ID (-m) must not be 0"); + mxid_given = true; break; case 'O': errno = 0; - set_mxoff = strtoul(optarg, &endptr, 0); + tmpi64 = strtoi64(optarg, &endptr, 0); if (endptr == optarg || *endptr != '\0' || errno != 0) { pg_log_error("invalid argument for option %s", "-O"); pg_log_error_hint("Try \"%s --help\" for more information.", progname); exit(1); } - if (set_mxoff == -1) - pg_fatal("multitransaction offset (-O) must not be -1"); + if (tmpi64 < 0 || tmpi64 > (int64) MaxMultiXactOffset) + pg_fatal("multitransaction offset (-O) must be between 0 and %u", MaxMultiXactOffset); + + set_mxoff = (MultiXactOffset) tmpi64; + mxoff_given = true; break; case 'l': @@ -430,7 +435,7 @@ main(int argc, char *argv[]) if (set_oid != 0) ControlFile.checkPointCopy.nextOid = set_oid; - if (set_mxid != 0) + if (mxid_given) { ControlFile.checkPointCopy.nextMulti = set_mxid; @@ -440,7 +445,7 @@ main(int argc, char *argv[]) ControlFile.checkPointCopy.oldestMultiDB = InvalidOid; } - if (set_mxoff != -1) + if (mxoff_given) ControlFile.checkPointCopy.nextMultiOffset = set_mxoff; if (minXlogTli > ControlFile.checkPointCopy.ThisTimeLineID) @@ -790,7 +795,7 @@ PrintNewControlValues(void) newXlogSegNo, WalSegSz); printf(_("First log segment after reset: %s\n"), fname); - if (set_mxid != 0) + if (mxid_given) { printf(_("NextMultiXactId: %u\n"), ControlFile.checkPointCopy.nextMulti); @@ -800,7 +805,7 @@ PrintNewControlValues(void) ControlFile.checkPointCopy.oldestMultiDB); } - if (set_mxoff != -1) + if (mxoff_given) { printf(_("NextMultiOffset: %u\n"), ControlFile.checkPointCopy.nextMultiOffset); From bec78533336543bc9e9b354d0d5daed434cc2d9d Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Wed, 12 Nov 2025 13:51:53 +0100 Subject: [PATCH 03/94] Fix range for commit_siblings in sample conf The range for commit_siblings was incorrectly listed as starting on 1 instead of 0 in the sample configuration file. Backpatch down to all supported branches. Author: Man Zeng Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/tencent_53B70BA72303AE9C6889E78E@qq.com Backpatch-through: 14 --- src/backend/utils/misc/postgresql.conf.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 7bf891a9020..df65dfc76d1 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -230,7 +230,7 @@ #wal_skip_threshold = 2MB #commit_delay = 0 # range 0-100000, in microseconds -#commit_siblings = 5 # range 1-1000 +#commit_siblings = 5 # range 0-1000 # - Checkpoints - From 608566bf17c327976bec647cc28d2996be4c0010 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Wed, 12 Nov 2025 17:04:35 +0100 Subject: [PATCH 04/94] doc: Document effects of ownership change on privileges MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Explicitly document that privileges are transferred along with the ownership. Backpatch to all supported versions since this behavior has always been present. Author: Laurenz Albe Reviewed-by: Daniel Gustafsson Reviewed-by: David G. Johnston Reviewed-by: Tom Lane Reviewed-by: Josef Šimánek Reported-by: Gilles Parc Discussion: https://postgr.es/m/2023185982.281851219.1646733038464.JavaMail.root@zimbra15-e2.priv.proxad.net Backpatch-through: 14 --- doc/src/sgml/ddl.sgml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index 38ece3f4f72..4c9ec77423c 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -1719,6 +1719,8 @@ ALTER TABLE table_name OWNER TO new_owne Superusers can always do this; ordinary roles can only do it if they are both the current owner of the object (or a member of the owning role) and a member of the new owning role. + All object privileges of the old owner are transferred to the new owner + along with the ownership. From b1da37de21d4eb86f0bb08f78e31020093ad88f4 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 12 Nov 2025 20:59:28 +0200 Subject: [PATCH 05/94] Escalate ERRORs during async notify processing to FATAL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, if async notify processing encountered an error, we would report the error to the client and advance our read position past the offending entry to prevent trying to process it over and over again. Trying to continue after an error has a few problems however: - We have no way of telling the client that a notification was lost. They get an ERROR, but that doesn't tell you much. As such, it's not clear if keeping the connection alive after losing a notification is a good thing. Depending on the application logic, missing a notification could cause the application to get stuck waiting, for example. - If the connection is idle, PqCommReadingMsg is set and any ERROR is turned into FATAL anyway. - We bailed out of the notification processing loop on first error without processing any subsequent notifications. The subsequent notifications would not be processed until another notify interrupt arrives. For example, if there were two notifications pending, and processing the first one caused an ERROR, the second notification would not be processed until someone sent a new NOTIFY. This commit changes the behavior so that any ERROR while processing async notifications is turned into FATAL, causing the client connection to be terminated. That makes the behavior more consistent as that's what happened in idle state already, and terminating the connection is a clear signal to the application that it might've missed some notifications. The reason to do this now is that the next commits will change the notification processing code in a way that would make it harder to skip over just the offending notification entry on error. Reviewed-by: Matheus Alcantara Reviewed-by: Álvaro Herrera Reviewed-by: Arseniy Mukhin Discussion: https://www.postgresql.org/message-id/fedbd908-4571-4bbe-b48e-63bfdcc38f64@iki.fi Backpatch-through: 14 --- src/backend/commands/async.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index 5dc9334c2a0..43989de5dec 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -461,7 +461,7 @@ static double asyncQueueUsage(void); static void asyncQueueFillWarning(void); static void SignalBackends(void); static void asyncQueueReadAllNotifications(void); -static bool asyncQueueProcessPageEntries(volatile QueuePosition *current, +static bool asyncQueueProcessPageEntries(QueuePosition *current, QueuePosition stop, char *page_buffer, Snapshot snapshot); @@ -1899,7 +1899,7 @@ ProcessNotifyInterrupt(bool flush) static void asyncQueueReadAllNotifications(void) { - volatile QueuePosition pos; + QueuePosition pos; QueuePosition head; Snapshot snapshot; @@ -1969,16 +1969,25 @@ asyncQueueReadAllNotifications(void) * It is possible that we fail while trying to send a message to our * frontend (for example, because of encoding conversion failure). If * that happens it is critical that we not try to send the same message - * over and over again. Therefore, we place a PG_TRY block here that will - * forcibly advance our queue position before we lose control to an error. - * (We could alternatively retake NotifyQueueLock and move the position - * before handling each individual message, but that seems like too much - * lock traffic.) + * over and over again. Therefore, we set ExitOnAnyError to upgrade any + * ERRORs to FATAL, causing the client connection to be closed on error. + * + * We used to only skip over the offending message and try to soldier on, + * but it was somewhat questionable to lose a notification and give the + * client an ERROR instead. A client application is not be prepared for + * that and can't tell that a notification was missed. It was also not + * very useful in practice because notifications are often processed while + * a connection is idle and reading a message from the client, and in that + * state, any error is upgraded to FATAL anyway. Closing the connection + * is a clear signal to the application that it might have missed + * notifications. */ - PG_TRY(); { + bool save_ExitOnAnyError = ExitOnAnyError; bool reachedStop; + ExitOnAnyError = true; + do { int curpage = QUEUE_POS_PAGE(pos); @@ -2031,15 +2040,14 @@ asyncQueueReadAllNotifications(void) page_buffer.buf, snapshot); } while (!reachedStop); - } - PG_FINALLY(); - { + /* Update shared state */ LWLockAcquire(NotifyQueueLock, LW_SHARED); QUEUE_BACKEND_POS(MyBackendId) = pos; LWLockRelease(NotifyQueueLock); + + ExitOnAnyError = save_ExitOnAnyError; } - PG_END_TRY(); /* Done with snapshot */ UnregisterSnapshot(snapshot); @@ -2062,7 +2070,7 @@ asyncQueueReadAllNotifications(void) * The QueuePosition *current is advanced past all processed messages. */ static bool -asyncQueueProcessPageEntries(volatile QueuePosition *current, +asyncQueueProcessPageEntries(QueuePosition *current, QueuePosition stop, char *page_buffer, Snapshot snapshot) From 1a469d7b5b7dac2dfa63835bb8313a6d0f267927 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 12 Nov 2025 20:59:36 +0200 Subject: [PATCH 06/94] Fix bug where we truncated CLOG that was still needed by LISTEN/NOTIFY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The async notification queue contains the XID of the sender, and when processing notifications we call TransactionIdDidCommit() on the XID. But we had no safeguards to prevent the CLOG segments containing those XIDs from being truncated away. As a result, if a backend didn't for some reason process its notifications for a long time, or when a new backend issued LISTEN, you could get an error like: test=# listen c21; ERROR: 58P01: could not access status of transaction 14279685 DETAIL: Could not open file "pg_xact/000D": No such file or directory. LOCATION: SlruReportIOError, slru.c:1087 To fix, make VACUUM "freeze" the XIDs in the async notification queue before truncating the CLOG. Old XIDs are replaced with FrozenTransactionId or InvalidTransactionId. Note: This commit is not a full fix. A race condition remains, where a backend is executing asyncQueueReadAllNotifications() and has just made a local copy of an async SLRU page which contains old XIDs, while vacuum concurrently truncates the CLOG covering those XIDs. When the backend then calls TransactionIdDidCommit() on those XIDs from the local copy, you still get the error. The next commit will fix that remaining race condition. This was first reported by Sergey Zhuravlev in 2021, with many other people hitting the same issue later. Thanks to: - Alexandra Wang, Daniil Davydov, Andrei Varashen and Jacques Combrink for investigating and providing reproducable test cases, - Matheus Alcantara and Arseniy Mukhin for review and earlier proposed patches to fix this, - Álvaro Herrera and Masahiko Sawada for reviews, - Yura Sokolov aka funny-falcon for the idea of marking transactions as committed in the notification queue, and - Joel Jacobson for the final patch version. I hope I didn't forget anyone. Backpatch to all supported versions. I believe the bug goes back all the way to commit d1e027221d, which introduced the SLRU-based async notification queue. Discussion: https://www.postgresql.org/message-id/16961-25f29f95b3604a8a@postgresql.org Discussion: https://www.postgresql.org/message-id/18804-bccbbde5e77a68c2@postgresql.org Discussion: https://www.postgresql.org/message-id/CAK98qZ3wZLE-RZJN_Y%2BTFjiTRPPFPBwNBpBi5K5CU8hUHkzDpw@mail.gmail.com Backpatch-through: 14 --- src/backend/commands/async.c | 111 ++++++++++++++++++++++++++++++++++ src/backend/commands/vacuum.c | 7 +++ src/include/commands/async.h | 3 + 3 files changed, 121 insertions(+) diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index 43989de5dec..33ce4e80720 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -2230,6 +2230,117 @@ asyncQueueAdvanceTail(void) LWLockRelease(NotifyQueueTailLock); } +/* + * AsyncNotifyFreezeXids + * + * Prepare the async notification queue for CLOG truncation by freezing + * transaction IDs that are about to become inaccessible. + * + * This function is called by VACUUM before advancing datfrozenxid. It scans + * the notification queue and replaces XIDs that would become inaccessible + * after CLOG truncation with special markers: + * - Committed transactions are set to FrozenTransactionId + * - Aborted/crashed transactions are set to InvalidTransactionId + * + * Only XIDs < newFrozenXid are processed, as those are the ones whose CLOG + * pages will be truncated. If XID < newFrozenXid, it cannot still be running + * (or it would have held back newFrozenXid through ProcArray). + * Therefore, if TransactionIdDidCommit returns false, we know the transaction + * either aborted explicitly or crashed, and we can safely mark it invalid. + */ +void +AsyncNotifyFreezeXids(TransactionId newFrozenXid) +{ + QueuePosition pos; + QueuePosition head; + int64 curpage = -1; + int slotno = -1; + char *page_buffer = NULL; + bool page_dirty = false; + + /* + * Acquire locks in the correct order to avoid deadlocks. As per the + * locking protocol: NotifyQueueTailLock, then NotifyQueueLock, then + * NotifySLRULock. + * + * We only need SHARED mode since we're just reading the head/tail + * positions, not modifying them. + */ + LWLockAcquire(NotifyQueueTailLock, LW_SHARED); + LWLockAcquire(NotifyQueueLock, LW_SHARED); + + pos = QUEUE_TAIL; + head = QUEUE_HEAD; + + /* Release NotifyQueueLock early, we only needed to read the positions */ + LWLockRelease(NotifyQueueLock); + + /* + * Scan the queue from tail to head, freezing XIDs as needed. We hold + * NotifyQueueTailLock throughout to ensure the tail doesn't move while + * we're working. + */ + while (!QUEUE_POS_EQUAL(pos, head)) + { + AsyncQueueEntry *qe; + TransactionId xid; + int64 pageno = QUEUE_POS_PAGE(pos); + int offset = QUEUE_POS_OFFSET(pos); + + /* If we need a different page, release old lock and get new one */ + if (pageno != curpage) + { + /* Release previous page if any */ + if (slotno >= 0) + { + if (page_dirty) + { + NotifyCtl->shared->page_dirty[slotno] = true; + page_dirty = false; + } + LWLockRelease(NotifySLRULock); + } + + LWLockAcquire(NotifySLRULock, LW_EXCLUSIVE); + slotno = SimpleLruReadPage(NotifyCtl, pageno, true, + InvalidTransactionId); + page_buffer = NotifyCtl->shared->page_buffer[slotno]; + curpage = pageno; + } + + qe = (AsyncQueueEntry *) (page_buffer + offset); + xid = qe->xid; + + if (TransactionIdIsNormal(xid) && + TransactionIdPrecedes(xid, newFrozenXid)) + { + if (TransactionIdDidCommit(xid)) + { + qe->xid = FrozenTransactionId; + page_dirty = true; + } + else + { + qe->xid = InvalidTransactionId; + page_dirty = true; + } + } + + /* Advance to next entry */ + asyncQueueAdvance(&pos, qe->length); + } + + /* Release final page lock if we acquired one */ + if (slotno >= 0) + { + if (page_dirty) + NotifyCtl->shared->page_dirty[slotno] = true; + LWLockRelease(NotifySLRULock); + } + + LWLockRelease(NotifyQueueTailLock); +} + /* * ProcessIncomingNotify * diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 08c4d6aaf49..eac51b3649a 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -39,6 +39,7 @@ #include "catalog/pg_database.h" #include "catalog/pg_inherits.h" #include "catalog/pg_namespace.h" +#include "commands/async.h" #include "commands/cluster.h" #include "commands/defrem.h" #include "commands/vacuum.h" @@ -1840,6 +1841,12 @@ vac_truncate_clog(TransactionId frozenXID, return; } + /* + * Freeze any old transaction IDs in the async notification queue before + * CLOG truncation. + */ + AsyncNotifyFreezeXids(frozenXID); + /* * Advance the oldest value for commit timestamps before truncating, so * that if a user requests a timestamp for a transaction we're truncating diff --git a/src/include/commands/async.h b/src/include/commands/async.h index 926af933d1b..94bc93dbbcb 100644 --- a/src/include/commands/async.h +++ b/src/include/commands/async.h @@ -50,4 +50,7 @@ extern void HandleNotifyInterrupt(void); /* process interrupts */ extern void ProcessNotifyInterrupt(bool flush); +/* freeze old transaction IDs in notify queue (called by VACUUM) */ +extern void AsyncNotifyFreezeXids(TransactionId newFrozenXid); + #endif /* ASYNC_H */ From 0c862646cf2aeba130222ec587702c331fbf3783 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 12 Nov 2025 20:59:44 +0200 Subject: [PATCH 07/94] Fix remaining race condition with CLOG truncation and LISTEN/NOTIFY Previous commit fixed a bug where VACUUM would truncate the CLOG that's still needed to check the commit status of XIDs in the async notify queue, but as mentioned in the commit message, it wasn't a full fix. If a backend is executing asyncQueueReadAllNotifications() and has just made a local copy of an async SLRU page which contains old XIDs, vacuum can concurrently truncate the CLOG covering those XIDs, and the backend still gets an error when it calls TransactionIdDidCommit() on those XIDs in the local copy. This commit fixes that race condition. To fix, hold the SLRU bank lock across the TransactionIdDidCommit() calls in NOTIFY processing. Per Tom Lane's idea. Backpatch to all supported versions. Reviewed-by: Joel Jacobson Reviewed-by: Arseniy Mukhin Discussion: https://www.postgresql.org/message-id/2759499.1761756503@sss.pgh.pa.us Backpatch-through: 14 --- src/backend/commands/async.c | 123 ++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 61 deletions(-) diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index 33ce4e80720..1f36bb72a8b 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -463,7 +463,6 @@ static void SignalBackends(void); static void asyncQueueReadAllNotifications(void); static bool asyncQueueProcessPageEntries(QueuePosition *current, QueuePosition stop, - char *page_buffer, Snapshot snapshot); static void asyncQueueAdvanceTail(void); static void ProcessIncomingNotify(bool flush); @@ -1903,13 +1902,6 @@ asyncQueueReadAllNotifications(void) QueuePosition head; Snapshot snapshot; - /* page_buffer must be adequately aligned, so use a union */ - union - { - char buf[QUEUE_PAGESIZE]; - AsyncQueueEntry align; - } page_buffer; - /* Fetch current state */ LWLockAcquire(NotifyQueueLock, LW_SHARED); /* Assert checks that we have a valid state entry */ @@ -1990,37 +1982,6 @@ asyncQueueReadAllNotifications(void) do { - int curpage = QUEUE_POS_PAGE(pos); - int curoffset = QUEUE_POS_OFFSET(pos); - int slotno; - int copysize; - - /* - * We copy the data from SLRU into a local buffer, so as to avoid - * holding the NotifySLRULock while we are examining the entries - * and possibly transmitting them to our frontend. Copy only the - * part of the page we will actually inspect. - */ - slotno = SimpleLruReadPage_ReadOnly(NotifyCtl, curpage, - InvalidTransactionId); - if (curpage == QUEUE_POS_PAGE(head)) - { - /* we only want to read as far as head */ - copysize = QUEUE_POS_OFFSET(head) - curoffset; - if (copysize < 0) - copysize = 0; /* just for safety */ - } - else - { - /* fetch all the rest of the page */ - copysize = QUEUE_PAGESIZE - curoffset; - } - memcpy(page_buffer.buf + curoffset, - NotifyCtl->shared->page_buffer[slotno] + curoffset, - copysize); - /* Release lock that we got from SimpleLruReadPage_ReadOnly() */ - LWLockRelease(NotifySLRULock); - /* * Process messages up to the stop position, end of page, or an * uncommitted message. @@ -2036,9 +1997,7 @@ asyncQueueReadAllNotifications(void) * rewrite pages under us. Especially we don't want to hold a lock * while sending the notifications to the frontend. */ - reachedStop = asyncQueueProcessPageEntries(&pos, head, - page_buffer.buf, - snapshot); + reachedStop = asyncQueueProcessPageEntries(&pos, head, snapshot); } while (!reachedStop); /* Update shared state */ @@ -2057,13 +2016,6 @@ asyncQueueReadAllNotifications(void) * Fetch notifications from the shared queue, beginning at position current, * and deliver relevant ones to my frontend. * - * The current page must have been fetched into page_buffer from shared - * memory. (We could access the page right in shared memory, but that - * would imply holding the NotifySLRULock throughout this routine.) - * - * We stop if we reach the "stop" position, or reach a notification from an - * uncommitted transaction, or reach the end of the page. - * * The function returns true once we have reached the stop position or an * uncommitted notification, and false if we have finished with the page. * In other words: once it returns true there is no need to look further. @@ -2072,16 +2024,34 @@ asyncQueueReadAllNotifications(void) static bool asyncQueueProcessPageEntries(QueuePosition *current, QueuePosition stop, - char *page_buffer, Snapshot snapshot) { + int64 curpage = QUEUE_POS_PAGE(*current); + int slotno; + char *page_buffer; bool reachedStop = false; bool reachedEndOfPage; - AsyncQueueEntry *qe; + + /* + * We copy the entries into a local buffer to avoid holding the SLRU lock + * while we transmit them to our frontend. The local buffer must be + * adequately aligned, so use a union. + */ + union + { + char buf[QUEUE_PAGESIZE]; + AsyncQueueEntry align; + } local_buf; + char *local_buf_end = local_buf.buf; + + slotno = SimpleLruReadPage_ReadOnly(NotifyCtl, curpage, + InvalidTransactionId); + page_buffer = NotifyCtl->shared->page_buffer[slotno]; do { QueuePosition thisentry = *current; + AsyncQueueEntry *qe; if (QUEUE_POS_EQUAL(thisentry, stop)) break; @@ -2123,18 +2093,23 @@ asyncQueueProcessPageEntries(QueuePosition *current, reachedStop = true; break; } - else if (TransactionIdDidCommit(qe->xid)) - { - /* qe->data is the null-terminated channel name */ - char *channel = qe->data; - if (IsListeningOn(channel)) - { - /* payload follows channel name */ - char *payload = qe->data + strlen(channel) + 1; + /* + * Quick check for the case that we're not listening on any + * channels, before calling TransactionIdDidCommit(). This makes + * that case a little faster, but more importantly, it ensures + * that if there's a bad entry in the queue for which + * TransactionIdDidCommit() fails for some reason, we can skip + * over it on the first LISTEN in a session, and not get stuck on + * it indefinitely. + */ + if (listenChannels == NIL) + continue; - NotifyMyFrontEnd(channel, payload, qe->srcPid); - } + if (TransactionIdDidCommit(qe->xid)) + { + memcpy(local_buf_end, qe, qe->length); + local_buf_end += qe->length; } else { @@ -2148,6 +2123,32 @@ asyncQueueProcessPageEntries(QueuePosition *current, /* Loop back if we're not at end of page */ } while (!reachedEndOfPage); + /* Release lock that we got from SimpleLruReadPage_ReadOnly() */ + LWLockRelease(NotifySLRULock); + + /* + * Now that we have let go of the SLRU bank lock, send the notifications + * to our backend + */ + Assert(local_buf_end - local_buf.buf <= BLCKSZ); + for (char *p = local_buf.buf; p < local_buf_end;) + { + AsyncQueueEntry *qe = (AsyncQueueEntry *) p; + + /* qe->data is the null-terminated channel name */ + char *channel = qe->data; + + if (IsListeningOn(channel)) + { + /* payload follows channel name */ + char *payload = qe->data + strlen(channel) + 1; + + NotifyMyFrontEnd(channel, payload, qe->srcPid); + } + + p += qe->length; + } + if (QUEUE_POS_EQUAL(*current, stop)) reachedStop = true; From 21a9014cf00ab370d7065a7184c1a087bc228b54 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 12 Nov 2025 21:19:03 +0200 Subject: [PATCH 08/94] Clear 'xid' in dummy async notify entries written to fill up pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before we started to freeze async notify entries (commit 8eeb4a0f7c), no one looked at the 'xid' on an entry with invalid 'dboid'. But now we might actually need to freeze it later. Initialize them with InvalidTransactionId to begin with, to avoid that work later. Álvaro pointed this out in review of commit 8eeb4a0f7c, but I forgot to include this change there. Author: Álvaro Herrera Discussion: https://www.postgresql.org/message-id/202511071410.52ll56eyixx7@alvherre.pgsql Backpatch-through: 14 --- src/backend/commands/async.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/commands/async.c b/src/backend/commands/async.c index 1f36bb72a8b..d1a174ff56e 100644 --- a/src/backend/commands/async.c +++ b/src/backend/commands/async.c @@ -1470,6 +1470,7 @@ asyncQueueAddEntries(ListCell *nextNotify) */ qe.length = QUEUE_PAGESIZE - offset; qe.dboid = InvalidOid; + qe.xid = InvalidTransactionId; qe.data[0] = '\0'; /* empty channel */ qe.data[1] = '\0'; /* empty payload */ } From c663152adcec438c72173e15021b94f54fa618fe Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Thu, 13 Nov 2025 12:04:34 +0000 Subject: [PATCH 09/94] doc: Improve description of RLS policies applied by command type. On the CREATE POLICY page, the "Policies Applied by Command Type" table was missing MERGE ... THEN DELETE and some of the policies applied during INSERT ... ON CONFLICT and MERGE. Fix that, and try to improve readability by listing the various MERGE cases separately, rather than together with INSERT/UPDATE/DELETE. Mention COPY ... TO along with SELECT, since it behaves in the same way. In addition, document which policy violations cause errors to be thrown, and which just cause rows to be silently ignored. Also, a paragraph above the table states that INSERT ... ON CONFLICT DO UPDATE only checks the WITH CHECK expressions of INSERT policies for rows appended to the relation by the INSERT path, which is incorrect -- all rows proposed for insertion are checked, regardless of whether they end up being inserted. Fix that, and also mention that the same applies to INSERT ... ON CONFLICT DO NOTHING. In addition, in various other places on that page, clarify how the different types of policy are applied to different commands, and whether or not errors are thrown when policy checks do not pass. Backpatch to all supported versions. Prior to v17, MERGE did not support RETURNING, and so MERGE ... THEN INSERT would never check new rows against SELECT policies. Prior to v15, MERGE was not supported at all. Author: Dean Rasheed Reviewed-by: Viktor Holmberg Reviewed-by: Jian He Discussion: https://postgr.es/m/CAEZATCWqnfeChjK=n1V_dYZT4rt4mnq+ybf9c0qXDYTVMsy8pg@mail.gmail.com Backpatch-through: 14 --- doc/src/sgml/ref/create_policy.sgml | 205 +++++++++++++++++++++------- 1 file changed, 159 insertions(+), 46 deletions(-) diff --git a/doc/src/sgml/ref/create_policy.sgml b/doc/src/sgml/ref/create_policy.sgml index e76c342d3da..5b7b91eaf97 100644 --- a/doc/src/sgml/ref/create_policy.sgml +++ b/doc/src/sgml/ref/create_policy.sgml @@ -49,6 +49,8 @@ CREATE POLICY name ON WITH CHECK. When a USING expression returns true for a given row then that row is visible to the user, while if false or null is returned then the row is not visible. + Typically, no error occurs when a row is not visible, but see + for exceptions. When a WITH CHECK expression returns true for a row then that row is inserted or updated, while if false or null is returned then an error occurs. @@ -194,8 +196,9 @@ CREATE POLICY name ON SELECT), and will not be available for modification (in an UPDATE - or DELETE). Such rows are silently suppressed; no error - is reported. + or DELETE). Typically, such rows are silently + suppressed; no error is reported (but see + for exceptions). @@ -251,8 +254,10 @@ CREATE POLICY name ON INSERT or UPDATE command attempts to add rows to the table that do not pass the ALL - policy's WITH CHECK expression, the entire - command will be aborted. + policy's WITH CHECK expression (or its + USING expression, if it does not have a + WITH CHECK expression), the entire command will + be aborted. @@ -268,11 +273,50 @@ CREATE POLICY name ON SELECT policy will be returned during a SELECT query, and that queries that require SELECT permissions, such as - UPDATE, will also only see those records + UPDATE, DELETE, and + MERGE, will also only see those records that are allowed by the SELECT policy. A SELECT policy cannot have a WITH CHECK expression, as it only applies in cases where - records are being retrieved from the relation. + records are being retrieved from the relation, except as described + below. + + + If a data-modifying query has a RETURNING clause, + SELECT permissions are required on the relation, + and any newly inserted or updated rows from the relation must satisfy + the relation's SELECT policies in order to be + available to the RETURNING clause. If a newly + inserted or updated row does not satisfy the relation's + SELECT policies, an error will be thrown (inserted + or updated rows to be returned are never + silently ignored). + + + If an INSERT has an ON CONFLICT DO + NOTHING/UPDATE clause, SELECT + permissions are required on the relation, and the rows proposed for + insertion are checked using the relation's SELECT + policies. If a row proposed for insertion does not satisfy the + relation's SELECT policies, an error is thrown + (the INSERT is never silently + avoided). In addition, if the UPDATE path is + taken, the row to be updated and the new updated row are checked + against the relation's SELECT policies, and an + error is thrown if they are not satisfied (an auxiliary + UPDATE is never silently + avoided). + + + A MERGE command requires SELECT + permissions on both the source and target relations, and so each + relation's SELECT policies are applied before they + are joined, and the MERGE actions will only see + those records that are allowed by those policies. In addition, if + an UPDATE action is executed, the target relation's + SELECT policies are applied to the updated row, as + for a standalone UPDATE, except that an error is + thrown if they are not satisfied. @@ -292,10 +336,11 @@ CREATE POLICY name ON - Note that INSERT with ON CONFLICT DO - UPDATE checks INSERT policies' - WITH CHECK expressions only for rows appended - to the relation by the INSERT path. + Note that an INSERT with an ON CONFLICT + DO NOTHING/UPDATE clause will check the + INSERT policies' WITH CHECK + expressions for all rows proposed for insertion, regardless of + whether or not they end up being inserted. @@ -305,12 +350,12 @@ CREATE POLICY name ON Using UPDATE for a policy means that it will apply - to UPDATE, SELECT FOR UPDATE + to UPDATE, SELECT FOR UPDATE, and SELECT FOR SHARE commands, as well as auxiliary ON CONFLICT DO UPDATE clauses of - INSERT commands. - MERGE commands containing UPDATE - actions are affected as well. Since UPDATE + INSERT commands, and MERGE + commands containing UPDATE actions. + Since an UPDATE command involves pulling an existing record and replacing it with a new modified record, UPDATE policies accept both a USING expression and @@ -356,7 +401,8 @@ CREATE POLICY name ON USING expressions, an error will be thrown (the UPDATE path will never be silently - avoided). + avoided). The same applies to an UPDATE action + of a MERGE command. @@ -366,12 +412,18 @@ CREATE POLICY name ON Using DELETE for a policy means that it will apply - to DELETE commands. Only rows that pass this - policy will be seen by a DELETE command. There can - be rows that are visible through a SELECT that are - not available for deletion, if they do not pass the - USING expression for - the DELETE policy. + to DELETE commands and MERGE + commands containing DELETE actions. For a + DELETE command, only rows that pass this policy + will be seen by the DELETE command. There can + be rows that are visible through a SELECT policy + that are not available for deletion, if they do not pass the + USING expression for the DELETE + policy. Note, however, that a DELETE action in a + MERGE command will see rows that are visible + through SELECT policies, and if the + DELETE policy does not pass for such a row, an + error will be thrown. @@ -400,6 +452,15 @@ CREATE POLICY name ON + + summarizes how the different + types of policy apply to specific commands. In the table, + check means that the policy expression is checked and an + error is thrown if it returns false or null, whereas filter + means that the row is silently ignored if the policy expression returns + false or null. + + Policies Applied by Command Type @@ -424,8 +485,8 @@ CREATE POLICY name ON - SELECT - Existing row + SELECT / COPY ... TO + Filter existing row @@ -433,63 +494,115 @@ CREATE POLICY name ON SELECT FOR UPDATE/SHARE - Existing row + Filter existing row - Existing row + Filter existing row - INSERT / MERGE ... THEN INSERT + INSERT + + Check new row  + + If read access is required to either the existing or new row (for + example, a WHERE or RETURNING + clause that refers to columns from the relation). + + + + Check new row + + - New row + + + UPDATE + + Filter existing row  & + check new row  + + + Filter existing row + Check new row + + + + DELETE + + Filter existing row  + + Filter existing row - INSERT ... RETURNING + INSERT ... ON CONFLICT - New row + Check new row  - If read access is required to the existing or new row (for example, - a WHERE or RETURNING clause - that refers to columns from the relation). + Row proposed for insertion is checked regardless of whether or not a + conflict occurs. - New row + + Check new row  + - UPDATE / MERGE ... THEN UPDATE + ON CONFLICT DO UPDATE - Existing & new rows + Check existing & new rows  + + New row of the auxiliary UPDATE command, which + might be different from the new row of the original + INSERT command. + + - Existing row - New row + Check existing row + + Check new row  + - DELETE - - Existing row - + MERGE + Filter source & target rows + - Existing row - ON CONFLICT DO UPDATE - Existing & new rows + MERGE ... THEN INSERT + + Check new row + + + + + + MERGE ... THEN UPDATE + Check new row + + Check existing row + Check new row + + + + MERGE ... THEN DELETE + + - Existing row - New row + Check existing row From d61af52ad1fcb86a6893c27e40aca492a57f35bc Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Fri, 14 Nov 2025 13:20:09 -0600 Subject: [PATCH 10/94] Add note about CreateStatistics()'s selective use of check_rights. Commit 5e4fcbe531 added a check_rights parameter to this function for use by ALTER TABLE commands that re-create statistics objects. However, we intentionally ignore check_rights when verifying relation ownership because this function's lookup could return a different answer than the caller's. This commit adds a note to this effect so that we remember it down the road. Reviewed-by: Noah Misch Backpatch-through: 14 --- src/backend/commands/statscmds.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c index 6bd45242f7d..763e662eab6 100644 --- a/src/backend/commands/statscmds.c +++ b/src/backend/commands/statscmds.c @@ -137,7 +137,13 @@ CreateStatistics(CreateStatsStmt *stmt, bool check_rights) RelationGetRelationName(rel)), errdetail_relkind_not_supported(rel->rd_rel->relkind))); - /* You must own the relation to create stats on it */ + /* + * You must own the relation to create stats on it. + * + * NB: Concurrent changes could cause this function's lookup to find a + * different relation than a previous lookup by the caller, so we must + * perform this check even when check_rights == false. + */ if (!pg_class_ownercheck(RelationGetRelid(rel), stxowner)) aclcheck_error(ACLCHECK_NOT_OWNER, get_relkind_objtype(rel->rd_rel->relkind), RelationGetRelationName(rel)); From 5d5b05c18ef4985114ccc4c66abad91dd39cedfc Mon Sep 17 00:00:00 2001 From: David Rowley Date: Mon, 17 Nov 2025 10:53:15 +1300 Subject: [PATCH 11/94] Doc: include MERGE in variable substitution command list Backpatch to 15, where MERGE was introduced. Reported-by: Author: David Rowley Discussion: https://postgr.es/m/176278494385.770.15550176063450771532@wrigleys.postgresql.org Backpatch-through: 15 --- doc/src/sgml/plpgsql.sgml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml index 9de0e10a26e..ac8785a4b27 100644 --- a/doc/src/sgml/plpgsql.sgml +++ b/doc/src/sgml/plpgsql.sgml @@ -4897,13 +4897,13 @@ $$ LANGUAGE plpgsql; Variable substitution currently works only in SELECT, INSERT, UPDATE, - DELETE, and commands containing one of - these (such as EXPLAIN and CREATE TABLE - ... AS SELECT), - because the main SQL engine allows query parameters only in these - commands. To use a non-constant name or value in other statement - types (generically called utility statements), you must construct - the utility statement as a string and EXECUTE it. + DELETE, MERGE and commands + containing one of these (such as EXPLAIN and + CREATE TABLE ... AS SELECT), because the main SQL + engine allows query parameters only in these commands. To use a + non-constant name or value in other statement types (generically called + utility statements), you must construct the utility statement as a string + and EXECUTE it. From ad5cc3ad8906123b34738e3697f31dacfffc15b7 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Mon, 17 Nov 2025 14:14:41 -0600 Subject: [PATCH 12/94] Update .abi-compliance-history for change to CreateStatistics(). As noted in the commit message for 5e4fcbe531, the addition of a second parameter to CreateStatistics() breaks ABI compatibility, but we are unaware of any impacted third-party code. This commit updates .abi-compliance-history accordingly. Backpatch-through: 14-18 --- .abi-compliance-history | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.abi-compliance-history b/.abi-compliance-history index 6c252f0ee69..b71acb8e908 100644 --- a/.abi-compliance-history +++ b/.abi-compliance-history @@ -18,6 +18,14 @@ # Be sure to replace "" with details of your change and # why it is deemed acceptable. +2393d374ae9c0bc8327adc80fe4490edb05be167 +# +# Check for CREATE privilege on the schema in CREATE STATISTICS. +# 2025-11-10 09:00:00 -0600 +# +# This commit added a parameter to CreateStatistics(). We are unaware of any +# impacted third-party code. + fc0fb77c550fe8289d718c33c7aacf16023d9941 # # Fix re-distributing previously distributed invalidation messages during logical decoding. From 3995e4a9d8c6870aa3bc817c62a1b6678f3ad318 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Tue, 18 Nov 2025 10:30:34 +1300 Subject: [PATCH 13/94] Define PS_USE_CLOBBER_ARGV on GNU/Hurd. This is a backpatch of 32b23664 to v14 and v15. * Remove ancient test for __hurd__, which intended to activate PS_USE_CHANGE_ARGV in these branches but turned out not to be defined on modern systems. * Add new test for__GNU__ to activate PS_USE_CLOBBER_ARGV, like the newer branches. Author: Michael Banck Discussion: https://postgr.es/m/CA%2BhUKGJMNGUAqf27WbckYFrM-Mavy0RKJvocfJU%3DJ2XcAZyv%2Bw%40mail.gmail.com Backpatch-through: 14-15 --- src/backend/utils/misc/ps_status.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c index 5ff24698fc0..6866ef20b53 100644 --- a/src/backend/utils/misc/ps_status.c +++ b/src/backend/utils/misc/ps_status.c @@ -73,9 +73,9 @@ bool update_process_title = true; #define PS_USE_PSTAT #elif defined(HAVE_PS_STRINGS) #define PS_USE_PS_STRINGS -#elif (defined(BSD) || defined(__hurd__)) && !defined(__darwin__) +#elif defined(BSD) && !defined(__darwin__) #define PS_USE_CHANGE_ARGV -#elif defined(__linux__) || defined(_AIX) || defined(__sgi) || (defined(sun) && !defined(BSD)) || defined(__svr5__) || defined(__darwin__) +#elif defined(__linux__) || defined(_AIX) || defined(__sgi) || (defined(sun) && !defined(BSD)) || defined(__svr5__) || defined(__darwin__) || defined(__GNU__) #define PS_USE_CLOBBER_ARGV #elif defined(WIN32) #define PS_USE_WIN32 @@ -85,7 +85,7 @@ bool update_process_title = true; /* Different systems want the buffer padded differently */ -#if defined(_AIX) || defined(__linux__) || defined(__darwin__) +#if defined(_AIX) || defined(__linux__) || defined(__darwin__) || defined(__GNU__) #define PS_PADDING '\0' #else #define PS_PADDING ' ' From 9f5a58aacf65c77eaa4909763c4119cd453c870e Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 18 Nov 2025 12:56:55 -0500 Subject: [PATCH 14/94] Don't allow CTEs to determine semantic levels of aggregates. The fix for bug #19055 (commit b0cc0a71e) allowed CTE references in sub-selects within aggregate functions to affect the semantic levels assigned to such aggregates. It turns out this broke some related cases, leading to assertion failures or strange planner errors such as "unexpected outer reference in CTE query". After experimenting with some alternative rules for assigning the semantic level in such cases, we've come to the conclusion that changing the level is more likely to break things than be helpful. Therefore, this patch undoes what b0cc0a71e changed, and instead installs logic to throw an error if there is any reference to a CTE that's below the semantic level that standard SQL rules would assign to the aggregate based on its contained Var and Aggref nodes. (The SQL standard disallows sub-selects within aggregate functions, so it can't reach the troublesome case and hence has no rule for what to do.) Perhaps someone will come along with a legitimate query that this logic rejects, and if so probably the example will help us craft a level-adjustment rule that works better than what b0cc0a71e did. I'm not holding my breath for that though, because the previous logic had been there for a very long time before bug #19055 without complaints, and that bug report sure looks to have originated from fuzzing not from real usage. Like b0cc0a71e, back-patch to all supported branches, though sadly that no longer includes v13. Bug: #19106 Reported-by: Kamil Monicz Author: Tom Lane Discussion: https://postgr.es/m/19106-9dd3668a0734cd72@postgresql.org Backpatch-through: 14 --- src/backend/parser/parse_agg.c | 49 ++++++++++++++++++------ src/test/regress/expected/with.out | 60 +++++++++++++++++------------- src/test/regress/sql/with.sql | 22 ++++++++--- 3 files changed, 88 insertions(+), 43 deletions(-) diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c index 216c4880f19..a09f422ffcf 100644 --- a/src/backend/parser/parse_agg.c +++ b/src/backend/parser/parse_agg.c @@ -35,6 +35,8 @@ typedef struct ParseState *pstate; int min_varlevel; int min_agglevel; + int min_ctelevel; + RangeTblEntry *min_cte; int sublevels_up; } check_agg_arguments_context; @@ -54,7 +56,8 @@ typedef struct static int check_agg_arguments(ParseState *pstate, List *directargs, List *args, - Expr *filter); + Expr *filter, + int agglocation); static bool check_agg_arguments_walker(Node *node, check_agg_arguments_context *context); static void check_ungrouped_columns(Node *node, ParseState *pstate, Query *qry, @@ -332,7 +335,8 @@ check_agglevels_and_constraints(ParseState *pstate, Node *expr) min_varlevel = check_agg_arguments(pstate, directargs, args, - filter); + filter, + location); *p_levelsup = min_varlevel; @@ -633,7 +637,8 @@ static int check_agg_arguments(ParseState *pstate, List *directargs, List *args, - Expr *filter) + Expr *filter, + int agglocation) { int agglevel; check_agg_arguments_context context; @@ -641,6 +646,8 @@ check_agg_arguments(ParseState *pstate, context.pstate = pstate; context.min_varlevel = -1; /* signifies nothing found yet */ context.min_agglevel = -1; + context.min_ctelevel = -1; + context.min_cte = NULL; context.sublevels_up = 0; (void) check_agg_arguments_walker((Node *) args, &context); @@ -678,6 +685,20 @@ check_agg_arguments(ParseState *pstate, parser_errposition(pstate, aggloc))); } + /* + * If there's a non-local CTE that's below the aggregate's semantic level, + * complain. It's not quite clear what we should do to fix up such a case + * (treating the CTE reference like a Var seems wrong), and it's also + * unclear whether there is a real-world use for such cases. + */ + if (context.min_ctelevel >= 0 && context.min_ctelevel < agglevel) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("outer-level aggregate cannot use a nested CTE"), + errdetail("CTE \"%s\" is below the aggregate's semantic level.", + context.min_cte->eref->aliasname), + parser_errposition(pstate, agglocation))); + /* * Now check for vars/aggs in the direct arguments, and throw error if * needed. Note that we allow a Var of the agg's semantic level, but not @@ -691,6 +712,7 @@ check_agg_arguments(ParseState *pstate, { context.min_varlevel = -1; context.min_agglevel = -1; + context.min_ctelevel = -1; (void) check_agg_arguments_walker((Node *) directargs, &context); if (context.min_varlevel >= 0 && context.min_varlevel < agglevel) ereport(ERROR, @@ -706,6 +728,13 @@ check_agg_arguments(ParseState *pstate, parser_errposition(pstate, locate_agg_of_level((Node *) directargs, context.min_agglevel)))); + if (context.min_ctelevel >= 0 && context.min_ctelevel < agglevel) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("outer-level aggregate cannot use a nested CTE"), + errdetail("CTE \"%s\" is below the aggregate's semantic level.", + context.min_cte->eref->aliasname), + parser_errposition(pstate, agglocation))); } return agglevel; } @@ -786,11 +815,6 @@ check_agg_arguments_walker(Node *node, if (IsA(node, RangeTblEntry)) { - /* - * CTE references act similarly to Vars of the CTE's level. Without - * this we might conclude that the Agg can be evaluated above the CTE, - * leading to trouble. - */ RangeTblEntry *rte = (RangeTblEntry *) node; if (rte->rtekind == RTE_CTE) @@ -802,9 +826,12 @@ check_agg_arguments_walker(Node *node, /* ignore local CTEs of subqueries */ if (ctelevelsup >= 0) { - if (context->min_varlevel < 0 || - context->min_varlevel > ctelevelsup) - context->min_varlevel = ctelevelsup; + if (context->min_ctelevel < 0 || + context->min_ctelevel > ctelevelsup) + { + context->min_ctelevel = ctelevelsup; + context->min_cte = rte; + } } } return false; /* allow range_table_walker to continue */ diff --git a/src/test/regress/expected/with.out b/src/test/regress/expected/with.out index 5fc248411d1..06413c3774a 100644 --- a/src/test/regress/expected/with.out +++ b/src/test/regress/expected/with.out @@ -2226,36 +2226,44 @@ from int4_tbl; -- -- test for bug #19055: interaction of WITH with aggregates -- --- The reference to cte1 must determine the aggregate's level, --- even though it contains no Vars referencing cte1 -explain (verbose, costs off) +-- For now, we just throw an error if there's a use of a CTE below the +-- semantic level that the SQL standard assigns to the aggregate. +-- It's not entirely clear what we could do instead that doesn't risk +-- breaking more things than it fixes. select f1, (with cte1(x,y) as (select 1,2) select count((select i4.f1 from cte1))) as ss from int4_tbl i4; - QUERY PLAN ------------------------------------ - Seq Scan on public.int4_tbl i4 - Output: i4.f1, (SubPlan 2) - SubPlan 2 +ERROR: outer-level aggregate cannot use a nested CTE +LINE 2: select count((select i4.f1 from cte1))) as ss + ^ +DETAIL: CTE "cte1" is below the aggregate's semantic level. +-- +-- test for bug #19106: interaction of WITH with aggregates +-- +-- the initial fix for #19055 was too aggressive and broke this case +explain (verbose, costs off) +with a as ( select id from (values (1), (2)) as v(id) ), + b as ( select max((select sum(id) from a)) as agg ) +select agg from b; + QUERY PLAN +-------------------------------------------- + Aggregate + Output: max($0) + InitPlan 1 (returns $0) -> Aggregate - Output: count($1) - InitPlan 1 (returns $1) - -> Result - Output: i4.f1 - -> Result -(9 rows) - -select f1, (with cte1(x,y) as (select 1,2) - select count((select i4.f1 from cte1))) as ss -from int4_tbl i4; - f1 | ss --------------+---- - 0 | 1 - 123456 | 1 - -123456 | 1 - 2147483647 | 1 - -2147483647 | 1 -(5 rows) + Output: sum("*VALUES*".column1) + -> Values Scan on "*VALUES*" + Output: "*VALUES*".column1 + -> Result +(8 rows) + +with a as ( select id from (values (1), (2)) as v(id) ), + b as ( select max((select sum(id) from a)) as agg ) +select agg from b; + agg +----- + 3 +(1 row) -- -- test for nested-recursive-WITH bug diff --git a/src/test/regress/sql/with.sql b/src/test/regress/sql/with.sql index 5602a676eb0..a919a48c449 100644 --- a/src/test/regress/sql/with.sql +++ b/src/test/regress/sql/with.sql @@ -1067,16 +1067,26 @@ from int4_tbl; -- -- test for bug #19055: interaction of WITH with aggregates -- --- The reference to cte1 must determine the aggregate's level, --- even though it contains no Vars referencing cte1 -explain (verbose, costs off) +-- For now, we just throw an error if there's a use of a CTE below the +-- semantic level that the SQL standard assigns to the aggregate. +-- It's not entirely clear what we could do instead that doesn't risk +-- breaking more things than it fixes. select f1, (with cte1(x,y) as (select 1,2) select count((select i4.f1 from cte1))) as ss from int4_tbl i4; -select f1, (with cte1(x,y) as (select 1,2) - select count((select i4.f1 from cte1))) as ss -from int4_tbl i4; +-- +-- test for bug #19106: interaction of WITH with aggregates +-- +-- the initial fix for #19055 was too aggressive and broke this case +explain (verbose, costs off) +with a as ( select id from (values (1), (2)) as v(id) ), + b as ( select max((select sum(id) from a)) as agg ) +select agg from b; + +with a as ( select id from (values (1), (2)) as v(id) ), + b as ( select max((select sum(id) from a)) as agg ) +select agg from b; -- -- test for nested-recursive-WITH bug From 7c494072bcb27700d9851e719f2acf43cc94b4e1 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 19 Nov 2025 18:05:42 +0200 Subject: [PATCH 15/94] Print new OldestXID value in pg_resetwal when it's being changed Commit 74cf7d46a91d added the --oldest-transaction-id option to pg_resetwal, but forgot to update the code that prints all the new values that are being set. Fix that. Reviewed-by: Bertrand Drouvot Discussion: https://www.postgresql.org/message-id/5461bc85-e684-4531-b4d2-d2e57ad18cba@iki.fi Backpatch-through: 14 --- src/bin/pg_resetwal/pg_resetwal.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/bin/pg_resetwal/pg_resetwal.c b/src/bin/pg_resetwal/pg_resetwal.c index cae5923e04b..fcbb226bd11 100644 --- a/src/bin/pg_resetwal/pg_resetwal.c +++ b/src/bin/pg_resetwal/pg_resetwal.c @@ -821,6 +821,10 @@ PrintNewControlValues(void) { printf(_("NextXID: %u\n"), XidFromFullTransactionId(ControlFile.checkPointCopy.nextXid)); + } + + if (set_oldest_xid != 0) + { printf(_("OldestXID: %u\n"), ControlFile.checkPointCopy.oldestXid); printf(_("OldestXID's DB: %u\n"), From 55164852d3cd9cb828b8b13d357acf27f64e93cc Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Sat, 22 Nov 2025 20:51:16 +1300 Subject: [PATCH 16/94] jit: Adjust AArch64-only code for LLVM 21. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LLVM 21 changed the arguments of RTDyldObjectLinkingLayer's constructor, breaking compilation with the backported SectionMemoryManager from commit 9044fc1d. https://github.com/llvm/llvm-project/commit/cd585864c0bbbd74ed2a2b1ccc191eed4d1c8f90 Backpatch-through: 14 Author: Holger Hoffstätte Reviewed-by: Anthonin Bonnefoy Discussion: https://postgr.es/m/d25e6e4a-d1b4-84d3-2f8a-6c45b975f53d%40applied-asynchrony.com --- src/backend/jit/llvm/llvmjit_wrap.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/backend/jit/llvm/llvmjit_wrap.cpp b/src/backend/jit/llvm/llvmjit_wrap.cpp index 26074b1e893..2e37acd260c 100644 --- a/src/backend/jit/llvm/llvmjit_wrap.cpp +++ b/src/backend/jit/llvm/llvmjit_wrap.cpp @@ -118,7 +118,14 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::ObjectLayer, LLVMOrcObjectLayerRef LLVMOrcObjectLayerRef LLVMOrcCreateRTDyldObjectLinkingLayerWithSafeSectionMemoryManager(LLVMOrcExecutionSessionRef ES) { +#if LLVM_VERSION_MAJOR >= 21 + return wrap(new llvm::orc::RTDyldObjectLinkingLayer( + *unwrap(ES), [](const llvm::MemoryBuffer&) { + return std::make_unique(nullptr, true); + })); +#else return wrap(new llvm::orc::RTDyldObjectLinkingLayer( *unwrap(ES), [] { return std::make_unique(nullptr, true); })); +#endif } #endif From ea757e8012961cd9875c1bfcb16c655c515ce791 Mon Sep 17 00:00:00 2001 From: David Rowley Date: Mon, 24 Nov 2025 17:02:00 +1300 Subject: [PATCH 17/94] Fix incorrect IndexOptInfo header comment The comment incorrectly indicated that indexcollations[] stored collations for both key columns and INCLUDE columns, but in reality it only has elements for the key columns. canreturn[] didn't get a mention, so add that while we're here. Author: Junwang Zhao Reviewed-by: David Rowley Discussion: https://postgr.es/m/CAEG8a3LwbZgMKOQ9CmZarX5DEipKivdHp5PZMOO-riL0w%3DL%3D4A%40mail.gmail.com Backpatch-through: 14 --- src/include/nodes/pathnodes.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/include/nodes/pathnodes.h b/src/include/nodes/pathnodes.h index 9d804d4b321..d9b24861199 100644 --- a/src/include/nodes/pathnodes.h +++ b/src/include/nodes/pathnodes.h @@ -800,9 +800,10 @@ typedef struct RelOptInfo * IndexOptInfo * Per-index information for planning/optimization * - * indexkeys[], indexcollations[] each have ncolumns entries. - * opfamily[], and opcintype[] each have nkeycolumns entries. They do - * not contain any information about included attributes. + * indexkeys[] and canreturn[] each have ncolumns entries. + * + * indexcollations[], opfamily[], and opcintype[] each have nkeycolumns + * entries. These don't contain any information about INCLUDE columns. * * sortopfamily[], reverse_sort[], and nulls_first[] have * nkeycolumns entries, if the index is ordered; but if it is unordered, From da39714965318b2856a0de94a4c817948778969c Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Mon, 24 Nov 2025 17:37:09 -0500 Subject: [PATCH 18/94] lwlock: Fix, currently harmless, bug in LWLockWakeup() Accidentally the code in LWLockWakeup() checked the list of to-be-woken up processes to see if LW_FLAG_HAS_WAITERS should be unset. That means that HAS_WAITERS would not get unset immediately, but only during the next, unnecessary, call to LWLockWakeup(). Luckily, as the code stands, this is just a small efficiency issue. However, if there were (as in a patch of mine) a case in which LWLockWakeup() would not find any backend to wake, despite the wait list not being empty, we'd wrongly unset LW_FLAG_HAS_WAITERS, leading to potentially hanging. While the consequences in the backbranches are limited, the code as-is confusing, and it is possible that there are workloads where the additional wait list lock acquisitions hurt, therefore backpatch. Discussion: https://postgr.es/m/fvfmkr5kk4nyex56ejgxj3uzi63isfxovp2biecb4bspbjrze7@az2pljabhnff Backpatch-through: 14 --- src/backend/storage/lmgr/lwlock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index ea34ee785cb..11f60bb20b1 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -1023,7 +1023,7 @@ LWLockWakeup(LWLock *lock) else desired_state &= ~LW_FLAG_RELEASE_OK; - if (proclist_is_empty(&wakeup)) + if (proclist_is_empty(&lock->waiters)) desired_state &= ~LW_FLAG_HAS_WAITERS; desired_state &= ~LW_FLAG_LOCKED; /* release lock */ From eb7743e3e4f5e2c50fe5ee18a524b2e8a660df77 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Wed, 26 Nov 2025 14:24:04 +0100 Subject: [PATCH 19/94] doc: Clarify passphrase command reloading on Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running on Windows (or EXEC_BACKEND) the SSL configuration will be reloaded on each backend start, so the passphrase command will be reloaded along with it. This implies that passphrase command reload must be enabled on Windows for connections to work at all. Document this since it wasn't mentioned explicitly, and will there add markup for parameter value to match the rest of the docs. Backpatch to all supported versions. Author: Daniel Gustafsson Reviewed-by: Chao Li Reviewed-by: Álvaro Herrera Reviewed-by: Peter Eisentraut Discussion: https://postgr.es/m/5F301096-921A-427D-8EC1-EBAEC2A35082@yesql.se Backpatch-through: 14 --- doc/src/sgml/config.sgml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index ed1b60219fc..4170676f1e2 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1587,7 +1587,7 @@ include_dir 'conf.d' This parameter determines whether the passphrase command set by ssl_passphrase_command will also be called during a configuration reload if a key file needs a passphrase. If this - parameter is off (the default), then + parameter is off (the default), then ssl_passphrase_command will be ignored during a reload and the SSL configuration will not be reloaded if a passphrase is needed. That setting is appropriate for a command that requires a @@ -1595,6 +1595,12 @@ include_dir 'conf.d' running. Setting this parameter to on might be appropriate if the passphrase is obtained from a file, for example. + + This parameter must be set to on when running on + Windows since all connections + will perform a configuration reload due to the different process model + of that platform. + This parameter can only be set in the postgresql.conf file or on the server command line. From f9f928304bb720d5e94651acd6b3e71a6f267430 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Thu, 27 Nov 2025 23:30:51 +0900 Subject: [PATCH 20/94] doc: Fix misleading synopsis for CREATE/ALTER PUBLICATION. The documentation for CREATE/ALTER PUBLICATION previously showed: [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] [, ... ] to indicate that the table/column specification could be repeated. However, placing [, ... ] directly after a multi-part construct was misleading and made it unclear which portion was repeatable. This commit introduces a new term, table_and_columns, to represent: [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] and updates the synopsis to use: table_and_columns [, ... ] which clearly identifies the repeatable element. Backpatched to v15, where the misleading syntax was introduced. Author: Peter Smith Reviewed-by: Chao Li Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/CAHut+PtsyvYL3KmA6C8f0ZpXQ=7FEqQtETVy-BOF+cm9WPvfMQ@mail.gmail.com Backpatch-through: 15 --- doc/src/sgml/ref/alter_publication.sgml | 8 ++++++-- doc/src/sgml/ref/create_publication.sgml | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/doc/src/sgml/ref/alter_publication.sgml b/doc/src/sgml/ref/alter_publication.sgml index 9e7f60a290a..858daec65a0 100644 --- a/doc/src/sgml/ref/alter_publication.sgml +++ b/doc/src/sgml/ref/alter_publication.sgml @@ -30,13 +30,17 @@ ALTER PUBLICATION name RENAME TO where publication_object is one of: - TABLE [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] [, ... ] + TABLE table_and_columns [, ... ] TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ] -where publication_drop_object is one of: +and publication_drop_object is one of: TABLE [ ONLY ] table_name [ * ] [, ... ] TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ] + +and table_and_columns is: + + [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] diff --git a/doc/src/sgml/ref/create_publication.sgml b/doc/src/sgml/ref/create_publication.sgml index 7ab7e77f337..787750b8664 100644 --- a/doc/src/sgml/ref/create_publication.sgml +++ b/doc/src/sgml/ref/create_publication.sgml @@ -28,8 +28,12 @@ CREATE PUBLICATION name where publication_object is one of: - TABLE [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] [, ... ] + TABLE table_and_columns [, ... ] TABLES IN SCHEMA { schema_name | CURRENT_SCHEMA } [, ... ] + +and table_and_columns is: + + [ ONLY ] table_name [ * ] [ ( column_name [, ... ] ) ] [ WHERE ( expression ) ] From f19502f04edc97f124db39faa388c9b54b7383cf Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 27 Nov 2025 13:09:59 -0500 Subject: [PATCH 21/94] Allow indexscans on partial hash indexes with implied quals. Normally, if a WHERE clause is implied by the predicate of a partial index, we drop that clause from the set of quals used with the index, since it's redundant to test it if we're scanning that index. However, if it's a hash index (or any !amoptionalkey index), this could result in dropping all available quals for the index's first key, preventing us from generating an indexscan. It's fair to question the practical usefulness of this case. Since hash only supports equality quals, the situation could only arise if the index's predicate is "WHERE indexkey = constant", implying that the index contains only one hash value, which would make hash a really poor choice of index type. However, perhaps there are other !amoptionalkey index AMs out there with which such cases are more plausible. To fix, just don't filter the candidate indexquals this way if the index is !amoptionalkey. That's a bit hokey because it may result in testing quals we didn't need to test, but to do it more accurately we'd have to redundantly identify which candidate quals are actually usable with the index, something we don't know at this early stage of planning. Doesn't seem worth the effort. Reported-by: Sergei Glukhov Author: Tom Lane Reviewed-by: David Rowley Discussion: https://postgr.es/m/e200bf38-6b45-446a-83fd-48617211feff@postgrespro.ru Backpatch-through: 14 --- src/backend/optimizer/path/indxpath.c | 10 ++++++++++ src/test/regress/expected/hash_index.out | 21 +++++++++++++++++++++ src/test/regress/sql/hash_index.sql | 13 +++++++++++++ 3 files changed, 44 insertions(+) diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index 3800f0cdfb7..a50a0a386db 100644 --- a/src/backend/optimizer/path/indxpath.c +++ b/src/backend/optimizer/path/indxpath.c @@ -3412,6 +3412,16 @@ check_index_predicates(PlannerInfo *root, RelOptInfo *rel) if (is_target_rel) continue; + /* + * If index is !amoptionalkey, also leave indrestrictinfo as set + * above. Otherwise we risk removing all quals for the first index + * key and then not being able to generate an indexscan at all. It + * would be better to be more selective, but we've not yet identified + * which if any of the quals match the first index key. + */ + if (!index->amoptionalkey) + continue; + /* Else compute indrestrictinfo as the non-implied quals */ index->indrestrictinfo = NIL; foreach(lcr, rel->baserestrictinfo) diff --git a/src/test/regress/expected/hash_index.out b/src/test/regress/expected/hash_index.out index a2036a15972..2003b46e39e 100644 --- a/src/test/regress/expected/hash_index.out +++ b/src/test/regress/expected/hash_index.out @@ -40,6 +40,8 @@ CREATE INDEX hash_name_index ON hash_name_heap USING hash (random name_ops); CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops) WITH (fillfactor=60); +CREATE INDEX hash_i4_partial_index ON hash_i4_heap USING hash (seqno) + WHERE seqno = 9999; -- -- Also try building functional, expressional, and partial indexes on -- tables that already contain data. @@ -131,6 +133,25 @@ SELECT * FROM hash_f8_heap -------+-------- (0 rows) +-- +-- partial hash index +-- +EXPLAIN (COSTS OFF) +SELECT * FROM hash_i4_heap + WHERE seqno = 9999; + QUERY PLAN +-------------------------------------------------------- + Index Scan using hash_i4_partial_index on hash_i4_heap + Index Cond: (seqno = 9999) +(2 rows) + +SELECT * FROM hash_i4_heap + WHERE seqno = 9999; + seqno | random +-------+------------ + 9999 | 1227676208 +(1 row) + -- -- hash index -- grep '^90[^0-9]' hashovfl.data diff --git a/src/test/regress/sql/hash_index.sql b/src/test/regress/sql/hash_index.sql index 527024f7109..72696f27b6e 100644 --- a/src/test/regress/sql/hash_index.sql +++ b/src/test/regress/sql/hash_index.sql @@ -53,6 +53,9 @@ CREATE INDEX hash_txt_index ON hash_txt_heap USING hash (random text_ops); CREATE INDEX hash_f8_index ON hash_f8_heap USING hash (random float8_ops) WITH (fillfactor=60); +CREATE INDEX hash_i4_partial_index ON hash_i4_heap USING hash (seqno) + WHERE seqno = 9999; + -- -- Also try building functional, expressional, and partial indexes on -- tables that already contain data. @@ -117,6 +120,16 @@ SELECT * FROM hash_f8_heap SELECT * FROM hash_f8_heap WHERE hash_f8_heap.random = '88888888'::float8; +-- +-- partial hash index +-- +EXPLAIN (COSTS OFF) +SELECT * FROM hash_i4_heap + WHERE seqno = 9999; + +SELECT * FROM hash_i4_heap + WHERE seqno = 9999; + -- -- hash index -- grep '^90[^0-9]' hashovfl.data From 134a8ee2240557e8165cffe70d19e48937cece03 Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Sat, 29 Nov 2025 12:33:35 +0000 Subject: [PATCH 22/94] Avoid rewriting data-modifying CTEs more than once. Formerly, when updating an auto-updatable view, or a relation with rules, if the original query had any data-modifying CTEs, the rewriter would rewrite those CTEs multiple times as RewriteQuery() recursed into the product queries. In most cases that was harmless, because RewriteQuery() is mostly idempotent. However, if the CTE involved updating an always-generated column, it would trigger an error because any subsequent rewrite would appear to be attempting to assign a non-default value to the always-generated column. This could perhaps be fixed by attempting to make RewriteQuery() fully idempotent, but that looks quite tricky to achieve, and would probably be quite fragile, given that more generated-column-type features might be added in the future. Instead, fix by arranging for RewriteQuery() to rewrite each CTE exactly once (by tracking the number of CTEs already rewritten as it recurses). This has the advantage of being simpler and more efficient, but it does make RewriteQuery() dependent on the order in which rewriteRuleAction() joins the CTE lists from the original query and the rule action, so care must be taken if that is ever changed. Reported-by: Bernice Southey Author: Bernice Southey Author: Dean Rasheed Reviewed-by: Tom Lane Reviewed-by: Kirill Reshke Discussion: https://postgr.es/m/CAEDh4nyD6MSH9bROhsOsuTqGAv_QceU_GDvN9WcHLtZTCYM1kA@mail.gmail.com Backpatch-through: 14 --- src/backend/rewrite/rewriteHandler.c | 31 +++++++++++++++++---- src/test/regress/expected/with.out | 41 ++++++++++++++++++++++++++++ src/test/regress/sql/with.sql | 23 ++++++++++++++++ 3 files changed, 90 insertions(+), 5 deletions(-) diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index aa0a3bfe89b..351ccfe3590 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -585,7 +585,10 @@ rewriteRuleAction(Query *parsetree, } } - /* OK, it's safe to combine the CTE lists */ + /* + * OK, it's safe to combine the CTE lists. Beware that RewriteQuery + * knows we concatenate the lists in this order. + */ sub_action->cteList = list_concat(sub_action->cteList, copyObject(parsetree->cteList)); /* ... and don't forget about the associated flags */ @@ -3687,9 +3690,13 @@ rewriteTargetView(Query *parsetree, Relation view) * orig_rt_length is the length of the originating query's rtable, for product * queries created by fireRules(), and 0 otherwise. This is used to skip any * already-processed VALUES RTEs from the original query. + * + * num_ctes_processed is the number of CTEs at the end of the query's cteList + * that have already been rewritten, and must not be rewritten again. */ static List * -RewriteQuery(Query *parsetree, List *rewrite_events, int orig_rt_length) +RewriteQuery(Query *parsetree, List *rewrite_events, int orig_rt_length, + int num_ctes_processed) { CmdType event = parsetree->commandType; bool instead = false; @@ -3703,17 +3710,29 @@ RewriteQuery(Query *parsetree, List *rewrite_events, int orig_rt_length) * First, recursively process any insert/update/delete statements in WITH * clauses. (We have to do this first because the WITH clauses may get * copied into rule actions below.) + * + * Any new WITH clauses from rule actions are processed when we recurse + * into product queries below. However, when recursing, we must take care + * to avoid rewriting a CTE query more than once (because expanding + * generated columns in the targetlist more than once would fail). Since + * new CTEs from product queries are added to the start of the list (see + * rewriteRuleAction), we just skip the last num_ctes_processed items. */ foreach(lc1, parsetree->cteList) { CommonTableExpr *cte = lfirst_node(CommonTableExpr, lc1); Query *ctequery = castNode(Query, cte->ctequery); + int i = foreach_current_index(lc1); List *newstuff; + /* Skip already-processed CTEs at the end of the list */ + if (i >= list_length(parsetree->cteList) - num_ctes_processed) + break; + if (ctequery->commandType == CMD_SELECT) continue; - newstuff = RewriteQuery(ctequery, rewrite_events, 0); + newstuff = RewriteQuery(ctequery, rewrite_events, 0, 0); /* * Currently we can only handle unconditional, single-statement DO @@ -3772,6 +3791,7 @@ RewriteQuery(Query *parsetree, List *rewrite_events, int orig_rt_length) errmsg("multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH"))); } } + num_ctes_processed = list_length(parsetree->cteList); /* * If the statement is an insert, update, delete, or merge, adjust its @@ -4134,7 +4154,8 @@ RewriteQuery(Query *parsetree, List *rewrite_events, int orig_rt_length) newstuff = RewriteQuery(pt, rewrite_events, pt == parsetree ? orig_rt_length : - product_orig_rt_length); + product_orig_rt_length, + num_ctes_processed); rewritten = list_concat(rewritten, newstuff); } @@ -4286,7 +4307,7 @@ QueryRewrite(Query *parsetree) * * Apply all non-SELECT rules possibly getting 0 or many queries */ - querylist = RewriteQuery(parsetree, NIL, 0); + querylist = RewriteQuery(parsetree, NIL, 0, 0); /* * Step 2 diff --git a/src/test/regress/expected/with.out b/src/test/regress/expected/with.out index 06413c3774a..be23e932654 100644 --- a/src/test/regress/expected/with.out +++ b/src/test/regress/expected/with.out @@ -2798,6 +2798,47 @@ SELECT * FROM bug6051_3; --- (0 rows) +-- check that recursive CTE processing doesn't rewrite a CTE more than once +-- (must not try to expand GENERATED ALWAYS IDENTITY columns more than once) +CREATE TEMP TABLE id_alw1 (i int GENERATED ALWAYS AS IDENTITY); +CREATE TEMP TABLE id_alw2 (i int GENERATED ALWAYS AS IDENTITY); +CREATE TEMP VIEW id_alw2_view AS SELECT * FROM id_alw2; +CREATE TEMP TABLE id_alw3 (i int GENERATED ALWAYS AS IDENTITY); +CREATE RULE id_alw3_ins AS ON INSERT TO id_alw3 DO INSTEAD + WITH t1 AS (INSERT INTO id_alw1 DEFAULT VALUES RETURNING i) + INSERT INTO id_alw2_view DEFAULT VALUES RETURNING i; +CREATE TEMP VIEW id_alw3_view AS SELECT * FROM id_alw3; +CREATE TEMP TABLE id_alw4 (i int GENERATED ALWAYS AS IDENTITY); +WITH t4 AS (INSERT INTO id_alw4 DEFAULT VALUES RETURNING i) + INSERT INTO id_alw3_view DEFAULT VALUES RETURNING i; + i +--- + 1 +(1 row) + +SELECT * from id_alw1; + i +--- + 1 +(1 row) + +SELECT * from id_alw2; + i +--- + 1 +(1 row) + +SELECT * from id_alw3; + i +--- +(0 rows) + +SELECT * from id_alw4; + i +--- + 1 +(1 row) + -- check case where CTE reference is removed due to optimization EXPLAIN (VERBOSE, COSTS OFF) SELECT q1 FROM diff --git a/src/test/regress/sql/with.sql b/src/test/regress/sql/with.sql index a919a48c449..c33dd695e38 100644 --- a/src/test/regress/sql/with.sql +++ b/src/test/regress/sql/with.sql @@ -1327,6 +1327,29 @@ COMMIT; SELECT * FROM bug6051_3; +-- check that recursive CTE processing doesn't rewrite a CTE more than once +-- (must not try to expand GENERATED ALWAYS IDENTITY columns more than once) +CREATE TEMP TABLE id_alw1 (i int GENERATED ALWAYS AS IDENTITY); + +CREATE TEMP TABLE id_alw2 (i int GENERATED ALWAYS AS IDENTITY); +CREATE TEMP VIEW id_alw2_view AS SELECT * FROM id_alw2; + +CREATE TEMP TABLE id_alw3 (i int GENERATED ALWAYS AS IDENTITY); +CREATE RULE id_alw3_ins AS ON INSERT TO id_alw3 DO INSTEAD + WITH t1 AS (INSERT INTO id_alw1 DEFAULT VALUES RETURNING i) + INSERT INTO id_alw2_view DEFAULT VALUES RETURNING i; +CREATE TEMP VIEW id_alw3_view AS SELECT * FROM id_alw3; + +CREATE TEMP TABLE id_alw4 (i int GENERATED ALWAYS AS IDENTITY); + +WITH t4 AS (INSERT INTO id_alw4 DEFAULT VALUES RETURNING i) + INSERT INTO id_alw3_view DEFAULT VALUES RETURNING i; + +SELECT * from id_alw1; +SELECT * from id_alw2; +SELECT * from id_alw3; +SELECT * from id_alw4; + -- check case where CTE reference is removed due to optimization EXPLAIN (VERBOSE, COSTS OFF) SELECT q1 FROM From 721b58fbec5f4a167540177659a2502383bc0c58 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Tue, 2 Dec 2025 21:10:51 +0200 Subject: [PATCH 23/94] Fix amcheck's handling of incomplete root splits in B-tree When the root page is being split, it's normal that root page according to the metapage is not marked BTP_ROOT. Fix bogus error in amcheck about that case. Reviewed-by: Peter Geoghegan Discussion: https://www.postgresql.org/message-id/abd65090-5336-42cc-b768-2bdd66738404@iki.fi Backpatch-through: 14 --- contrib/amcheck/verify_nbtree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index c08f19fa894..b4315b45680 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -785,7 +785,7 @@ bt_check_level_from_leftmost(BtreeCheckState *state, BtreeLevel level) errmsg("block %u is not leftmost in index \"%s\"", current, RelationGetRelationName(state->rel)))); - if (level.istruerootlevel && !P_ISROOT(opaque)) + if (level.istruerootlevel && (!P_ISROOT(opaque) && !P_INCOMPLETE_SPLIT(opaque))) ereport(ERROR, (errcode(ERRCODE_INDEX_CORRUPTED), errmsg("block %u is not true root in index \"%s\"", From 7792bdc45860ad9f0e7188ce2113f799a074034d Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Tue, 2 Dec 2025 21:11:15 +0200 Subject: [PATCH 24/94] Fix amcheck's handling of half-dead B-tree pages amcheck incorrectly reported the following error if there were any half-dead pages in the index: ERROR: mismatch between parent key and child high key in index "amchecktest_id_idx" It's expected that a half-dead page does not have a downlink in the parent level, so skip the test. Reported-by: Konstantin Knizhnik Reviewed-by: Peter Geoghegan Reviewed-by: Mihail Nikalayeu Discussion: https://www.postgresql.org/message-id/33e39552-6a2a-46f3-8b34-3f9f8004451f@garret.ru Backpatch-through: 14 --- contrib/amcheck/verify_nbtree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index b4315b45680..16698b49d43 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -2048,7 +2048,7 @@ bt_child_highkey_check(BtreeCheckState *state, * If we visit page with high key, check that it is equal to the * target key next to corresponding downlink. */ - if (!rightsplit && !P_RIGHTMOST(opaque)) + if (!rightsplit && !P_RIGHTMOST(opaque) && !P_ISHALFDEAD(opaque)) { BTPageOpaque topaque; IndexTuple highkey; From 8cfb174a61ebc9316f8d5c4e8c9ad941acdb3849 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 3 Dec 2025 19:15:08 +0200 Subject: [PATCH 25/94] Set next multixid's offset when creating a new multixid MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With this commit, the next multixid's offset will always be set on the offsets page, by the time that a backend might try to read it, so we no longer need the waiting mechanism with the condition variable. In other words, this eliminates "corner case 2" mentioned in the comments. The waiting mechanism was broken in a few scenarios: - When nextMulti was advanced without WAL-logging the next multixid. For example, if a later multixid was already assigned and WAL-logged before the previous one was WAL-logged, and then the server crashed. In that case the next offset would never be set in the offsets SLRU, and a query trying to read it would get stuck waiting for it. Same thing could happen if pg_resetwal was used to forcibly advance nextMulti. - In hot standby mode, a deadlock could happen where one backend waits for the next multixid assignment record, but WAL replay is not advancing because of a recovery conflict with the waiting backend. The old TAP test used carefully placed injection points to exercise the old waiting code, but now that the waiting code is gone, much of the old test is no longer relevant. Rewrite the test to reproduce the IPC/MultixactCreation hang after crash recovery instead, and to verify that previously recorded multixids stay readable. Backpatch to all supported versions. In back-branches, we still need to be able to read WAL that was generated before this fix, so in the back-branches this includes a hack to initialize the next offsets page when replaying XLOG_MULTIXACT_CREATE_ID for the last multixid on a page. On 'master', bump XLOG_PAGE_MAGIC instead to indicate that the WAL is not compatible. Author: Andrey Borodin Reviewed-by: Dmitry Yurichev Reviewed-by: Álvaro Herrera Reviewed-by: Kirill Reshke Reviewed-by: Ivan Bykov Reviewed-by: Chao Li Discussion: https://www.postgresql.org/message-id/172e5723-d65f-4eec-b512-14beacb326ce@yandex.ru Backpatch-through: 14 --- src/backend/access/transam/multixact.c | 193 +++++++++++++++++++------ 1 file changed, 148 insertions(+), 45 deletions(-) diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 136065125ea..1caba9a140d 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -337,6 +337,9 @@ static MemoryContext MXactContext = NULL; #define debug_elog6(a,b,c,d,e,f) #endif +/* hack to deal with WAL generated with older minor versions */ +static int pre_initialized_offsets_page = -1; + /* internal MultiXactId management */ static void MultiXactIdSetOldestVisible(void); static void RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset, @@ -868,13 +871,61 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset, int entryno; int slotno; MultiXactOffset *offptr; - int i; + MultiXactId next; + int next_pageno; + int next_entryno; + MultiXactOffset *next_offptr; LWLockAcquire(MultiXactOffsetSLRULock, LW_EXCLUSIVE); + /* position of this multixid in the offsets SLRU area */ pageno = MultiXactIdToOffsetPage(multi); entryno = MultiXactIdToOffsetEntry(multi); + /* position of the next multixid */ + next = multi + 1; + if (next < FirstMultiXactId) + next = FirstMultiXactId; + next_pageno = MultiXactIdToOffsetPage(next); + next_entryno = MultiXactIdToOffsetEntry(next); + + /* + * Older minor versions didn't set the next multixid's offset in this + * function, and therefore didn't initialize the next page until the next + * multixid was assigned. If we're replaying WAL that was generated by + * such a version, the next page might not be initialized yet. Initialize + * it now. + */ + if (InRecovery && + next_pageno != pageno && + MultiXactOffsetCtl->shared->latest_page_number == pageno) + { + elog(DEBUG1, "next offsets page is not initialized, initializing it now"); + + /* Create and zero the page */ + slotno = SimpleLruZeroPage(MultiXactOffsetCtl, next_pageno); + + /* Make sure it's written out */ + SimpleLruWritePage(MultiXactOffsetCtl, slotno); + Assert(!MultiXactOffsetCtl->shared->page_dirty[slotno]); + + /* + * Remember that we initialized the page, so that we don't zero it + * again at the XLOG_MULTIXACT_ZERO_OFF_PAGE record. + */ + pre_initialized_offsets_page = next_pageno; + } + + /* + * Set the starting offset of this multixid's members. + * + * In the common case, it was already be set by the previous + * RecordNewMultiXact call, as this was the next multixid of the previous + * multixid. But if multiple backends are generating multixids + * concurrently, we might race ahead and get called before the previous + * multixid. + */ + /* * Note: we pass the MultiXactId to SimpleLruReadPage as the "transaction" * to complain about if there's any I/O error. This is kinda bogus, but @@ -886,9 +937,37 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset, offptr = (MultiXactOffset *) MultiXactOffsetCtl->shared->page_buffer[slotno]; offptr += entryno; - *offptr = offset; + if (*offptr != offset) + { + /* should already be set to the correct value, or not at all */ + Assert(*offptr == 0); + *offptr = offset; + MultiXactOffsetCtl->shared->page_dirty[slotno] = true; + } - MultiXactOffsetCtl->shared->page_dirty[slotno] = true; + /* + * Set the next multixid's offset to the end of this multixid's members. + */ + if (next_pageno == pageno) + { + next_offptr = offptr + 1; + } + else + { + /* must be the first entry on the page */ + Assert(next_entryno == 0 || next == FirstMultiXactId); + slotno = SimpleLruReadPage(MultiXactOffsetCtl, next_pageno, true, next); + next_offptr = (MultiXactOffset *) MultiXactOffsetCtl->shared->page_buffer[slotno]; + next_offptr += next_entryno; + } + + if (*next_offptr != offset + nmembers) + { + /* should already be set to the correct value, or not at all */ + Assert(*next_offptr == 0); + *next_offptr = offset + nmembers; + MultiXactOffsetCtl->shared->page_dirty[slotno] = true; + } /* Exchange our lock */ LWLockRelease(MultiXactOffsetSLRULock); @@ -897,7 +976,7 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset, prev_pageno = -1; - for (i = 0; i < nmembers; i++, offset++) + for (int i = 0; i < nmembers; i++, offset++) { TransactionId *memberptr; uint32 *flagsptr; @@ -1072,8 +1151,11 @@ GetNewMultiXactId(int nmembers, MultiXactOffset *offset) result = FirstMultiXactId; } - /* Make sure there is room for the MXID in the file. */ - ExtendMultiXactOffset(result); + /* + * Make sure there is room for the next MXID in the file. Assigning this + * MXID sets the next MXID's offset already. + */ + ExtendMultiXactOffset(result + 1); /* * Reserve the members space, similarly to above. Also, be careful not to @@ -1314,21 +1396,14 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members, * one's. However, there are some corner cases to worry about: * * 1. This multixact may be the latest one created, in which case there is - * no next one to look at. In this case the nextOffset value we just - * saved is the correct endpoint. - * - * 2. The next multixact may still be in process of being filled in: that - * is, another process may have done GetNewMultiXactId but not yet written - * the offset entry for that ID. In that scenario, it is guaranteed that - * the offset entry for that multixact exists (because GetNewMultiXactId - * won't release MultiXactGenLock until it does) but contains zero - * (because we are careful to pre-zero offset pages). Because - * GetNewMultiXactId will never return zero as the starting offset for a - * multixact, when we read zero as the next multixact's offset, we know we - * have this case. We sleep for a bit and try again. + * no next one to look at. The next multixact's offset should be set + * already, as we set it in RecordNewMultiXact(), but we used to not do + * that in older minor versions. To cope with that case, if this + * multixact is the latest one created, use the nextOffset value we read + * above as the endpoint. * - * 3. Because GetNewMultiXactId increments offset zero to offset one to - * handle case #2, there is an ambiguity near the point of offset + * 2. Because GetNewMultiXactId skips over offset zero, to reserve zero + * for to mean "unset", there is an ambiguity near the point of offset * wraparound. If we see next multixact's offset is one, is that our * multixact's actual endpoint, or did it end at zero with a subsequent * increment? We handle this using the knowledge that if the zero'th @@ -1340,7 +1415,6 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members, * cases, so it seems better than holding the MultiXactGenLock for a long * time on every multixact creation. */ -retry: LWLockAcquire(MultiXactOffsetSLRULock, LW_EXCLUSIVE); pageno = MultiXactIdToOffsetPage(multi); @@ -1385,13 +1459,10 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members, nextMXOffset = *offptr; if (nextMXOffset == 0) - { - /* Corner case 2: next multixact is still being filled in */ - LWLockRelease(MultiXactOffsetSLRULock); - CHECK_FOR_INTERRUPTS(); - pg_usleep(1000L); - goto retry; - } + ereport(ERROR, + (errcode(ERRCODE_DATA_CORRUPTED), + errmsg("MultiXact %u has invalid next offset", + multi))); length = nextMXOffset - offset; } @@ -1427,7 +1498,7 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members, if (!TransactionIdIsValid(*xactptr)) { - /* Corner case 3: we must be looking at unused slot zero */ + /* Corner case 2: we must be looking at unused slot zero */ Assert(offset == 0); continue; } @@ -2056,24 +2127,32 @@ TrimMultiXact(void) MultiXactOffsetCtl->shared->latest_page_number = pageno; /* - * Zero out the remainder of the current offsets page. See notes in - * TrimCLOG() for background. Unlike CLOG, some WAL record covers every - * pg_multixact SLRU mutation. Since, also unlike CLOG, we ignore the WAL - * rule "write xlog before data," nextMXact successors may carry obsolete, - * nonzero offset values. Zero those so case 2 of GetMultiXactIdMembers() - * operates normally. + * Set the offset of nextMXact on the offsets page. This is normally done + * in RecordNewMultiXact() of the previous multixact, but we used to not + * do that in older minor versions. To ensure that the next offset is set + * if the binary was just upgraded from an older minor version, do it now. + * + * Zero out the remainder of the page. See notes in TrimCLOG() for + * background. Unlike CLOG, some WAL record covers every pg_multixact + * SLRU mutation. Since, also unlike CLOG, we ignore the WAL rule "write + * xlog before data," nextMXact successors may carry obsolete, nonzero + * offset values. */ entryno = MultiXactIdToOffsetEntry(nextMXact); - if (entryno != 0) { int slotno; MultiXactOffset *offptr; - slotno = SimpleLruReadPage(MultiXactOffsetCtl, pageno, true, nextMXact); + if (entryno == 0) + slotno = SimpleLruZeroPage(MultiXactOffsetCtl, pageno); + else + slotno = SimpleLruReadPage(MultiXactOffsetCtl, pageno, true, nextMXact); offptr = (MultiXactOffset *) MultiXactOffsetCtl->shared->page_buffer[slotno]; offptr += entryno; - MemSet(offptr, 0, BLCKSZ - (entryno * sizeof(MultiXactOffset))); + *offptr = offset; + if (entryno != 0 && (entryno + 1) * sizeof(MultiXactOffset) != BLCKSZ) + MemSet(offptr + 1, 0, BLCKSZ - (entryno + 1) * sizeof(MultiXactOffset)); MultiXactOffsetCtl->shared->page_dirty[slotno] = true; } @@ -3255,13 +3334,21 @@ multixact_redo(XLogReaderState *record) memcpy(&pageno, XLogRecGetData(record), sizeof(int)); - LWLockAcquire(MultiXactOffsetSLRULock, LW_EXCLUSIVE); - - slotno = ZeroMultiXactOffsetPage(pageno, false); - SimpleLruWritePage(MultiXactOffsetCtl, slotno); - Assert(!MultiXactOffsetCtl->shared->page_dirty[slotno]); - - LWLockRelease(MultiXactOffsetSLRULock); + /* + * Skip the record if we already initialized the page at the previous + * XLOG_MULTIXACT_CREATE_ID record. See RecordNewMultiXact(). + */ + if (pre_initialized_offsets_page != pageno) + { + LWLockAcquire(MultiXactOffsetSLRULock, LW_EXCLUSIVE); + slotno = ZeroMultiXactOffsetPage(pageno, false); + SimpleLruWritePage(MultiXactOffsetCtl, slotno); + Assert(!MultiXactOffsetCtl->shared->page_dirty[slotno]); + LWLockRelease(MultiXactOffsetSLRULock); + } + else + elog(DEBUG1, "skipping initialization of offsets page %d because it was already initialized on multixid creation", pageno); + pre_initialized_offsets_page = -1; } else if (info == XLOG_MULTIXACT_ZERO_MEM_PAGE) { @@ -3285,6 +3372,22 @@ multixact_redo(XLogReaderState *record) TransactionId max_xid; int i; + if (pre_initialized_offsets_page != -1) + { + /* + * If we implicitly initialized the next offsets page while + * replaying an XLOG_MULTIXACT_CREATE_ID record that was generated + * with an older minor version, we still expect to see an + * XLOG_MULTIXACT_ZERO_OFF_PAGE record for it before any other + * XLOG_MULTIXACT_CREATE_ID records. Therefore this case should + * not happen. If it does, we'll continue with the replay, but + * log a message to note that something's funny. + */ + elog(LOG, "expected to see an XLOG_MULTIXACT_ZERO_OFF_PAGE record for page %d that was implicitly initialized earlier", + pre_initialized_offsets_page); + pre_initialized_offsets_page = -1; + } + /* Store the data back into the SLRU files */ RecordNewMultiXact(xlrec->mid, xlrec->moff, xlrec->nmembers, xlrec->members); From 7e54eacc5c06a53a7d7776170c50ba646c914b31 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 5 Dec 2025 09:21:22 +0900 Subject: [PATCH 26/94] Show version of nodes in output of TAP tests This commit adds the version information of a node initialized by Cluster.pm, that may vary depending on the install_path given by the test. The code was written so as the node information, that includes the version number, was dumped before the version number was set. This is particularly useful for the pg_upgrade TAP tests, that may mix several versions for cross-version runs. The TAP infrastructure also allows mixing nodes with different versions, so this information can be useful for out-of-core tests. Backpatch down to v15, where Cluster.pm and the pg_upgrade TAP tests have been introduced. Author: Potapov Alexander Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/e59bb-692c0a80-5-6f987180@170377126 Backpatch-through: 15 --- src/test/perl/PostgreSQL/Test/Cluster.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index c7c74d347a6..da05ce708db 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -1327,10 +1327,10 @@ sub new or BAIL_OUT("could not create data directory \"$node->{_basedir}\": $!"); - $node->dump_info; - $node->_set_pg_version; + $node->dump_info; + my $ver = $node->{_pg_version}; # Use a subclass as defined below (or elsewhere) if this version From b9a02b9780bc93afef4bc268212960dec2f9c88d Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Fri, 5 Dec 2025 11:32:38 +0200 Subject: [PATCH 27/94] Fix setting next multixid's offset at offset wraparound In commit 789d65364c, we started updating the next multixid's offset too when recording a multixid, so that it can always be used to calculate the number of members. I got it wrong at offset wraparound: we need to skip over offset 0. Fix that. Discussion: https://www.postgresql.org/message-id/d9996478-389a-4340-8735-bfad456b313c@iki.fi Backpatch-through: 14 --- src/backend/access/transam/multixact.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 1caba9a140d..830b1d83e2a 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -875,6 +875,7 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset, int next_pageno; int next_entryno; MultiXactOffset *next_offptr; + MultiXactOffset next_offset; LWLockAcquire(MultiXactOffsetSLRULock, LW_EXCLUSIVE); @@ -961,11 +962,15 @@ RecordNewMultiXact(MultiXactId multi, MultiXactOffset offset, next_offptr += next_entryno; } - if (*next_offptr != offset + nmembers) + /* Like in GetNewMultiXactId(), skip over offset 0 */ + next_offset = offset + nmembers; + if (next_offset == 0) + next_offset = 1; + if (*next_offptr != next_offset) { /* should already be set to the correct value, or not at all */ Assert(*next_offptr == 0); - *next_offptr = offset + nmembers; + *next_offptr = next_offset; MultiXactOffsetCtl->shared->page_dirty[slotno] = true; } From 52a95886f7e0ce3d4f4d590777559f0330fb9c1f Mon Sep 17 00:00:00 2001 From: David Rowley Date: Tue, 9 Dec 2025 14:43:26 +1300 Subject: [PATCH 28/94] Doc: fix typo in hash index documentation Plus a similar fix to the README. Backpatch as far back as the sgml issue exists. The README issue does exist in v14, but that seems unlikely to harm anyone. Author: David Geier Discussion: https://postgr.es/m/ed3db7ea-55b4-4809-86af-81ad3bb2c7d3@gmail.com Backpatch-through: 15 --- doc/src/sgml/hash.sgml | 9 ++++----- src/backend/access/hash/README | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/doc/src/sgml/hash.sgml b/doc/src/sgml/hash.sgml index e35911ebf8e..b928d5486f0 100644 --- a/doc/src/sgml/hash.sgml +++ b/doc/src/sgml/hash.sgml @@ -125,11 +125,10 @@ Both scanning the index and inserting tuples require locating the bucket where a given tuple ought to be located. To do this, we need the bucket count, highmask, and lowmask from the metapage; however, it's undesirable - for performance reasons to have to have to lock and pin the metapage for - every such operation. Instead, we retain a cached copy of the metapage - in each backend's relcache entry. This will produce the correct bucket - mapping as long as the target bucket hasn't been split since the last - cache refresh. + for performance reasons to have to lock and pin the metapage for every such + operation. Instead, we retain a cached copy of the metapage in each + backend's relcache entry. This will produce the correct bucket mapping as + long as the target bucket hasn't been split since the last cache refresh. diff --git a/src/backend/access/hash/README b/src/backend/access/hash/README index 13dc59c124a..fc9031117c9 100644 --- a/src/backend/access/hash/README +++ b/src/backend/access/hash/README @@ -171,11 +171,10 @@ Metapage Caching Both scanning the index and inserting tuples require locating the bucket where a given tuple ought to be located. To do this, we need the bucket count, highmask, and lowmask from the metapage; however, it's undesirable -for performance reasons to have to have to lock and pin the metapage for -every such operation. Instead, we retain a cached copy of the metapage -in each backend's relcache entry. This will produce the correct -bucket mapping as long as the target bucket hasn't been split since the -last cache refresh. +for performance reasons to have to lock and pin the metapage for every such +operation. Instead, we retain a cached copy of the metapage in each backend's +relcache entry. This will produce the correct bucket mapping as long as the +target bucket hasn't been split since the last cache refresh. To guard against the possibility that such a split has occurred, the primary page of each bucket chain stores the number of buckets that From f188bc5145b5c2de3d00d35fba46509fa4ef0f12 Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Tue, 9 Dec 2025 10:49:19 +0000 Subject: [PATCH 29/94] doc: Fix statement about ON CONFLICT and deferrable constraints. The description of deferrable constraints in create_table.sgml states that deferrable constraints cannot be used as conflict arbitrators in an INSERT with an ON CONFLICT DO UPDATE clause, but in fact this restriction applies to all ON CONFLICT clauses, not just those with DO UPDATE. Fix this, and while at it, change the word "arbitrators" to "arbiters", to match the terminology used elsewhere. Author: Dean Rasheed Discussion: https://postgr.es/m/CAEZATCWsybvZP3ce8rGcVNx-QHuDOJZDz8y=p1SzqHwjRXyV4Q@mail.gmail.com Backpatch-through: 14 --- doc/src/sgml/ref/create_table.sgml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml index 31c3762cbee..407120f4d56 100644 --- a/doc/src/sgml/ref/create_table.sgml +++ b/doc/src/sgml/ref/create_table.sgml @@ -1245,8 +1245,8 @@ WITH ( MODULUS numeric_literal, REM REFERENCES (foreign key) constraints accept this clause. NOT NULL and CHECK constraints are not deferrable. Note that deferrable constraints cannot be used as - conflict arbitrators in an INSERT statement that - includes an ON CONFLICT DO UPDATE clause. + conflict arbiters in an INSERT statement that + includes an ON CONFLICT clause. From 07ddf6197b781936b426b498deedef1ba161b7c5 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Thu, 11 Dec 2025 10:25:50 +0900 Subject: [PATCH 30/94] Fix allocation formula in llvmjit_expr.c An array of LLVMBasicBlockRef is allocated with the size used for an element being "LLVMBasicBlockRef *" rather than "LLVMBasicBlockRef". LLVMBasicBlockRef is a type that refers to a pointer, so this did not directly cause a problem because both should have the same size, still it is incorrect. This issue has been spotted while reviewing a different patch, and exists since 2a0faed9d702, so backpatch all the way down. Discussion: https://postgr.es/m/CA+hUKGLngd9cKHtTUuUdEo2eWEgUcZ_EQRbP55MigV2t_zTReg@mail.gmail.com Backpatch-through: 14 --- src/backend/jit/llvm/llvmjit_expr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c index 2e286adfb5b..56aac24065a 100644 --- a/src/backend/jit/llvm/llvmjit_expr.c +++ b/src/backend/jit/llvm/llvmjit_expr.c @@ -612,8 +612,8 @@ llvm_compile_expr(ExprState *state) LLVMBuildStore(b, l_sbool_const(1), v_resnullp); /* create blocks for checking args, one for each */ - b_checkargnulls = - palloc(sizeof(LLVMBasicBlockRef *) * op->d.func.nargs); + b_checkargnulls = (LLVMBasicBlockRef *) + palloc(sizeof(LLVMBasicBlockRef) * op->d.func.nargs); for (int argno = 0; argno < op->d.func.nargs; argno++) b_checkargnulls[argno] = l_bb_before_v(b_nonull, "b.%d.isnull.%d", opno, From aa2ec0403d0af0082a8f8a68a5a231c4e62a9c3a Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Wed, 5 Oct 2022 10:43:13 -0700 Subject: [PATCH 31/94] tests: Rename conflicting role names These cause problems when running installcheck-world USE_MODULE_DB=1 with -j. Note: This patch has been originally applied to v16 and newer branches as of 6a20b04f0408. Sami Imseih has reported this issue as being possible to reach for other branches still supported: REL_15_STABLE and REL_14_STABLE. Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/20221003234111.4ob7yph6r4g4ywhu@awork3.anarazel.de Discussion: https://postgr.es/m/CAA5RZ0soPHUvwXLZ+mf5Q=uJRL5ggnRg1uB0qKVG1bbdA9up6w@mail.gmail.com Backpatch-through: 14 --- contrib/adminpack/expected/adminpack.out | 20 ++++++------- contrib/adminpack/sql/adminpack.sql | 20 ++++++------- .../passwordcheck/expected/passwordcheck.out | 16 +++++----- contrib/passwordcheck/sql/passwordcheck.sql | 16 +++++----- src/pl/plperl/expected/plperl_setup.out | 30 +++++++++---------- src/pl/plperl/sql/plperl_setup.sql | 30 +++++++++---------- 6 files changed, 66 insertions(+), 66 deletions(-) diff --git a/contrib/adminpack/expected/adminpack.out b/contrib/adminpack/expected/adminpack.out index 76aafe6316a..6bcf2217f25 100644 --- a/contrib/adminpack/expected/adminpack.out +++ b/contrib/adminpack/expected/adminpack.out @@ -36,10 +36,10 @@ SELECT pg_read_file('test_file1'); -- disallowed file paths for non-superusers and users who are -- not members of pg_write_server_files -CREATE ROLE regress_user1; -GRANT pg_read_all_settings TO regress_user1; -GRANT EXECUTE ON FUNCTION pg_file_write(text,text,bool) TO regress_user1; -SET ROLE regress_user1; +CREATE ROLE regress_adminpack_user1; +GRANT pg_read_all_settings TO regress_adminpack_user1; +GRANT EXECUTE ON FUNCTION pg_file_write(text,text,bool) TO regress_adminpack_user1; +SET ROLE regress_adminpack_user1; SELECT pg_file_write('../test_file0', 'test0', false); ERROR: path must be in or below the current directory SELECT pg_file_write('/tmp/test_file0', 'test0', false); @@ -53,9 +53,9 @@ SELECT pg_file_write(current_setting('data_directory') || '/test_file4', 'test4' SELECT pg_file_write(current_setting('data_directory') || '/../test_file4', 'test4', false); ERROR: absolute path not allowed RESET ROLE; -REVOKE EXECUTE ON FUNCTION pg_file_write(text,text,bool) FROM regress_user1; -REVOKE pg_read_all_settings FROM regress_user1; -DROP ROLE regress_user1; +REVOKE EXECUTE ON FUNCTION pg_file_write(text,text,bool) FROM regress_adminpack_user1; +REVOKE pg_read_all_settings FROM regress_adminpack_user1; +DROP ROLE regress_adminpack_user1; -- sync SELECT pg_file_sync('test_file1'); -- sync file pg_file_sync @@ -153,8 +153,8 @@ SELECT pg_file_unlink('test_file4'); (1 row) -- superuser checks -CREATE USER regress_user1; -SET ROLE regress_user1; +CREATE USER regress_adminpack_user1; +SET ROLE regress_adminpack_user1; SELECT pg_file_write('test_file0', 'test0', false); ERROR: permission denied for function pg_file_write SELECT pg_file_sync('test_file0'); @@ -167,6 +167,6 @@ ERROR: permission denied for function pg_file_unlink SELECT pg_logdir_ls(); ERROR: permission denied for function pg_logdir_ls RESET ROLE; -DROP USER regress_user1; +DROP USER regress_adminpack_user1; -- no further tests for pg_logdir_ls() because it depends on the -- server's logging setup diff --git a/contrib/adminpack/sql/adminpack.sql b/contrib/adminpack/sql/adminpack.sql index 918d0bdc65e..5776c9af0d1 100644 --- a/contrib/adminpack/sql/adminpack.sql +++ b/contrib/adminpack/sql/adminpack.sql @@ -14,20 +14,20 @@ SELECT pg_read_file('test_file1'); -- disallowed file paths for non-superusers and users who are -- not members of pg_write_server_files -CREATE ROLE regress_user1; +CREATE ROLE regress_adminpack_user1; -GRANT pg_read_all_settings TO regress_user1; -GRANT EXECUTE ON FUNCTION pg_file_write(text,text,bool) TO regress_user1; +GRANT pg_read_all_settings TO regress_adminpack_user1; +GRANT EXECUTE ON FUNCTION pg_file_write(text,text,bool) TO regress_adminpack_user1; -SET ROLE regress_user1; +SET ROLE regress_adminpack_user1; SELECT pg_file_write('../test_file0', 'test0', false); SELECT pg_file_write('/tmp/test_file0', 'test0', false); SELECT pg_file_write(current_setting('data_directory') || '/test_file4', 'test4', false); SELECT pg_file_write(current_setting('data_directory') || '/../test_file4', 'test4', false); RESET ROLE; -REVOKE EXECUTE ON FUNCTION pg_file_write(text,text,bool) FROM regress_user1; -REVOKE pg_read_all_settings FROM regress_user1; -DROP ROLE regress_user1; +REVOKE EXECUTE ON FUNCTION pg_file_write(text,text,bool) FROM regress_adminpack_user1; +REVOKE pg_read_all_settings FROM regress_adminpack_user1; +DROP ROLE regress_adminpack_user1; -- sync SELECT pg_file_sync('test_file1'); -- sync file @@ -59,8 +59,8 @@ SELECT pg_file_unlink('test_file4'); -- superuser checks -CREATE USER regress_user1; -SET ROLE regress_user1; +CREATE USER regress_adminpack_user1; +SET ROLE regress_adminpack_user1; SELECT pg_file_write('test_file0', 'test0', false); SELECT pg_file_sync('test_file0'); @@ -69,7 +69,7 @@ SELECT pg_file_unlink('test_file0'); SELECT pg_logdir_ls(); RESET ROLE; -DROP USER regress_user1; +DROP USER regress_adminpack_user1; -- no further tests for pg_logdir_ls() because it depends on the diff --git a/contrib/passwordcheck/expected/passwordcheck.out b/contrib/passwordcheck/expected/passwordcheck.out index e04cda6bd95..2027681daf6 100644 --- a/contrib/passwordcheck/expected/passwordcheck.out +++ b/contrib/passwordcheck/expected/passwordcheck.out @@ -1,19 +1,19 @@ LOAD 'passwordcheck'; -CREATE USER regress_user1; +CREATE USER regress_passwordcheck_user1; -- ok -ALTER USER regress_user1 PASSWORD 'a_nice_long_password'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'a_nice_long_password'; -- error: too short -ALTER USER regress_user1 PASSWORD 'tooshrt'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'tooshrt'; ERROR: password is too short -- error: contains user name -ALTER USER regress_user1 PASSWORD 'xyzregress_user1'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'xyzregress_passwordcheck_user1'; ERROR: password must not contain user name -- error: contains only letters -ALTER USER regress_user1 PASSWORD 'alessnicelongpassword'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'alessnicelongpassword'; ERROR: password must contain both letters and nonletters -- encrypted ok (password is "secret") -ALTER USER regress_user1 PASSWORD 'md51a44d829a20a23eac686d9f0d258af13'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'md592350e12ac34e52dd598f90893bb3ae7'; -- error: password is user name -ALTER USER regress_user1 PASSWORD 'md5e589150ae7d28f93333afae92b36ef48'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'md507a112732ed9f2087fa90b192d44e358'; ERROR: password must not equal user name -DROP USER regress_user1; +DROP USER regress_passwordcheck_user1; diff --git a/contrib/passwordcheck/sql/passwordcheck.sql b/contrib/passwordcheck/sql/passwordcheck.sql index d98796ac494..1fbd6b0e96e 100644 --- a/contrib/passwordcheck/sql/passwordcheck.sql +++ b/contrib/passwordcheck/sql/passwordcheck.sql @@ -1,23 +1,23 @@ LOAD 'passwordcheck'; -CREATE USER regress_user1; +CREATE USER regress_passwordcheck_user1; -- ok -ALTER USER regress_user1 PASSWORD 'a_nice_long_password'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'a_nice_long_password'; -- error: too short -ALTER USER regress_user1 PASSWORD 'tooshrt'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'tooshrt'; -- error: contains user name -ALTER USER regress_user1 PASSWORD 'xyzregress_user1'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'xyzregress_passwordcheck_user1'; -- error: contains only letters -ALTER USER regress_user1 PASSWORD 'alessnicelongpassword'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'alessnicelongpassword'; -- encrypted ok (password is "secret") -ALTER USER regress_user1 PASSWORD 'md51a44d829a20a23eac686d9f0d258af13'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'md592350e12ac34e52dd598f90893bb3ae7'; -- error: password is user name -ALTER USER regress_user1 PASSWORD 'md5e589150ae7d28f93333afae92b36ef48'; +ALTER USER regress_passwordcheck_user1 PASSWORD 'md507a112732ed9f2087fa90b192d44e358'; -DROP USER regress_user1; +DROP USER regress_passwordcheck_user1; diff --git a/src/pl/plperl/expected/plperl_setup.out b/src/pl/plperl/expected/plperl_setup.out index 5234febefd6..5537a95ccc2 100644 --- a/src/pl/plperl/expected/plperl_setup.out +++ b/src/pl/plperl/expected/plperl_setup.out @@ -4,9 +4,9 @@ -- Before going ahead with the to-be-tested installations, verify that -- a non-superuser is allowed to install plperl (but not plperlu) when -- suitable permissions have been granted. -CREATE USER regress_user1; -CREATE USER regress_user2; -SET ROLE regress_user1; +CREATE USER regress_plperl_user1; +CREATE USER regress_plperl_user2; +SET ROLE regress_plperl_user1; CREATE EXTENSION plperl; -- fail ERROR: permission denied to create extension "plperl" HINT: Must have CREATE privilege on current database to create this extension. @@ -16,18 +16,18 @@ HINT: Must be superuser to create this extension. RESET ROLE; DO $$ begin - execute format('grant create on database %I to regress_user1', + execute format('grant create on database %I to regress_plperl_user1', current_database()); end; $$; -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; CREATE EXTENSION plperl; CREATE EXTENSION plperlu; -- fail ERROR: permission denied to create extension "plperlu" HINT: Must be superuser to create this extension. CREATE SCHEMA plperl_setup_scratch; SET search_path = plperl_setup_scratch; -GRANT ALL ON SCHEMA plperl_setup_scratch TO regress_user2; +GRANT ALL ON SCHEMA plperl_setup_scratch TO regress_plperl_user2; CREATE FUNCTION foo1() returns int language plperl as '1;'; SELECT foo1(); foo1 @@ -38,15 +38,15 @@ SELECT foo1(); -- Must reconnect to avoid failure with non-MULTIPLICITY Perl interpreters \c - SET search_path = plperl_setup_scratch; -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; -- Should be able to change privileges on the language revoke all on language plperl from public; -SET ROLE regress_user2; +SET ROLE regress_plperl_user2; CREATE FUNCTION foo2() returns int language plperl as '2;'; -- fail ERROR: permission denied for language plperl -SET ROLE regress_user1; -grant usage on language plperl to regress_user2; -SET ROLE regress_user2; +SET ROLE regress_plperl_user1; +grant usage on language plperl to regress_plperl_user2; +SET ROLE regress_plperl_user2; CREATE FUNCTION foo2() returns int language plperl as '2;'; SELECT foo2(); foo2 @@ -54,7 +54,7 @@ SELECT foo2(); 2 (1 row) -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; -- Should be able to drop the extension, but not the language per se DROP LANGUAGE plperl CASCADE; ERROR: cannot drop language plperl because extension plperl requires it @@ -65,9 +65,9 @@ DETAIL: drop cascades to function foo1() drop cascades to function foo2() -- Clean up RESET ROLE; -DROP OWNED BY regress_user1; -DROP USER regress_user1; -DROP USER regress_user2; +DROP OWNED BY regress_plperl_user1; +DROP USER regress_plperl_user1; +DROP USER regress_plperl_user2; -- Now install the versions that will be used by subsequent test scripts. CREATE EXTENSION plperl; CREATE EXTENSION plperlu; diff --git a/src/pl/plperl/sql/plperl_setup.sql b/src/pl/plperl/sql/plperl_setup.sql index a89cf56617e..0eac9156294 100644 --- a/src/pl/plperl/sql/plperl_setup.sql +++ b/src/pl/plperl/sql/plperl_setup.sql @@ -6,10 +6,10 @@ -- a non-superuser is allowed to install plperl (but not plperlu) when -- suitable permissions have been granted. -CREATE USER regress_user1; -CREATE USER regress_user2; +CREATE USER regress_plperl_user1; +CREATE USER regress_plperl_user2; -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; CREATE EXTENSION plperl; -- fail CREATE EXTENSION plperlu; -- fail @@ -18,18 +18,18 @@ RESET ROLE; DO $$ begin - execute format('grant create on database %I to regress_user1', + execute format('grant create on database %I to regress_plperl_user1', current_database()); end; $$; -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; CREATE EXTENSION plperl; CREATE EXTENSION plperlu; -- fail CREATE SCHEMA plperl_setup_scratch; SET search_path = plperl_setup_scratch; -GRANT ALL ON SCHEMA plperl_setup_scratch TO regress_user2; +GRANT ALL ON SCHEMA plperl_setup_scratch TO regress_plperl_user2; CREATE FUNCTION foo1() returns int language plperl as '1;'; SELECT foo1(); @@ -38,25 +38,25 @@ SELECT foo1(); \c - SET search_path = plperl_setup_scratch; -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; -- Should be able to change privileges on the language revoke all on language plperl from public; -SET ROLE regress_user2; +SET ROLE regress_plperl_user2; CREATE FUNCTION foo2() returns int language plperl as '2;'; -- fail -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; -grant usage on language plperl to regress_user2; +grant usage on language plperl to regress_plperl_user2; -SET ROLE regress_user2; +SET ROLE regress_plperl_user2; CREATE FUNCTION foo2() returns int language plperl as '2;'; SELECT foo2(); -SET ROLE regress_user1; +SET ROLE regress_plperl_user1; -- Should be able to drop the extension, but not the language per se DROP LANGUAGE plperl CASCADE; @@ -64,9 +64,9 @@ DROP EXTENSION plperl CASCADE; -- Clean up RESET ROLE; -DROP OWNED BY regress_user1; -DROP USER regress_user1; -DROP USER regress_user2; +DROP OWNED BY regress_plperl_user1; +DROP USER regress_plperl_user1; +DROP USER regress_plperl_user2; -- Now install the versions that will be used by subsequent test scripts. CREATE EXTENSION plperl; From b0b52b7123ae6f26775d35c868f14a5dca7884d0 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 15 Dec 2025 11:47:04 +0200 Subject: [PATCH 32/94] Clarify comment on multixid offset wraparound check Coverity complained that offset cannot be 0 here because there's an explicit check for "offset == 0" earlier in the function, but it didn't see the possibility that offset could've wrapped around to 0. The code is correct, but clarify the comment about it. The same code exists in backbranches in the server GetMultiXactIdMembers() function and in 'master' in the pg_upgrade GetOldMultiXactIdSingleMember function. In backbranches Coverity didn't complain about it because the check was merely an assertion, but change the comment in all supported branches for consistency. Per Tom Lane's suggestion. Discussion: https://www.postgresql.org/message-id/1827755.1765752936@sss.pgh.pa.us --- src/backend/access/transam/multixact.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 830b1d83e2a..f1abdbc144a 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -1503,7 +1503,10 @@ GetMultiXactIdMembers(MultiXactId multi, MultiXactMember **members, if (!TransactionIdIsValid(*xactptr)) { - /* Corner case 2: we must be looking at unused slot zero */ + /* + * Corner case 2: offset must have wrapped around to unused slot + * zero. + */ Assert(offset == 0); continue; } From 95ef6f4904a53a643590021fbcc27812df169379 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 16 Dec 2025 13:29:42 +0900 Subject: [PATCH 33/94] Fail recovery when missing redo checkpoint record without backup_label This commit adds an extra check at the beginning of recovery to ensure that the redo record of a checkpoint exists before attempting WAL replay, logging a PANIC if the redo record referenced by the checkpoint record could not be found. This is the same level of failure as when a checkpoint record is missing. This check is added when a cluster is started without a backup_label, after retrieving its checkpoint record. The redo LSN used for the check is retrieved from the checkpoint record successfully read. In the case where a backup_label exists, the startup process already fails if the redo record cannot be found after reading a checkpoint record at the beginning of recovery. Previously, the presence of the redo record was not checked. If the redo and checkpoint records were located on different WAL segments, it would be possible to miss a entire range of WAL records that should have been replayed but were just ignored. The consequences of missing the redo record depend on the version dealt with, these becoming worse the older the version used: - On HEAD, v18 and v17, recovery fails with a pointer dereference at the beginning of the redo loop, as the redo record is expected but cannot be found. These versions are good students, because we detect a failure before doing anything, even if the failure is misleading in the shape of a segmentation fault, giving no information that the redo record is missing. - In v16 and v15, problems show at the end of recovery within FinishWalRecovery(), the startup process using a buggy LSN to decide from where to start writing WAL. The cluster gets corrupted, still it is noisy about it. - v14 and older versions are worse: a cluster gets corrupted but it is entirely silent about the matter. The redo record missing causes the startup process to skip entirely recovery, because a missing record is the same as not redo being required at all. This leads to data loss, as everything is missed between the redo record and the checkpoint record. Note that I have tested that down to 9.4, reproducing the issue with a version of the author's reproducer slightly modified. The code is wrong since at least 9.2, but I did not look at the exact point of origin. This problem has been found by debugging a cluster where the WAL segment including the redo segment was missing due to an operator error, leading to a crash, based on an investigation in v15. Requesting archive recovery with the creation of a recovery.signal or a standby.signal even without a backup_label would mitigate the issue: if the record cannot be found in pg_wal/, the missing segment can be retrieved with a restore_command when checking that the redo record exists. This was already the case without this commit, where recovery would re-fetch the WAL segment that includes the redo record. The check introduced by this commit makes the segment to be retrieved earlier to make sure that the redo record can be found. On HEAD, the code will be slightly changed in a follow-up commit to not rely on a PANIC, to include a test able to emulate the original problem. This is a minimal backpatchable fix, kept separated for clarity. Reported-by: Andres Freund Analyzed-by: Andres Freund Author: Nitin Jadhav Discussion: https://postgr.es/m/20231023232145.cmqe73stvivsmlhs@awork3.anarazel.de Discussion: https://postgr.es/m/CAMm1aWaaJi2w49c0RiaDBfhdCL6ztbr9m=daGqiOuVdizYWYaA@mail.gmail.com Backpatch-through: 14 --- src/backend/access/transam/xlogrecovery.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 7c6692dee6e..b07a54a9216 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -811,6 +811,16 @@ InitWalRecovery(ControlFileData *ControlFile, bool *wasShutdown_ptr, } memcpy(&checkPoint, XLogRecGetData(xlogreader), sizeof(CheckPoint)); wasShutdown = ((record->xl_info & ~XLR_INFO_MASK) == XLOG_CHECKPOINT_SHUTDOWN); + + /* Make sure that REDO location exists. */ + if (checkPoint.redo < CheckPointLoc) + { + XLogPrefetcherBeginRead(xlogprefetcher, checkPoint.redo); + if (!ReadRecord(xlogprefetcher, LOG, false, checkPoint.ThisTimeLineID)) + ereport(PANIC, + errmsg("could not find redo location %X/%08X referenced by checkpoint record at %X/%08X", + LSN_FORMAT_ARGS(checkPoint.redo), LSN_FORMAT_ARGS(CheckPointLoc))); + } } /* From bd2726d3e15fdf8245f63bdbaddf4e3700f86577 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Tue, 16 Dec 2025 10:40:53 -0500 Subject: [PATCH 34/94] Switch memory contexts in ReinitializeParallelDSM. We already do this in CreateParallelContext, InitializeParallelDSM, and LaunchParallelWorkers. I suspect the reason why the matching logic was omitted from ReinitializeParallelDSM is that I failed to realize that any memory allocation was happening here -- but shm_mq_attach does allocate, which could result in a shm_mq_handle being allocated in a shorter-lived context than the ParallelContext which points to it. That could result in a crash if the shorter-lived context is freed before the parallel context is destroyed. As far as I am currently aware, there is no way to reach a crash using only code that is present in core PostgreSQL, but extensions could potentially trip over this. Fixing this in the back-branches appears low-risk, so back-patch to all supported versions. Author: Jakub Wartak Co-authored-by: Jeevan Chalke Backpatch-through: 14 Discussion: http://postgr.es/m/CAKZiRmwfVripa3FGo06=5D1EddpsLu9JY2iJOTgbsxUQ339ogQ@mail.gmail.com --- src/backend/access/transam/parallel.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/backend/access/transam/parallel.c b/src/backend/access/transam/parallel.c index 0ea06f360e2..70da6a185fc 100644 --- a/src/backend/access/transam/parallel.c +++ b/src/backend/access/transam/parallel.c @@ -492,8 +492,12 @@ InitializeParallelDSM(ParallelContext *pcxt) void ReinitializeParallelDSM(ParallelContext *pcxt) { + MemoryContext oldcontext; FixedParallelState *fps; + /* We might be running in a very short-lived memory context. */ + oldcontext = MemoryContextSwitchTo(TopTransactionContext); + /* Wait for any old workers to exit. */ if (pcxt->nworkers_launched > 0) { @@ -531,6 +535,9 @@ ReinitializeParallelDSM(ParallelContext *pcxt) pcxt->worker[i].error_mqh = shm_mq_attach(mq, pcxt->seg, NULL); } } + + /* Restore previous memory context. */ + MemoryContextSwitchTo(oldcontext); } /* From 335b2f30b468c133f86891ec3d82a2fd0d50e221 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Tue, 16 Dec 2025 10:35:40 -0800 Subject: [PATCH 35/94] Fix multibyte issue in ltree_strncasecmp(). Previously, the API for ltree_strncasecmp() took two inputs but only one length (that of the smaller input). It truncated the larger input to that length, but that could break a multibyte sequence. Change the API to be a check for prefix equality (possibly case-insensitive) instead, which is all that's needed by the callers. Also, provide the lengths of both inputs. Reviewed-by: Chao Li Reviewed-by: Peter Eisentraut Discussion: https://postgr.es/m/5f65b85740197ba6249ea507cddf609f84a6188b.camel%40j-davis.com Backpatch-through: 14 --- contrib/ltree/lquery_op.c | 40 +++++++++++++++++++++++++----------- contrib/ltree/ltree.h | 9 +++++--- contrib/ltree/ltxtquery_op.c | 8 ++++---- 3 files changed, 38 insertions(+), 19 deletions(-) diff --git a/contrib/ltree/lquery_op.c b/contrib/ltree/lquery_op.c index ef86046fc4b..d89af20f6cf 100644 --- a/contrib/ltree/lquery_op.c +++ b/contrib/ltree/lquery_op.c @@ -41,7 +41,8 @@ getlexeme(char *start, char *end, int *len) } bool -compare_subnode(ltree_level *t, char *qn, int len, int (*cmpptr) (const char *, const char *, size_t), bool anyend) +compare_subnode(ltree_level *t, char *qn, int len, + ltree_prefix_eq_func prefix_eq, bool anyend) { char *endt = t->name + t->len; char *endq = qn + len; @@ -57,7 +58,7 @@ compare_subnode(ltree_level *t, char *qn, int len, int (*cmpptr) (const char *, while ((tn = getlexeme(tn, endt, &lent)) != NULL) { if ((lent == lenq || (lent > lenq && anyend)) && - (*cmpptr) (qn, tn, lenq) == 0) + (*prefix_eq) (qn, lenq, tn, lent)) { isok = true; @@ -74,14 +75,29 @@ compare_subnode(ltree_level *t, char *qn, int len, int (*cmpptr) (const char *, return true; } -int -ltree_strncasecmp(const char *a, const char *b, size_t s) +/* + * Check if 'a' is a prefix of 'b'. + */ +bool +ltree_prefix_eq(const char *a, size_t a_sz, const char *b, size_t b_sz) +{ + if (a_sz > b_sz) + return false; + else + return (strncmp(a, b, a_sz) == 0); +} + +/* + * Case-insensitive check if 'a' is a prefix of 'b'. + */ +bool +ltree_prefix_eq_ci(const char *a, size_t a_sz, const char *b, size_t b_sz) { - char *al = str_tolower(a, s, DEFAULT_COLLATION_OID); - char *bl = str_tolower(b, s, DEFAULT_COLLATION_OID); - int res; + char *al = str_tolower(a, a_sz, DEFAULT_COLLATION_OID); + char *bl = str_tolower(b, b_sz, DEFAULT_COLLATION_OID); + bool res; - res = strncmp(al, bl, s); + res = (strncmp(al, bl, a_sz) == 0); pfree(al); pfree(bl); @@ -109,19 +125,19 @@ checkLevel(lquery_level *curq, ltree_level *curt) for (int i = 0; i < curq->numvar; i++) { - int (*cmpptr) (const char *, const char *, size_t); + ltree_prefix_eq_func prefix_eq; - cmpptr = (curvar->flag & LVAR_INCASE) ? ltree_strncasecmp : strncmp; + prefix_eq = (curvar->flag & LVAR_INCASE) ? ltree_prefix_eq_ci : ltree_prefix_eq; if (curvar->flag & LVAR_SUBLEXEME) { - if (compare_subnode(curt, curvar->name, curvar->len, cmpptr, + if (compare_subnode(curt, curvar->name, curvar->len, prefix_eq, (curvar->flag & LVAR_ANYEND))) return success; } else if ((curvar->len == curt->len || (curt->len > curvar->len && (curvar->flag & LVAR_ANYEND))) && - (*cmpptr) (curvar->name, curt->name, curvar->len) == 0) + (*prefix_eq) (curvar->name, curvar->len, curt->name, curt->len)) return success; curvar = LVAR_NEXT(curvar); diff --git a/contrib/ltree/ltree.h b/contrib/ltree/ltree.h index 564e4fa81b8..4b47ec8a86f 100644 --- a/contrib/ltree/ltree.h +++ b/contrib/ltree/ltree.h @@ -156,6 +156,8 @@ typedef struct char data[FLEXIBLE_ARRAY_MEMBER]; } ltxtquery; +typedef bool (*ltree_prefix_eq_func) (const char *, size_t, const char *, size_t); + #define HDRSIZEQT MAXALIGN(VARHDRSZ + sizeof(int32)) #define COMPUTESIZE(size,lenofoperand) ( HDRSIZEQT + (size) * sizeof(ITEM) + (lenofoperand) ) #define LTXTQUERY_TOO_BIG(size,lenofoperand) \ @@ -206,10 +208,11 @@ bool ltree_execute(ITEM *curitem, void *checkval, int ltree_compare(const ltree *a, const ltree *b); bool inner_isparent(const ltree *c, const ltree *p); -bool compare_subnode(ltree_level *t, char *q, int len, - int (*cmpptr) (const char *, const char *, size_t), bool anyend); +bool compare_subnode(ltree_level *t, char *qn, int len, + ltree_prefix_eq_func prefix_eq, bool anyend); ltree *lca_inner(ltree **a, int len); -int ltree_strncasecmp(const char *a, const char *b, size_t s); +bool ltree_prefix_eq(const char *a, size_t a_sz, const char *b, size_t b_sz); +bool ltree_prefix_eq_ci(const char *a, size_t a_sz, const char *b, size_t b_sz); /* fmgr macros for ltree objects */ #define DatumGetLtreeP(X) ((ltree *) PG_DETOAST_DATUM(X)) diff --git a/contrib/ltree/ltxtquery_op.c b/contrib/ltree/ltxtquery_op.c index 002102c9c75..3dcbab2c484 100644 --- a/contrib/ltree/ltxtquery_op.c +++ b/contrib/ltree/ltxtquery_op.c @@ -58,19 +58,19 @@ checkcondition_str(void *checkval, ITEM *val) ltree_level *level = LTREE_FIRST(((CHKVAL *) checkval)->node); int tlen = ((CHKVAL *) checkval)->node->numlevel; char *op = ((CHKVAL *) checkval)->operand + val->distance; - int (*cmpptr) (const char *, const char *, size_t); + ltree_prefix_eq_func prefix_eq; - cmpptr = (val->flag & LVAR_INCASE) ? ltree_strncasecmp : strncmp; + prefix_eq = (val->flag & LVAR_INCASE) ? ltree_prefix_eq_ci : ltree_prefix_eq; while (tlen > 0) { if (val->flag & LVAR_SUBLEXEME) { - if (compare_subnode(level, op, val->length, cmpptr, (val->flag & LVAR_ANYEND))) + if (compare_subnode(level, op, val->length, prefix_eq, (val->flag & LVAR_ANYEND))) return true; } else if ((val->length == level->len || (level->len > val->length && (val->flag & LVAR_ANYEND))) && - (*cmpptr) (op, level->name, val->length) == 0) + (*prefix_eq) (op, val->length, level->name, level->len)) return true; tlen--; From fa7278e745458efdabe99fee6f2230e4e61451f4 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 7 Nov 2023 11:55:13 +0900 Subject: [PATCH 36/94] Reorder two functions in inval.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This file separates public and static functions with a separator comment, but two routines were not defined in a location reflecting that, so reorder them. Back-patch commit c2bdd2c5b1d48a7e39e1a8d5e1d90b731b53c4c9 to v15 - v16. This avoids merge conflicts in the next commit, which modifies a function this moved. Exclude v14, which is so different that the merge conflict savings would be immaterial. Author: Aleksander Alekseev Reviewed-by: Álvaro Herrera Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/CAJ7c6TMX2dd0g91UKvcC+CVygKQYJkKJq1+ZzT4rOK42+b53=w@mail.gmail.com Backpatch-through: 15-16 --- src/backend/utils/cache/inval.c | 183 ++++++++++++++++---------------- 1 file changed, 91 insertions(+), 92 deletions(-) diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c index 8b00456ed05..db7dacf01c6 100644 --- a/src/backend/utils/cache/inval.c +++ b/src/backend/utils/cache/inval.c @@ -604,6 +604,97 @@ RegisterSnapshotInvalidation(Oid dbId, Oid relId) dbId, relId); } +/* + * PrepareInvalidationState + * Initialize inval data for the current (sub)transaction. + */ +static void +PrepareInvalidationState(void) +{ + TransInvalidationInfo *myInfo; + + if (transInvalInfo != NULL && + transInvalInfo->my_level == GetCurrentTransactionNestLevel()) + return; + + myInfo = (TransInvalidationInfo *) + MemoryContextAllocZero(TopTransactionContext, + sizeof(TransInvalidationInfo)); + myInfo->parent = transInvalInfo; + myInfo->my_level = GetCurrentTransactionNestLevel(); + + /* Now, do we have a previous stack entry? */ + if (transInvalInfo != NULL) + { + /* Yes; this one should be for a deeper nesting level. */ + Assert(myInfo->my_level > transInvalInfo->my_level); + + /* + * The parent (sub)transaction must not have any current (i.e., + * not-yet-locally-processed) messages. If it did, we'd have a + * semantic problem: the new subtransaction presumably ought not be + * able to see those events yet, but since the CommandCounter is + * linear, that can't work once the subtransaction advances the + * counter. This is a convenient place to check for that, as well as + * being important to keep management of the message arrays simple. + */ + if (NumMessagesInGroup(&transInvalInfo->CurrentCmdInvalidMsgs) != 0) + elog(ERROR, "cannot start a subtransaction when there are unprocessed inval messages"); + + /* + * MemoryContextAllocZero set firstmsg = nextmsg = 0 in each group, + * which is fine for the first (sub)transaction, but otherwise we need + * to update them to follow whatever is already in the arrays. + */ + SetGroupToFollow(&myInfo->PriorCmdInvalidMsgs, + &transInvalInfo->CurrentCmdInvalidMsgs); + SetGroupToFollow(&myInfo->CurrentCmdInvalidMsgs, + &myInfo->PriorCmdInvalidMsgs); + } + else + { + /* + * Here, we need only clear any array pointers left over from a prior + * transaction. + */ + InvalMessageArrays[CatCacheMsgs].msgs = NULL; + InvalMessageArrays[CatCacheMsgs].maxmsgs = 0; + InvalMessageArrays[RelCacheMsgs].msgs = NULL; + InvalMessageArrays[RelCacheMsgs].maxmsgs = 0; + } + + transInvalInfo = myInfo; +} + +/* ---------------------------------------------------------------- + * public functions + * ---------------------------------------------------------------- + */ + +void +InvalidateSystemCachesExtended(bool debug_discard) +{ + int i; + + InvalidateCatalogSnapshot(); + ResetCatalogCachesExt(debug_discard); + RelationCacheInvalidate(debug_discard); /* gets smgr and relmap too */ + + for (i = 0; i < syscache_callback_count; i++) + { + struct SYSCACHECALLBACK *ccitem = syscache_callback_list + i; + + ccitem->function(ccitem->arg, ccitem->id, 0); + } + + for (i = 0; i < relcache_callback_count; i++) + { + struct RELCACHECALLBACK *ccitem = relcache_callback_list + i; + + ccitem->function(ccitem->arg, InvalidOid); + } +} + /* * LocalExecuteInvalidationMessage * @@ -704,36 +795,6 @@ InvalidateSystemCaches(void) InvalidateSystemCachesExtended(false); } -void -InvalidateSystemCachesExtended(bool debug_discard) -{ - int i; - - InvalidateCatalogSnapshot(); - ResetCatalogCachesExt(debug_discard); - RelationCacheInvalidate(debug_discard); /* gets smgr and relmap too */ - - for (i = 0; i < syscache_callback_count; i++) - { - struct SYSCACHECALLBACK *ccitem = syscache_callback_list + i; - - ccitem->function(ccitem->arg, ccitem->id, 0); - } - - for (i = 0; i < relcache_callback_count; i++) - { - struct RELCACHECALLBACK *ccitem = relcache_callback_list + i; - - ccitem->function(ccitem->arg, InvalidOid); - } -} - - -/* ---------------------------------------------------------------- - * public functions - * ---------------------------------------------------------------- - */ - /* * AcceptInvalidationMessages * Read and process invalidation messages from the shared invalidation @@ -787,68 +848,6 @@ AcceptInvalidationMessages(void) #endif } -/* - * PrepareInvalidationState - * Initialize inval data for the current (sub)transaction. - */ -static void -PrepareInvalidationState(void) -{ - TransInvalidationInfo *myInfo; - - if (transInvalInfo != NULL && - transInvalInfo->my_level == GetCurrentTransactionNestLevel()) - return; - - myInfo = (TransInvalidationInfo *) - MemoryContextAllocZero(TopTransactionContext, - sizeof(TransInvalidationInfo)); - myInfo->parent = transInvalInfo; - myInfo->my_level = GetCurrentTransactionNestLevel(); - - /* Now, do we have a previous stack entry? */ - if (transInvalInfo != NULL) - { - /* Yes; this one should be for a deeper nesting level. */ - Assert(myInfo->my_level > transInvalInfo->my_level); - - /* - * The parent (sub)transaction must not have any current (i.e., - * not-yet-locally-processed) messages. If it did, we'd have a - * semantic problem: the new subtransaction presumably ought not be - * able to see those events yet, but since the CommandCounter is - * linear, that can't work once the subtransaction advances the - * counter. This is a convenient place to check for that, as well as - * being important to keep management of the message arrays simple. - */ - if (NumMessagesInGroup(&transInvalInfo->CurrentCmdInvalidMsgs) != 0) - elog(ERROR, "cannot start a subtransaction when there are unprocessed inval messages"); - - /* - * MemoryContextAllocZero set firstmsg = nextmsg = 0 in each group, - * which is fine for the first (sub)transaction, but otherwise we need - * to update them to follow whatever is already in the arrays. - */ - SetGroupToFollow(&myInfo->PriorCmdInvalidMsgs, - &transInvalInfo->CurrentCmdInvalidMsgs); - SetGroupToFollow(&myInfo->CurrentCmdInvalidMsgs, - &myInfo->PriorCmdInvalidMsgs); - } - else - { - /* - * Here, we need only clear any array pointers left over from a prior - * transaction. - */ - InvalMessageArrays[CatCacheMsgs].msgs = NULL; - InvalMessageArrays[CatCacheMsgs].maxmsgs = 0; - InvalMessageArrays[RelCacheMsgs].msgs = NULL; - InvalMessageArrays[RelCacheMsgs].maxmsgs = 0; - } - - transInvalInfo = myInfo; -} - /* * PostPrepare_Inval * Clean up after successful PREPARE. From 05d605b6c69f0276ae091ced1ed9082963052550 Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Tue, 16 Dec 2025 16:13:54 -0800 Subject: [PATCH 37/94] For inplace update, send nontransactional invalidations. The inplace update survives ROLLBACK. The inval didn't, so another backend's DDL could then update the row without incorporating the inplace update. In the test this fixes, a mix of CREATE INDEX and ALTER TABLE resulted in a table with an index, yet relhasindex=f. That is a source of index corruption. Back-patch to v14 - v17. This is a back-patch of commits: - 243e9b40f1b2dd09d6e5bf91ebf6e822a2cd3704 (main change, on master, before v18 branched) - 0bada39c83a150079567a6e97b1a25a198f30ea3 (defect fix, on master, before v18 branched) - bae8ca82fd00603ebafa0658640d6e4dfe20af92 (cosmetics from post-commit review, on REL_18_STABLE) It reverses commit c1099dd745b0135960895caa8892a1873ac6cbe5, my revert of the original back-patch of 243e9b4. This back-patch omits the non-comment heap_decode() changes. I find those changes removed harmless code that was last necessary in v13. See discussion thread for details. The back branches aren't the place to remove such code. Like the original back-patch, this doesn't change WAL, because these branches use end-of-recovery SIResetAll(). All branches change the ABI of extern function PrepareToInvalidateCacheTuple(). No PGXN extension calls that, and there's no apparent use case in extensions. Expect ".abi-compliance-history" edits to follow. Reviewed-by: Paul A Jungwirth Reviewed-by: Surya Poondla Reviewed-by: Ilyasov Ian Reviewed-by: Nitin Motiani (in earlier versions) Reviewed-by: Andres Freund (in earlier versions) Discussion: https://postgr.es/m/20240523000548.58.nmisch@google.com Backpatch-through: 14-17 --- src/backend/access/heap/README.tuplock | 32 ++ src/backend/access/heap/heapam.c | 46 ++- src/backend/access/transam/xact.c | 26 +- src/backend/catalog/index.c | 11 +- src/backend/replication/logical/decode.c | 11 +- src/backend/utils/cache/catcache.c | 7 +- src/backend/utils/cache/inval.c | 320 +++++++++++++----- src/backend/utils/cache/syscache.c | 3 +- src/include/utils/catcache.h | 3 +- src/include/utils/inval.h | 6 + src/test/isolation/expected/inplace-inval.out | 10 +- src/test/isolation/specs/inplace-inval.spec | 12 +- src/tools/pgindent/typedefs.list | 1 + 13 files changed, 362 insertions(+), 126 deletions(-) diff --git a/src/backend/access/heap/README.tuplock b/src/backend/access/heap/README.tuplock index 750684d3398..ad835ff4820 100644 --- a/src/backend/access/heap/README.tuplock +++ b/src/backend/access/heap/README.tuplock @@ -201,3 +201,35 @@ wider than four bytes, and current readers don't need consistency across fields. Hence, they get by with just fetching each field once. XXX such a caller may also read a value that has not reached WAL; see systable_inplace_update_finish(). + +During logical decoding, caches reflect an inplace update no later than the +next XLOG_XACT_INVALIDATIONS. That record witnesses the end of a command. +Tuples of its cmin are then visible to decoding, as are inplace updates of any +lower LSN. Inplace updates of a higher LSN may also be visible, even if those +updates would have been invisible to a non-historic snapshot matching +decoding's historic snapshot. (In other words, decoding may see inplace +updates that were not visible to a similar snapshot taken during original +transaction processing.) That's a consequence of inplace update violating +MVCC: there are no snapshot-specific versions of inplace-updated values. This +all makes it hard to reason about inplace-updated column reads during logical +decoding, but the behavior does suffice for relhasindex. A relhasindex=t in +CREATE INDEX becomes visible no later than the new pg_index row. While it may +be visible earlier, that's harmless. Finding zero indexes despite +relhasindex=t is normal in more cases than this, e.g. after DROP INDEX. +Example of a case that meaningfully reacts to the inplace inval: + +CREATE TABLE cat (c int) WITH (user_catalog_table = true); +CREATE TABLE normal (d int); +... +CREATE INDEX ON cat (c)\; INSERT INTO normal VALUES (1); + +If the output plugin reads "cat" during decoding of the INSERT, it's fair to +want that read to see relhasindex=t and use the new index. + +An alternative would be to have decoding of XLOG_HEAP_INPLACE immediately +execute its invals. That would behave more like invals during original +transaction processing. It would remove the decoding-specific delay in e.g. a +decoding plugin witnessing a relfrozenxid change. However, a good use case +for that is unlikely, since the plugin would still witness relfrozenxid +changes prematurely. Hence, inplace update takes the trivial approach of +delegating to XLOG_XACT_INVALIDATIONS. diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 9b561a06f29..d058b704d36 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -6267,6 +6267,19 @@ heap_inplace_lock(Relation relation, Assert(BufferIsValid(buffer)); + /* + * Register shared cache invals if necessary. Other sessions may finish + * inplace updates of this tuple between this step and LockTuple(). Since + * inplace updates don't change cache keys, that's harmless. + * + * While it's tempting to register invals only after confirming we can + * return true, the following obstacle precludes reordering steps that + * way. Registering invals might reach a CatalogCacheInitializeCache() + * that locks "buffer". That would hang indefinitely if running after our + * own LockBuffer(). Hence, we must register invals before LockBuffer(). + */ + CacheInvalidateHeapTupleInplace(relation, oldtup_ptr); + LockTuple(relation, &oldtup.t_self, InplaceUpdateTupleLock); LockBuffer(buffer, BUFFER_LOCK_EXCLUSIVE); @@ -6362,6 +6375,7 @@ heap_inplace_lock(Relation relation, if (!ret) { UnlockTuple(relation, &oldtup.t_self, InplaceUpdateTupleLock); + ForgetInplace_Inval(); InvalidateCatalogSnapshot(); } return ret; @@ -6390,6 +6404,16 @@ heap_inplace_update_and_unlock(Relation relation, if (oldlen != newlen || htup->t_hoff != tuple->t_data->t_hoff) elog(ERROR, "wrong tuple length"); + /* + * Unlink relcache init files as needed. If unlinking, acquire + * RelCacheInitLock until after associated invalidations. By doing this + * in advance, if we checkpoint and then crash between inplace + * XLogInsert() and inval, we don't rely on StartupXLOG() -> + * RelationCacheInitFileRemove(). That uses elevel==LOG, so replay would + * neglect to PANIC on EIO. + */ + PreInplace_Inval(); + /* NO EREPORT(ERROR) from here till changes are logged */ START_CRIT_SECTION(); @@ -6433,17 +6457,24 @@ heap_inplace_update_and_unlock(Relation relation, PageSetLSN(BufferGetPage(buffer), recptr); } + LockBuffer(buffer, BUFFER_LOCK_UNLOCK); + + /* + * Send invalidations to shared queue. SearchSysCacheLocked1() assumes we + * do this before UnlockTuple(). + */ + AtInplace_Inval(); + END_CRIT_SECTION(); + UnlockTuple(relation, &tuple->t_self, InplaceUpdateTupleLock); - heap_inplace_unlock(relation, oldtup, buffer); + AcceptInvalidationMessages(); /* local processing of just-sent inval */ /* - * Send out shared cache inval if necessary. Note that because we only - * pass the new version of the tuple, this mustn't be used for any - * operations that could change catcache lookup keys. But we aren't - * bothering with index updates either, so that's true a fortiori. - * - * XXX ROLLBACK discards the invalidation. See test inplace-inval.spec. + * Queue a transactional inval, for logical decoding and for third-party + * code that might have been relying on it since long before inplace + * update adopted immediate invalidation. See README.tuplock section + * "Reading inplace-updated columns" for logical decoding details. */ if (!IsBootstrapProcessingMode()) CacheInvalidateHeapTuple(relation, tuple, NULL); @@ -6458,6 +6489,7 @@ heap_inplace_unlock(Relation relation, { LockBuffer(buffer, BUFFER_LOCK_UNLOCK); UnlockTuple(relation, &oldtup->t_self, InplaceUpdateTupleLock); + ForgetInplace_Inval(); } /* diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 7a3d9b4b012..a747b708d61 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -1333,14 +1333,24 @@ RecordTransactionCommit(void) /* * Transactions without an assigned xid can contain invalidation - * messages (e.g. explicit relcache invalidations or catcache - * invalidations for inplace updates); standbys need to process those. - * We can't emit a commit record without an xid, and we don't want to - * force assigning an xid, because that'd be problematic for e.g. - * vacuum. Hence we emit a bespoke record for the invalidations. We - * don't want to use that in case a commit record is emitted, so they - * happen synchronously with commits (besides not wanting to emit more - * WAL records). + * messages. While inplace updates do this, this is not known to be + * necessary; see comment at inplace CacheInvalidateHeapTuple(). + * Extensions might still rely on this capability, and standbys may + * need to process those invals. We can't emit a commit record + * without an xid, and we don't want to force assigning an xid, + * because that'd be problematic for e.g. vacuum. Hence we emit a + * bespoke record for the invalidations. We don't want to use that in + * case a commit record is emitted, so they happen synchronously with + * commits (besides not wanting to emit more WAL records). + * + * XXX Every known use of this capability is a defect. Since an XID + * isn't controlling visibility of the change that prompted invals, + * other sessions need the inval even if this transactions aborts. + * + * ON COMMIT DELETE ROWS does a nontransactional index_build(), which + * queues a relcache inval, including in transactions without an xid + * that had read the (empty) table. Standbys don't need any ON COMMIT + * DELETE ROWS invals, but we've not done the work to withhold them. */ if (nmsgs != 0) { diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 37693ee6f7b..81fca3b0ab4 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -2920,12 +2920,19 @@ index_update_stats(Relation rel, if (dirty) { systable_inplace_update_finish(state, tuple); - /* the above sends a cache inval message */ + /* the above sends transactional and immediate cache inval messages */ } else { systable_inplace_update_cancel(state); - /* no need to change tuple, but force relcache inval anyway */ + + /* + * While we didn't change relhasindex, CREATE INDEX needs a + * transactional inval for when the new index's catalog rows become + * visible. Other CREATE INDEX and REINDEX code happens to also queue + * this inval, but keep this in case rare callers rely on this part of + * our API contract. + */ CacheInvalidateRelcacheByTuple(tuple); } diff --git a/src/backend/replication/logical/decode.c b/src/backend/replication/logical/decode.c index 204d9b7ae20..466fb37719e 100644 --- a/src/backend/replication/logical/decode.c +++ b/src/backend/replication/logical/decode.c @@ -495,20 +495,13 @@ heap_decode(LogicalDecodingContext *ctx, XLogRecordBuffer *buf) /* * Inplace updates are only ever performed on catalog tuples and * can, per definition, not change tuple visibility. Since we - * don't decode catalog tuples, we're not interested in the + * also don't decode catalog tuples, we're not interested in the * record's contents. - * - * In-place updates can be used either by XID-bearing transactions - * (e.g. in CREATE INDEX CONCURRENTLY) or by XID-less - * transactions (e.g. VACUUM). In the former case, the commit - * record will include cache invalidations, so we mark the - * transaction as catalog modifying here. Currently that's - * redundant because the commit will do that as well, but once we - * support decoding in-progress relations, this will be important. */ if (!TransactionIdIsValid(xid)) break; + /* PostgreSQL 13 was the last to need these actions. */ (void) SnapBuildProcessChange(builder, xid, buf->origptr); ReorderBufferXidSetCatalogChanges(ctx->reorder, xid, buf->origptr); break; diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 00b9bf31ef3..ceabeac7e6a 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -2183,7 +2183,8 @@ void PrepareToInvalidateCacheTuple(Relation relation, HeapTuple tuple, HeapTuple newtuple, - void (*function) (int, uint32, Oid)) + void (*function) (int, uint32, Oid, void *), + void *context) { slist_iter iter; Oid reloid; @@ -2224,7 +2225,7 @@ PrepareToInvalidateCacheTuple(Relation relation, hashvalue = CatalogCacheComputeTupleHashValue(ccp, ccp->cc_nkeys, tuple); dbid = ccp->cc_relisshared ? (Oid) 0 : MyDatabaseId; - (*function) (ccp->id, hashvalue, dbid); + (*function) (ccp->id, hashvalue, dbid, context); if (newtuple) { @@ -2233,7 +2234,7 @@ PrepareToInvalidateCacheTuple(Relation relation, newhashvalue = CatalogCacheComputeTupleHashValue(ccp, ccp->cc_nkeys, newtuple); if (newhashvalue != hashvalue) - (*function) (ccp->id, newhashvalue, dbid); + (*function) (ccp->id, newhashvalue, dbid, context); } } } diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c index db7dacf01c6..6176dbafbca 100644 --- a/src/backend/utils/cache/inval.c +++ b/src/backend/utils/cache/inval.c @@ -94,6 +94,10 @@ * worth trying to avoid sending such inval traffic in the future, if those * problems can be overcome cheaply. * + * When making a nontransactional change to a cacheable object, we must + * likewise send the invalidation immediately, before ending the change's + * critical section. This includes inplace heap updates, relmap, and smgr. + * * When wal_level=logical, write invalidations into WAL at each command end to * support the decoding of the in-progress transactions. See * CommandEndInvalidationMessages. @@ -131,13 +135,15 @@ /* * Pending requests are stored as ready-to-send SharedInvalidationMessages. - * We keep the messages themselves in arrays in TopTransactionContext - * (there are separate arrays for catcache and relcache messages). Control - * information is kept in a chain of TransInvalidationInfo structs, also - * allocated in TopTransactionContext. (We could keep a subtransaction's - * TransInvalidationInfo in its CurTransactionContext; but that's more - * wasteful not less so, since in very many scenarios it'd be the only - * allocation in the subtransaction's CurTransactionContext.) + * We keep the messages themselves in arrays in TopTransactionContext (there + * are separate arrays for catcache and relcache messages). For transactional + * messages, control information is kept in a chain of TransInvalidationInfo + * structs, also allocated in TopTransactionContext. (We could keep a + * subtransaction's TransInvalidationInfo in its CurTransactionContext; but + * that's more wasteful not less so, since in very many scenarios it'd be the + * only allocation in the subtransaction's CurTransactionContext.) For + * inplace update messages, control information appears in an + * InvalidationInfo, allocated in CurrentMemoryContext. * * We can store the message arrays densely, and yet avoid moving data around * within an array, because within any one subtransaction we need only @@ -148,7 +154,9 @@ * struct. Similarly, we need distinguish messages of prior subtransactions * from those of the current subtransaction only until the subtransaction * completes, after which we adjust the array indexes in the parent's - * TransInvalidationInfo to include the subtransaction's messages. + * TransInvalidationInfo to include the subtransaction's messages. Inplace + * invalidations don't need a concept of command or subtransaction boundaries, + * since we send them during the WAL insertion critical section. * * The ordering of the individual messages within a command's or * subtransaction's output is not considered significant, although this @@ -201,7 +209,7 @@ typedef struct InvalidationMsgsGroup /*---------------- - * Invalidation messages are divided into two groups: + * Transactional invalidation messages are divided into two groups: * 1) events so far in current command, not yet reflected to caches. * 2) events in previous commands of current transaction; these have * been reflected to local caches, and must be either broadcast to @@ -217,26 +225,36 @@ typedef struct InvalidationMsgsGroup *---------------- */ -typedef struct TransInvalidationInfo +/* fields common to both transactional and inplace invalidation */ +typedef struct InvalidationInfo { - /* Back link to parent transaction's info */ - struct TransInvalidationInfo *parent; - - /* Subtransaction nesting depth */ - int my_level; - /* Events emitted by current command */ InvalidationMsgsGroup CurrentCmdInvalidMsgs; + /* init file must be invalidated? */ + bool RelcacheInitFileInval; +} InvalidationInfo; + +/* subclass adding fields specific to transactional invalidation */ +typedef struct TransInvalidationInfo +{ + /* Base class */ + struct InvalidationInfo ii; + /* Events emitted by previous commands of this (sub)transaction */ InvalidationMsgsGroup PriorCmdInvalidMsgs; - /* init file must be invalidated? */ - bool RelcacheInitFileInval; + /* Back link to parent transaction's info */ + struct TransInvalidationInfo *parent; + + /* Subtransaction nesting depth */ + int my_level; } TransInvalidationInfo; static TransInvalidationInfo *transInvalInfo = NULL; +static InvalidationInfo *inplaceInvalInfo = NULL; + /* GUC storage */ int debug_discard_caches = 0; @@ -544,9 +562,12 @@ ProcessInvalidationMessagesMulti(InvalidationMsgsGroup *group, static void RegisterCatcacheInvalidation(int cacheId, uint32 hashValue, - Oid dbId) + Oid dbId, + void *context) { - AddCatcacheInvalidationMessage(&transInvalInfo->CurrentCmdInvalidMsgs, + InvalidationInfo *info = (InvalidationInfo *) context; + + AddCatcacheInvalidationMessage(&info->CurrentCmdInvalidMsgs, cacheId, hashValue, dbId); } @@ -556,10 +577,9 @@ RegisterCatcacheInvalidation(int cacheId, * Register an invalidation event for all catcache entries from a catalog. */ static void -RegisterCatalogInvalidation(Oid dbId, Oid catId) +RegisterCatalogInvalidation(InvalidationInfo *info, Oid dbId, Oid catId) { - AddCatalogInvalidationMessage(&transInvalInfo->CurrentCmdInvalidMsgs, - dbId, catId); + AddCatalogInvalidationMessage(&info->CurrentCmdInvalidMsgs, dbId, catId); } /* @@ -568,10 +588,9 @@ RegisterCatalogInvalidation(Oid dbId, Oid catId) * As above, but register a relcache invalidation event. */ static void -RegisterRelcacheInvalidation(Oid dbId, Oid relId) +RegisterRelcacheInvalidation(InvalidationInfo *info, Oid dbId, Oid relId) { - AddRelcacheInvalidationMessage(&transInvalInfo->CurrentCmdInvalidMsgs, - dbId, relId); + AddRelcacheInvalidationMessage(&info->CurrentCmdInvalidMsgs, dbId, relId); /* * Most of the time, relcache invalidation is associated with system @@ -588,7 +607,7 @@ RegisterRelcacheInvalidation(Oid dbId, Oid relId) * as well. Also zap when we are invalidating whole relcache. */ if (relId == InvalidOid || RelationIdIsInInitFile(relId)) - transInvalInfo->RelcacheInitFileInval = true; + info->RelcacheInitFileInval = true; } /* @@ -598,24 +617,27 @@ RegisterRelcacheInvalidation(Oid dbId, Oid relId) * Only needed for catalogs that don't have catcaches. */ static void -RegisterSnapshotInvalidation(Oid dbId, Oid relId) +RegisterSnapshotInvalidation(InvalidationInfo *info, Oid dbId, Oid relId) { - AddSnapshotInvalidationMessage(&transInvalInfo->CurrentCmdInvalidMsgs, - dbId, relId); + AddSnapshotInvalidationMessage(&info->CurrentCmdInvalidMsgs, dbId, relId); } /* * PrepareInvalidationState * Initialize inval data for the current (sub)transaction. */ -static void +static InvalidationInfo * PrepareInvalidationState(void) { TransInvalidationInfo *myInfo; + Assert(IsTransactionState()); + /* Can't queue transactional message while collecting inplace messages. */ + Assert(inplaceInvalInfo == NULL); + if (transInvalInfo != NULL && transInvalInfo->my_level == GetCurrentTransactionNestLevel()) - return; + return (InvalidationInfo *) transInvalInfo; myInfo = (TransInvalidationInfo *) MemoryContextAllocZero(TopTransactionContext, @@ -638,7 +660,7 @@ PrepareInvalidationState(void) * counter. This is a convenient place to check for that, as well as * being important to keep management of the message arrays simple. */ - if (NumMessagesInGroup(&transInvalInfo->CurrentCmdInvalidMsgs) != 0) + if (NumMessagesInGroup(&transInvalInfo->ii.CurrentCmdInvalidMsgs) != 0) elog(ERROR, "cannot start a subtransaction when there are unprocessed inval messages"); /* @@ -647,8 +669,8 @@ PrepareInvalidationState(void) * to update them to follow whatever is already in the arrays. */ SetGroupToFollow(&myInfo->PriorCmdInvalidMsgs, - &transInvalInfo->CurrentCmdInvalidMsgs); - SetGroupToFollow(&myInfo->CurrentCmdInvalidMsgs, + &transInvalInfo->ii.CurrentCmdInvalidMsgs); + SetGroupToFollow(&myInfo->ii.CurrentCmdInvalidMsgs, &myInfo->PriorCmdInvalidMsgs); } else @@ -664,6 +686,41 @@ PrepareInvalidationState(void) } transInvalInfo = myInfo; + return (InvalidationInfo *) myInfo; +} + +/* + * PrepareInplaceInvalidationState + * Initialize inval data for an inplace update. + * + * See previous function for more background. + */ +static InvalidationInfo * +PrepareInplaceInvalidationState(void) +{ + InvalidationInfo *myInfo; + + Assert(IsTransactionState()); + /* limit of one inplace update under assembly */ + Assert(inplaceInvalInfo == NULL); + + /* gone after WAL insertion CritSection ends, so use current context */ + myInfo = (InvalidationInfo *) palloc0(sizeof(InvalidationInfo)); + + /* Stash our messages past end of the transactional messages, if any. */ + if (transInvalInfo != NULL) + SetGroupToFollow(&myInfo->CurrentCmdInvalidMsgs, + &transInvalInfo->ii.CurrentCmdInvalidMsgs); + else + { + InvalMessageArrays[CatCacheMsgs].msgs = NULL; + InvalMessageArrays[CatCacheMsgs].maxmsgs = 0; + InvalMessageArrays[RelCacheMsgs].msgs = NULL; + InvalMessageArrays[RelCacheMsgs].maxmsgs = 0; + } + + inplaceInvalInfo = myInfo; + return myInfo; } /* ---------------------------------------------------------------- @@ -903,7 +960,7 @@ xactGetCommittedInvalidationMessages(SharedInvalidationMessage **msgs, * after we send the SI messages. However, we need not do anything unless * we committed. */ - *RelcacheInitFileInval = transInvalInfo->RelcacheInitFileInval; + *RelcacheInitFileInval = transInvalInfo->ii.RelcacheInitFileInval; /* * Collect all the pending messages into a single contiguous array of @@ -914,7 +971,7 @@ xactGetCommittedInvalidationMessages(SharedInvalidationMessage **msgs, * not new ones. */ nummsgs = NumMessagesInGroup(&transInvalInfo->PriorCmdInvalidMsgs) + - NumMessagesInGroup(&transInvalInfo->CurrentCmdInvalidMsgs); + NumMessagesInGroup(&transInvalInfo->ii.CurrentCmdInvalidMsgs); *msgs = msgarray = (SharedInvalidationMessage *) MemoryContextAlloc(CurTransactionContext, @@ -927,7 +984,7 @@ xactGetCommittedInvalidationMessages(SharedInvalidationMessage **msgs, msgs, n * sizeof(SharedInvalidationMessage)), nmsgs += n)); - ProcessMessageSubGroupMulti(&transInvalInfo->CurrentCmdInvalidMsgs, + ProcessMessageSubGroupMulti(&transInvalInfo->ii.CurrentCmdInvalidMsgs, CatCacheMsgs, (memcpy(msgarray + nmsgs, msgs, @@ -939,7 +996,7 @@ xactGetCommittedInvalidationMessages(SharedInvalidationMessage **msgs, msgs, n * sizeof(SharedInvalidationMessage)), nmsgs += n)); - ProcessMessageSubGroupMulti(&transInvalInfo->CurrentCmdInvalidMsgs, + ProcessMessageSubGroupMulti(&transInvalInfo->ii.CurrentCmdInvalidMsgs, RelCacheMsgs, (memcpy(msgarray + nmsgs, msgs, @@ -1026,7 +1083,9 @@ ProcessCommittedInvalidationMessages(SharedInvalidationMessage *msgs, void AtEOXact_Inval(bool isCommit) { - /* Quick exit if no messages */ + inplaceInvalInfo = NULL; + + /* Quick exit if no transactional messages */ if (transInvalInfo == NULL) return; @@ -1040,16 +1099,16 @@ AtEOXact_Inval(bool isCommit) * after we send the SI messages. However, we need not do anything * unless we committed. */ - if (transInvalInfo->RelcacheInitFileInval) + if (transInvalInfo->ii.RelcacheInitFileInval) RelationCacheInitFilePreInvalidate(); AppendInvalidationMessages(&transInvalInfo->PriorCmdInvalidMsgs, - &transInvalInfo->CurrentCmdInvalidMsgs); + &transInvalInfo->ii.CurrentCmdInvalidMsgs); ProcessInvalidationMessagesMulti(&transInvalInfo->PriorCmdInvalidMsgs, SendSharedInvalidMessages); - if (transInvalInfo->RelcacheInitFileInval) + if (transInvalInfo->ii.RelcacheInitFileInval) RelationCacheInitFilePostInvalidate(); } else @@ -1062,6 +1121,56 @@ AtEOXact_Inval(bool isCommit) transInvalInfo = NULL; } +/* + * PreInplace_Inval + * Process queued-up invalidation before inplace update critical section. + * + * Tasks belong here if they are safe even if the inplace update does not + * complete. Currently, this just unlinks a cache file, which can fail. The + * sum of this and AtInplace_Inval() mirrors AtEOXact_Inval(isCommit=true). + */ +void +PreInplace_Inval(void) +{ + Assert(CritSectionCount == 0); + + if (inplaceInvalInfo && inplaceInvalInfo->RelcacheInitFileInval) + RelationCacheInitFilePreInvalidate(); +} + +/* + * AtInplace_Inval + * Process queued-up invalidations after inplace update buffer mutation. + */ +void +AtInplace_Inval(void) +{ + Assert(CritSectionCount > 0); + + if (inplaceInvalInfo == NULL) + return; + + ProcessInvalidationMessagesMulti(&inplaceInvalInfo->CurrentCmdInvalidMsgs, + SendSharedInvalidMessages); + + if (inplaceInvalInfo->RelcacheInitFileInval) + RelationCacheInitFilePostInvalidate(); + + inplaceInvalInfo = NULL; +} + +/* + * ForgetInplace_Inval + * Alternative to PreInplace_Inval()+AtInplace_Inval(): discard queued-up + * invalidations. This lets inplace update enumerate invalidations + * optimistically, before locking the buffer. + */ +void +ForgetInplace_Inval(void) +{ + inplaceInvalInfo = NULL; +} + /* * AtEOSubXact_Inval * Process queued-up invalidation messages at end of subtransaction. @@ -1084,9 +1193,20 @@ void AtEOSubXact_Inval(bool isCommit) { int my_level; - TransInvalidationInfo *myInfo = transInvalInfo; + TransInvalidationInfo *myInfo; - /* Quick exit if no messages. */ + /* + * Successful inplace update must clear this, but we clear it on abort. + * Inplace updates allocate this in CurrentMemoryContext, which has + * lifespan <= subtransaction lifespan. Hence, don't free it explicitly. + */ + if (isCommit) + Assert(inplaceInvalInfo == NULL); + else + inplaceInvalInfo = NULL; + + /* Quick exit if no transactional messages. */ + myInfo = transInvalInfo; if (myInfo == NULL) return; @@ -1127,12 +1247,12 @@ AtEOSubXact_Inval(bool isCommit) &myInfo->PriorCmdInvalidMsgs); /* Must readjust parent's CurrentCmdInvalidMsgs indexes now */ - SetGroupToFollow(&myInfo->parent->CurrentCmdInvalidMsgs, + SetGroupToFollow(&myInfo->parent->ii.CurrentCmdInvalidMsgs, &myInfo->parent->PriorCmdInvalidMsgs); /* Pending relcache inval becomes parent's problem too */ - if (myInfo->RelcacheInitFileInval) - myInfo->parent->RelcacheInitFileInval = true; + if (myInfo->ii.RelcacheInitFileInval) + myInfo->parent->ii.RelcacheInitFileInval = true; /* Pop the transaction state stack */ transInvalInfo = myInfo->parent; @@ -1179,7 +1299,7 @@ CommandEndInvalidationMessages(void) if (transInvalInfo == NULL) return; - ProcessInvalidationMessages(&transInvalInfo->CurrentCmdInvalidMsgs, + ProcessInvalidationMessages(&transInvalInfo->ii.CurrentCmdInvalidMsgs, LocalExecuteInvalidationMessage); /* WAL Log per-command invalidation messages for wal_level=logical */ @@ -1187,26 +1307,21 @@ CommandEndInvalidationMessages(void) LogLogicalInvalidations(); AppendInvalidationMessages(&transInvalInfo->PriorCmdInvalidMsgs, - &transInvalInfo->CurrentCmdInvalidMsgs); + &transInvalInfo->ii.CurrentCmdInvalidMsgs); } /* - * CacheInvalidateHeapTuple - * Register the given tuple for invalidation at end of command - * (ie, current command is creating or outdating this tuple). - * Also, detect whether a relcache invalidation is implied. - * - * For an insert or delete, tuple is the target tuple and newtuple is NULL. - * For an update, we are called just once, with tuple being the old tuple - * version and newtuple the new version. This allows avoidance of duplicate - * effort during an update. + * CacheInvalidateHeapTupleCommon + * Common logic for end-of-command and inplace variants. */ -void -CacheInvalidateHeapTuple(Relation relation, - HeapTuple tuple, - HeapTuple newtuple) +static void +CacheInvalidateHeapTupleCommon(Relation relation, + HeapTuple tuple, + HeapTuple newtuple, + InvalidationInfo *(*prepare_callback) (void)) { + InvalidationInfo *info; Oid tupleRelId; Oid databaseId; Oid relationId; @@ -1230,11 +1345,8 @@ CacheInvalidateHeapTuple(Relation relation, if (IsToastRelation(relation)) return; - /* - * If we're not prepared to queue invalidation messages for this - * subtransaction level, get ready now. - */ - PrepareInvalidationState(); + /* Allocate any required resources. */ + info = prepare_callback(); /* * First let the catcache do its thing @@ -1243,11 +1355,12 @@ CacheInvalidateHeapTuple(Relation relation, if (RelationInvalidatesSnapshotsOnly(tupleRelId)) { databaseId = IsSharedRelation(tupleRelId) ? InvalidOid : MyDatabaseId; - RegisterSnapshotInvalidation(databaseId, tupleRelId); + RegisterSnapshotInvalidation(info, databaseId, tupleRelId); } else PrepareToInvalidateCacheTuple(relation, tuple, newtuple, - RegisterCatcacheInvalidation); + RegisterCatcacheInvalidation, + (void *) info); /* * Now, is this tuple one of the primary definers of a relcache entry? See @@ -1320,7 +1433,48 @@ CacheInvalidateHeapTuple(Relation relation, /* * Yes. We need to register a relcache invalidation event. */ - RegisterRelcacheInvalidation(databaseId, relationId); + RegisterRelcacheInvalidation(info, databaseId, relationId); +} + +/* + * CacheInvalidateHeapTuple + * Register the given tuple for invalidation at end of command + * (ie, current command is creating or outdating this tuple) and end of + * transaction. Also, detect whether a relcache invalidation is implied. + * + * For an insert or delete, tuple is the target tuple and newtuple is NULL. + * For an update, we are called just once, with tuple being the old tuple + * version and newtuple the new version. This allows avoidance of duplicate + * effort during an update. + */ +void +CacheInvalidateHeapTuple(Relation relation, + HeapTuple tuple, + HeapTuple newtuple) +{ + CacheInvalidateHeapTupleCommon(relation, tuple, newtuple, + PrepareInvalidationState); +} + +/* + * CacheInvalidateHeapTupleInplace + * Register the given tuple for nontransactional invalidation pertaining + * to an inplace update. Also, detect whether a relcache invalidation is + * implied. + * + * Like CacheInvalidateHeapTuple(), but for inplace updates. + * + * Just before and just after the inplace update, the tuple's cache keys must + * match those in key_equivalent_tuple. Cache keys consist of catcache lookup + * key columns and columns referencing pg_class.oid values, + * e.g. pg_constraint.conrelid, which would trigger relcache inval. + */ +void +CacheInvalidateHeapTupleInplace(Relation relation, + HeapTuple key_equivalent_tuple) +{ + CacheInvalidateHeapTupleCommon(relation, key_equivalent_tuple, NULL, + PrepareInplaceInvalidationState); } /* @@ -1339,14 +1493,13 @@ CacheInvalidateCatalog(Oid catalogId) { Oid databaseId; - PrepareInvalidationState(); - if (IsSharedRelation(catalogId)) databaseId = InvalidOid; else databaseId = MyDatabaseId; - RegisterCatalogInvalidation(databaseId, catalogId); + RegisterCatalogInvalidation(PrepareInvalidationState(), + databaseId, catalogId); } /* @@ -1364,15 +1517,14 @@ CacheInvalidateRelcache(Relation relation) Oid databaseId; Oid relationId; - PrepareInvalidationState(); - relationId = RelationGetRelid(relation); if (relation->rd_rel->relisshared) databaseId = InvalidOid; else databaseId = MyDatabaseId; - RegisterRelcacheInvalidation(databaseId, relationId); + RegisterRelcacheInvalidation(PrepareInvalidationState(), + databaseId, relationId); } /* @@ -1385,9 +1537,8 @@ CacheInvalidateRelcache(Relation relation) void CacheInvalidateRelcacheAll(void) { - PrepareInvalidationState(); - - RegisterRelcacheInvalidation(InvalidOid, InvalidOid); + RegisterRelcacheInvalidation(PrepareInvalidationState(), + InvalidOid, InvalidOid); } /* @@ -1401,14 +1552,13 @@ CacheInvalidateRelcacheByTuple(HeapTuple classTuple) Oid databaseId; Oid relationId; - PrepareInvalidationState(); - relationId = classtup->oid; if (classtup->relisshared) databaseId = InvalidOid; else databaseId = MyDatabaseId; - RegisterRelcacheInvalidation(databaseId, relationId); + RegisterRelcacheInvalidation(PrepareInvalidationState(), + databaseId, relationId); } /* @@ -1422,8 +1572,6 @@ CacheInvalidateRelcacheByRelid(Oid relid) { HeapTuple tup; - PrepareInvalidationState(); - tup = SearchSysCache1(RELOID, ObjectIdGetDatum(relid)); if (!HeapTupleIsValid(tup)) elog(ERROR, "cache lookup failed for relation %u", relid); @@ -1613,7 +1761,7 @@ LogLogicalInvalidations(void) if (transInvalInfo == NULL) return; - group = &transInvalInfo->CurrentCmdInvalidMsgs; + group = &transInvalInfo->ii.CurrentCmdInvalidMsgs; nmsgs = NumMessagesInGroup(group); if (nmsgs > 0) diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index e8349a42966..44a65a15f6c 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -1311,8 +1311,7 @@ SearchSysCacheLocked1(int cacheId, /* * If an inplace update just finished, ensure we process the syscache - * inval. XXX this is insufficient: the inplace updater may not yet - * have reached AtEOXact_Inval(). See test at inplace-inval.spec. + * inval. * * If a heap_update() call just released its LOCKTAG_TUPLE, we'll * probably find the old tuple and reach "tuple concurrently updated". diff --git a/src/include/utils/catcache.h b/src/include/utils/catcache.h index c886d2a866e..a7ee5b86923 100644 --- a/src/include/utils/catcache.h +++ b/src/include/utils/catcache.h @@ -224,7 +224,8 @@ extern void CatCacheInvalidate(CatCache *cache, uint32 hashValue); extern void PrepareToInvalidateCacheTuple(Relation relation, HeapTuple tuple, HeapTuple newtuple, - void (*function) (int, uint32, Oid)); + void (*function) (int, uint32, Oid, void *), + void *context); extern void PrintCatCacheLeakWarning(HeapTuple tuple); extern void PrintCatCacheListLeakWarning(CatCList *list); diff --git a/src/include/utils/inval.h b/src/include/utils/inval.h index 0e0323b91a0..cdc74e2738e 100644 --- a/src/include/utils/inval.h +++ b/src/include/utils/inval.h @@ -28,6 +28,10 @@ extern void AcceptInvalidationMessages(void); extern void AtEOXact_Inval(bool isCommit); +extern void PreInplace_Inval(void); +extern void AtInplace_Inval(void); +extern void ForgetInplace_Inval(void); + extern void AtEOSubXact_Inval(bool isCommit); extern void PostPrepare_Inval(void); @@ -37,6 +41,8 @@ extern void CommandEndInvalidationMessages(void); extern void CacheInvalidateHeapTuple(Relation relation, HeapTuple tuple, HeapTuple newtuple); +extern void CacheInvalidateHeapTupleInplace(Relation relation, + HeapTuple key_equivalent_tuple); extern void CacheInvalidateCatalog(Oid catalogId); diff --git a/src/test/isolation/expected/inplace-inval.out b/src/test/isolation/expected/inplace-inval.out index e68eca5de98..c35895a8aa7 100644 --- a/src/test/isolation/expected/inplace-inval.out +++ b/src/test/isolation/expected/inplace-inval.out @@ -1,6 +1,6 @@ Parsed test spec with 3 sessions -starting permutation: cachefill3 cir1 cic2 ddl3 +starting permutation: cachefill3 cir1 cic2 ddl3 read1 step cachefill3: TABLE newly_indexed; c - @@ -9,6 +9,14 @@ c step cir1: BEGIN; CREATE INDEX i1 ON newly_indexed (c); ROLLBACK; step cic2: CREATE INDEX i2 ON newly_indexed (c); step ddl3: ALTER TABLE newly_indexed ADD extra int; +step read1: + SELECT relhasindex FROM pg_class WHERE oid = 'newly_indexed'::regclass; + +relhasindex +----------- +t +(1 row) + starting permutation: cir1 cic2 ddl3 read1 step cir1: BEGIN; CREATE INDEX i1 ON newly_indexed (c); ROLLBACK; diff --git a/src/test/isolation/specs/inplace-inval.spec b/src/test/isolation/specs/inplace-inval.spec index 96954fd86c4..b99112ddb88 100644 --- a/src/test/isolation/specs/inplace-inval.spec +++ b/src/test/isolation/specs/inplace-inval.spec @@ -1,7 +1,7 @@ -# If a heap_update() caller retrieves its oldtup from a cache, it's possible -# for that cache entry to predate an inplace update, causing loss of that -# inplace update. This arises because the transaction may abort before -# sending the inplace invalidation message to the shared queue. +# An inplace update had been able to abort before sending the inplace +# invalidation message to the shared queue. If a heap_update() caller then +# retrieved its oldtup from a cache, the heap_update() could revert the +# inplace update. setup { @@ -27,14 +27,12 @@ step cachefill3 { TABLE newly_indexed; } step ddl3 { ALTER TABLE newly_indexed ADD extra int; } -# XXX shows an extant bug. Adding step read1 at the end would usually print -# relhasindex=f (not wanted). This does not reach the unwanted behavior under -# -DCATCACHE_FORCE_RELEASE and friends. permutation cachefill3 # populates the pg_class row in the catcache cir1 # sets relhasindex=true; rollback discards cache inval cic2 # sees relhasindex=true, skips changing it (so no inval) ddl3 # cached row as the oldtup of an update, losing relhasindex + read1 # observe damage # without cachefill3, no bug permutation cir1 cic2 ddl3 read1 diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 2fb88042e81..5bbee96d1aa 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -1184,6 +1184,7 @@ InternalGrant Interval IntoClause InvalMessageArray +InvalidationInfo InvalidationMsgsGroup IpcMemoryId IpcMemoryKey From 20a48c156d6456cea648b04ca2c07143e603133e Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Tue, 16 Dec 2025 16:13:54 -0800 Subject: [PATCH 38/94] WAL-log inplace update before revealing it to other sessions. A buffer lock won't stop a reader having already checked tuple visibility. If a vac_update_datfrozenid() and then a crash happened during inplace update of a relfrozenxid value, datfrozenxid could overtake relfrozenxid. That could lead to "could not access status of transaction" errors. Back-patch to v14 - v17. This is a back-patch of commits: - 8e7e672cdaa6bfec85d4d5dd9be84159df23bb41 (main change, on master, before v18 branched) - 818013665259d4242ba641aad705ebe5a3e2db8e (defect fix, on master, before v18 branched) It reverses commit bc6bad88572501aecaa2ac5d4bc900ac0fd457d5, my revert of the original back-patch. In v14, this also back-patches the assertion removal from commit 7fcf2faf9c7dd473208fd6d5565f88d7f733782b. Discussion: https://postgr.es/m/20240620012908.92.nmisch@google.com Backpatch-through: 14-17 --- src/backend/access/heap/README.tuplock | 4 +- src/backend/access/heap/heapam.c | 68 ++++++++++++++++++++------ src/include/storage/proc.h | 8 +-- 3 files changed, 59 insertions(+), 21 deletions(-) diff --git a/src/backend/access/heap/README.tuplock b/src/backend/access/heap/README.tuplock index ad835ff4820..16f7d78b7d2 100644 --- a/src/backend/access/heap/README.tuplock +++ b/src/backend/access/heap/README.tuplock @@ -198,9 +198,7 @@ Inplace updates create an exception to the rule that tuple data won't change under a reader holding a pin. A reader of a heap_fetch() result tuple may witness a torn read. Current inplace-updated fields are aligned and are no wider than four bytes, and current readers don't need consistency across -fields. Hence, they get by with just fetching each field once. XXX such a -caller may also read a value that has not reached WAL; see -systable_inplace_update_finish(). +fields. Hence, they get by with just fetching each field once. During logical decoding, caches reflect an inplace update no later than the next XLOG_XACT_INVALIDATIONS. That record witnesses the end of a command. diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index d058b704d36..64044de67b2 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -6397,6 +6397,8 @@ heap_inplace_update_and_unlock(Relation relation, HeapTupleHeader htup = oldtup->t_data; uint32 oldlen; uint32 newlen; + char *dst; + char *src; Assert(ItemPointerEquals(&oldtup->t_self, &tuple->t_self)); oldlen = oldtup->t_len - htup->t_hoff; @@ -6404,6 +6406,9 @@ heap_inplace_update_and_unlock(Relation relation, if (oldlen != newlen || htup->t_hoff != tuple->t_data->t_hoff) elog(ERROR, "wrong tuple length"); + dst = (char *) htup + htup->t_hoff; + src = (char *) tuple->t_data + tuple->t_data->t_hoff; + /* * Unlink relcache init files as needed. If unlinking, acquire * RelCacheInitLock until after associated invalidations. By doing this @@ -6414,15 +6419,15 @@ heap_inplace_update_and_unlock(Relation relation, */ PreInplace_Inval(); - /* NO EREPORT(ERROR) from here till changes are logged */ - START_CRIT_SECTION(); - - memcpy((char *) htup + htup->t_hoff, - (char *) tuple->t_data + tuple->t_data->t_hoff, - newlen); - /*---------- - * XXX A crash here can allow datfrozenxid() to get ahead of relfrozenxid: + * NO EREPORT(ERROR) from here till changes are complete + * + * Our buffer lock won't stop a reader having already pinned and checked + * visibility for this tuple. Hence, we write WAL first, then mutate the + * buffer. Like in MarkBufferDirtyHint() or RecordTransactionCommit(), + * checkpoint delay makes that acceptable. With the usual order of + * changes, a crash after memcpy() and before XLogInsert() could allow + * datfrozenxid to overtake relfrozenxid: * * ["D" is a VACUUM (ONLY_DATABASE_STATS)] * ["R" is a VACUUM tbl] @@ -6432,14 +6437,36 @@ heap_inplace_update_and_unlock(Relation relation, * D: raise pg_database.datfrozenxid, XLogInsert(), finish * [crash] * [recovery restores datfrozenxid w/o relfrozenxid] - */ - - MarkBufferDirty(buffer); + * + * Mimic MarkBufferDirtyHint() subroutine XLogSaveBufferForHint(). + * Specifically, use DELAY_CHKPT_START, and copy the buffer to the stack. + * The stack copy facilitates a FPI of the post-mutation block before we + * accept other sessions seeing it. DELAY_CHKPT_START allows us to + * XLogInsert() before MarkBufferDirty(). Since XLogSaveBufferForHint() + * can operate under BUFFER_LOCK_SHARED, it can't avoid DELAY_CHKPT_START. + * This function, however, likely could avoid it with the following order + * of operations: MarkBufferDirty(), XLogInsert(), memcpy(). Opt to use + * DELAY_CHKPT_START here, too, as a way to have fewer distinct code + * patterns to analyze. Inplace update isn't so frequent that it should + * pursue the small optimization of skipping DELAY_CHKPT_START. + */ + Assert((MyProc->delayChkptFlags & DELAY_CHKPT_START) == 0); + START_CRIT_SECTION(); + MyProc->delayChkptFlags |= DELAY_CHKPT_START; /* XLOG stuff */ if (RelationNeedsWAL(relation)) { xl_heap_inplace xlrec; + PGAlignedBlock copied_buffer; + char *origdata = (char *) BufferGetBlock(buffer); + Page page = BufferGetPage(buffer); + uint16 lower = ((PageHeader) page)->pd_lower; + uint16 upper = ((PageHeader) page)->pd_upper; + uintptr_t dst_offset_in_block; + RelFileNode rnode; + ForkNumber forkno; + BlockNumber blkno; XLogRecPtr recptr; xlrec.offnum = ItemPointerGetOffsetNumber(&tuple->t_self); @@ -6447,16 +6474,28 @@ heap_inplace_update_and_unlock(Relation relation, XLogBeginInsert(); XLogRegisterData((char *) &xlrec, SizeOfHeapInplace); - XLogRegisterBuffer(0, buffer, REGBUF_STANDARD); - XLogRegisterBufData(0, (char *) htup + htup->t_hoff, newlen); + /* register block matching what buffer will look like after changes */ + memcpy(copied_buffer.data, origdata, lower); + memcpy(copied_buffer.data + upper, origdata + upper, BLCKSZ - upper); + dst_offset_in_block = dst - origdata; + memcpy(copied_buffer.data + dst_offset_in_block, src, newlen); + BufferGetTag(buffer, &rnode, &forkno, &blkno); + Assert(forkno == MAIN_FORKNUM); + XLogRegisterBlock(0, &rnode, forkno, blkno, copied_buffer.data, + REGBUF_STANDARD); + XLogRegisterBufData(0, src, newlen); /* inplace updates aren't decoded atm, don't log the origin */ recptr = XLogInsert(RM_HEAP_ID, XLOG_HEAP_INPLACE); - PageSetLSN(BufferGetPage(buffer), recptr); + PageSetLSN(page, recptr); } + memcpy(dst, src, newlen); + + MarkBufferDirty(buffer); + LockBuffer(buffer, BUFFER_LOCK_UNLOCK); /* @@ -6465,6 +6504,7 @@ heap_inplace_update_and_unlock(Relation relation, */ AtInplace_Inval(); + MyProc->delayChkptFlags &= ~DELAY_CHKPT_START; END_CRIT_SECTION(); UnlockTuple(relation, &tuple->t_self, InplaceUpdateTupleLock); diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index ca2b33cc45b..5cfcbb6dee6 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -107,10 +107,10 @@ struct XidCache * is inserted prior to the new redo point, the corresponding data changes will * also be flushed to disk before the checkpoint can complete. (In the * extremely common case where the data being modified is in shared buffers - * and we acquire an exclusive content lock on the relevant buffers before - * writing WAL, this mechanism is not needed, because phase 2 will block - * until we release the content lock and then flush the modified data to - * disk.) + * and we acquire an exclusive content lock and MarkBufferDirty() on the + * relevant buffers before writing WAL, this mechanism is not needed, because + * phase 2 will block until we release the content lock and then flush the + * modified data to disk. See transam/README and SyncOneBuffer().) * * Setting DELAY_CHKPT_COMPLETE prevents the system from moving from phase 2 * to phase 3. This is useful if we are performing a WAL-logged operation that From 86091202a8b11f67d42ad8ea97c4f71d36a8f745 Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Tue, 16 Dec 2025 16:13:54 -0800 Subject: [PATCH 39/94] Assert lack of hazardous buffer locks before possible catalog read. Commit 0bada39c83a150079567a6e97b1a25a198f30ea3 fixed a bug of this kind, which existed in all branches for six days before detection. While the probability of reaching the trouble was low, the disruption was extreme. No new backends could start, and service restoration needed an immediate shutdown. Hence, add this to catch the next bug like it. The new check in RelationIdGetRelation() suffices to make autovacuum detect the bug in commit 243e9b40f1b2dd09d6e5bf91ebf6e822a2cd3704 that led to commit 0bada39. This also checks in a number of similar places. It replaces each Assert(IsTransactionState()) that pertained to a conditional catalog read. Back-patch to v14 - v17. This a back-patch of commit f4ece891fc2f3f96f0571720a1ae30db8030681b (from before v18 branched) to all supported branches, to accompany the back-patch of commits 243e9b4 and 0bada39. For catalog indexes, the bttextcmp() behavior that motivated IsCatalogTextUniqueIndexOid() was v18-specific. Hence, this back-patch doesn't need that or its correction from commit 4a4ee0c2c1e53401924101945ac3d517c0a8a559. Reported-by: Alexander Lakhin Discussion: https://postgr.es/m/20250410191830.0e.nmisch@google.com Discussion: https://postgr.es/m/10ec0bc3-5933-1189-6bb8-5dec4114558e@gmail.com Backpatch-through: 14-17 --- src/backend/storage/buffer/bufmgr.c | 66 +++++++++++++++++++++++++++++ src/backend/storage/lmgr/lwlock.c | 15 +++++++ src/backend/utils/adt/pg_locale.c | 3 ++ src/backend/utils/cache/catcache.c | 51 +++++++++++++++------- src/backend/utils/cache/inval.c | 14 +++++- src/backend/utils/cache/relcache.c | 20 ++++++++- src/backend/utils/mb/mbutils.c | 3 +- src/include/storage/bufmgr.h | 3 ++ src/include/storage/lwlock.h | 2 + src/include/utils/relcache.h | 8 ++++ 10 files changed, 165 insertions(+), 20 deletions(-) diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index 7c33948361a..a02814a8f51 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -37,6 +37,9 @@ #include "access/xloginsert.h" #include "access/xlogutils.h" #include "catalog/catalog.h" +#ifdef USE_ASSERT_CHECKING +#include "catalog/pg_tablespace_d.h" +#endif #include "catalog/storage.h" #include "catalog/storage_xlog.h" #include "executor/instrument.h" @@ -492,6 +495,10 @@ static void RelationCopyStorageUsingBuffer(RelFileNode srcnode, ForkNumber forkNum, bool permanent); static void AtProcExit_Buffers(int code, Datum arg); static void CheckForBufferLeaks(void); +#ifdef USE_ASSERT_CHECKING +static void AssertNotCatalogBufferLock(LWLock *lock, LWLockMode mode, + void *unused_context); +#endif static int rnode_comparator(const void *p1, const void *p2); static inline int buffertag_comparator(const BufferTag *a, const BufferTag *b); static inline int ckpt_buforder_comparator(const CkptSortItem *a, const CkptSortItem *b); @@ -2691,6 +2698,65 @@ CheckForBufferLeaks(void) #endif } +#ifdef USE_ASSERT_CHECKING +/* + * Check for exclusive-locked catalog buffers. This is the core of + * AssertCouldGetRelation(). + * + * A backend would self-deadlock on LWLocks if the catalog scan read the + * exclusive-locked buffer. The main threat is exclusive-locked buffers of + * catalogs used in relcache, because a catcache search on any catalog may + * build that catalog's relcache entry. We don't have an inventory of + * catalogs relcache uses, so just check buffers of most catalogs. + * + * It's better to minimize waits while holding an exclusive buffer lock, so it + * would be nice to broaden this check not to be catalog-specific. However, + * bttextcmp() accesses pg_collation, and non-core opclasses might similarly + * read tables. That is deadlock-free as long as there's no loop in the + * dependency graph: modifying table A may cause an opclass to read table B, + * but it must not cause a read of table A. + */ +void +AssertBufferLocksPermitCatalogRead(void) +{ + ForEachLWLockHeldByMe(AssertNotCatalogBufferLock, NULL); +} + +static void +AssertNotCatalogBufferLock(LWLock *lock, LWLockMode mode, + void *unused_context) +{ + BufferDesc *bufHdr; + BufferTag tag; + Oid relid; + + if (mode != LW_EXCLUSIVE) + return; + + if (!((BufferDescPadded *) lock > BufferDescriptors && + (BufferDescPadded *) lock < BufferDescriptors + NBuffers)) + return; /* not a buffer lock */ + + bufHdr = (BufferDesc *) + ((char *) lock - offsetof(BufferDesc, content_lock)); + tag = bufHdr->tag; + + /* + * This relNode==relid assumption holds until a catalog experiences VACUUM + * FULL or similar. After a command like that, relNode will be in the + * normal (non-catalog) range, and we lose the ability to detect hazardous + * access to that catalog. Calling RelidByRelfilenode() would close that + * gap, but RelidByRelfilenode() might then deadlock with a held lock. + */ + relid = tag.rnode.relNode; + + Assert(!IsCatalogRelationOid(relid)); + /* Shared rels are always catalogs: detect even after VACUUM FULL. */ + Assert(tag.rnode.spcNode != GLOBALTABLESPACE_OID); +} +#endif + + /* * Helper routine to issue warnings when a buffer is unexpectedly pinned */ diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 11f60bb20b1..506dc285c8c 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -1914,6 +1914,21 @@ LWLockReleaseAll(void) } +/* + * ForEachLWLockHeldByMe - run a callback for each held lock + * + * This is meant as debug support only. + */ +void +ForEachLWLockHeldByMe(void (*callback) (LWLock *, LWLockMode, void *), + void *context) +{ + int i; + + for (i = 0; i < num_held_lwlocks; i++) + callback(held_lwlocks[i].lock, held_lwlocks[i].mode, context); +} + /* * LWLockHeldByMe - test whether my process holds a lock in any mode * diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index 3646c979498..7183711416e 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -64,6 +64,7 @@ #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/pg_locale.h" +#include "utils/relcache.h" #include "utils/syscache.h" #ifdef USE_ICU @@ -1265,6 +1266,8 @@ lookup_collation_cache(Oid collation, bool set_flags) Assert(OidIsValid(collation)); Assert(collation != DEFAULT_COLLATION_OID); + AssertCouldGetRelation(); + if (collation_cache == NULL) { /* First time through, initialize the hash table */ diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index ceabeac7e6a..a70a8f7b329 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -937,12 +937,41 @@ RehashCatCache(CatCache *cp) cp->cc_bucket = newbucket; } +/* + * ConditionalCatalogCacheInitializeCache + * + * Call CatalogCacheInitializeCache() if not yet done. + */ +pg_attribute_always_inline +static void +ConditionalCatalogCacheInitializeCache(CatCache *cache) +{ +#ifdef USE_ASSERT_CHECKING + /* + * TypeCacheRelCallback() runs outside transactions and relies on TYPEOID + * for hashing. This isn't ideal. Since lookup_type_cache() both + * registers the callback and searches TYPEOID, reaching trouble likely + * requires OOM at an unlucky moment. + * + * InvalidateAttoptCacheCallback() runs outside transactions and likewise + * relies on ATTNUM. InitPostgres() initializes ATTNUM, so it's reliable. + */ + if (!(cache->id == TYPEOID || cache->id == ATTNUM) || + IsTransactionState()) + AssertCouldGetRelation(); + else + Assert(cache->cc_tupdesc != NULL); +#endif + + if (unlikely(cache->cc_tupdesc == NULL)) + CatalogCacheInitializeCache(cache); +} + /* * CatalogCacheInitializeCache * * This function does final initialization of a catcache: obtain the tuple - * descriptor and set up the hash and equality function links. We assume - * that the relcache entry can be opened at this point! + * descriptor and set up the hash and equality function links. */ #ifdef CACHEDEBUG #define CatalogCacheInitializeCache_DEBUG1 \ @@ -1077,8 +1106,7 @@ CatalogCacheInitializeCache(CatCache *cache) void InitCatCachePhase2(CatCache *cache, bool touch_index) { - if (cache->cc_tupdesc == NULL) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); if (touch_index && cache->id != AMOID && @@ -1257,16 +1285,12 @@ SearchCatCacheInternal(CatCache *cache, dlist_head *bucket; CatCTup *ct; - /* Make sure we're in an xact, even if this ends up being a cache hit */ - Assert(IsTransactionState()); - Assert(cache->cc_nkeys == nkeys); /* * one-time startup overhead for each cache */ - if (unlikely(cache->cc_tupdesc == NULL)) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); #ifdef CATCACHE_STATS cache->cc_searches++; @@ -1545,8 +1569,7 @@ GetCatCacheHashValue(CatCache *cache, /* * one-time startup overhead for each cache */ - if (cache->cc_tupdesc == NULL) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); /* * calculate the hash value @@ -1595,8 +1618,7 @@ SearchCatCacheList(CatCache *cache, /* * one-time startup overhead for each cache */ - if (cache->cc_tupdesc == NULL) - CatalogCacheInitializeCache(cache); + ConditionalCatalogCacheInitializeCache(cache); Assert(nkeys > 0 && nkeys < cache->cc_nkeys); @@ -2219,8 +2241,7 @@ PrepareToInvalidateCacheTuple(Relation relation, continue; /* Just in case cache hasn't finished initialization yet... */ - if (ccp->cc_tupdesc == NULL) - CatalogCacheInitializeCache(ccp); + ConditionalCatalogCacheInitializeCache(ccp); hashvalue = CatalogCacheComputeTupleHashValue(ccp, ccp->cc_nkeys, tuple); dbid = ccp->cc_relisshared ? (Oid) 0 : MyDatabaseId; diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c index 6176dbafbca..0374e473344 100644 --- a/src/backend/utils/cache/inval.c +++ b/src/backend/utils/cache/inval.c @@ -631,7 +631,8 @@ PrepareInvalidationState(void) { TransInvalidationInfo *myInfo; - Assert(IsTransactionState()); + /* PrepareToInvalidateCacheTuple() needs relcache */ + AssertCouldGetRelation(); /* Can't queue transactional message while collecting inplace messages. */ Assert(inplaceInvalInfo == NULL); @@ -700,7 +701,7 @@ PrepareInplaceInvalidationState(void) { InvalidationInfo *myInfo; - Assert(IsTransactionState()); + AssertCouldGetRelation(); /* limit of one inplace update under assembly */ Assert(inplaceInvalInfo == NULL); @@ -863,6 +864,12 @@ InvalidateSystemCaches(void) void AcceptInvalidationMessages(void) { +#ifdef USE_ASSERT_CHECKING + /* message handlers shall access catalogs only during transactions */ + if (IsTransactionState()) + AssertCouldGetRelation(); +#endif + ReceiveSharedInvalidMessages(LocalExecuteInvalidationMessage, InvalidateSystemCaches); @@ -1326,6 +1333,9 @@ CacheInvalidateHeapTupleCommon(Relation relation, Oid databaseId; Oid relationId; + /* PrepareToInvalidateCacheTuple() needs relcache */ + AssertCouldGetRelation(); + /* Do nothing during bootstrap */ if (IsBootstrapProcessingMode()) return; diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 658c249b23a..264b32270bf 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -2028,6 +2028,23 @@ formrdesc(const char *relationName, Oid relationReltype, relation->rd_isvalid = true; } +#ifdef USE_ASSERT_CHECKING +/* + * AssertCouldGetRelation + * + * Check safety of calling RelationIdGetRelation(). + * + * In code that reads catalogs in the event of a cache miss, call this + * before checking the cache. + */ +void +AssertCouldGetRelation(void) +{ + Assert(IsTransactionState()); + AssertBufferLocksPermitCatalogRead(); +} +#endif + /* ---------------------------------------------------------------- * Relation Descriptor Lookup Interface @@ -2055,8 +2072,7 @@ RelationIdGetRelation(Oid relationId) { Relation rd; - /* Make sure we're in an xact, even if this ends up being a cache hit */ - Assert(IsTransactionState()); + AssertCouldGetRelation(); /* * first try to find reldesc in the cache diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index fc279b3125b..39e5fcaf5a0 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -39,6 +39,7 @@ #include "mb/pg_wchar.h" #include "utils/builtins.h" #include "utils/memutils.h" +#include "utils/relcache.h" #include "utils/syscache.h" /* @@ -310,7 +311,7 @@ InitializeClientEncoding(void) { Oid utf8_to_server_proc; - Assert(IsTransactionState()); + AssertCouldGetRelation(); utf8_to_server_proc = FindDefaultConversionProc(PG_UTF8, current_server_encoding); diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h index 58391406f65..8e93d315a67 100644 --- a/src/include/storage/bufmgr.h +++ b/src/include/storage/bufmgr.h @@ -196,6 +196,9 @@ extern Buffer ReleaseAndReadBuffer(Buffer buffer, Relation relation, extern void InitBufferPool(void); extern void InitBufferPoolAccess(void); extern void AtEOXact_Buffers(bool isCommit); +#ifdef USE_ASSERT_CHECKING +extern void AssertBufferLocksPermitCatalogRead(void); +#endif extern void PrintBufferLeakWarning(Buffer buffer); extern void CheckPointBuffers(int flags); extern BlockNumber BufferGetBlockNumber(Buffer buffer); diff --git a/src/include/storage/lwlock.h b/src/include/storage/lwlock.h index d88fa4b4ad9..5998fdc88e8 100644 --- a/src/include/storage/lwlock.h +++ b/src/include/storage/lwlock.h @@ -127,6 +127,8 @@ extern bool LWLockAcquireOrWait(LWLock *lock, LWLockMode mode); extern void LWLockRelease(LWLock *lock); extern void LWLockReleaseClearVar(LWLock *lock, uint64 *valptr, uint64 val); extern void LWLockReleaseAll(void); +extern void ForEachLWLockHeldByMe(void (*callback) (LWLock *, LWLockMode, void *), + void *context); extern bool LWLockHeldByMe(LWLock *lock); extern bool LWLockAnyHeldByMe(LWLock *lock, int nlocks, size_t stride); extern bool LWLockHeldByMeInMode(LWLock *lock, LWLockMode mode); diff --git a/src/include/utils/relcache.h b/src/include/utils/relcache.h index c93d8654bb9..9788ece3572 100644 --- a/src/include/utils/relcache.h +++ b/src/include/utils/relcache.h @@ -36,6 +36,14 @@ typedef Relation *RelationPtr; /* * Routines to open (lookup) and close a relcache entry */ +#ifdef USE_ASSERT_CHECKING +extern void AssertCouldGetRelation(void); +#else +static inline void +AssertCouldGetRelation(void) +{ +} +#endif extern Relation RelationIdGetRelation(Oid relationId); extern void RelationClose(Relation relation); From d88f4535d29f8d5cb50fece06de630984ed78920 Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Wed, 17 Dec 2025 09:48:56 -0800 Subject: [PATCH 40/94] Update .abi-compliance-history for PrepareToInvalidateCacheTuple(). Commit 0f69beddea113dd1d6c5b6f6d82df577ef3c21f2 (v17) anticipated this: [C] 'function void PrepareToInvalidateCacheTuple(Relation, HeapTuple, HeapTuple, void (int, typedef uint32, typedef Oid)*)' has some sub-type changes: parameter 5 of type 'void*' was added parameter 4 of type 'void (int, typedef uint32, typedef Oid)*' changed: pointer type changed from: 'void (int, typedef uint32, typedef Oid)*' to: 'void (int, typedef uint32, typedef Oid, void*)*' Discussion: https://postgr.es/m/20240523000548.58.nmisch@google.com Backpatch-through: 14-17 --- .abi-compliance-history | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.abi-compliance-history b/.abi-compliance-history index b71acb8e908..e889ce0267d 100644 --- a/.abi-compliance-history +++ b/.abi-compliance-history @@ -18,6 +18,14 @@ # Be sure to replace "" with details of your change and # why it is deemed acceptable. +05d605b6c69f0276ae091ced1ed9082963052550 +# +# For inplace update, send nontransactional invalidations. +# 2025-12-16 16:13:55 -0800 +# +# This changed PrepareToInvalidateCacheTuple() parameters. PGXN contained no +# calls to that function. + 2393d374ae9c0bc8327adc80fe4490edb05be167 # # Check for CREATE privilege on the schema in CREATE STATISTICS. From 460d97020ac1955a293fe79d2789ae8f35ba69cf Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 18 Dec 2025 15:08:48 +0200 Subject: [PATCH 41/94] Do not emit WAL for unlogged BRIN indexes Operations on unlogged relations should not be WAL-logged. The brin_initialize_empty_new_buffer() function didn't get the memo. The function is only called when a concurrent update to a brin page uses up space that we're just about to insert to, which makes it pretty hard to hit. If you do manage to hit it, a full-page WAL record is erroneously emitted for the unlogged index. If you then crash, crash recovery will fail on that record with an error like this: FATAL: could not create file "base/5/32819": File exists Author: Kirill Reshke Discussion: https://www.postgresql.org/message-id/CALdSSPhpZXVFnWjwEBNcySx_vXtXHwB2g99gE6rK0uRJm-3GgQ@mail.gmail.com Backpatch-through: 14 --- src/backend/access/brin/brin_pageops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/access/brin/brin_pageops.c b/src/backend/access/brin/brin_pageops.c index f17aad51b63..a2a5455a04c 100644 --- a/src/backend/access/brin/brin_pageops.c +++ b/src/backend/access/brin/brin_pageops.c @@ -890,7 +890,11 @@ brin_initialize_empty_new_buffer(Relation idxrel, Buffer buffer) page = BufferGetPage(buffer); brin_page_init(page, BRIN_PAGETYPE_REGULAR); MarkBufferDirty(buffer); - log_newpage_buffer(buffer, true); + + /* XLOG stuff */ + if (RelationNeedsWAL(idxrel)) + log_newpage_buffer(buffer, true); + END_CRIT_SECTION(); /* From 0fc2f533a96ca843474995bc9dfe9392acbc2df2 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Fri, 19 Dec 2025 12:08:20 +0900 Subject: [PATCH 42/94] Add guard to prevent recursive memory context logging. Previously, if memory context logging was triggered repeatedly and rapidly while a previous request was still being processed, it could result in recursive calls to ProcessLogMemoryContextInterrupt(). This could lead to infinite recursion and potentially crash the process. This commit adds a guard to prevent such recursion. If ProcessLogMemoryContextInterrupt() is already in progress and logging memory contexts, subsequent calls will exit immediately, avoiding unintended recursive calls. While this scenario is unlikely in practice, it's not impossible. This change adds a safety check to prevent such failures. Back-patch to v14, where memory context logging was introduced. Reported-by: Robert Haas Author: Fujii Masao Reviewed-by: Atsushi Torikoshi Reviewed-by: Robert Haas Reviewed-by: Artem Gavrilov Discussion: https://postgr.es/m/CA+TgmoZMrv32tbNRrFTvF9iWLnTGqbhYSLVcrHGuwZvCtph0NA@mail.gmail.com Backpatch-through: 14 --- src/backend/utils/mmgr/mcxt.c | 57 ++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/src/backend/utils/mmgr/mcxt.c b/src/backend/utils/mmgr/mcxt.c index e12be1b9bd8..339a52891ce 100644 --- a/src/backend/utils/mmgr/mcxt.c +++ b/src/backend/utils/mmgr/mcxt.c @@ -56,6 +56,9 @@ MemoryContext CurTransactionContext = NULL; /* This is a transient link to the active portal's memory context: */ MemoryContext PortalContext = NULL; +/* Is memory context logging currently in progress? */ +static bool LogMemoryContextInProgress = false; + static void MemoryContextCallResetCallbacks(MemoryContext context); static void MemoryContextStatsInternal(MemoryContext context, int level, bool print, int max_children, @@ -1043,25 +1046,45 @@ ProcessLogMemoryContextInterrupt(void) LogMemoryContextPending = false; /* - * Use LOG_SERVER_ONLY to prevent this message from being sent to the - * connected client. + * Exit immediately if memory context logging is already in progress. This + * prevents recursive calls, which could occur if logging is requested + * repeatedly and rapidly, potentially leading to infinite recursion and a + * crash. */ - ereport(LOG_SERVER_ONLY, - (errhidestmt(true), - errhidecontext(true), - errmsg("logging memory contexts of PID %d", MyProcPid))); + if (LogMemoryContextInProgress) + return; + LogMemoryContextInProgress = true; - /* - * When a backend process is consuming huge memory, logging all its memory - * contexts might overrun available disk space. To prevent this, we limit - * the number of child contexts to log per parent to 100. - * - * As with MemoryContextStats(), we suppose that practical cases where the - * dump gets long will typically be huge numbers of siblings under the - * same parent context; while the additional debugging value from seeing - * details about individual siblings beyond 100 will not be large. - */ - MemoryContextStatsDetail(TopMemoryContext, 100, false); + PG_TRY(); + { + /* + * Use LOG_SERVER_ONLY to prevent this message from being sent to the + * connected client. + */ + ereport(LOG_SERVER_ONLY, + (errhidestmt(true), + errhidecontext(true), + errmsg("logging memory contexts of PID %d", MyProcPid))); + + /* + * When a backend process is consuming huge memory, logging all its + * memory contexts might overrun available disk space. To prevent + * this, we limit the number of child contexts to log per parent to + * 100. + * + * As with MemoryContextStats(), we suppose that practical cases where + * the dump gets long will typically be huge numbers of siblings under + * the same parent context; while the additional debugging value from + * seeing details about individual siblings beyond 100 will not be + * large. + */ + MemoryContextStatsDetail(TopMemoryContext, 100, false); + } + PG_FINALLY(); + { + LogMemoryContextInProgress = false; + } + PG_END_TRY(); } void * From 1cf4f781a5198ecbeb833b1bb8ad496ee4ca088b Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Fri, 6 Dec 2024 12:34:33 +1300 Subject: [PATCH 43/94] Fix printf format string warning on MinGW. This is a back-patch of 1319997d to branches 14-17 to fix an old warning about a printf type mismatch on MinGW, in anticipation of a potential expansion of the scope of CI's CompilerWarnings checks. Though CI began in 15, BF animal fairwren also shows the warning in 14, so we might as well fix that too. Original commit message (except for new "Backpatch-through" tag): Commit 517bf2d91 changed a printf format string to placate MinGW, which at the time warned about "%lld". Current MinGW is now warning about the replacement "%I64d". Reverting the change clears the warning on the MinGW CI task, and hopefully it will clear it on build farm animal fairywren too. Backpatch-through: 14-17 Reviewed-by: Tom Lane Reported-by: "Hayato Kuroda (Fujitsu)" Discussion: https://postgr.es/m/TYAPR01MB5866A71B744BE01B3BF71791F5AEA%40TYAPR01MB5866.jpnprd01.prod.outlook.com --- src/interfaces/ecpg/test/expected/sql-sqlda.c | 137 +++--- .../ecpg/test/expected/sql-sqlda.stderr | 450 +++++++++--------- src/interfaces/ecpg/test/sql/sqlda.pgc | 9 +- 3 files changed, 293 insertions(+), 303 deletions(-) diff --git a/src/interfaces/ecpg/test/expected/sql-sqlda.c b/src/interfaces/ecpg/test/expected/sql-sqlda.c index d474bd38bf6..ff881e10c1a 100644 --- a/src/interfaces/ecpg/test/expected/sql-sqlda.c +++ b/src/interfaces/ecpg/test/expected/sql-sqlda.c @@ -155,13 +155,8 @@ dump_sqlda(sqlda_t *sqlda) printf("name sqlda descriptor: '%s' value %ld\n", sqlda->sqlvar[i].sqlname.data, *(long int *)sqlda->sqlvar[i].sqldata); break; case ECPGt_long_long: - printf( -#ifdef _WIN32 - "name sqlda descriptor: '%s' value %I64d\n", -#else - "name sqlda descriptor: '%s' value %lld\n", -#endif - sqlda->sqlvar[i].sqlname.data, *(long long int *)sqlda->sqlvar[i].sqldata); + printf("name sqlda descriptor: '%s' value %lld\n", + sqlda->sqlvar[i].sqlname.data, *(long long int *)sqlda->sqlvar[i].sqldata); break; case ECPGt_double: printf("name sqlda descriptor: '%s' value %f\n", sqlda->sqlvar[i].sqlname.data, *(double *)sqlda->sqlvar[i].sqldata); @@ -188,19 +183,19 @@ main (void) -#line 71 "sqlda.pgc" +#line 66 "sqlda.pgc" char * stmt1 = "SELECT * FROM t1" ; -#line 72 "sqlda.pgc" +#line 67 "sqlda.pgc" char * stmt2 = "SELECT * FROM t1 WHERE id = ?" ; -#line 73 "sqlda.pgc" +#line 68 "sqlda.pgc" int rec ; -#line 74 "sqlda.pgc" +#line 69 "sqlda.pgc" int id ; /* exec sql end declare section */ -#line 75 "sqlda.pgc" +#line 70 "sqlda.pgc" char msg[128]; @@ -209,42 +204,42 @@ main (void) strcpy(msg, "connect"); { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , "regress1", 0); -#line 82 "sqlda.pgc" +#line 77 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 82 "sqlda.pgc" +#line 77 "sqlda.pgc" strcpy(msg, "set"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "set datestyle to iso", ECPGt_EOIT, ECPGt_EORT); -#line 85 "sqlda.pgc" +#line 80 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 85 "sqlda.pgc" +#line 80 "sqlda.pgc" strcpy(msg, "create"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "create table t1 ( id integer , t text , d1 numeric , d2 float8 , c char ( 10 ) , big bigint )", ECPGt_EOIT, ECPGt_EORT); -#line 95 "sqlda.pgc" +#line 90 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 95 "sqlda.pgc" +#line 90 "sqlda.pgc" strcpy(msg, "insert"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "insert into t1 values ( 1 , 'a' , 1.0 , 1 , 'a' , 1111111111111111111 ) , ( 2 , null , null , null , null , null ) , ( 3 , 'c' , 0.0 , 3 , 'c' , 3333333333333333333 ) , ( 4 , 'd' , 'NaN' , 4 , 'd' , 4444444444444444444 ) , ( 5 , 'e' , 0.001234 , 5 , 'e' , 5555555555555555555 )", ECPGt_EOIT, ECPGt_EORT); -#line 103 "sqlda.pgc" +#line 98 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 103 "sqlda.pgc" +#line 98 "sqlda.pgc" strcpy(msg, "commit"); { ECPGtrans(__LINE__, NULL, "commit"); -#line 106 "sqlda.pgc" +#line 101 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 106 "sqlda.pgc" +#line 101 "sqlda.pgc" /* SQLDA test for getting all records from a table */ @@ -253,29 +248,29 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "prepare"); { ECPGprepare(__LINE__, NULL, 0, "st_id1", stmt1); -#line 113 "sqlda.pgc" +#line 108 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 113 "sqlda.pgc" +#line 108 "sqlda.pgc" strcpy(msg, "declare"); /* declare mycur1 cursor for $1 */ -#line 116 "sqlda.pgc" +#line 111 "sqlda.pgc" strcpy(msg, "open"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare mycur1 cursor for $1", ECPGt_char_variable,(ECPGprepared_statement(NULL, "st_id1", __LINE__)),(long)1,(long)1,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); -#line 119 "sqlda.pgc" +#line 114 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 119 "sqlda.pgc" +#line 114 "sqlda.pgc" /* exec sql whenever not found break ; */ -#line 121 "sqlda.pgc" +#line 116 "sqlda.pgc" rec = 0; @@ -285,13 +280,13 @@ if (sqlca.sqlcode < 0) exit (1);} { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch 1 from mycur1", ECPGt_EOIT, ECPGt_sqlda, &outp_sqlda, 0L, 0L, 0L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 127 "sqlda.pgc" +#line 122 "sqlda.pgc" if (sqlca.sqlcode == ECPG_NOT_FOUND) break; -#line 127 "sqlda.pgc" +#line 122 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 127 "sqlda.pgc" +#line 122 "sqlda.pgc" printf("FETCH RECORD %d\n", ++rec); @@ -299,23 +294,23 @@ if (sqlca.sqlcode < 0) exit (1);} } /* exec sql whenever not found continue ; */ -#line 133 "sqlda.pgc" +#line 128 "sqlda.pgc" strcpy(msg, "close"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close mycur1", ECPGt_EOIT, ECPGt_EORT); -#line 136 "sqlda.pgc" +#line 131 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 136 "sqlda.pgc" +#line 131 "sqlda.pgc" strcpy(msg, "deallocate"); { ECPGdeallocate(__LINE__, 0, NULL, "st_id1"); -#line 139 "sqlda.pgc" +#line 134 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 139 "sqlda.pgc" +#line 134 "sqlda.pgc" free(outp_sqlda); @@ -326,35 +321,35 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "prepare"); { ECPGprepare(__LINE__, NULL, 0, "st_id2", stmt1); -#line 148 "sqlda.pgc" +#line 143 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 148 "sqlda.pgc" +#line 143 "sqlda.pgc" strcpy(msg, "declare"); /* declare mycur2 cursor for $1 */ -#line 151 "sqlda.pgc" +#line 146 "sqlda.pgc" strcpy(msg, "open"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "declare mycur2 cursor for $1", ECPGt_char_variable,(ECPGprepared_statement(NULL, "st_id2", __LINE__)),(long)1,(long)1,(1)*sizeof(char), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_EORT); -#line 154 "sqlda.pgc" +#line 149 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 154 "sqlda.pgc" +#line 149 "sqlda.pgc" strcpy(msg, "fetch"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "fetch all from mycur2", ECPGt_EOIT, ECPGt_sqlda, &outp_sqlda, 0L, 0L, 0L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 157 "sqlda.pgc" +#line 152 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 157 "sqlda.pgc" +#line 152 "sqlda.pgc" outp_sqlda1 = outp_sqlda; @@ -372,18 +367,18 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "close"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "close mycur2", ECPGt_EOIT, ECPGt_EORT); -#line 173 "sqlda.pgc" +#line 168 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 173 "sqlda.pgc" +#line 168 "sqlda.pgc" strcpy(msg, "deallocate"); { ECPGdeallocate(__LINE__, 0, NULL, "st_id2"); -#line 176 "sqlda.pgc" +#line 171 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 176 "sqlda.pgc" +#line 171 "sqlda.pgc" /* SQLDA test for getting one record using an input descriptor */ @@ -407,10 +402,10 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "prepare"); { ECPGprepare(__LINE__, NULL, 0, "st_id3", stmt2); -#line 198 "sqlda.pgc" +#line 193 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 198 "sqlda.pgc" +#line 193 "sqlda.pgc" strcpy(msg, "execute"); @@ -419,20 +414,20 @@ if (sqlca.sqlcode < 0) exit (1);} ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_sqlda, &outp_sqlda, 0L, 0L, 0L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 201 "sqlda.pgc" +#line 196 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 201 "sqlda.pgc" +#line 196 "sqlda.pgc" dump_sqlda(outp_sqlda); strcpy(msg, "deallocate"); { ECPGdeallocate(__LINE__, 0, NULL, "st_id3"); -#line 206 "sqlda.pgc" +#line 201 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 206 "sqlda.pgc" +#line 201 "sqlda.pgc" free(inp_sqlda); @@ -443,10 +438,10 @@ if (sqlca.sqlcode < 0) exit (1);} */ { ECPGconnect(__LINE__, 0, "ecpg1_regression" , NULL, NULL , "con2", 0); -#line 215 "sqlda.pgc" +#line 210 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 215 "sqlda.pgc" +#line 210 "sqlda.pgc" /* @@ -468,10 +463,10 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "prepare"); { ECPGprepare(__LINE__, "con2", 0, "st_id4", stmt2); -#line 235 "sqlda.pgc" +#line 230 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 235 "sqlda.pgc" +#line 230 "sqlda.pgc" strcpy(msg, "execute"); @@ -480,28 +475,28 @@ if (sqlca.sqlcode < 0) exit (1);} ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_sqlda, &outp_sqlda, 0L, 0L, 0L, ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); -#line 238 "sqlda.pgc" +#line 233 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 238 "sqlda.pgc" +#line 233 "sqlda.pgc" dump_sqlda(outp_sqlda); strcpy(msg, "commit"); { ECPGtrans(__LINE__, "con2", "commit"); -#line 243 "sqlda.pgc" +#line 238 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 243 "sqlda.pgc" +#line 238 "sqlda.pgc" strcpy(msg, "deallocate"); { ECPGdeallocate(__LINE__, 0, NULL, "st_id4"); -#line 246 "sqlda.pgc" +#line 241 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 246 "sqlda.pgc" +#line 241 "sqlda.pgc" free(inp_sqlda); @@ -509,36 +504,36 @@ if (sqlca.sqlcode < 0) exit (1);} strcpy(msg, "disconnect"); { ECPGdisconnect(__LINE__, "con2"); -#line 252 "sqlda.pgc" +#line 247 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 252 "sqlda.pgc" +#line 247 "sqlda.pgc" /* End test */ strcpy(msg, "drop"); { ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "drop table t1", ECPGt_EOIT, ECPGt_EORT); -#line 257 "sqlda.pgc" +#line 252 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 257 "sqlda.pgc" +#line 252 "sqlda.pgc" strcpy(msg, "commit"); { ECPGtrans(__LINE__, NULL, "commit"); -#line 260 "sqlda.pgc" +#line 255 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 260 "sqlda.pgc" +#line 255 "sqlda.pgc" strcpy(msg, "disconnect"); { ECPGdisconnect(__LINE__, "CURRENT"); -#line 263 "sqlda.pgc" +#line 258 "sqlda.pgc" if (sqlca.sqlcode < 0) exit (1);} -#line 263 "sqlda.pgc" +#line 258 "sqlda.pgc" return 0; diff --git a/src/interfaces/ecpg/test/expected/sql-sqlda.stderr b/src/interfaces/ecpg/test/expected/sql-sqlda.stderr index dfe6b13055f..51ef236a50e 100644 --- a/src/interfaces/ecpg/test/expected/sql-sqlda.stderr +++ b/src/interfaces/ecpg/test/expected/sql-sqlda.stderr @@ -2,459 +2,459 @@ [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ECPGconnect: opening database ecpg1_regression on port [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 85: query: set datestyle to iso; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 80: query: set datestyle to iso; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 85: using PQexec +[NO_PID]: ecpg_execute on line 80: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 85: OK: SET +[NO_PID]: ecpg_process_output on line 80: OK: SET [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 88: query: create table t1 ( id integer , t text , d1 numeric , d2 float8 , c char ( 10 ) , big bigint ); with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 83: query: create table t1 ( id integer , t text , d1 numeric , d2 float8 , c char ( 10 ) , big bigint ); with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 88: using PQexec +[NO_PID]: ecpg_execute on line 83: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 88: OK: CREATE TABLE +[NO_PID]: ecpg_process_output on line 83: OK: CREATE TABLE [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 98: query: insert into t1 values ( 1 , 'a' , 1.0 , 1 , 'a' , 1111111111111111111 ) , ( 2 , null , null , null , null , null ) , ( 3 , 'c' , 0.0 , 3 , 'c' , 3333333333333333333 ) , ( 4 , 'd' , 'NaN' , 4 , 'd' , 4444444444444444444 ) , ( 5 , 'e' , 0.001234 , 5 , 'e' , 5555555555555555555 ); with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 93: query: insert into t1 values ( 1 , 'a' , 1.0 , 1 , 'a' , 1111111111111111111 ) , ( 2 , null , null , null , null , null ) , ( 3 , 'c' , 0.0 , 3 , 'c' , 3333333333333333333 ) , ( 4 , 'd' , 'NaN' , 4 , 'd' , 4444444444444444444 ) , ( 5 , 'e' , 0.001234 , 5 , 'e' , 5555555555555555555 ); with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 98: using PQexec +[NO_PID]: ecpg_execute on line 93: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 98: OK: INSERT 0 5 +[NO_PID]: ecpg_process_output on line 93: OK: INSERT 0 5 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ECPGtrans on line 106: action "commit"; connection "regress1" +[NO_PID]: ECPGtrans on line 101: action "commit"; connection "regress1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: prepare_common on line 113: name st_id1; query: "SELECT * FROM t1" +[NO_PID]: prepare_common on line 108: name st_id1; query: "SELECT * FROM t1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 119: query: declare mycur1 cursor for SELECT * FROM t1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 114: query: declare mycur1 cursor for SELECT * FROM t1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 119: using PQexec +[NO_PID]: ecpg_execute on line 114: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 119: OK: DECLARE CURSOR +[NO_PID]: ecpg_process_output on line 114: OK: DECLARE CURSOR [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 122: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: using PQexec +[NO_PID]: ecpg_execute on line 122: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 122: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 127 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 122 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: new sqlda was built +[NO_PID]: ecpg_process_output on line 122: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 1 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 1 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: a offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: a offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 1 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 1 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: a offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: a offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 1111111111111111111 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 1111111111111111111 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 122: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 122: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: using PQexec +[NO_PID]: ecpg_execute on line 122: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 122: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 127 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 122 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: new sqlda was built +[NO_PID]: ecpg_process_output on line 122: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 2 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 2 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 1 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 1 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 2 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 2 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 3 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 3 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 4 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 4 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 5 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 5 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 122: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 122: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: using PQexec +[NO_PID]: ecpg_execute on line 122: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 122: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 127 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 122 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: new sqlda was built +[NO_PID]: ecpg_process_output on line 122: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 3 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 3 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: c offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: c offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 3 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 3 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: c offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: c offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 3333333333333333333 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 3333333333333333333 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 122: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 122: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: using PQexec +[NO_PID]: ecpg_execute on line 122: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 122: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 127 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 122 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: new sqlda was built +[NO_PID]: ecpg_process_output on line 122: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 4444444444444444444 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 4444444444444444444 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 122: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 122: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: using PQexec +[NO_PID]: ecpg_execute on line 122: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 122: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 127 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 122 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: new sqlda was built +[NO_PID]: ecpg_process_output on line 122: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 5 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 5 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: e offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: e offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 5 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 5 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: e offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: e offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 127 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 122 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 127: RESULT: 5555555555555555555 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 122: RESULT: 5555555555555555555 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 122: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 122: query: fetch 1 from mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 127: using PQexec +[NO_PID]: ecpg_execute on line 122: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 127: correctly got 0 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 122: correctly got 0 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: raising sqlcode 100 on line 127: no data found on line 127 +[NO_PID]: raising sqlcode 100 on line 122: no data found on line 122 [NO_PID]: sqlca: code: 100, state: 02000 -[NO_PID]: ecpg_execute on line 136: query: close mycur1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 131: query: close mycur1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 136: using PQexec +[NO_PID]: ecpg_execute on line 131: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 136: OK: CLOSE CURSOR +[NO_PID]: ecpg_process_output on line 131: OK: CLOSE CURSOR [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: deallocate_one on line 139: name st_id1 +[NO_PID]: deallocate_one on line 134: name st_id1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: prepare_common on line 148: name st_id2; query: "SELECT * FROM t1" +[NO_PID]: prepare_common on line 143: name st_id2; query: "SELECT * FROM t1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 154: query: declare mycur2 cursor for SELECT * FROM t1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 149: query: declare mycur2 cursor for SELECT * FROM t1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 154: using PQexec +[NO_PID]: ecpg_execute on line 149: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 154: OK: DECLARE CURSOR +[NO_PID]: ecpg_process_output on line 149: OK: DECLARE CURSOR [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 157: query: fetch all from mycur2; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 152: query: fetch all from mycur2; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 157: using PQexec +[NO_PID]: ecpg_execute on line 152: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: correctly got 5 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 152: correctly got 5 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 157 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 152 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: new sqlda was built +[NO_PID]: ecpg_process_output on line 152: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 4 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 4 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 5 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 5 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 4 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 4 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: e offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: e offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 4 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 4 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 4 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 4 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 5 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 5 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 4 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 4 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: e offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: e offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 4 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 4 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 5555555555555555555 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 5555555555555555555 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 152: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 157 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 152 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: new sqlda was built +[NO_PID]: ecpg_process_output on line 152: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 3 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 3 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 3 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 3 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 3 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 3 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 3 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 3 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 3 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 3 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 3 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 3 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 4444444444444444444 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 4444444444444444444 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 152: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 157 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 152 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: new sqlda was built +[NO_PID]: ecpg_process_output on line 152: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 2 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 2 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 3 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 3 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 2 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 2 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: c offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: c offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 2 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 2 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 2 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 2 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 3 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 3 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 2 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 2 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: c offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: c offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 2 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 2 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 3333333333333333333 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 3333333333333333333 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 152: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 157 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 152 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: new sqlda was built +[NO_PID]: ecpg_process_output on line 152: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 1 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 1 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 2 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 2 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 1 col 1 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 1 col 1 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 1 col 2 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 1 col 2 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 1 col 3 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 1 col 3 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 1 col 4 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 1 col 4 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 1 col 5 IS NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 1 col 5 IS NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 152: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 157 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 152 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: new sqlda was built +[NO_PID]: ecpg_process_output on line 152: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 1 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 1 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: a offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: a offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 1 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 1 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: a offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: a offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 157 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 152 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 157: RESULT: 1111111111111111111 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 152: RESULT: 1111111111111111111 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 157: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 152: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 173: query: close mycur2; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 168: query: close mycur2; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 173: using PQexec +[NO_PID]: ecpg_execute on line 168: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 173: OK: CLOSE CURSOR +[NO_PID]: ecpg_process_output on line 168: OK: CLOSE CURSOR [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: deallocate_one on line 176: name st_id2 +[NO_PID]: deallocate_one on line 171: name st_id2 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: prepare_common on line 198: name st_id3; query: "SELECT * FROM t1 WHERE id = $1" +[NO_PID]: prepare_common on line 193: name st_id3; query: "SELECT * FROM t1 WHERE id = $1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 201: query: SELECT * FROM t1 WHERE id = $1; with 1 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 196: query: SELECT * FROM t1 WHERE id = $1; with 1 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 201: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1" +[NO_PID]: ecpg_execute on line 196: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_free_params on line 201: parameter 1 = 4 +[NO_PID]: ecpg_free_params on line 196: parameter 1 = 4 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 201: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 196: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 201 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 196 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 201: new sqlda was built +[NO_PID]: ecpg_process_output on line 196: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 201 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 196 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 201: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 196: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 201 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 196 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 201: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 196: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 201 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 196 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 201 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 196 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 201: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 196: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 201 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 196 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 201: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 196: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 201 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 196 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 201: RESULT: 4444444444444444444 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 196: RESULT: 4444444444444444444 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 201: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 196: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: deallocate_one on line 206: name st_id3 +[NO_PID]: deallocate_one on line 201: name st_id3 [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ECPGconnect: opening database ecpg1_regression on port [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: prepare_common on line 235: name st_id4; query: "SELECT * FROM t1 WHERE id = $1" +[NO_PID]: prepare_common on line 230: name st_id4; query: "SELECT * FROM t1 WHERE id = $1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 238: query: SELECT * FROM t1 WHERE id = $1; with 1 parameter(s) on connection con2 +[NO_PID]: ecpg_execute on line 233: query: SELECT * FROM t1 WHERE id = $1; with 1 parameter(s) on connection con2 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 238: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1" +[NO_PID]: ecpg_execute on line 233: using PQexecPrepared for "SELECT * FROM t1 WHERE id = $1" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_free_params on line 238: parameter 1 = 4 +[NO_PID]: ecpg_free_params on line 233: parameter 1 = 4 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 238: correctly got 1 tuples with 6 fields +[NO_PID]: ecpg_process_output on line 233: correctly got 1 tuples with 6 fields [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_build_native_sqlda on line 238 sqld = 6 +[NO_PID]: ecpg_build_native_sqlda on line 233 sqld = 6 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 238: new sqlda was built +[NO_PID]: ecpg_process_output on line 233: new sqlda was built [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 238 row 0 col 0 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 233 row 0 col 0 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 238: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 233: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 238 row 0 col 1 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 233 row 0 col 1 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 238: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 233: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 238 row 0 col 2 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 233 row 0 col 2 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 238 row 0 col 3 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 233 row 0 col 3 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 238: RESULT: 4 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 233: RESULT: 4 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 238 row 0 col 4 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 233 row 0 col 4 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 238: RESULT: d offset: -1; array: no +[NO_PID]: ecpg_get_data on line 233: RESULT: d offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_set_native_sqlda on line 238 row 0 col 5 IS NOT NULL +[NO_PID]: ecpg_set_native_sqlda on line 233 row 0 col 5 IS NOT NULL [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_get_data on line 238: RESULT: 4444444444444444444 offset: -1; array: no +[NO_PID]: ecpg_get_data on line 233: RESULT: 4444444444444444444 offset: -1; array: no [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 238: putting result (1 tuple 6 fields) into sqlda descriptor +[NO_PID]: ecpg_process_output on line 233: putting result (1 tuple 6 fields) into sqlda descriptor [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ECPGtrans on line 243: action "commit"; connection "con2" +[NO_PID]: ECPGtrans on line 238: action "commit"; connection "con2" [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: deallocate_one on line 246: name st_id4 +[NO_PID]: deallocate_one on line 241: name st_id4 [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_finish: connection con2 closed [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 257: query: drop table t1; with 0 parameter(s) on connection regress1 +[NO_PID]: ecpg_execute on line 252: query: drop table t1; with 0 parameter(s) on connection regress1 [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_execute on line 257: using PQexec +[NO_PID]: ecpg_execute on line 252: using PQexec [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ecpg_process_output on line 257: OK: DROP TABLE +[NO_PID]: ecpg_process_output on line 252: OK: DROP TABLE [NO_PID]: sqlca: code: 0, state: 00000 -[NO_PID]: ECPGtrans on line 260: action "commit"; connection "regress1" +[NO_PID]: ECPGtrans on line 255: action "commit"; connection "regress1" [NO_PID]: sqlca: code: 0, state: 00000 [NO_PID]: ecpg_finish: connection regress1 closed [NO_PID]: sqlca: code: 0, state: 00000 diff --git a/src/interfaces/ecpg/test/sql/sqlda.pgc b/src/interfaces/ecpg/test/sql/sqlda.pgc index e551385eaa4..f7aa296ebf9 100644 --- a/src/interfaces/ecpg/test/sql/sqlda.pgc +++ b/src/interfaces/ecpg/test/sql/sqlda.pgc @@ -40,13 +40,8 @@ dump_sqlda(sqlda_t *sqlda) printf("name sqlda descriptor: '%s' value %ld\n", sqlda->sqlvar[i].sqlname.data, *(long int *)sqlda->sqlvar[i].sqldata); break; case ECPGt_long_long: - printf( -#ifdef _WIN32 - "name sqlda descriptor: '%s' value %I64d\n", -#else - "name sqlda descriptor: '%s' value %lld\n", -#endif - sqlda->sqlvar[i].sqlname.data, *(long long int *)sqlda->sqlvar[i].sqldata); + printf("name sqlda descriptor: '%s' value %lld\n", + sqlda->sqlvar[i].sqlname.data, *(long long int *)sqlda->sqlvar[i].sqldata); break; case ECPGt_double: printf("name sqlda descriptor: '%s' value %f\n", sqlda->sqlvar[i].sqlname.data, *(double *)sqlda->sqlvar[i].sqldata); From 90d1beef62deaa2ad21edd8f21470f8756ff4b57 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 23 Dec 2025 14:32:24 +0900 Subject: [PATCH 44/94] Fix orphaned origin in shared memory after DROP SUBSCRIPTION Since ce0fdbfe9722, a replication slot and an origin are created by each tablesync worker, whose information is stored in both a catalog and shared memory (once the origin is set up in the latter case). The transaction where the origin is created is the same as the one that runs the initial COPY, with the catalog state of the origin becoming visible for other sessions only once the COPY transaction has committed. The catalog state is coupled with a state in shared memory, initialized at the same time as the origin created in the catalogs. Note that the transaction doing the initial data sync can take a long time, time that depends on the amount of data to transfer from a publication node to its subscriber node. Now, when a DROP SUBSCRIPTION is executed, all its workers are stopped with the origins removed. The removal of each origin relies on a catalog lookup. A worker still running the initial COPY would fail its transaction, with the catalog state of the origin rolled back while the shared memory state remains around. The session running the DROP SUBSCRIPTION should be in charge of cleaning up the catalog and the shared memory state, but as there is no data in the catalogs the shared memory state is not removed. This issue would leave orphaned origin data in shared memory, leading to a confusing state as it would still show up in pg_replication_origin_status. Note that this shared memory data is sticky, being flushed on disk in replorigin_checkpoint at checkpoint. This prevents other origins from reusing a slot position in the shared memory data. To address this problem, the commit moves the creation of the origin at the end of the transaction that precedes the one executing the initial COPY, making the origin immediately visible in the catalogs for other sessions, giving DROP SUBSCRIPTION a way to know about it. A different solution would have been to clean up the shared memory state using an abort callback within the tablesync worker. The solution of this commit is more consistent with the apply worker that creates an origin in a short transaction. A test is added in the subscription test 004_sync.pl, which was able to display the problem. The test fails when this commit is reverted. Reported-by: Tenglong Gu Reported-by: Daisuke Higuchi Analyzed-by: Michael Paquier Author: Hou Zhijie Reviewed-by: Amit Kapila Reviewed-by: Masahiko Sawada Discussion: https://postgr.es/m/aUTekQTg4OYnw-Co@paquier.xyz Backpatch-through: 14 --- src/backend/commands/subscriptioncmds.c | 4 +- src/backend/replication/logical/tablesync.c | 58 ++++++++++----------- src/test/subscription/t/004_sync.pl | 6 +++ 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/src/backend/commands/subscriptioncmds.c b/src/backend/commands/subscriptioncmds.c index cb9867c96d4..27cbb587077 100644 --- a/src/backend/commands/subscriptioncmds.c +++ b/src/backend/commands/subscriptioncmds.c @@ -901,7 +901,7 @@ AlterSubscription_refresh(Subscription *sub, bool copy_data, * * It is possible that the origin is not yet created for * tablesync worker, this can happen for the states before - * SUBREL_STATE_FINISHEDCOPY. The apply worker can also + * SUBREL_STATE_DATASYNC. The apply worker can also * concurrently try to drop the origin and by this time * the origin might be already removed. For these reasons, * passing missing_ok = true. @@ -1478,7 +1478,7 @@ DropSubscription(DropSubscriptionStmt *stmt, bool isTopLevel) * * It is possible that the origin is not yet created for tablesync * worker so passing missing_ok = true. This can happen for the states - * before SUBREL_STATE_FINISHEDCOPY. + * before SUBREL_STATE_DATASYNC. */ ReplicationOriginNameForTablesync(subid, relid, originname, sizeof(originname)); diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index dc0526e2da2..eb02cdd4750 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -1326,12 +1326,26 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) MyLogicalRepWorker->relstate_lsn = InvalidXLogRecPtr; SpinLockRelease(&MyLogicalRepWorker->relmutex); - /* Update the state and make it visible to others. */ + /* + * Update the state, create the replication origin, and make them visible + * to others. + */ StartTransactionCommand(); UpdateSubscriptionRelState(MyLogicalRepWorker->subid, MyLogicalRepWorker->relid, MyLogicalRepWorker->relstate, MyLogicalRepWorker->relstate_lsn); + + /* + * Create the replication origin in a separate transaction from the one + * that sets up the origin in shared memory. This prevents the risk that + * changes to the origin in shared memory cannot be rolled back if the + * transaction aborts. + */ + originid = replorigin_by_name(originname, true); + if (!OidIsValid(originid)) + originid = replorigin_create(originname); + CommitTransactionCommand(); pgstat_report_stat(true); @@ -1395,37 +1409,21 @@ LogicalRepSyncTableStart(XLogRecPtr *origin_startpos) CRS_USE_SNAPSHOT, origin_startpos); /* - * Setup replication origin tracking. The purpose of doing this before the - * copy is to avoid doing the copy again due to any error in setting up - * origin tracking. + * Advance the origin to the LSN got from walrcv_create_slot and then set + * up the origin. The advancement is WAL logged for the purpose of + * recovery. Locks are to prevent the replication origin from vanishing + * while advancing. + * + * The purpose of doing these before the copy is to avoid doing the copy + * again due to any error in advancing or setting up origin tracking. */ - originid = replorigin_by_name(originname, true); - if (!OidIsValid(originid)) - { - /* - * Origin tracking does not exist, so create it now. - * - * Then advance to the LSN got from walrcv_create_slot. This is WAL - * logged for the purpose of recovery. Locks are to prevent the - * replication origin from vanishing while advancing. - */ - originid = replorigin_create(originname); - - LockRelationOid(ReplicationOriginRelationId, RowExclusiveLock); - replorigin_advance(originid, *origin_startpos, InvalidXLogRecPtr, - true /* go backward */ , true /* WAL log */ ); - UnlockRelationOid(ReplicationOriginRelationId, RowExclusiveLock); + LockRelationOid(ReplicationOriginRelationId, RowExclusiveLock); + replorigin_advance(originid, *origin_startpos, InvalidXLogRecPtr, + true /* go backward */ , true /* WAL log */ ); + UnlockRelationOid(ReplicationOriginRelationId, RowExclusiveLock); - replorigin_session_setup(originid); - replorigin_session_origin = originid; - } - else - { - ereport(ERROR, - (errcode(ERRCODE_DUPLICATE_OBJECT), - errmsg("replication origin \"%s\" already exists", - originname))); - } + replorigin_session_setup(originid); + replorigin_session_origin = originid; /* Now do the initial data copy */ PushActiveSnapshot(GetTransactionSnapshot()); diff --git a/src/test/subscription/t/004_sync.pl b/src/test/subscription/t/004_sync.pl index 6251c07b788..fb692c1177c 100644 --- a/src/test/subscription/t/004_sync.pl +++ b/src/test/subscription/t/004_sync.pl @@ -172,6 +172,12 @@ 'postgres', 'SELECT count(*) = 0 FROM pg_replication_slots'), 'DROP SUBSCRIPTION during error can clean up the slots on the publisher'); +# After dropping the subscription, all replication origins, whether created by +# an apply worker or table sync worker, should have been cleaned up. +$result = $node_subscriber->safe_psql('postgres', + "SELECT count(*) FROM pg_replication_origin_status"); +is($result, qq(0), 'all replication origins have been cleaned up'); + $node_subscriber->stop('fast'); $node_publisher->stop('fast'); From 5d5487cd256f1865f6364a7e787eb5fcde6ae1b9 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Tue, 23 Dec 2025 13:37:16 +0200 Subject: [PATCH 45/94] Fix bug in following update chain when locking a heap tuple After waiting for a concurrent updater to finish, heap_lock_tuple() followed the update chain to lock all tuple versions. However, when stepping from the initial tuple to the next one, it failed to check that the next tuple's XMIN matches the initial tuple's XMAX. That's an important check whenever following an update chain, and the recursive part that follows the chain did it, but the initial step missed it. Without the check, if the updating transaction aborts, the updated tuple is vacuumed away and replaced by an unrelated tuple, the unrelated tuple might get incorrectly locked. Author: Jasper Smit Discussion: https://www.postgresql.org/message-id/CAOG+RQ74x0q=kgBBQ=mezuvOeZBfSxM1qu_o0V28bwDz3dHxLw@mail.gmail.com Backpatch-through: 14 --- src/backend/access/heap/heapam.c | 46 +++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 64044de67b2..ef0e5eeca30 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -101,8 +101,11 @@ static void compute_new_xmax_infomask(TransactionId xmax, uint16 old_infomask, LockTupleMode mode, bool is_update, TransactionId *result_xmax, uint16 *result_infomask, uint16 *result_infomask2); -static TM_Result heap_lock_updated_tuple(Relation rel, HeapTuple tuple, - ItemPointer ctid, TransactionId xid, +static TM_Result heap_lock_updated_tuple(Relation rel, + uint16 prior_infomask, + TransactionId prior_rawxmax, + const ItemPointerData *prior_ctid, + TransactionId xid, LockTupleMode mode); static void GetMultiXactIdHintBits(MultiXactId multi, uint16 *new_infomask, uint16 *new_infomask2); @@ -4691,11 +4694,13 @@ heap_lock_tuple(Relation relation, HeapTuple tuple, * If there are updates, follow the update chain; bail out if * that cannot be done. */ - if (follow_updates && updated) + if (follow_updates && updated && + !ItemPointerEquals(&tuple->t_self, &t_ctid)) { TM_Result res; - res = heap_lock_updated_tuple(relation, tuple, &t_ctid, + res = heap_lock_updated_tuple(relation, + infomask, xwait, &t_ctid, GetCurrentTransactionId(), mode); if (res != TM_Ok) @@ -4938,11 +4943,13 @@ heap_lock_tuple(Relation relation, HeapTuple tuple, } /* if there are updates, follow the update chain */ - if (follow_updates && !HEAP_XMAX_IS_LOCKED_ONLY(infomask)) + if (follow_updates && !HEAP_XMAX_IS_LOCKED_ONLY(infomask) && + !ItemPointerEquals(&tuple->t_self, &t_ctid)) { TM_Result res; - res = heap_lock_updated_tuple(relation, tuple, &t_ctid, + res = heap_lock_updated_tuple(relation, + infomask, xwait, &t_ctid, GetCurrentTransactionId(), mode); if (res != TM_Ok) @@ -5596,7 +5603,8 @@ test_lockmode_for_conflict(MultiXactStatus status, TransactionId xid, * version as well. */ static TM_Result -heap_lock_updated_tuple_rec(Relation rel, ItemPointer tid, TransactionId xid, +heap_lock_updated_tuple_rec(Relation rel, TransactionId priorXmax, + const ItemPointerData *tid, TransactionId xid, LockTupleMode mode) { TM_Result result; @@ -5609,7 +5617,6 @@ heap_lock_updated_tuple_rec(Relation rel, ItemPointer tid, TransactionId xid, old_infomask2; TransactionId xmax, new_xmax; - TransactionId priorXmax = InvalidTransactionId; bool cleared_all_frozen = false; bool pinned_desired_page; Buffer vmbuffer = InvalidBuffer; @@ -5923,7 +5930,10 @@ heap_lock_updated_tuple_rec(Relation rel, ItemPointer tid, TransactionId xid, * Follow update chain when locking an updated tuple, acquiring locks (row * marks) on the updated versions. * - * The initial tuple is assumed to be already locked. + * 'prior_infomask', 'prior_raw_xmax' and 'prior_ctid' are the corresponding + * fields from the initial tuple. We will lock the tuples starting from the + * one that 'prior_ctid' points to. Note: This function does not lock the + * initial tuple itself. * * This function doesn't check visibility, it just unconditionally marks the * tuple(s) as locked. If any tuple in the updated chain is being deleted @@ -5941,16 +5951,20 @@ heap_lock_updated_tuple_rec(Relation rel, ItemPointer tid, TransactionId xid, * levels, because that would lead to a serializability failure. */ static TM_Result -heap_lock_updated_tuple(Relation rel, HeapTuple tuple, ItemPointer ctid, +heap_lock_updated_tuple(Relation rel, + uint16 prior_infomask, + TransactionId prior_raw_xmax, + const ItemPointerData *prior_ctid, TransactionId xid, LockTupleMode mode) { /* - * If the tuple has not been updated, or has moved into another partition - * (effectively a delete) stop here. + * If the tuple has moved into another partition (effectively a delete) + * stop here. */ - if (!HeapTupleHeaderIndicatesMovedPartitions(tuple->t_data) && - !ItemPointerEquals(&tuple->t_self, ctid)) + if (!ItemPointerIndicatesMovedPartitions(prior_ctid)) { + TransactionId prior_xmax; + /* * If this is the first possibly-multixact-able operation in the * current transaction, set my per-backend OldestMemberMXactId @@ -5962,7 +5976,9 @@ heap_lock_updated_tuple(Relation rel, HeapTuple tuple, ItemPointer ctid, */ MultiXactIdSetOldestMember(); - return heap_lock_updated_tuple_rec(rel, ctid, xid, mode); + prior_xmax = (prior_infomask & HEAP_XMAX_IS_MULTI) ? + MultiXactIdGetUpdateXid(prior_raw_xmax, prior_infomask) : prior_raw_xmax; + return heap_lock_updated_tuple_rec(rel, prior_xmax, prior_ctid, xid, mode); } /* nothing to lock */ From 7e16074e81959ab0cf8d56694a8017b5494eb32d Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 26 Dec 2025 15:26:09 +0900 Subject: [PATCH 46/94] doc: Remove duplicate word in ECPG description Author: Laurenz Albe Reviewed-by: vignesh C Discussion: https://postgr.es/m/d6d6a800f8b503cd78d5f4fa721198e40eec1677.camel@cybertec.at Backpatch-through: 14 --- doc/src/sgml/ecpg.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index 65b2802d40f..2d4d2a2419d 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -1786,7 +1786,7 @@ while (1) representation of that type is (%f,%f), which is defined in the functions complex_in() - and complex_out() functions + and complex_out() in . The following example inserts the complex type values (1,1) and (3,3) into the From 300575fe2e7f0f75bec92682cd9122a72998fd04 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Sat, 27 Dec 2025 17:23:56 +0900 Subject: [PATCH 47/94] Fix pg_stat_get_backend_activity() to use multi-byte truncated result pg_stat_get_backend_activity() calls pgstat_clip_activity() to ensure that the reported query string is correctly truncated when it finishes with an incomplete multi-byte sequence. However, the result returned by the function was not what pgstat_clip_activity() generated, but the non-truncated, original, contents from PgBackendStatus.st_activity_raw. Oversight in 54b6cd589ac2, so backpatch all the way down. Author: Chao Li Discussion: https://postgr.es/m/CAEoWx2mDzwc48q2EK9tSXS6iJMJ35wvxNQnHX+rXjy5VgLvJQw@mail.gmail.com Backpatch-through: 14 --- src/backend/utils/adt/pgstatfuncs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 6ef7ead9cc0..614654fd025 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -969,7 +969,7 @@ pg_stat_get_backend_activity(PG_FUNCTION_ARGS) activity = beentry->st_activity_raw; clipped_activity = pgstat_clip_activity(activity); - ret = cstring_to_text(activity); + ret = cstring_to_text(clipped_activity); pfree(clipped_activity); PG_RETURN_TEXT_P(ret); From c38f9731b74c5e56e0fb24911407d9a39b760564 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Tue, 30 Dec 2025 14:11:37 +1300 Subject: [PATCH 48/94] jit: Remove -Wno-deprecated-declarations in 18+. REL_18_STABLE and master have commit ee485912, so they always use the newer LLVM opaque pointer functions. Drop -Wno-deprecated-declarations (commit a56e7b660) for code under jit/llvm in those branches, to catch any new deprecation warnings that arrive in future version of LLVM. Older branches continued to use functions marked deprecated in LLVM 14 and 15 (ie switched to the newer functions only for LLVM 16+), as a precaution against unforeseen compatibility problems with bitcode already shipped. In those branches, the comment about warning suppression is updated to explain that situation better. In theory we could suppress warnings only for LLVM 14 and 15 specifically, but that isn't done here. Backpatch-through: 14 Reported-by: Tom Lane Discussion: https://postgr.es/m/1407185.1766682319%40sss.pgh.pa.us --- src/backend/jit/llvm/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/backend/jit/llvm/Makefile b/src/backend/jit/llvm/Makefile index 6fe96e7b9c7..1c3022b6274 100644 --- a/src/backend/jit/llvm/Makefile +++ b/src/backend/jit/llvm/Makefile @@ -22,8 +22,10 @@ endif PGFILEDESC = "llvmjit - JIT using LLVM" NAME = llvmjit -# LLVM 14 produces deprecation warnings. We'll need to make some changes -# before the relevant functions are removed, but for now silence the warnings. +# Some functions called in LLVM 14 and LLVM 15 are marked with GCC deprecation +# attributes. For LLVM 16 and later, we use the newer replacement functions +# instead, but warnings are suppressed unconditionally. (Note that this is +# only done in branches before REL_18_STABLE.) ifeq ($(GCC), yes) LLVM_CFLAGS += -Wno-deprecated-declarations endif From fa557d3005e76998ed463e639312b44d9c053975 Mon Sep 17 00:00:00 2001 From: Masahiko Sawada Date: Tue, 30 Dec 2025 10:56:21 -0800 Subject: [PATCH 49/94] Fix a race condition in updating procArray->replication_slot_xmin. Previously, ReplicationSlotsComputeRequiredXmin() computed the oldest xmin across all slots without holding ProcArrayLock (when already_locked is false), acquiring the lock just before updating the replication slot xmin. This could lead to a race condition: if a backend created a new slot and updates the global replication slot xmin, another backend concurrently running ReplicationSlotsComputeRequiredXmin() could overwrite that update with an invalid or stale value. This happens because the concurrent backend might have computed the aggregate xmin before the new slot was accounted for, but applied the update after the new slot had already updated the global value. In the reported failure, a walsender for an apply worker computed InvalidTransactionId as the oldest xmin and overwrote a valid replication slot xmin value computed by a walsender for a tablesync worker. Consequently, the tablesync worker computed a transaction ID via GetOldestSafeDecodingTransactionId() effectively without considering the replication slot xmin. This led to the error "cannot build an initial slot snapshot as oldest safe xid %u follows snapshot's xmin %u", which was an assertion failure prior to commit 240e0dbacd3. To fix this, we acquire ReplicationSlotControlLock in exclusive mode during slot creation to perform the initial update of the slot xmin. In ReplicationSlotsComputeRequiredXmin(), we hold ReplicationSlotControlLock in shared mode until the global slot xmin is updated in ProcArraySetReplicationSlotXmin(). This prevents concurrent computations and updates of the global xmin by other backends during the initial slot xmin update process, while still permitting concurrent calls to ReplicationSlotsComputeRequiredXmin(). Backpatch to all supported versions. Author: Zhijie Hou Reviewed-by: Masahiko Sawada Reviewed-by: Amit Kapila Reviewed-by: Pradeep Kumar Reviewed-by: Hayato Kuroda (Fujitsu) Reviewed-by: Robert Haas Reviewed-by: Andres Freund Reviewed-by: Chao Li Discussion: https://postgr.es/m/CAA4eK1L8wYcyTPxNzPGkhuO52WBGoOZbT0A73Le=ZUWYAYmdfw@mail.gmail.com Backpatch-through: 14 --- src/backend/replication/logical/logical.c | 12 ++++--- src/backend/replication/slot.c | 39 ++++++++++++++++++++--- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c index e9105edaef5..12371d379e9 100644 --- a/src/backend/replication/logical/logical.c +++ b/src/backend/replication/logical/logical.c @@ -389,11 +389,11 @@ CreateInitDecodingContext(const char *plugin, * without further interlock its return value might immediately be out of * date. * - * So we have to acquire the ProcArrayLock to prevent computation of new - * xmin horizons by other backends, get the safe decoding xid, and inform - * the slot machinery about the new limit. Once that's done the - * ProcArrayLock can be released as the slot machinery now is - * protecting against vacuum. + * So we have to acquire both the ReplicationSlotControlLock and the + * ProcArrayLock to prevent concurrent computation and update of new xmin + * horizons by other backends, get the safe decoding xid, and inform the + * slot machinery about the new limit. Once that's done both locks can be + * released as the slot machinery now is protecting against vacuum. * * Note that, temporarily, the data, not just the catalog, xmin has to be * reserved if a data snapshot is to be exported. Otherwise the initial @@ -406,6 +406,7 @@ CreateInitDecodingContext(const char *plugin, * * ---- */ + LWLockAcquire(ReplicationSlotControlLock, LW_EXCLUSIVE); LWLockAcquire(ProcArrayLock, LW_EXCLUSIVE); xmin_horizon = GetOldestSafeDecodingTransactionId(!need_full_snapshot); @@ -420,6 +421,7 @@ CreateInitDecodingContext(const char *plugin, ReplicationSlotsComputeRequiredXmin(true); LWLockRelease(ProcArrayLock); + LWLockRelease(ReplicationSlotControlLock); ReplicationSlotMarkDirty(); ReplicationSlotSave(); diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index 7aa1dcca6d7..1d022b76d07 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -856,8 +856,11 @@ ReplicationSlotPersist(void) /* * Compute the oldest xmin across all slots and store it in the ProcArray. * - * If already_locked is true, ProcArrayLock has already been acquired - * exclusively. + * If already_locked is true, both the ReplicationSlotControlLock and the + * ProcArrayLock have already been acquired exclusively. It is crucial that the + * caller first acquires the ReplicationSlotControlLock, followed by the + * ProcArrayLock, to prevent any undetectable deadlocks since this function + * acquires them in that order. */ void ReplicationSlotsComputeRequiredXmin(bool already_locked) @@ -867,8 +870,33 @@ ReplicationSlotsComputeRequiredXmin(bool already_locked) TransactionId agg_catalog_xmin = InvalidTransactionId; Assert(ReplicationSlotCtl != NULL); + Assert(!already_locked || + (LWLockHeldByMeInMode(ReplicationSlotControlLock, LW_EXCLUSIVE) && + LWLockHeldByMeInMode(ProcArrayLock, LW_EXCLUSIVE))); - LWLockAcquire(ReplicationSlotControlLock, LW_SHARED); + /* + * Hold the ReplicationSlotControlLock until after updating the slot xmin + * values, so no backend updates the initial xmin for newly created slot + * concurrently. A shared lock is used here to minimize lock contention, + * especially when many slots exist and advancements occur frequently. + * This is safe since an exclusive lock is taken during initial slot xmin + * update in slot creation. + * + * One might think that we can hold the ProcArrayLock exclusively and + * update the slot xmin values, but it could increase lock contention on + * the ProcArrayLock, which is not great since this function can be called + * at non-negligible frequency. + * + * Concurrent invocation of this function may cause the computed slot xmin + * to regress. However, this is harmless because tuples prior to the most + * recent xmin are no longer useful once advancement occurs (see + * LogicalConfirmReceivedLocation where the slot's xmin value is flushed + * before updating the effective_xmin). Thus, such regression merely + * prevents VACUUM from prematurely removing tuples without causing the + * early deletion of required data. + */ + if (!already_locked) + LWLockAcquire(ReplicationSlotControlLock, LW_SHARED); for (i = 0; i < max_replication_slots; i++) { @@ -904,9 +932,10 @@ ReplicationSlotsComputeRequiredXmin(bool already_locked) agg_catalog_xmin = effective_catalog_xmin; } - LWLockRelease(ReplicationSlotControlLock); - ProcArraySetReplicationSlotXmin(agg_xmin, agg_catalog_xmin, already_locked); + + if (!already_locked) + LWLockRelease(ReplicationSlotControlLock); } /* From 4c8208c2b072968bf28b51c97135560980bb32f7 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 31 Dec 2025 13:24:17 +1300 Subject: [PATCH 50/94] jit: Fix jit_profiling_support when unavailable. jit_profiling_support=true captures profile data for Linux perf. On other platforms, LLVMCreatePerfJITEventListener() returns NULL and the attempt to register the listener would crash. Fix by ignoring the setting in that case. The documentation already says that it only has an effect if perf support is present, and we already did the same for older LLVM versions that lacked support. No field reports, unsurprisingly for an obscure developer-oriented setting. Noticed in passing while working on commit 1a28b4b4. Backpatch-through: 14 Reviewed-by: Matheus Alcantara Reviewed-by: Andres Freund Discussion: https://postgr.es/m/CA%2BhUKGJgB6gvrdDohgwLfCwzVQm%3DVMtb9m0vzQn%3DCwWn-kwG9w%40mail.gmail.com --- src/backend/jit/llvm/llvmjit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index 356b5590a62..2ab3e8ba972 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -1339,7 +1339,8 @@ llvm_create_object_layer(void *Ctx, LLVMOrcExecutionSessionRef ES, const char *T { LLVMJITEventListenerRef l = LLVMCreatePerfJITEventListener(); - LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener(objlayer, l); + if (l) + LLVMOrcRTDyldObjectLinkingLayerRegisterJITEventListener(objlayer, l); } #endif From 176fd835008a4aeecd3295533d7d7d026bed00d8 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 1 Jan 2026 13:24:10 -0500 Subject: [PATCH 51/94] Update copyright for 2026 Backpatch-through: 14 --- COPYRIGHT | 2 +- doc/src/sgml/legal.sgml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index 3b79b1b4ca0..0a397648dcd 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -1,7 +1,7 @@ PostgreSQL Database Management System (also known as Postgres, formerly known as Postgres95) -Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group +Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group Portions Copyright (c) 1994, The Regents of the University of California diff --git a/doc/src/sgml/legal.sgml b/doc/src/sgml/legal.sgml index 75c1309cf73..742c0146f7f 100644 --- a/doc/src/sgml/legal.sgml +++ b/doc/src/sgml/legal.sgml @@ -1,9 +1,9 @@ -2025 +2026 - 1996–2025 + 1996–2026 The PostgreSQL Global Development Group @@ -16,7 +16,7 @@ - Portions Copyright © 1996-2025, PostgreSQL Global Development Group + Portions Copyright © 1996-2026, PostgreSQL Global Development Group Portions Copyright © 1994, The Regents of the University of California From c89510431af2efe447d3f069d1f6ea417efdf62e Mon Sep 17 00:00:00 2001 From: David Rowley Date: Sun, 4 Jan 2026 20:34:22 +1300 Subject: [PATCH 52/94] Fix selectivity estimation integer overflow in contrib/intarray This fixes a poorly written integer comparison function which was performing subtraction in an attempt to return a negative value when a < b and a positive value when a > b, and 0 when the values were equal. Unfortunately that didn't always work correctly due to two's complement having the INT_MIN 1 further from zero than INT_MAX. This could result in an overflow and cause the comparison function to return an incorrect result, which would result in the binary search failing to find the value being searched for. This could cause poor selectivity estimates when the statistics stored the value of INT_MAX (2147483647) and the value being searched for was large enough to result in the binary search doing a comparison with that INT_MAX value. Author: Chao Li Reviewed-by: David Rowley Discussion: https://postgr.es/m/CAEoWx2ng1Ot5LoKbVU-Dh---dFTUZWJRH8wv2chBu29fnNDMaQ@mail.gmail.com Backpatch-through: 14 --- contrib/intarray/_int_selfuncs.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/contrib/intarray/_int_selfuncs.c b/contrib/intarray/_int_selfuncs.c index d2df3501ffc..5a47cc53834 100644 --- a/contrib/intarray/_int_selfuncs.c +++ b/contrib/intarray/_int_selfuncs.c @@ -327,7 +327,12 @@ static int compare_val_int4(const void *a, const void *b) { int32 key = *(int32 *) a; - const Datum *t = (const Datum *) b; + int32 value = DatumGetInt32(*(const Datum *) b); - return key - DatumGetInt32(*t); + if (key < value) + return -1; + else if (key > value) + return 1; + else + return 0; } From 4ece4419b496ac45e8fb1ad1fd068cf036dd302b Mon Sep 17 00:00:00 2001 From: David Rowley Date: Sun, 4 Jan 2026 21:14:33 +1300 Subject: [PATCH 53/94] Doc: add missing punctuation Author: Daisuke Higuchi Reviewed-by: Robert Treat Discussion: https://postgr.es/m/CAEVT6c-yWYstu76YZ7VOxmij2XA8vrOEvens08QLmKHTDjEPBw@mail.gmail.com Backpatch-through: 14 --- doc/src/sgml/history.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/sgml/history.sgml b/doc/src/sgml/history.sgml index 629fc3fbde4..fe62a8bc8b7 100644 --- a/doc/src/sgml/history.sgml +++ b/doc/src/sgml/history.sgml @@ -165,7 +165,7 @@ A short tutorial introducing regular SQL features as well as those of Postgres95 was distributed with the - source code + source code. From f7eb44e0f0871e13188f50b0f21d52c10337a60a Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Tue, 6 Jan 2026 11:54:46 +0900 Subject: [PATCH 54/94] Honor GUC settings specified in CREATE SUBSCRIPTION CONNECTION. Prior to v15, GUC settings supplied in the CONNECTION clause of CREATE SUBSCRIPTION were correctly passed through to the publisher's walsender. For example: CREATE SUBSCRIPTION mysub CONNECTION 'options=''-c wal_sender_timeout=1000''' PUBLICATION ... would cause wal_sender_timeout to take effect on the publisher's walsender. However, commit f3d4019da5d changed the way logical replication connections are established, forcing the publisher's relevant GUC settings (datestyle, intervalstyle, extra_float_digits) to override those provided in the CONNECTION string. As a result, from v15 through v18, GUC settings in the CONNECTION string were always ignored. This regression prevented per-connection tuning of logical replication. For example, using a shorter timeout for walsender connecting to a nearby subscriber and a longer one for walsender connecting to a remote subscriber. This commit restores the intended behavior by ensuring that GUC settings in the CONNECTION string are again passed through and applied by the walsender, allowing per-connection configuration. Backpatch to v15, where the regression was introduced. Author: Fujii Masao Reviewed-by: Chao Li Reviewed-by: Kirill Reshke Reviewed-by: Amit Kapila Reviewed-by: Japin Li Discussion: https://postgr.es/m/CAHGQGwGYV+-abbKwdrM2UHUe-JYOFWmsrs6=QicyJO-j+-Widw@mail.gmail.com Backpatch-through: 15 --- .../libpqwalreceiver/libpqwalreceiver.c | 61 ++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c index 60f906dce60..347002329c5 100644 --- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c +++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c @@ -58,6 +58,8 @@ static void libpqrcv_get_senderinfo(WalReceiverConn *conn, char **sender_host, int *sender_port); static char *libpqrcv_identify_system(WalReceiverConn *conn, TimeLineID *primary_tli); +static char *libpqrcv_get_option_from_conninfo(const char *connInfo, + const char *keyword); static int libpqrcv_server_version(WalReceiverConn *conn); static void libpqrcv_readtimelinehistoryfile(WalReceiverConn *conn, TimeLineID tli, char **filename, @@ -131,6 +133,7 @@ libpqrcv_connect(const char *conninfo, bool logical, const char *appname, const char *keys[6]; const char *vals[6]; int i = 0; + char *options_val = NULL; /* * We use the expand_dbname parameter to process the connection string (or @@ -153,6 +156,8 @@ libpqrcv_connect(const char *conninfo, bool logical, const char *appname, vals[i] = appname; if (logical) { + char *opt = NULL; + /* Tell the publisher to translate to our encoding */ keys[++i] = "client_encoding"; vals[i] = GetDatabaseEncodingName(); @@ -165,8 +170,13 @@ libpqrcv_connect(const char *conninfo, bool logical, const char *appname, * the subscriber, such as triggers.) This should match what pg_dump * does. */ + opt = libpqrcv_get_option_from_conninfo(conninfo, "options"); + options_val = psprintf("%s -c datestyle=ISO -c intervalstyle=postgres -c extra_float_digits=3", + (opt == NULL) ? "" : opt); keys[++i] = "options"; - vals[i] = "-c datestyle=ISO -c intervalstyle=postgres -c extra_float_digits=3"; + vals[i] = options_val; + if (opt != NULL) + pfree(opt); } keys[++i] = NULL; vals[i] = NULL; @@ -218,6 +228,9 @@ libpqrcv_connect(const char *conninfo, bool logical, const char *appname, status = PQconnectPoll(conn->streamConn); } while (status != PGRES_POLLING_OK && status != PGRES_POLLING_FAILED); + if (options_val != NULL) + pfree(options_val); + if (PQstatus(conn->streamConn) != CONNECTION_OK) goto bad_connection_errmsg; @@ -373,6 +386,7 @@ libpqrcv_identify_system(WalReceiverConn *conn, TimeLineID *primary_tli) "the primary server: %s", pchomp(PQerrorMessage(conn->streamConn))))); } + /* * IDENTIFY_SYSTEM returns 3 columns in 9.3 and earlier, and 4 columns in * 9.4 and onwards. @@ -405,6 +419,51 @@ libpqrcv_server_version(WalReceiverConn *conn) return PQserverVersion(conn->streamConn); } +/* + * Get the value of the option with the given keyword from the primary + * server's conninfo. + * + * If the option is not found in connInfo, return NULL value. + */ +static char * +libpqrcv_get_option_from_conninfo(const char *connInfo, const char *keyword) +{ + PQconninfoOption *opts; + char *option = NULL; + char *err = NULL; + + opts = PQconninfoParse(connInfo, &err); + if (opts == NULL) + { + /* The error string is malloc'd, so we must free it explicitly */ + char *errcopy = err ? pstrdup(err) : "out of memory"; + + PQfreemem(err); + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("invalid connection string syntax: %s", errcopy))); + } + + for (PQconninfoOption *opt = opts; opt->keyword != NULL; ++opt) + { + /* + * If the same option appears multiple times, then the last one will + * be returned + */ + if (strcmp(opt->keyword, keyword) == 0 && opt->val && + *opt->val) + { + if (option) + pfree(option); + + option = pstrdup(opt->val); + } + } + + PQconninfoFree(opts); + return option; +} + /* * Start streaming WAL data from given streaming options. * From ec8d91c7e78c075a8ab4e8562dfe49ac568e43b4 Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Tue, 6 Jan 2026 11:57:12 +0900 Subject: [PATCH 55/94] Add TAP test for GUC settings passed via CONNECTION in logical replication. Commit d926462d819 restored the behavior of passing GUC settings from the CONNECTION string to the publisher's walsender, allowing per-connection configuration. This commit adds a TAP test to verify that behavior works correctly. Since commit d926462d819 was recently applied and backpatched to v15, this follow-up commit is also backpatched accordingly. Author: Fujii Masao Reviewed-by: Chao Li Reviewed-by: Kirill Reshke Reviewed-by: Amit Kapila Reviewed-by: Japin Li Discussion: https://postgr.es/m/CAHGQGwGYV+-abbKwdrM2UHUe-JYOFWmsrs6=QicyJO-j+-Widw@mail.gmail.com Backpatch-through: 15 --- src/test/subscription/t/001_rep_changes.pl | 29 +++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/test/subscription/t/001_rep_changes.pl b/src/test/subscription/t/001_rep_changes.pl index 6e6ebd80e1f..6c9f07f8817 100644 --- a/src/test/subscription/t/001_rep_changes.pl +++ b/src/test/subscription/t/001_rep_changes.pl @@ -418,17 +418,34 @@ 22.22|bar|2), 'update works with dropped subscriber column'); +# Verify that GUC settings supplied in the CONNECTION string take effect on +# the publisher's walsender. We do this by enabling log_statement_stats in +# the CONNECTION string later and checking that the publisher's log contains a +# QUERY STATISTICS message. +# +# First, confirm that no such QUERY STATISTICS message appears before enabling +# log_statement_stats. +$logfile = slurp_file($node_publisher->logfile, $log_location); +unlike( + $logfile, + qr/QUERY STATISTICS/, + 'log_statement_stats has not been enabled yet'); + # check that change of connection string and/or publication list causes # restart of subscription workers. We check the state along with # application_name to ensure that the walsender is (re)started. # # Not all of these are registered as tests as we need to poll for a change # but the test suite will fail nonetheless when something goes wrong. +# +# Enable log_statement_stats as the change of connection string, +# which is also for the above mentioned test of GUC settings passed through +# CONNECTION. my $oldpid = $node_publisher->safe_psql('postgres', "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" ); $node_subscriber->safe_psql('postgres', - "ALTER SUBSCRIPTION tap_sub CONNECTION '$publisher_connstr sslmode=disable'" + "ALTER SUBSCRIPTION tap_sub CONNECTION '$publisher_connstr options=''-c log_statement_stats=on'''" ); $node_publisher->poll_query_until('postgres', "SELECT pid != $oldpid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" @@ -436,6 +453,16 @@ or die "Timed out while waiting for apply to restart after changing CONNECTION"; +# Check that the expected QUERY STATISTICS message appears, +# which shows that log_statement_stats=on from the CONNECTION string +# was correctly passed through to and honored by the walsender. +$logfile = slurp_file($node_publisher->logfile, $log_location); +like( + $logfile, + qr/QUERY STATISTICS/, + 'log_statement_stats in CONNECTION string had effect on publisher\'s walsender' +); + $oldpid = $node_publisher->safe_psql('postgres', "SELECT pid FROM pg_stat_replication WHERE application_name = 'tap_sub' AND state = 'streaming';" ); From f20b79059ea392ef3cef084033508d5d43bf20d9 Mon Sep 17 00:00:00 2001 From: David Rowley Date: Tue, 6 Jan 2026 17:30:57 +1300 Subject: [PATCH 56/94] Fix issue with EVENT TRIGGERS and ALTER PUBLICATION When processing the "publish" options of an ALTER PUBLICATION command, we call SplitIdentifierString() to split the options into a List of strings. Since SplitIdentifierString() modifies the delimiter character and puts NULs in their place, this would overwrite the memory of the AlterPublicationStmt. Later in AlterPublicationOptions(), the modified AlterPublicationStmt is copied for event triggers, which would result in the event trigger only seeing the first "publish" option rather than all options that were specified in the command. To fix this, make a copy of the string before passing to SplitIdentifierString(). Here we also adjust a similar case in the pgoutput plugin. There's no known issues caused by SplitIdentifierString() here, so this is being done out of paranoia. Thanks to Henson Choi for putting together an example case showing the ALTER PUBLICATION issue. Author: sunil s Reviewed-by: Henson Choi Reviewed-by: zengman Backpatch-through: 14 --- src/backend/commands/publicationcmds.c | 7 ++++++- src/backend/replication/pgoutput/pgoutput.c | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/backend/commands/publicationcmds.c b/src/backend/commands/publicationcmds.c index 473c72eae51..b9bd33b252e 100644 --- a/src/backend/commands/publicationcmds.c +++ b/src/backend/commands/publicationcmds.c @@ -122,7 +122,12 @@ parse_publication_options(ParseState *pstate, pubactions->pubtruncate = false; *publish_given = true; - publish = defGetString(defel); + + /* + * SplitIdentifierString destructively modifies its input, so make + * a copy so we don't modify the memory of the executing statement + */ + publish = pstrdup(defGetString(defel)); if (!SplitIdentifierString(publish, ',', &publish_list)) ereport(ERROR, diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c index f3acc64c451..7ae31b0acce 100644 --- a/src/backend/replication/pgoutput/pgoutput.c +++ b/src/backend/replication/pgoutput/pgoutput.c @@ -342,7 +342,11 @@ parse_output_parameters(List *options, PGOutputData *data) errmsg("conflicting or redundant options"))); publication_names_given = true; - if (!SplitIdentifierString(strVal(defel->arg), ',', + /* + * Pass a copy of the DefElem->arg since SplitIdentifierString + * modifies its input. + */ + if (!SplitIdentifierString(pstrdup(strVal(defel->arg)), ',', &data->publication_names)) ereport(ERROR, (errcode(ERRCODE_INVALID_NAME), From c813007376c493037302c08e6fc07850763beb76 Mon Sep 17 00:00:00 2001 From: John Naylor Date: Wed, 7 Jan 2026 16:02:19 +0700 Subject: [PATCH 57/94] createuser: Update docs to reflect defaults Commit c7eab0e97 changed the default password_encryption setting to 'scram-sha-256', so update the example for creating a user with an assigned password. In addition, commit 08951a7c9 added new options that in turn pass default tokens NOBYPASSRLS and NOREPLICATION to the CREATE ROLE command, so fix this omission as well for v16 and later. Reported-by: Heikki Linnakangas Discussion: https://postgr.es/m/cff1ea60-c67d-4320-9e33-094637c2c4fb%40iki.fi Backpatch-through: 14 --- doc/src/sgml/ref/createuser.sgml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/sgml/ref/createuser.sgml b/doc/src/sgml/ref/createuser.sgml index 0e1a39a3fe6..f64b477564d 100644 --- a/doc/src/sgml/ref/createuser.sgml +++ b/doc/src/sgml/ref/createuser.sgml @@ -485,7 +485,7 @@ PostgreSQL documentation $ createuser -P -s -e joe Enter password for new role: xyzzy Enter it again: xyzzy -CREATE ROLE joe PASSWORD 'md5b5f5ba1a423792b526f799ae4eb3d59e' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; +CREATE ROLE joe PASSWORD 'SCRAM-SHA-256$4096:44560wPMLfjqiAzyPDZ/eQ==$4CA054rZlSFEq8Z3FEhToBTa2X6KnWFxFkPwIbKoDe0=:L/nbSZRCjp6RhOhKK56GoR1zibCCSePKshCJ9lnl3yw=' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; In the above example, the new password isn't actually echoed when typed, but we show what was typed for clarity. As you see, the password is From 39a6a2c0a0a8fc79a05ac78849696311b17c6151 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 7 Jan 2026 15:47:02 +0100 Subject: [PATCH 58/94] Fix typo Reported-by: Xueyu Gao Discussion: https://www.postgresql.org/message-id/42b5c99a.856d.19b73d858e2.Coremail.gaoxueyu_hope%40163.com --- .cirrus.tasks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 81ad6a164c6..ea11ad377ea 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -216,7 +216,7 @@ task: env: CPUS: 4 # always get that much for cirrusci macOS instances BUILD_JOBS: $CPUS - # Test performance regresses noticably when using all cores. 8 seems to + # Test performance regresses noticeably when using all cores. 8 seems to # work OK. See # https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de TEST_JOBS: 8 From aae05622a7cbd17a0081452ef4cc4eeda54e4e2e Mon Sep 17 00:00:00 2001 From: Amit Kapila Date: Thu, 8 Jan 2026 06:54:52 +0000 Subject: [PATCH 59/94] Prevent invalidation of newly created replication slots. A race condition could cause a newly created replication slot to become invalidated between WAL reservation and a checkpoint. Previously, if the required WAL was removed, we retried the reservation process. However, the slot could still be invalidated before the retry if the WAL was not yet removed but the checkpoint advanced the redo pointer beyond the slot's intended restart LSN and computed the minimum LSN that needs to be preserved for the slots. The fix is to acquire an exclusive lock on ReplicationSlotAllocationLock during WAL reservation, and a shared lock during the minimum LSN calculation at checkpoints to serialize the process. This ensures that, if WAL reservation occurs first, the checkpoint waits until restart_lsn is updated before calculating the minimum LSN. If the checkpoint runs first, subsequent WAL reservations pick a position at or after the latest checkpoint's redo pointer. We used a similar fix in HEAD (via commit 006dd4b2e5) and 18. The difference is that in 17 and prior branches we need to additionally handle the race condition with slot's minimum LSN computation during checkpoints. Reported-by: suyu.cmj Author: Hou Zhijie Author: vignesh C Reviewed-by: Hayato Kuroda Reviewed-by: Masahiko Sawada Reviewed-by: Amit Kapila Backpatch-through: 14 Discussion: https://postgr.es/m/5e045179-236f-4f8f-84f1-0f2566ba784c.mengjuan.cmj@alibaba-inc.com --- src/backend/access/transam/xlog.c | 30 ++++++++- src/backend/replication/slot.c | 106 +++++++++++++++--------------- 2 files changed, 81 insertions(+), 55 deletions(-) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 0528ac38d59..7aa2a354f2d 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -6542,8 +6542,18 @@ CreateCheckPoint(int flags) * according to synchronized LSNs of replication slots. The slot's LSN * might be advanced concurrently, so we call this before * CheckPointReplicationSlots() synchronizes replication slots. - */ + * + * We acquire the Allocation lock to serialize the minimum LSN calculation + * with concurrent slot WAL reservation. This ensures that the WAL + * position being reserved is either included in the miminum LSN or is + * beyond or equal to the redo pointer of the current checkpoint (See + * ReplicationSlotReserveWal for details), thus preventing its removal by + * checkpoints. Note that this lock is required only during checkpoints + * where WAL removal is dictated by the slot's minimum LSN. + */ + LWLockAcquire(ReplicationSlotAllocationLock, LW_SHARED); slotsMinReqLSN = XLogGetReplicationSlotMinimumLSN(); + LWLockRelease(ReplicationSlotAllocationLock); /* * In some cases there are groups of actions that must all occur on one @@ -6716,7 +6726,10 @@ CreateCheckPoint(int flags) /* * Recalculate the current minimum LSN to be used in the WAL segment * cleanup. Then, we must synchronize the replication slots again in - * order to make this LSN safe to use. + * order to make this LSN safe to use. Here, we don't need to acquire + * the ReplicationSlotAllocationLock to serialize the minimum LSN + * computation with slot reservation as the RedoRecPtr is not updated + * after the previous computation of minimum LSN. */ slotsMinReqLSN = XLogGetReplicationSlotMinimumLSN(); CheckPointReplicationSlots(); @@ -7087,8 +7100,16 @@ CreateRestartPoint(int flags) * according to synchronized LSNs of replication slots. The slot's LSN * might be advanced concurrently, so we call this before * CheckPointReplicationSlots() synchronizes replication slots. + * + * We acquire the Allocation lock to serialize the minimum LSN calculation + * with concurrent slot WAL reservation. This ensures that the WAL + * position being reserved is either included in the miminum LSN or is + * beyond or equal to the redo pointer of the current checkpoint (See + * ReplicationSlotReserveWal for details). */ + LWLockAcquire(ReplicationSlotAllocationLock, LW_SHARED); slotsMinReqLSN = XLogGetReplicationSlotMinimumLSN(); + LWLockRelease(ReplicationSlotAllocationLock); if (log_checkpoints) LogCheckpointStart(flags, true); @@ -7178,7 +7199,10 @@ CreateRestartPoint(int flags) /* * Recalculate the current minimum LSN to be used in the WAL segment * cleanup. Then, we must synchronize the replication slots again in - * order to make this LSN safe to use. + * order to make this LSN safe to use. Here, we don't need to acquire + * the ReplicationSlotAllocationLock to serialize the minimum LSN + * computation with slot reservation as the RedoRecPtr is not updated + * after the previous computation of minimum LSN. */ slotsMinReqLSN = XLogGetReplicationSlotMinimumLSN(); CheckPointReplicationSlots(); diff --git a/src/backend/replication/slot.c b/src/backend/replication/slot.c index 1d022b76d07..1f4aad52c4a 100644 --- a/src/backend/replication/slot.c +++ b/src/backend/replication/slot.c @@ -1213,71 +1213,73 @@ void ReplicationSlotReserveWal(void) { ReplicationSlot *slot = MyReplicationSlot; + XLogSegNo segno; + XLogRecPtr restart_lsn; Assert(slot != NULL); Assert(slot->data.restart_lsn == InvalidXLogRecPtr); /* - * The replication slot mechanism is used to prevent removal of required - * WAL. As there is no interlock between this routine and checkpoints, WAL - * segments could concurrently be removed when a now stale return value of - * ReplicationSlotsComputeRequiredLSN() is used. In the unlikely case that - * this happens we'll just retry. + * The replication slot mechanism is used to prevent the removal of + * required WAL. + * + * Acquire an exclusive lock to prevent the checkpoint process from + * concurrently computing the minimum slot LSN (see the call to + * XLogGetReplicationSlotMinimumLSN in CreateCheckPoint). This ensures + * that the WAL reserved for replication cannot be removed during a + * checkpoint. + * + * The mechanism is reliable because if WAL reservation occurs first, the + * checkpoint must wait for the restart_lsn update before determining the + * minimum non-removable LSN. On the other hand, if the checkpoint happens + * first, subsequent WAL reservations will select positions at or beyond + * the redo pointer of that checkpoint. + */ + LWLockAcquire(ReplicationSlotAllocationLock, LW_EXCLUSIVE); + + /* + * For logical slots log a standby snapshot and start logical decoding at + * exactly that position. That allows the slot to start up more quickly. + * + * That's not needed (or indeed helpful) for physical slots as they'll + * start replay at the last logged checkpoint anyway. Instead return the + * location of the last redo LSN, where a base backup has to start replay + * at. */ - while (true) + if (!RecoveryInProgress() && SlotIsLogical(slot)) { - XLogSegNo segno; - XLogRecPtr restart_lsn; + XLogRecPtr flushptr; - /* - * For logical slots log a standby snapshot and start logical decoding - * at exactly that position. That allows the slot to start up more - * quickly. - * - * That's not needed (or indeed helpful) for physical slots as they'll - * start replay at the last logged checkpoint anyway. Instead return - * the location of the last redo LSN. While that slightly increases - * the chance that we have to retry, it's where a base backup has to - * start replay at. - */ - if (!RecoveryInProgress() && SlotIsLogical(slot)) - { - XLogRecPtr flushptr; + /* start at current insert position */ + restart_lsn = GetXLogInsertRecPtr(); + SpinLockAcquire(&slot->mutex); + slot->data.restart_lsn = restart_lsn; + SpinLockRelease(&slot->mutex); - /* start at current insert position */ - restart_lsn = GetXLogInsertRecPtr(); - SpinLockAcquire(&slot->mutex); - slot->data.restart_lsn = restart_lsn; - SpinLockRelease(&slot->mutex); + /* make sure we have enough information to start */ + flushptr = LogStandbySnapshot(); - /* make sure we have enough information to start */ - flushptr = LogStandbySnapshot(); + /* and make sure it's fsynced to disk */ + XLogFlush(flushptr); + } + else + { + restart_lsn = GetRedoRecPtr(); + SpinLockAcquire(&slot->mutex); + slot->data.restart_lsn = restart_lsn; + SpinLockRelease(&slot->mutex); + } - /* and make sure it's fsynced to disk */ - XLogFlush(flushptr); - } - else - { - restart_lsn = GetRedoRecPtr(); - SpinLockAcquire(&slot->mutex); - slot->data.restart_lsn = restart_lsn; - SpinLockRelease(&slot->mutex); - } + /* prevent WAL removal as fast as possible */ + ReplicationSlotsComputeRequiredLSN(); - /* prevent WAL removal as fast as possible */ - ReplicationSlotsComputeRequiredLSN(); + /* Checkpoint shouldn't remove the required WAL. */ + XLByteToSeg(slot->data.restart_lsn, segno, wal_segment_size); + if (XLogGetLastRemovedSegno() >= segno) + elog(ERROR, "WAL required by replication slot %s has been removed concurrently", + NameStr(slot->data.name)); - /* - * If all required WAL is still there, great, otherwise retry. The - * slot should prevent further removal of WAL, unless there's a - * concurrent ReplicationSlotsComputeRequiredLSN() after we've written - * the new restart_lsn above, so normally we should never need to loop - * more than twice. - */ - XLByteToSeg(slot->data.restart_lsn, segno, wal_segment_size); - if (XLogGetLastRemovedSegno() < segno) - break; - } + LWLockRelease(ReplicationSlotAllocationLock); } /* From 3ad05640b67f8adb23fae85471ebabaaa6d1ae0e Mon Sep 17 00:00:00 2001 From: David Rowley Date: Fri, 9 Jan 2026 11:04:12 +1300 Subject: [PATCH 60/94] Fix possible incorrect column reference in ERROR message When creating a partition for a RANGE partitioned table, the reporting of errors relating to converting the specified range values into constant values for the partition key's type could display the name of a previous partition key column when an earlier range was specified as MINVALUE or MAXVALUE. This was caused by the code not correctly incrementing the index that tracks which partition key the foreach loop was working on after processing MINVALUE/MAXVALUE ranges. Fix by using foreach_current_index() to ensure the index variable is always set to the List element being worked on. Author: myzhen Reviewed-by: zhibin wang Discussion: https://postgr.es/m/273cab52.978.19b96fc75e7.Coremail.zhenmingyang@yeah.net Backpatch-through: 14 --- src/backend/parser/parse_utilcmd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 4f416ed098f..dd582f97cbb 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -4198,12 +4198,14 @@ transformPartitionRangeBounds(ParseState *pstate, List *blist, int i, j; - i = j = 0; + j = 0; foreach(lc, blist) { Node *expr = lfirst(lc); PartitionRangeDatum *prd = NULL; + i = foreach_current_index(lc); + /* * Infinite range bounds -- "minvalue" and "maxvalue" -- get passed in * as ColumnRefs. @@ -4281,7 +4283,6 @@ transformPartitionRangeBounds(ParseState *pstate, List *blist, prd = makeNode(PartitionRangeDatum); prd->kind = PARTITION_RANGE_DATUM_VALUE; prd->value = (Node *) value; - ++i; } prd->location = exprLocation(expr); From 988612c9c27f8f62bcd8a5e30f3b57e883189308 Mon Sep 17 00:00:00 2001 From: Jacob Champion Date: Fri, 9 Jan 2026 10:02:36 -0800 Subject: [PATCH 61/94] doc: Improve description of publish_via_partition_root Reword publish_via_partition_root's opening paragraph. Describe its behavior more clearly, and directly state that its default is false. Per complaint by Peter Smith; final text of the patch made in collaboration with Chao Li. Author: Chao Li Author: Peter Smith Reported-by: Peter Smith Reviewed-by: Amit Kapila Discussion: https://postgr.es/m/CAHut%2BPu7SpK%2BctOYoqYR3V4w5LKc9sCs6c_qotk9uTQJQ4zp6g%40mail.gmail.com Backpatch-through: 14 --- doc/src/sgml/ref/create_publication.sgml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/doc/src/sgml/ref/create_publication.sgml b/doc/src/sgml/ref/create_publication.sgml index 787750b8664..90ce0c61bd2 100644 --- a/doc/src/sgml/ref/create_publication.sgml +++ b/doc/src/sgml/ref/create_publication.sgml @@ -196,13 +196,15 @@ CREATE PUBLICATION name publish_via_partition_root (boolean) - This parameter determines whether changes in a partitioned table (or - on its partitions) contained in the publication will be published - using the identity and schema of the partitioned table rather than - that of the individual partitions that are actually changed; the - latter is the default. Enabling this allows the changes to be - replicated into a non-partitioned table or a partitioned table - consisting of a different set of partitions. + This parameter controls how changes to a partitioned table (or any of + its partitions) are published. When set to true, + changes are published using the identity and schema of the + root partitioned table. When set to false (the + default), changes are published using the identity and schema of the + individual partitions where the changes actually occurred. Enabling + this option allows the changes to be replicated into a + non-partitioned table or into a partitioned table whose partition + structure differs from that of the publisher. From a563ac619407984319c4d4d59c919e7a170087ca Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 15 Jan 2026 16:48:45 +0200 Subject: [PATCH 62/94] Add check for invalid offset at multixid truncation If a multixid with zero offset is left behind after a crash, and that multixid later becomes the oldest multixid, truncation might try to look up its offset and read the zero value. In the worst case, we might incorrectly use the zero offset to truncate valid SLRU segments that are still needed. I'm not sure if that can happen in practice, or if there are some other lower-level safeguards or incidental reasons that prevent the caller from passing an unwritten multixid as the oldest multi. But better safe than sorry, so let's add an explicit check for it. In stable branches, we should perhaps do the same check for 'oldestOffset', i.e. the offset of the old oldest multixid (in master, 'oldestOffset' is gone). But if the old oldest multixid has an invalid offset, the damage has been done already, and we would never advance past that point. It's not clear what we should do in that case. The check that this commit adds will prevent such an multixid with invalid offset from becoming the oldest multixid in the first place, which seems enough for now. Reviewed-by: Andrey Borodin Discussion: Discussion: https://www.postgresql.org/message-id/000301b2-5b81-4938-bdac-90f6eb660843@iki.fi Backpatch-through: 14 --- src/backend/access/transam/multixact.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index f1abdbc144a..64bb9bbea36 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -3146,6 +3146,23 @@ TruncateMultiXact(MultiXactId newOldestMulti, Oid newOldestMultiDB) return; } + /* + * On crash, MultiXactIdCreateFromMembers() can leave behind multixids + * that were not yet written out and hence have zero offset on disk. If + * such a multixid becomes oldestMulti, we won't be able to look up its + * offset. That should be rare, so we don't try to do anything smart about + * it. Just skip the truncation, and hope that by the next truncation + * attempt, oldestMulti has advanced to a valid multixid. + */ + if (newOldestOffset == 0) + { + ereport(LOG, + (errmsg("cannot truncate up to MultiXact %u because it has invalid offset, skipping truncation", + newOldestMulti))); + LWLockRelease(MultiXactTruncationLock); + return; + } + elog(DEBUG1, "performing multixact truncation: " "offsets [%u, %u), offsets segments [%x, %x), " "members [%u, %u), members segments [%x, %x)", From ef8465588c988aee7555df4a70ec4e584b9c9fe1 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Thu, 15 Jan 2026 20:57:12 +0200 Subject: [PATCH 63/94] Fix 'unexpected data beyond EOF' on replica restart On restart, a replica can fail with an error like 'unexpected data beyond EOF in block 200 of relation T/D/R'. These are the steps to reproduce it: - A relation has a size of 400 blocks. - Blocks 201 to 400 are empty. - Block 200 has two rows. - Blocks 100 to 199 are empty. - A restartpoint is done - Vacuum truncates the relation to 200 blocks - A FPW deletes a row in block 200 - A checkpoint is done - A FPW deletes the last row in block 200 - Vacuum truncates the relation to 100 blocks - The replica restarts When the replica restarts: - The relation on disk starts at 100 blocks, because all the truncations were applied before restart. - The first truncate to 200 blocks is replayed. It silently fails, but it will still (incorrectly!) update the cache size to 200 blocks - The first FPW on block 200 is applied. XLogReadBufferForRead relies on the cached size and incorrectly assumes that the page already exists in the file, and thus won't extend the relation. - The online checkpoint record is replayed, calling smgrdestroyall which causes the cached size to be discarded - The second FPW on block 200 is applied. This time, the detected size is 100 blocks, an extend is attempted. However, the block 200 is already present in the buffer cache due to the first FPW. This triggers the 'unexpected data beyond EOF'. To fix, update the cached size in SmgrRelation with the current size rather than the requested new size, when the requested new size is greater. Author: Anthonin Bonnefoy Discussion: https://www.postgresql.org/message-id/CAO6_Xqrv-snNJNhbj1KjQmWiWHX3nYGDgAc=vxaZP3qc4g1Siw@mail.gmail.com Backpatch-through: 14 --- src/backend/storage/smgr/md.c | 3 +++ src/backend/storage/smgr/smgr.c | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index aa9ec9cf4d7..c3446323c42 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -863,6 +863,9 @@ mdnblocks(SMgrRelation reln, ForkNumber forknum) * functions for this relation or handled interrupts in between. This makes * sure we have opened all active segments, so that truncate loop will get * them all! + * + * If nblocks > curnblk, the request is ignored when we are InRecovery, + * otherwise, an error is raised. */ void mdtruncate(SMgrRelation reln, ForkNumber forknum, diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 586f294ffdc..38977166e8e 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -684,11 +684,20 @@ smgrtruncate2(SMgrRelation reln, ForkNumber *forknum, int nforks, /* * We might as well update the local smgr_cached_nblocks values. The * smgr cache inval message that this function sent will cause other - * backends to invalidate their copies of smgr_fsm_nblocks and - * smgr_vm_nblocks, and these ones too at the next command boundary. - * But these ensure they aren't outright wrong until then. + * backends to invalidate their copies of smgr_cached_nblocks, and + * these ones too at the next command boundary. But ensure they aren't + * outright wrong until then. + * + * We can have nblocks > old_nblocks when a relation was truncated + * multiple times, a replica applied all the truncations, and later + * restarts from a restartpoint located before the truncations. The + * relation on disk will be the size of the last truncate. When + * replaying the first truncate, we will have nblocks > current size. + * In such cases, smgr_truncate does nothing, so set the cached size + * to the old size rather than the requested size. */ - reln->smgr_cached_nblocks[forknum[i]] = nblocks[i]; + reln->smgr_cached_nblocks[forknum[i]] = + nblocks[i] > old_nblocks[i] ? old_nblocks[i] : nblocks[i]; } } From b926ff1373bbd5bd012c5e4e6465a7fd9d034966 Mon Sep 17 00:00:00 2001 From: Amit Langote Date: Fri, 16 Jan 2026 13:01:52 +0900 Subject: [PATCH 64/94] Fix segfault from releasing locks in detached DSM segments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a FATAL error occurs while holding a lock in a DSM segment (such as a dshash lock) and the process is not in a transaction, a segmentation fault can occur during process exit. The problem sequence is: 1. Process acquires a lock in a DSM segment (e.g., via dshash) 2. FATAL error occurs outside transaction context 3. proc_exit() begins, calling before_shmem_exit callbacks 4. dsm_backend_shutdown() detaches all DSM segments 5. Later, on_shmem_exit callbacks run 6. ProcKill() calls LWLockReleaseAll() 7. Segfault: the lock being released is in unmapped memory This only manifests outside transaction contexts because AbortTransaction() calls LWLockReleaseAll() during transaction abort, releasing locks before DSM cleanup. Background workers and other non-transactional code paths are vulnerable. Fix by calling LWLockReleaseAll() unconditionally at the start of shmem_exit(), before any callbacks run. Releasing locks before callbacks prevents the segfault - locks must be released before dsm_backend_shutdown() detaches their memory. This is safe because after an error, held locks are protecting potentially inconsistent data anyway, and callbacks can acquire fresh locks if needed. Also add a comment noting that LWLockReleaseAll() must be safe to call before LWLock initialization (which it is, since num_held_lwlocks will be 0), plus an Assert for the post-condition. This fix aligns with the original design intent from commit 001a573a2, which noted that backends must clean up shared memory state (including releasing lwlocks) before unmapping dynamic shared memory segments. Reported-by: Rahila Syed Author: Rahila Syed Reviewed-by: Amit Langote Reviewed-by: Dilip Kumar Reviewed-by: Andres Freund Reviewed-by: Álvaro Herrera Discussion: https://postgr.es/m/CAH2L28uSvyiosL+kaic9249jRVoQiQF6JOnaCitKFq=xiFzX3g@mail.gmail.com Backpatch-through: 14 --- src/backend/storage/ipc/ipc.c | 11 +++++++++-- src/backend/storage/lmgr/lwlock.c | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/backend/storage/ipc/ipc.c b/src/backend/storage/ipc/ipc.c index e9787264d4b..98beb25a7cc 100644 --- a/src/backend/storage/ipc/ipc.c +++ b/src/backend/storage/ipc/ipc.c @@ -29,6 +29,7 @@ #endif #include "storage/dsm.h" #include "storage/ipc.h" +#include "storage/lwlock.h" #include "tcop/tcopprot.h" @@ -229,13 +230,19 @@ shmem_exit(int code) { shmem_exit_inprogress = true; + /* + * Release any LWLocks we might be holding before callbacks run. This + * prevents accessing locks in detached DSM segments and allows callbacks + * to acquire new locks. + */ + LWLockReleaseAll(); + /* * Call before_shmem_exit callbacks. * * These should be things that need most of the system to still be up and * working, such as cleanup of temp relations, which requires catalog - * access; or things that need to be completed because later cleanup steps - * depend on them, such as releasing lwlocks. + * access. */ elog(DEBUG3, "shmem_exit(%d): %d before_shmem_exit callbacks to make", code, before_shmem_exit_index); diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 506dc285c8c..8cec4596837 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -1901,6 +1901,10 @@ LWLockReleaseClearVar(LWLock *lock, uint64 *valptr, uint64 val) * unchanged by this operation. This is necessary since InterruptHoldoffCount * has been set to an appropriate level earlier in error recovery. We could * decrement it below zero if we allow it to drop for each released lock! + * + * Note that this function must be safe to call even before the LWLock + * subsystem has been initialized (e.g., during early startup failures). + * In that case, num_held_lwlocks will be 0 and we do nothing. */ void LWLockReleaseAll(void) @@ -1911,6 +1915,8 @@ LWLockReleaseAll(void) LWLockRelease(held_lwlocks[num_held_lwlocks - 1].lock); } + + Assert(num_held_lwlocks == 0); } From fbf8df580aebf2fdba5e495bac508ecdd26c493c Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Sun, 18 Jan 2026 17:25:03 +0900 Subject: [PATCH 65/94] Fix error message related to end TLI in backup manifest The code adding the WAL information included in a backup manifest is cross-checked with the contents of the timeline history file of the end timeline. A check based on the end timeline, when it fails, reported the value of the start timeline in the error message. This error is fixed to show the correct timeline number in the report. This error report would be confusing for users if seen, because it would provide an incorrect information, so backpatch all the way down. Oversight in 0d8c9c1210c4. Author: Man Zeng Discussion: https://postgr.es/m/tencent_0F2949C4594556F672CF4658@qq.com Backpatch-through: 14 --- src/backend/backup/backup_manifest.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/backup/backup_manifest.c b/src/backend/backup/backup_manifest.c index 618bd0d5550..c805822e22b 100644 --- a/src/backend/backup/backup_manifest.c +++ b/src/backend/backup/backup_manifest.c @@ -251,7 +251,7 @@ AddWALInfoToBackupManifest(backup_manifest_info *manifest, XLogRecPtr startptr, if (first_wal_range && endtli != entry->tli) ereport(ERROR, errmsg("expected end timeline %u but found timeline %u", - starttli, entry->tli)); + endtli, entry->tli)); /* * If this timeline entry matches with the timeline on which the From 00410b76d5d07bd082eed3f3dfda3ebb02cd0db0 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 18 Jan 2026 14:54:33 -0500 Subject: [PATCH 66/94] Update time zone data files to tzdata release 2025c. This is pretty pro-forma for our purposes, as the only change is a historical correction for pre-1976 DST laws in Baja California. (Upstream made this release mostly to update their leap-second data, which we don't use.) But with minor releases coming up, we should be up-to-date. Backpatch-through: 14 --- src/timezone/data/tzdata.zi | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/timezone/data/tzdata.zi b/src/timezone/data/tzdata.zi index a7fb52f1968..c56f67c02f6 100644 --- a/src/timezone/data/tzdata.zi +++ b/src/timezone/data/tzdata.zi @@ -1,4 +1,4 @@ -# version 2025b +# version 2025c # This zic input file is in the public domain. R d 1916 o - Jun 14 23s 1 S R d 1916 1919 - O Su>=1 23s 0 - @@ -2951,9 +2951,7 @@ Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 7u -8 1 PDT 1951 S 30 2 -8 - PST 1952 Ap 27 2 -8 1 PDT 1952 S 28 2 --8 - PST 1954 --8 CA P%sT 1961 --8 - PST 1976 +-8 CA P%sT 1967 -8 u P%sT 1996 -8 m P%sT 2001 -8 u P%sT 2002 F 20 From dcddd69871976aabf99039b72124cf9a67e86d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Herrera?= Date: Wed, 21 Jan 2026 18:55:43 +0100 Subject: [PATCH 67/94] amcheck: Fix snapshot usage in bt_index_parent_check We were using SnapshotAny to do some index checks, but that's wrong and causes spurious errors when used on indexes created by CREATE INDEX CONCURRENTLY. Fix it to use an MVCC snapshot, and add a test for it. Backpatch of 6bd469d26aca to branches 14-16. I previously misidentified the bug's origin: it came in with commit 7f563c09f890 (pg11-era, not 5ae2087202af as claimed previously), so all live branches are affected. Also take the opportunity to fix some comments that we failed to update in the original commits and apply pgperltidy. In branch 14, remove the unnecessary test plan specification (which would have need to have been changed anyway; c.f. commit 549ec201d613.) Diagnosed-by: Donghang Lin Author: Mihail Nikalayeu Reviewed-by: Andrey Borodin Backpatch-through: 17 Discussion: https://postgr.es/m/CANtu0ojmVd27fEhfpST7RG2KZvwkX=dMyKUqg0KM87FkOSdz8Q@mail.gmail.com --- contrib/amcheck/t/002_cic.pl | 24 ++++++++++++ contrib/amcheck/verify_nbtree.c | 69 +++++++++++++++------------------ doc/src/sgml/amcheck.sgml | 2 +- 3 files changed, 56 insertions(+), 39 deletions(-) diff --git a/contrib/amcheck/t/002_cic.pl b/contrib/amcheck/t/002_cic.pl index 32e4e4abd84..8304664f6e0 100644 --- a/contrib/amcheck/t/002_cic.pl +++ b/contrib/amcheck/t/002_cic.pl @@ -60,5 +60,29 @@ ) }); +# Test bt_index_parent_check() with indexes created with +# CREATE INDEX CONCURRENTLY. +$node->safe_psql('postgres', q(CREATE TABLE quebec(i int primary key))); +# Insert two rows into index +$node->safe_psql('postgres', + q(INSERT INTO quebec SELECT i FROM generate_series(1, 2) s(i);)); + +# start background transaction +my $in_progress_h = $node->background_psql('postgres'); +$in_progress_h->query_safe(q(BEGIN; SELECT pg_current_xact_id();)); + +# delete one row from table, while background transaction is in progress +$node->safe_psql('postgres', q(DELETE FROM quebec WHERE i = 1;)); +# create index concurrently, which will skip the deleted row +$node->safe_psql('postgres', + q(CREATE INDEX CONCURRENTLY oscar ON quebec(i);)); + +# check index using bt_index_parent_check +$result = $node->psql('postgres', + q(SELECT bt_index_parent_check('oscar', heapallindexed => true))); +is($result, '0', 'bt_index_parent_check for CIC after removed row'); + +$in_progress_h->quit; + $node->stop; done_testing(); diff --git a/contrib/amcheck/verify_nbtree.c b/contrib/amcheck/verify_nbtree.c index 16698b49d43..073d259fd88 100644 --- a/contrib/amcheck/verify_nbtree.c +++ b/contrib/amcheck/verify_nbtree.c @@ -463,11 +463,11 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, bool readonly, bool heapallindexed, bool rootdescend) { BtreeCheckState *state; + Snapshot snapshot = InvalidSnapshot; Page metapage; BTMetaPageData *metad; uint32 previouslevel; BtreeLevel current; - Snapshot snapshot = SnapshotAny; if (!readonly) elog(DEBUG1, "verifying consistency of tree structure for index \"%s\"", @@ -516,37 +516,33 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, state->heaptuplespresent = 0; /* - * Register our own snapshot in !readonly case, rather than asking + * Register our own snapshot for heapallindexed, rather than asking * table_index_build_scan() to do this for us later. This needs to * happen before index fingerprinting begins, so we can later be * certain that index fingerprinting should have reached all tuples * returned by table_index_build_scan(). */ - if (!state->readonly) - { - snapshot = RegisterSnapshot(GetTransactionSnapshot()); + snapshot = RegisterSnapshot(GetTransactionSnapshot()); - /* - * GetTransactionSnapshot() always acquires a new MVCC snapshot in - * READ COMMITTED mode. A new snapshot is guaranteed to have all - * the entries it requires in the index. - * - * We must defend against the possibility that an old xact - * snapshot was returned at higher isolation levels when that - * snapshot is not safe for index scans of the target index. This - * is possible when the snapshot sees tuples that are before the - * index's indcheckxmin horizon. Throwing an error here should be - * very rare. It doesn't seem worth using a secondary snapshot to - * avoid this. - */ - if (IsolationUsesXactSnapshot() && rel->rd_index->indcheckxmin && - !TransactionIdPrecedes(HeapTupleHeaderGetXmin(rel->rd_indextuple->t_data), - snapshot->xmin)) - ereport(ERROR, - (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), - errmsg("index \"%s\" cannot be verified using transaction snapshot", - RelationGetRelationName(rel)))); - } + /* + * GetTransactionSnapshot() always acquires a new MVCC snapshot in + * READ COMMITTED mode. A new snapshot is guaranteed to have all the + * entries it requires in the index. + * + * We must defend against the possibility that an old xact snapshot + * was returned at higher isolation levels when that snapshot is not + * safe for index scans of the target index. This is possible when + * the snapshot sees tuples that are before the index's indcheckxmin + * horizon. Throwing an error here should be very rare. It doesn't + * seem worth using a secondary snapshot to avoid this. + */ + if (IsolationUsesXactSnapshot() && rel->rd_index->indcheckxmin && + !TransactionIdPrecedes(HeapTupleHeaderGetXmin(rel->rd_indextuple->t_data), + snapshot->xmin)) + ereport(ERROR, + errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), + errmsg("index \"%s\" cannot be verified using transaction snapshot", + RelationGetRelationName(rel))); } Assert(!state->rootdescend || state->readonly); @@ -621,8 +617,7 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, /* * Create our own scan for table_index_build_scan(), rather than * getting it to do so for us. This is required so that we can - * actually use the MVCC snapshot registered earlier in !readonly - * case. + * actually use the MVCC snapshot registered earlier. * * Note that table_index_build_scan() calls heap_endscan() for us. */ @@ -635,16 +630,15 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, /* * Scan will behave as the first scan of a CREATE INDEX CONCURRENTLY - * behaves in !readonly case. + * behaves. * * It's okay that we don't actually use the same lock strength for the - * heap relation as any other ii_Concurrent caller would in !readonly - * case. We have no reason to care about a concurrent VACUUM - * operation, since there isn't going to be a second scan of the heap - * that needs to be sure that there was no concurrent recycling of - * TIDs. + * heap relation as any other ii_Concurrent caller would. We have no + * reason to care about a concurrent VACUUM operation, since there + * isn't going to be a second scan of the heap that needs to be sure + * that there was no concurrent recycling of TIDs. */ - indexinfo->ii_Concurrent = !state->readonly; + indexinfo->ii_Concurrent = true; /* * Don't wait for uncommitted tuple xact commit/abort when index is a @@ -668,13 +662,12 @@ bt_check_every_level(Relation rel, Relation heaprel, bool heapkeyspace, state->heaptuplespresent, RelationGetRelationName(heaprel), 100.0 * bloom_prop_bits_set(state->filter)))); - if (snapshot != SnapshotAny) - UnregisterSnapshot(snapshot); - bloom_free(state->filter); } /* Be tidy: */ + if (snapshot != InvalidSnapshot) + UnregisterSnapshot(snapshot); MemoryContextDelete(state->targetcontext); } diff --git a/doc/src/sgml/amcheck.sgml b/doc/src/sgml/amcheck.sgml index 5d61a33936f..946bcfaa9c4 100644 --- a/doc/src/sgml/amcheck.sgml +++ b/doc/src/sgml/amcheck.sgml @@ -353,7 +353,7 @@ SET client_min_messages = DEBUG1; verification functions is true, an additional phase of verification is performed against the table associated with the target index relation. This consists of a dummy - CREATE INDEX operation, which checks for the + CREATE INDEX CONCURRENTLY operation, which checks for the presence of all hypothetical new index tuples against a temporary, in-memory summarizing structure (this is built when needed during the basic first phase of verification). The summarizing structure From cbdd09ae1b571e8ecd9dbc7cd9d43600f86b56f6 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Thu, 22 Jan 2026 15:43:13 +1300 Subject: [PATCH 68/94] jit: Add missing inline pass for LLVM >= 17. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With LLVM >= 17, transform passes are provided as a string to LLVMRunPasses. Only two strings were used: "default" and "default,mem2reg". With previous LLVM versions, an additional inline pass was added when JIT inlining was enabled without optimization. With LLVM >= 17, the code would go through llvm_inline, prepare the functions for inlining, but the generated bitcode would be the same due to the missing inline pass. This patch restores the previous behavior by adding an inline pass when inlining is enabled but no optimization is done. This fixes an oversight introduced by 76200e5e when support for LLVM 17 was added. Backpatch-through: 14 Author: Anthonin Bonnefoy Reviewed-by: Thomas Munro Reviewed-by: Andreas Karlsson Reviewed-by: Andres Freund Reviewed-by: Álvaro Herrera Reviewed-by: Pierre Ducroquet Reviewed-by: Matheus Alcantara Discussion: https://postgr.es/m/CAO6_XqrNjJnbn15ctPv7o4yEAT9fWa-dK15RSyun6QNw9YDtKg%40mail.gmail.com --- src/backend/jit/llvm/llvmjit.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index 2ab3e8ba972..377b0f98e74 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -719,7 +719,11 @@ llvm_optimize_module(LLVMJitContext *context, LLVMModuleRef module) if (context->base.flags & PGJIT_OPT3) passes = "default"; + else if (context->base.flags & PGJIT_INLINE) + /* if doing inlining, but no expensive optimization, add inline pass */ + passes = "default,mem2reg,inline"; else + /* default includes always-inline pass */ passes = "default,mem2reg"; options = LLVMCreatePassBuilderOptions(); From 83172d94164a6c327d7306dd9e0906293fd58ca2 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Thu, 22 Jan 2026 16:35:51 +0900 Subject: [PATCH 69/94] doc: Mention pg_get_partition_constraintdef() All the other SQL functions reconstructing definitions or commands are listed in the documentation, except this one. Oversight in 1848b73d4576. Author: Todd Liebenschutz-Jones Discussion: https://postgr.es/m/CAGTRfaD6uRQ9iutASDzc_iDoS25sQTLWgXTtR3ta63uwTxq6bA@mail.gmail.com Backpatch-through: 14 --- doc/src/sgml/func.sgml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 377848ae808..8fa96011efa 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -23714,6 +23714,21 @@ SELECT pg_type_is_visible('myschema.widget'::regtype); + + + + pg_get_partition_constraintdef + + pg_get_partition_constraintdef ( table oid ) + text + + + Reconstructs the definition of a partition constraint. + (This is a decompiled reconstruction, not the original text + of the command.) + + + From 7eb3422eb4f7751518da743b21ac6c5266ddccdd Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 22 Jan 2026 18:35:31 -0500 Subject: [PATCH 70/94] Remove faulty Assert in partitioned INSERT...ON CONFLICT DO UPDATE. Commit f16241bef mistakenly supposed that INSERT...ON CONFLICT DO UPDATE rejects partitioned target tables. (This may have been accurate when the patch was written, but it was already obsolete when committed.) Hence, there's an assertion that we can't see ItemPointerIndicatesMovedPartitions() in that path, but the assertion is triggerable. Some other places throw error if they see a moved-across-partitions tuple, but there seems no need for that here, because if we just retry then we get the same behavior as in the update-within-partition case, as demonstrated by the new isolation test. So fix by deleting the faulty Assert. (The fact that this is the fix doubtless explains why we've heard no field complaints: the behavior of a non-assert build is fine.) The TM_Deleted case contains a cargo-culted copy of the same Assert, which I also deleted to avoid confusion, although I believe that one is actually not triggerable. Per our code coverage report, neither the TM_Updated nor the TM_Deleted case were reached at all by existing tests, so this patch adds tests for both. Reported-by: Dmitry Koval Author: Joseph Koshakow Reviewed-by: Tom Lane Discussion: https://postgr.es/m/f5fffe4b-11b2-4557-a864-3587ff9b4c36@postgrespro.ru Backpatch-through: 14 --- src/backend/executor/nodeModifyTable.c | 9 --- .../expected/insert-conflict-do-update-4.out | 63 +++++++++++++++++++ src/test/isolation/isolation_schedule | 1 + .../specs/insert-conflict-do-update-4.spec | 42 +++++++++++++ 4 files changed, 106 insertions(+), 9 deletions(-) create mode 100644 src/test/isolation/expected/insert-conflict-do-update-4.out create mode 100644 src/test/isolation/specs/insert-conflict-do-update-4.spec diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 2cf118c90f0..486110a3dd5 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -2624,14 +2624,6 @@ ExecOnConflictUpdate(ModifyTableContext *context, (errcode(ERRCODE_T_R_SERIALIZATION_FAILURE), errmsg("could not serialize access due to concurrent update"))); - /* - * As long as we don't support an UPDATE of INSERT ON CONFLICT for - * a partitioned table we shouldn't reach to a case where tuple to - * be lock is moved to another partition due to concurrent update - * of the partition key. - */ - Assert(!ItemPointerIndicatesMovedPartitions(&tmfd.ctid)); - /* * Tell caller to try again from the very start. * @@ -2649,7 +2641,6 @@ ExecOnConflictUpdate(ModifyTableContext *context, errmsg("could not serialize access due to concurrent delete"))); /* see TM_Updated case */ - Assert(!ItemPointerIndicatesMovedPartitions(&tmfd.ctid)); ExecClearTuple(existing); return false; diff --git a/src/test/isolation/expected/insert-conflict-do-update-4.out b/src/test/isolation/expected/insert-conflict-do-update-4.out new file mode 100644 index 00000000000..6e96e0d12da --- /dev/null +++ b/src/test/isolation/expected/insert-conflict-do-update-4.out @@ -0,0 +1,63 @@ +Parsed test spec with 2 sessions + +starting permutation: lock2 insert1 update2a c2 select1 c1 +step lock2: SELECT * FROM upsert WHERE i = 1 FOR UPDATE; +i| j| k +-+--+--- +1|10|100 +(1 row) + +step insert1: INSERT INTO upsert VALUES (1, 11, 111) + ON CONFLICT (i) DO UPDATE SET k = EXCLUDED.k; +step update2a: UPDATE upsert SET i = i + 10 WHERE i = 1; +step c2: COMMIT; +step insert1: <... completed> +step select1: SELECT * FROM upsert; + i| j| k +--+--+--- +11|10|100 + 1|11|111 +(2 rows) + +step c1: COMMIT; + +starting permutation: lock2 insert1 update2b c2 select1 c1 +step lock2: SELECT * FROM upsert WHERE i = 1 FOR UPDATE; +i| j| k +-+--+--- +1|10|100 +(1 row) + +step insert1: INSERT INTO upsert VALUES (1, 11, 111) + ON CONFLICT (i) DO UPDATE SET k = EXCLUDED.k; +step update2b: UPDATE upsert SET i = i + 150 WHERE i = 1; +step c2: COMMIT; +step insert1: <... completed> +step select1: SELECT * FROM upsert; + i| j| k +---+--+--- + 1|11|111 +151|10|100 +(2 rows) + +step c1: COMMIT; + +starting permutation: lock2 insert1 delete2 c2 select1 c1 +step lock2: SELECT * FROM upsert WHERE i = 1 FOR UPDATE; +i| j| k +-+--+--- +1|10|100 +(1 row) + +step insert1: INSERT INTO upsert VALUES (1, 11, 111) + ON CONFLICT (i) DO UPDATE SET k = EXCLUDED.k; +step delete2: DELETE FROM upsert WHERE i = 1; +step c2: COMMIT; +step insert1: <... completed> +step select1: SELECT * FROM upsert; +i| j| k +-+--+--- +1|11|111 +(1 row) + +step c1: COMMIT; diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index 009416ca7bb..c57e57338f8 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -48,6 +48,7 @@ test: insert-conflict-do-nothing-2 test: insert-conflict-do-update test: insert-conflict-do-update-2 test: insert-conflict-do-update-3 +test: insert-conflict-do-update-4 test: insert-conflict-specconflict test: merge-insert-update test: merge-delete diff --git a/src/test/isolation/specs/insert-conflict-do-update-4.spec b/src/test/isolation/specs/insert-conflict-do-update-4.spec new file mode 100644 index 00000000000..6297b1d1d6c --- /dev/null +++ b/src/test/isolation/specs/insert-conflict-do-update-4.spec @@ -0,0 +1,42 @@ +# INSERT...ON CONFLICT DO UPDATE test with partitioned table +# +# We use SELECT FOR UPDATE to block the INSERT at the point where +# it has found an existing tuple and is attempting to update it. +# Then we can execute a conflicting update and verify the results. +# Of course, this only works in READ COMMITTED mode, else we'd get an error. + +setup +{ + CREATE TABLE upsert (i int PRIMARY KEY, j int, k int) PARTITION BY RANGE (i); + CREATE TABLE upsert_1 PARTITION OF upsert FOR VALUES FROM (1) TO (100); + CREATE TABLE upsert_2 PARTITION OF upsert FOR VALUES FROM (100) TO (200); + + INSERT INTO upsert VALUES (1, 10, 100); +} + +teardown +{ + DROP TABLE upsert; +} + +session s1 +setup { BEGIN ISOLATION LEVEL READ COMMITTED; } +step insert1 { INSERT INTO upsert VALUES (1, 11, 111) + ON CONFLICT (i) DO UPDATE SET k = EXCLUDED.k; } +step select1 { SELECT * FROM upsert; } +step c1 { COMMIT; } + +session s2 +setup { BEGIN ISOLATION LEVEL READ COMMITTED; } +step lock2 { SELECT * FROM upsert WHERE i = 1 FOR UPDATE; } +step update2a { UPDATE upsert SET i = i + 10 WHERE i = 1; } +step update2b { UPDATE upsert SET i = i + 150 WHERE i = 1; } +step delete2 { DELETE FROM upsert WHERE i = 1; } +step c2 { COMMIT; } + +# Test case where concurrent update moves the target row within the partition +permutation lock2 insert1 update2a c2 select1 c1 +# Test case where concurrent update moves the target row to another partition +permutation lock2 insert1 update2b c2 select1 c1 +# Test case where target row is concurrently deleted +permutation lock2 insert1 delete2 c2 select1 c1 From 687533b39ecf437388821eed5e93a277c0170853 Mon Sep 17 00:00:00 2001 From: Amit Langote Date: Fri, 23 Jan 2026 10:21:16 +0900 Subject: [PATCH 71/94] Fix bogus ctid requirement for dummy-root partitioned targets ExecInitModifyTable() unconditionally required a ctid junk column even when the target was a partitioned table. This led to spurious "could not find junk ctid column" errors when all children were excluded and only the dummy root result relation remained. A partitioned table only appears in the result relations list when all leaf partitions have been pruned, leaving the dummy root as the sole entry. Assert this invariant (nrels == 1) and skip the ctid requirement. Also adjust ExecModifyTable() to tolerate invalid ri_RowIdAttNo for partitioned tables, which is safe since no rows will be processed in this case. Bug: #19099 Reported-by: Alexander Lakhin Author: Amit Langote Reviewed-by: Tender Wang Reviewed-by: Kirill Reshke Reviewed-by: Tom Lane Discussion: https://postgr.es/m/19099-e05dcfa022fe553d%40postgresql.org Backpatch-through: 14 --- contrib/file_fdw/expected/file_fdw.out | 15 +++++++++++++++ contrib/file_fdw/sql/file_fdw.sql | 18 ++++++++++++++++++ src/backend/executor/nodeModifyTable.c | 19 ++++++++++++++++--- 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/contrib/file_fdw/expected/file_fdw.out b/contrib/file_fdw/expected/file_fdw.out index 65a3693240a..5ada148129f 100644 --- a/contrib/file_fdw/expected/file_fdw.out +++ b/contrib/file_fdw/expected/file_fdw.out @@ -416,6 +416,21 @@ SELECT tableoid::regclass, * FROM p2; p2 | 2 | xyzzy (3 rows) +-- Test DELETE/UPDATE/MERGE on a partitioned table when all partitions +-- are excluded and only the dummy root result relation remains. The +-- operation is a no-op but should not fail regardless of whether the +-- foreign child was processed (pruning off) or not (pruning on). +DROP TABLE p2; +SET enable_partition_pruning TO off; +DELETE FROM pt WHERE false; +UPDATE pt SET b = 'x' WHERE false; +MERGE INTO pt t USING (VALUES (1, 'x'::text)) AS s(a, b) + ON false WHEN MATCHED THEN UPDATE SET b = s.b; +SET enable_partition_pruning TO on; +DELETE FROM pt WHERE false; +UPDATE pt SET b = 'x' WHERE false; +MERGE INTO pt t USING (VALUES (1, 'x'::text)) AS s(a, b) + ON false WHEN MATCHED THEN UPDATE SET b = s.b; DROP TABLE pt; -- generated column tests \set filename :abs_srcdir '/data/list1.csv' diff --git a/contrib/file_fdw/sql/file_fdw.sql b/contrib/file_fdw/sql/file_fdw.sql index 21a9000893c..0015b2b88e5 100644 --- a/contrib/file_fdw/sql/file_fdw.sql +++ b/contrib/file_fdw/sql/file_fdw.sql @@ -225,6 +225,24 @@ UPDATE pt set a = 1 where a = 2; -- ERROR SELECT tableoid::regclass, * FROM pt; SELECT tableoid::regclass, * FROM p1; SELECT tableoid::regclass, * FROM p2; + +-- Test DELETE/UPDATE/MERGE on a partitioned table when all partitions +-- are excluded and only the dummy root result relation remains. The +-- operation is a no-op but should not fail regardless of whether the +-- foreign child was processed (pruning off) or not (pruning on). +DROP TABLE p2; +SET enable_partition_pruning TO off; +DELETE FROM pt WHERE false; +UPDATE pt SET b = 'x' WHERE false; +MERGE INTO pt t USING (VALUES (1, 'x'::text)) AS s(a, b) + ON false WHEN MATCHED THEN UPDATE SET b = s.b; + +SET enable_partition_pruning TO on; +DELETE FROM pt WHERE false; +UPDATE pt SET b = 'x' WHERE false; +MERGE INTO pt t USING (VALUES (1, 'x'::text)) AS s(a, b) + ON false WHEN MATCHED THEN UPDATE SET b = s.b; + DROP TABLE pt; -- generated column tests diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 486110a3dd5..1a3b9e00b4d 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -3896,8 +3896,12 @@ ExecModifyTable(PlanState *pstate) relkind == RELKIND_MATVIEW || relkind == RELKIND_PARTITIONED_TABLE) { - /* ri_RowIdAttNo refers to a ctid attribute */ - Assert(AttributeNumberIsValid(resultRelInfo->ri_RowIdAttNo)); + /* + * ri_RowIdAttNo refers to a ctid attribute. See the comment + * in ExecInitModifyTable(). + */ + Assert(AttributeNumberIsValid(resultRelInfo->ri_RowIdAttNo) || + relkind == RELKIND_PARTITIONED_TABLE); datum = ExecGetJunkAttribute(slot, resultRelInfo->ri_RowIdAttNo, &isNull); @@ -4287,7 +4291,16 @@ ExecInitModifyTable(ModifyTable *node, EState *estate, int eflags) { resultRelInfo->ri_RowIdAttNo = ExecFindJunkAttributeInTlist(subplan->targetlist, "ctid"); - if (!AttributeNumberIsValid(resultRelInfo->ri_RowIdAttNo)) + + /* + * For heap relations, a ctid junk attribute must be present. + * Partitioned tables should only appear here when all leaf + * partitions were pruned, in which case no rows can be + * produced and ctid is not needed. + */ + if (relkind == RELKIND_PARTITIONED_TABLE) + Assert(nrels == 1); + else if (!AttributeNumberIsValid(resultRelInfo->ri_RowIdAttNo)) elog(ERROR, "could not find junk ctid column"); } else if (relkind == RELKIND_FOREIGN_TABLE) From c5824536e7ca3c5ef5a9db59bd36c4e6beb23f51 Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Sat, 24 Jan 2026 11:30:51 +0000 Subject: [PATCH 72/94] Fix trigger transition table capture for MERGE in CTE queries. When executing a data-modifying CTE query containing MERGE and some other DML operation on a table with statement-level AFTER triggers, the transition tables passed to the triggers would fail to include the rows affected by the MERGE. The reason is that, when initializing a ModifyTable node for MERGE, MakeTransitionCaptureState() would create a TransitionCaptureState structure with a single "tcs_private" field pointing to an AfterTriggersTableData structure with cmdType == CMD_MERGE. Tuples captured there would then not be included in the sets of tuples captured when executing INSERT/UPDATE/DELETE ModifyTable nodes in the same query. Since there are no MERGE triggers, we should only create AfterTriggersTableData structures for INSERT/UPDATE/DELETE. Individual MERGE actions should then use those, thereby sharing the same capture tuplestores as any other DML commands executed in the same query. This requires changing the TransitionCaptureState structure, replacing "tcs_private" with 3 separate pointers to AfterTriggersTableData structures, one for each of INSERT, UPDATE, and DELETE. Nominally, this is an ABI break to a public structure in commands/trigger.h. However, since this is a private field pointing to an opaque data structure, the only way to create a valid TransitionCaptureState is by calling MakeTransitionCaptureState(), and no extensions appear to be doing that anyway, so it seems safe for back-patching. Backpatch to v15, where MERGE was introduced. Bug: #19380 Reported-by: Daniel Woelfel Author: Dean Rasheed Reviewed-by: Tom Lane Discussion: https://postgr.es/m/19380-4e293be2b4007248%40postgresql.org Backpatch-through: 15 --- src/backend/commands/trigger.c | 148 ++++++++++++++++--------- src/include/commands/trigger.h | 4 +- src/test/regress/expected/triggers.out | 8 +- src/test/regress/sql/triggers.sql | 4 + 4 files changed, 107 insertions(+), 57 deletions(-) diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 8bb2b35a8b8..06f4c86fbe1 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -3986,21 +3986,10 @@ struct AfterTriggersTableData bool after_trig_done; /* did we already queue AS triggers? */ AfterTriggerEventList after_trig_events; /* if so, saved list pointer */ - /* - * We maintain separate transition tables for UPDATE/INSERT/DELETE since - * MERGE can run all three actions in a single statement. Note that UPDATE - * needs both old and new transition tables whereas INSERT needs only new, - * and DELETE needs only old. - */ - - /* "old" transition table for UPDATE, if any */ - Tuplestorestate *old_upd_tuplestore; - /* "new" transition table for UPDATE, if any */ - Tuplestorestate *new_upd_tuplestore; - /* "old" transition table for DELETE, if any */ - Tuplestorestate *old_del_tuplestore; - /* "new" transition table for INSERT, if any */ - Tuplestorestate *new_ins_tuplestore; + /* "old" transition table for UPDATE/DELETE, if any */ + Tuplestorestate *old_tuplestore; + /* "new" transition table for INSERT/UPDATE, if any */ + Tuplestorestate *new_tuplestore; TupleTableSlot *storeslot; /* for converting to tuplestore's format */ }; @@ -4027,6 +4016,7 @@ static Tuplestorestate *GetAfterTriggersTransitionTable(int event, TupleTableSlot *newslot, TransitionCaptureState *transition_capture); static void TransitionTableAddTuple(EState *estate, + int event, TransitionCaptureState *transition_capture, ResultRelInfo *relinfo, TupleTableSlot *slot, @@ -4586,19 +4576,13 @@ AfterTriggerExecute(EState *estate, { if (LocTriggerData.tg_trigger->tgoldtable) { - if (TRIGGER_FIRED_BY_UPDATE(evtshared->ats_event)) - LocTriggerData.tg_oldtable = evtshared->ats_table->old_upd_tuplestore; - else - LocTriggerData.tg_oldtable = evtshared->ats_table->old_del_tuplestore; + LocTriggerData.tg_oldtable = evtshared->ats_table->old_tuplestore; evtshared->ats_table->closed = true; } if (LocTriggerData.tg_trigger->tgnewtable) { - if (TRIGGER_FIRED_BY_INSERT(evtshared->ats_event)) - LocTriggerData.tg_newtable = evtshared->ats_table->new_ins_tuplestore; - else - LocTriggerData.tg_newtable = evtshared->ats_table->new_upd_tuplestore; + LocTriggerData.tg_newtable = evtshared->ats_table->new_tuplestore; evtshared->ats_table->closed = true; } } @@ -4930,6 +4914,11 @@ GetAfterTriggersTableData(Oid relid, CmdType cmdType) MemoryContext oldcxt; ListCell *lc; + /* At this level, cmdType should not be, eg, CMD_MERGE */ + Assert(cmdType == CMD_INSERT || + cmdType == CMD_UPDATE || + cmdType == CMD_DELETE); + /* Caller should have ensured query_depth is OK. */ Assert(afterTriggers.query_depth >= 0 && afterTriggers.query_depth < afterTriggers.maxquerydepth); @@ -5016,7 +5005,9 @@ MakeTransitionCaptureState(TriggerDesc *trigdesc, Oid relid, CmdType cmdType) need_new_upd, need_old_del, need_new_ins; - AfterTriggersTableData *table; + AfterTriggersTableData *ins_table; + AfterTriggersTableData *upd_table; + AfterTriggersTableData *del_table; MemoryContext oldcxt; ResourceOwner saveResourceOwner; @@ -5063,10 +5054,15 @@ MakeTransitionCaptureState(TriggerDesc *trigdesc, Oid relid, CmdType cmdType) AfterTriggerEnlargeQueryState(); /* - * Find or create an AfterTriggersTableData struct to hold the + * Find or create AfterTriggersTableData struct(s) to hold the * tuplestore(s). If there's a matching struct but it's marked closed, * ignore it; we need a newer one. * + * Note: MERGE must use the same AfterTriggersTableData structs as INSERT, + * UPDATE, and DELETE, so that any MERGE'd tuples are added to the same + * tuplestores as tuples from any INSERT, UPDATE, or DELETE commands + * running in the same top-level command (e.g., in a writable CTE). + * * Note: the AfterTriggersTableData list, as well as the tuplestores, are * allocated in the current (sub)transaction's CurTransactionContext, and * the tuplestores are managed by the (sub)transaction's resource owner. @@ -5074,21 +5070,34 @@ MakeTransitionCaptureState(TriggerDesc *trigdesc, Oid relid, CmdType cmdType) * transition tables to be deferrable; they will be fired during * AfterTriggerEndQuery, after which it's okay to delete the data. */ - table = GetAfterTriggersTableData(relid, cmdType); + if (need_new_ins) + ins_table = GetAfterTriggersTableData(relid, CMD_INSERT); + else + ins_table = NULL; + + if (need_old_upd || need_new_upd) + upd_table = GetAfterTriggersTableData(relid, CMD_UPDATE); + else + upd_table = NULL; + + if (need_old_del) + del_table = GetAfterTriggersTableData(relid, CMD_DELETE); + else + del_table = NULL; /* Now create required tuplestore(s), if we don't have them already. */ oldcxt = MemoryContextSwitchTo(CurTransactionContext); saveResourceOwner = CurrentResourceOwner; CurrentResourceOwner = CurTransactionResourceOwner; - if (need_old_upd && table->old_upd_tuplestore == NULL) - table->old_upd_tuplestore = tuplestore_begin_heap(false, false, work_mem); - if (need_new_upd && table->new_upd_tuplestore == NULL) - table->new_upd_tuplestore = tuplestore_begin_heap(false, false, work_mem); - if (need_old_del && table->old_del_tuplestore == NULL) - table->old_del_tuplestore = tuplestore_begin_heap(false, false, work_mem); - if (need_new_ins && table->new_ins_tuplestore == NULL) - table->new_ins_tuplestore = tuplestore_begin_heap(false, false, work_mem); + if (need_old_upd && upd_table->old_tuplestore == NULL) + upd_table->old_tuplestore = tuplestore_begin_heap(false, false, work_mem); + if (need_new_upd && upd_table->new_tuplestore == NULL) + upd_table->new_tuplestore = tuplestore_begin_heap(false, false, work_mem); + if (need_old_del && del_table->old_tuplestore == NULL) + del_table->old_tuplestore = tuplestore_begin_heap(false, false, work_mem); + if (need_new_ins && ins_table->new_tuplestore == NULL) + ins_table->new_tuplestore = tuplestore_begin_heap(false, false, work_mem); CurrentResourceOwner = saveResourceOwner; MemoryContextSwitchTo(oldcxt); @@ -5099,7 +5108,9 @@ MakeTransitionCaptureState(TriggerDesc *trigdesc, Oid relid, CmdType cmdType) state->tcs_update_old_table = need_old_upd; state->tcs_update_new_table = need_new_upd; state->tcs_insert_new_table = need_new_ins; - state->tcs_private = table; + state->tcs_insert_private = ins_table; + state->tcs_update_private = upd_table; + state->tcs_delete_private = del_table; return state; } @@ -5277,20 +5288,12 @@ AfterTriggerFreeQuery(AfterTriggersQueryData *qs) { AfterTriggersTableData *table = (AfterTriggersTableData *) lfirst(lc); - ts = table->old_upd_tuplestore; - table->old_upd_tuplestore = NULL; - if (ts) - tuplestore_end(ts); - ts = table->new_upd_tuplestore; - table->new_upd_tuplestore = NULL; - if (ts) - tuplestore_end(ts); - ts = table->old_del_tuplestore; - table->old_del_tuplestore = NULL; + ts = table->old_tuplestore; + table->old_tuplestore = NULL; if (ts) tuplestore_end(ts); - ts = table->new_ins_tuplestore; - table->new_ins_tuplestore = NULL; + ts = table->new_tuplestore; + table->new_tuplestore = NULL; if (ts) tuplestore_end(ts); if (table->storeslot) @@ -5601,17 +5604,17 @@ GetAfterTriggersTransitionTable(int event, { Assert(TupIsNull(newslot)); if (event == TRIGGER_EVENT_DELETE && delete_old_table) - tuplestore = transition_capture->tcs_private->old_del_tuplestore; + tuplestore = transition_capture->tcs_delete_private->old_tuplestore; else if (event == TRIGGER_EVENT_UPDATE && update_old_table) - tuplestore = transition_capture->tcs_private->old_upd_tuplestore; + tuplestore = transition_capture->tcs_update_private->old_tuplestore; } else if (!TupIsNull(newslot)) { Assert(TupIsNull(oldslot)); if (event == TRIGGER_EVENT_INSERT && insert_new_table) - tuplestore = transition_capture->tcs_private->new_ins_tuplestore; + tuplestore = transition_capture->tcs_insert_private->new_tuplestore; else if (event == TRIGGER_EVENT_UPDATE && update_new_table) - tuplestore = transition_capture->tcs_private->new_upd_tuplestore; + tuplestore = transition_capture->tcs_update_private->new_tuplestore; } return tuplestore; @@ -5625,6 +5628,7 @@ GetAfterTriggersTransitionTable(int event, */ static void TransitionTableAddTuple(EState *estate, + int event, TransitionCaptureState *transition_capture, ResultRelInfo *relinfo, TupleTableSlot *slot, @@ -5643,9 +5647,26 @@ TransitionTableAddTuple(EState *estate, tuplestore_puttupleslot(tuplestore, original_insert_tuple); else if ((map = ExecGetChildToRootMap(relinfo)) != NULL) { - AfterTriggersTableData *table = transition_capture->tcs_private; + AfterTriggersTableData *table; TupleTableSlot *storeslot; + switch (event) + { + case TRIGGER_EVENT_INSERT: + table = transition_capture->tcs_insert_private; + break; + case TRIGGER_EVENT_UPDATE: + table = transition_capture->tcs_update_private; + break; + case TRIGGER_EVENT_DELETE: + table = transition_capture->tcs_delete_private; + break; + default: + elog(ERROR, "invalid after-trigger event code: %d", event); + table = NULL; /* keep compiler quiet */ + break; + } + storeslot = GetAfterTriggersStoreSlot(table, map->outdesc); execute_attr_map_slot(map->attrMap, slot, storeslot); tuplestore_puttupleslot(tuplestore, storeslot); @@ -6239,7 +6260,7 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo, oldslot, NULL, transition_capture); - TransitionTableAddTuple(estate, transition_capture, relinfo, + TransitionTableAddTuple(estate, event, transition_capture, relinfo, oldslot, NULL, old_tuplestore); } @@ -6255,7 +6276,7 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo, NULL, newslot, transition_capture); - TransitionTableAddTuple(estate, transition_capture, relinfo, + TransitionTableAddTuple(estate, event, transition_capture, relinfo, newslot, original_insert_tuple, new_tuplestore); } @@ -6557,7 +6578,24 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo, new_shared.ats_firing_id = 0; if ((trigger->tgoldtable || trigger->tgnewtable) && transition_capture != NULL) - new_shared.ats_table = transition_capture->tcs_private; + { + switch (event) + { + case TRIGGER_EVENT_INSERT: + new_shared.ats_table = transition_capture->tcs_insert_private; + break; + case TRIGGER_EVENT_UPDATE: + new_shared.ats_table = transition_capture->tcs_update_private; + break; + case TRIGGER_EVENT_DELETE: + new_shared.ats_table = transition_capture->tcs_delete_private; + break; + default: + /* Must be TRUNCATE, see switch above */ + new_shared.ats_table = NULL; + break; + } + } else new_shared.ats_table = NULL; new_shared.ats_modifiedcols = modifiedCols; diff --git a/src/include/commands/trigger.h b/src/include/commands/trigger.h index fff8d16c416..641d5b6bb06 100644 --- a/src/include/commands/trigger.h +++ b/src/include/commands/trigger.h @@ -78,7 +78,9 @@ typedef struct TransitionCaptureState /* * Private data including the tuplestore(s) into which to insert tuples. */ - struct AfterTriggersTableData *tcs_private; + struct AfterTriggersTableData *tcs_insert_private; + struct AfterTriggersTableData *tcs_update_private; + struct AfterTriggersTableData *tcs_delete_private; } TransitionCaptureState; /* diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out index 7856d57aff8..efecd3fa2dd 100644 --- a/src/test/regress/expected/triggers.out +++ b/src/test/regress/expected/triggers.out @@ -3280,13 +3280,19 @@ NOTICE: trigger = table1_trig, new table = (42) with wcte as (insert into table1 values (43)) insert into table1 values (44); NOTICE: trigger = table1_trig, new table = (43), (44) +with wcte as (insert into table1 values (45)) + merge into table1 using (values (46)) as v(a) on table1.a = v.a + when not matched then insert values (v.a); +NOTICE: trigger = table1_trig, new table = (45), (46) select * from table1; a ---- 42 44 43 -(3 rows) + 46 + 45 +(5 rows) select * from table2; a diff --git a/src/test/regress/sql/triggers.sql b/src/test/regress/sql/triggers.sql index 5a0fa012f1f..b6a5bd3d95f 100644 --- a/src/test/regress/sql/triggers.sql +++ b/src/test/regress/sql/triggers.sql @@ -2403,6 +2403,10 @@ with wcte as (insert into table1 values (42)) with wcte as (insert into table1 values (43)) insert into table1 values (44); +with wcte as (insert into table1 values (45)) + merge into table1 using (values (46)) as v(a) on table1.a = v.a + when not matched then insert values (v.a); + select * from table1; select * from table2; From 7023650429e970d7603e398b2b216b8abaf30ec9 Mon Sep 17 00:00:00 2001 From: Dean Rasheed Date: Fri, 30 Jan 2026 08:52:06 +0000 Subject: [PATCH 73/94] Update .abi-compliance-history for change to TransitionCaptureState. As noted in the commit message for b4307ae2e54, the change to the TransitionCaptureState structure is nominally an ABI break, but it is not expected to affect any third-party code. Therefore, add it to the .abi-compliance-history file. Discussion: https://postgr.es/m/19380-4e293be2b4007248%40postgresql.org Backpatch-through: 15-18 --- .abi-compliance-history | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.abi-compliance-history b/.abi-compliance-history index e889ce0267d..e4a7770611a 100644 --- a/.abi-compliance-history +++ b/.abi-compliance-history @@ -18,6 +18,17 @@ # Be sure to replace "" with details of your change and # why it is deemed acceptable. +c5824536e7ca3c5ef5a9db59bd36c4e6beb23f51 +# +# Fix trigger transition table capture for MERGE in CTE queries. +# 2026-01-24 11:30:51 +0000 +# +# This commit changed the TransitionCaptureState structure, replacing +# the "tcs_private" field with 3 separate fields. This structure can +# only be built using MakeTransitionCaptureState(), and PGXN contained +# no calls to MakeTransitionCaptureState() or uses of the +# TransitionCaptureState structure. + 05d605b6c69f0276ae091ced1ed9082963052550 # # For inplace update, send nontransactional invalidations. From bb6aedeca8d42a6b3263bc0c72f5ef2c06817677 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 30 Jan 2026 14:59:25 -0500 Subject: [PATCH 74/94] Improve guards against false regex matches in BackgroundPsql.pm. BackgroundPsql needs to wait for all the output from an interactive psql command to come back. To make sure that's happened, it issues the command, then issues \echo and \warn psql commands that echo a "banner" string (which we assume won't appear in the command's output), then waits for the banner strings to appear. The hazard in this approach is that the banner will also appear in the echoed psql commands themselves, so we need to distinguish those echoes from the desired output. Commit 8b886a4e3 tried to do that by positing that the desired output would be directly preceded and followed by newlines, but it turns out that that assumption is timing-sensitive. In particular, it tends to fail in builds made --without-readline, wherein the command echoes will be made by the pty driver and may be interspersed with prompts issued by psql proper. It does seem safe to assume that the banner output we want will be followed by a newline, since that should be the last output before things quiesce. Therefore, we can improve matters by putting quotes around the banner strings in the \echo and \warn psql commands, so that their echoes cannot include banner directly followed by newline, and then checking for just banner-and-newline in the match pattern. While at it, spruce up the pump() call in sub query() to look like the neater version in wait_connect(), and don't die on timeout until after printing whatever we got. Reported-by: Oleg Tselebrovskiy Diagnosed-by: Oleg Tselebrovskiy Author: Tom Lane Reviewed-by: Soumya S Murali Discussion: https://postgr.es/m/db6fdb35a8665ad3c18be01181d44b31@postgrespro.ru Backpatch-through: 14 --- .../perl/PostgreSQL/Test/BackgroundPsql.pm | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm b/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm index a552132484e..59b91358656 100644 --- a/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm +++ b/src/test/perl/PostgreSQL/Test/BackgroundPsql.pm @@ -152,11 +152,11 @@ sub wait_connect # # See query() for details about why/how the banner is used. my $banner = "background_psql: ready"; - my $banner_match = qr/(^|\n)$banner\r?\n/; - $self->{stdin} .= "\\echo $banner\n\\warn $banner\n"; + my $banner_match = qr/$banner\r?\n/; + $self->{stdin} .= "\\echo '$banner'\n\\warn '$banner'\n"; $self->{run}->pump() until ($self->{stdout} =~ /$banner_match/ - && $self->{stderr} =~ /$banner\r?\n/) + && $self->{stderr} =~ /$banner_match/) || $self->{timeout}->is_expired; note "connect output:\n", @@ -256,22 +256,17 @@ sub query # stderr (or vice versa), even if psql printed them in the opposite # order. We therefore wait on both. # - # We need to match for the newline, because we try to remove it below, and - # it's possible to consume just the input *without* the newline. In - # interactive psql we emit \r\n, so we need to allow for that. Also need - # to be careful that we don't e.g. match the echoed \echo command, rather - # than its output. + # In interactive psql we emit \r\n, so we need to allow for that. + # Also, include quotes around the banner string in the \echo and \warn + # commands, not because the string needs quoting but so that $banner_match + # can't match readline's echoing of these commands. my $banner = "background_psql: QUERY_SEPARATOR $query_cnt:"; - my $banner_match = qr/(^|\n)$banner\r?\n/; - $self->{stdin} .= "$query\n;\n\\echo $banner\n\\warn $banner\n"; - pump_until( - $self->{run}, $self->{timeout}, - \$self->{stdout}, qr/$banner_match/); - pump_until( - $self->{run}, $self->{timeout}, - \$self->{stderr}, qr/$banner_match/); - - die "psql query timed out" if $self->{timeout}->is_expired; + my $banner_match = qr/$banner\r?\n/; + $self->{stdin} .= "$query\n;\n\\echo '$banner'\n\\warn '$banner'\n"; + $self->{run}->pump() + until ($self->{stdout} =~ /$banner_match/ + && $self->{stderr} =~ /$banner_match/) + || $self->{timeout}->is_expired; note "results query $query_cnt:\n", explain { @@ -279,9 +274,12 @@ sub query stderr => $self->{stderr}, }; - # Remove banner from stdout and stderr, our caller doesn't care. The - # first newline is optional, as there would not be one if consuming an - # empty query result. + die "psql query timed out" if $self->{timeout}->is_expired; + + # Remove banner from stdout and stderr, our caller doesn't want it. + # Also remove the query output's trailing newline, if present (there + # would not be one if consuming an empty query result). + $banner_match = qr/\r?\n?$banner\r?\n/; $output = $self->{stdout}; $output =~ s/$banner_match//; $self->{stderr} =~ s/$banner_match//; From 6b81a1c7c9057cda541401509b6dbc30a632410e Mon Sep 17 00:00:00 2001 From: John Naylor Date: Wed, 4 Feb 2026 17:55:49 +0700 Subject: [PATCH 75/94] Fix various instances of undefined behavior Mostly this involves checking for NULL pointer before doing operations that add a non-zero offset. The exception is an overflow warning in heap_fetch_toast_slice(). This was caused by unneeded parentheses forcing an expression to be evaluated to a negative integer, which then got cast to size_t. Per clang 21 undefined behavior sanitizer. Backpatch to all supported versions. Co-authored-by: Alexander Lakhin Reported-by: Alexander Lakhin Discussion: https://postgr.es/m/777bd201-6e3a-4da0-a922-4ea9de46a3ee@gmail.com Backpatch-through: 14 --- contrib/pg_trgm/trgm_gist.c | 5 ++++- src/backend/access/heap/heaptoast.c | 2 +- src/backend/utils/adt/multirangetypes.c | 5 +++-- src/backend/utils/sort/sharedtuplestore.c | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/contrib/pg_trgm/trgm_gist.c b/contrib/pg_trgm/trgm_gist.c index 6f28db7d1ed..711413df491 100644 --- a/contrib/pg_trgm/trgm_gist.c +++ b/contrib/pg_trgm/trgm_gist.c @@ -692,10 +692,13 @@ gtrgm_penalty(PG_FUNCTION_ARGS) if (ISARRKEY(newval)) { char *cache = (char *) fcinfo->flinfo->fn_extra; - TRGM *cachedVal = (TRGM *) (cache + MAXALIGN(siglen)); + TRGM *cachedVal = NULL; Size newvalsize = VARSIZE(newval); BITVECP sign; + if (cache != NULL) + cachedVal = (TRGM *) (cache + MAXALIGN(siglen)); + /* * Cache the sign data across multiple calls with the same newval. */ diff --git a/src/backend/access/heap/heaptoast.c b/src/backend/access/heap/heaptoast.c index 1575a81b01b..4e88295df77 100644 --- a/src/backend/access/heap/heaptoast.c +++ b/src/backend/access/heap/heaptoast.c @@ -770,7 +770,7 @@ heap_fetch_toast_slice(Relation toastrel, Oid valueid, int32 attrsize, chcpyend = (sliceoffset + slicelength - 1) % TOAST_MAX_CHUNK_SIZE; memcpy(VARDATA(result) + - (curchunk * TOAST_MAX_CHUNK_SIZE - sliceoffset) + chcpystrt, + curchunk * TOAST_MAX_CHUNK_SIZE - sliceoffset + chcpystrt, chunkdata + chcpystrt, (chcpyend - chcpystrt) + 1); diff --git a/src/backend/utils/adt/multirangetypes.c b/src/backend/utils/adt/multirangetypes.c index da5c7d09069..b482e3e6117 100644 --- a/src/backend/utils/adt/multirangetypes.c +++ b/src/backend/utils/adt/multirangetypes.c @@ -478,8 +478,9 @@ multirange_canonicalize(TypeCacheEntry *rangetyp, int32 input_range_count, int32 output_range_count = 0; /* Sort the ranges so we can find the ones that overlap/meet. */ - qsort_arg(ranges, input_range_count, sizeof(RangeType *), range_compare, - rangetyp); + if (ranges != NULL) + qsort_arg(ranges, input_range_count, sizeof(RangeType *), + range_compare, rangetyp); /* Now merge where possible: */ for (i = 0; i < input_range_count; i++) diff --git a/src/backend/utils/sort/sharedtuplestore.c b/src/backend/utils/sort/sharedtuplestore.c index 464d4c5b7fd..dd4b96ab2eb 100644 --- a/src/backend/utils/sort/sharedtuplestore.c +++ b/src/backend/utils/sort/sharedtuplestore.c @@ -321,7 +321,8 @@ sts_puttuple(SharedTuplestoreAccessor *accessor, void *meta_data, /* Do we have space? */ size = accessor->sts->meta_data_size + tuple->t_len; - if (accessor->write_pointer + size > accessor->write_end) + if (accessor->write_pointer == NULL || + accessor->write_pointer + size > accessor->write_end) { if (accessor->write_chunk == NULL) { From d242881bfad12dbbbc8effd418d25ef1367b372b Mon Sep 17 00:00:00 2001 From: Fujii Masao Date: Thu, 5 Feb 2026 00:46:09 +0900 Subject: [PATCH 76/94] Fix logical replication TAP test to read publisher log correctly. Commit 5f13999aa11 added a TAP test for GUC settings passed via the CONNECTION string in logical replication, but the buildfarm member sungazer reported test failures. The test incorrectly used the subscriber's log file position as the starting offset when reading the publisher's log. As a result, the test failed to find the expected log message in the publisher's log and erroneously reported a failure. This commit fixes the test to use the publisher's own log file position when reading the publisher's log. Also, to avoid similar confusion in the future, this commit splits the single $log_location variable into $log_location_pub and $log_location_sub, clearly distinguishing publisher and subscriber log positions. Backpatched to v15, where commit 5f13999aa11 introduced the test. Per buildfarm member sungazer. This issue was reported and diagnosed by Alexander Lakhin. Reported-by: Alexander Lakhin Discussion: https://postgr.es/m/966ec3d8-1b6f-4f57-ae59-fc7d55bc9a5a@gmail.com Backpatch-through: 15 --- src/test/subscription/t/001_rep_changes.pl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/test/subscription/t/001_rep_changes.pl b/src/test/subscription/t/001_rep_changes.pl index 6c9f07f8817..4a38d43cbc2 100644 --- a/src/test/subscription/t/001_rep_changes.pl +++ b/src/test/subscription/t/001_rep_changes.pl @@ -341,7 +341,8 @@ # Note that the current location of the log file is not grabbed immediately # after reloading the configuration, but after sending one SQL command to # the node so as we are sure that the reloading has taken effect. -my $log_location = -s $node_subscriber->logfile; +my $log_location_pub = -s $node_publisher->logfile; +my $log_location_sub = -s $node_subscriber->logfile; $node_publisher->safe_psql('postgres', "UPDATE tab_full_pk SET b = 'quux' WHERE a = 1"); @@ -349,7 +350,7 @@ $node_publisher->wait_for_catchup('tap_sub'); -my $logfile = slurp_file($node_subscriber->logfile, $log_location); +my $logfile = slurp_file($node_subscriber->logfile, $log_location_sub); ok( $logfile =~ qr/logical replication did not find row to be updated in replication target relation "tab_full_pk"/, 'update target row is missing'); @@ -425,11 +426,12 @@ # # First, confirm that no such QUERY STATISTICS message appears before enabling # log_statement_stats. -$logfile = slurp_file($node_publisher->logfile, $log_location); +$logfile = slurp_file($node_publisher->logfile, $log_location_pub); unlike( $logfile, qr/QUERY STATISTICS/, 'log_statement_stats has not been enabled yet'); +$log_location_pub = -s $node_publisher->logfile; # check that change of connection string and/or publication list causes # restart of subscription workers. We check the state along with @@ -456,7 +458,7 @@ # Check that the expected QUERY STATISTICS message appears, # which shows that log_statement_stats=on from the CONNECTION string # was correctly passed through to and honored by the walsender. -$logfile = slurp_file($node_publisher->logfile, $log_location); +$logfile = slurp_file($node_publisher->logfile, $log_location_pub); like( $logfile, qr/QUERY STATISTICS/, @@ -518,13 +520,13 @@ # Note that the current location of the log file is not grabbed immediately # after reloading the configuration, but after sending one SQL command to # the node so that we are sure that the reloading has taken effect. -$log_location = -s $node_publisher->logfile; +$log_location_pub = -s $node_publisher->logfile; $node_publisher->safe_psql('postgres', "INSERT INTO tab_notrep VALUES (11)"); $node_publisher->wait_for_catchup('tap_sub'); -$logfile = slurp_file($node_publisher->logfile, $log_location); +$logfile = slurp_file($node_publisher->logfile, $log_location_pub); ok($logfile =~ qr/skipped replication of an empty transaction with XID/, 'empty transaction is skipped'); From 4ec943f7dcb0acc24a675ea0f9a5f596bb49a537 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 6 Feb 2026 15:38:27 +0900 Subject: [PATCH 77/94] Fix some error message inconsistencies These errors are very unlikely going to show up, but in the event that they happen, some incorrect information would have been provided: - In pg_rewind, a stat() failure was reported as an open() failure. - In pg_combinebackup, a check for the new directory of a tablespace mapping was referred as the old directory. - In pg_combinebackup, a failure in reading a source file when copying blocks referred to the destination file. The changes for pg_combinebackup affect v17 and newer versions. For pg_rewind, all the stable branches are affected. Author: Man Zeng Discussion: https://postgr.es/m/tencent_1EE1430B1E6C18A663B8990F@qq.com Backpatch-through: 14 --- src/bin/pg_rewind/file_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/pg_rewind/file_ops.c b/src/bin/pg_rewind/file_ops.c index 7d98283c79c..a977e7b7ab7 100644 --- a/src/bin/pg_rewind/file_ops.c +++ b/src/bin/pg_rewind/file_ops.c @@ -327,7 +327,7 @@ slurpFile(const char *datadir, const char *path, size_t *filesize) fullpath); if (fstat(fd, &statbuf) < 0) - pg_fatal("could not open file \"%s\" for reading: %m", + pg_fatal("could not stat file \"%s\" for reading: %m", fullpath); len = statbuf.st_size; From ff1d5810e907525b396c67ad900114dd4ef83dc2 Mon Sep 17 00:00:00 2001 From: Jacob Champion Date: Fri, 6 Feb 2026 11:09:05 -0800 Subject: [PATCH 78/94] Protect against small overread in SASLprep validation (This is a cherry-pick of 390b3cbbb, which I hadn't realized wasn't backpatched. It was originally reported to security@ and determined not to be a vulnerability; thanks to Stanislav Osipov for noticing the omission in the back branches.) In case of torn UTF8 in the input data we might end up going past the end of the string since we don't account for length. While validation won't be performed on a sequence with a NULL byte it's better to avoid going past the end to beging with. Fix by taking the length into consideration. Reported-by: Stanislav Osipov Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/CAOYmi+mTnmM172g=_+Yvc47hzzeAsYPy2C4UBY3HK9p-AXNV0g@mail.gmail.com Backpatch-through: 14 --- src/common/saslprep.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/common/saslprep.c b/src/common/saslprep.c index 3dddb924088..b8fe2026f99 100644 --- a/src/common/saslprep.c +++ b/src/common/saslprep.c @@ -1009,15 +1009,17 @@ pg_utf8_string_len(const char *source) const unsigned char *p = (const unsigned char *) source; int l; int num_chars = 0; + size_t len = strlen(source); - while (*p) + while (len) { l = pg_utf_mblen(p); - if (!pg_utf8_islegal(p, l)) + if (len < l || !pg_utf8_islegal(p, l)) return -1; p += l; + len -= l; num_chars++; } From 9dcd0b3de14cbcb4f9f13581c10295ce0d60da3c Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sat, 7 Feb 2026 22:37:02 +0100 Subject: [PATCH 79/94] Further error message fix Further fix of error message changed in commit 74a116a79b4. The initial fix was not quite correct. Discussion: https://www.postgresql.org/message-id/flat/tencent_1EE1430B1E6C18A663B8990F%40qq.com --- src/bin/pg_rewind/file_ops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/pg_rewind/file_ops.c b/src/bin/pg_rewind/file_ops.c index a977e7b7ab7..f88f6872f4b 100644 --- a/src/bin/pg_rewind/file_ops.c +++ b/src/bin/pg_rewind/file_ops.c @@ -327,7 +327,7 @@ slurpFile(const char *datadir, const char *path, size_t *filesize) fullpath); if (fstat(fd, &statbuf) < 0) - pg_fatal("could not stat file \"%s\" for reading: %m", + pg_fatal("could not stat file \"%s\": %m", fullpath); len = statbuf.st_size; From 221a642fd7510113d9425ae9084b92a2647fe8ec Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sun, 8 Feb 2026 15:11:05 +0100 Subject: [PATCH 80/94] Translation updates Source-Git-URL: https://git.postgresql.org/git/pgtranslation/messages.git Source-Git-Hash: 6844264538c40560f66c90965bc84206e53a0418 --- src/backend/po/de.po | 1213 ++++----- src/backend/po/es.po | 1213 ++++----- src/backend/po/ja.po | 1153 ++++---- src/backend/po/ru.po | 1229 ++++----- src/backend/po/sv.po | 1848 ++++++------- src/backend/po/uk.po | 3642 +++++++++++++------------- src/bin/initdb/po/es.po | 2 +- src/bin/pg_amcheck/po/es.po | 2 +- src/bin/pg_archivecleanup/po/es.po | 2 +- src/bin/pg_basebackup/po/es.po | 2 +- src/bin/pg_basebackup/po/ru.po | 2 +- src/bin/pg_checksums/po/es.po | 2 +- src/bin/pg_config/po/es.po | 2 +- src/bin/pg_controldata/po/es.po | 2 +- src/bin/pg_ctl/po/es.po | 2 +- src/bin/pg_dump/po/es.po | 2 +- src/bin/pg_dump/po/ru.po | 2 +- src/bin/pg_dump/po/uk.po | 803 +++--- src/bin/pg_resetwal/po/de.po | 239 +- src/bin/pg_resetwal/po/es.po | 231 +- src/bin/pg_resetwal/po/ja.po | 358 ++- src/bin/pg_resetwal/po/ru.po | 239 +- src/bin/pg_resetwal/po/sv.po | 243 +- src/bin/pg_resetwal/po/uk.po | 233 +- src/bin/pg_rewind/po/es.po | 9 +- src/bin/pg_rewind/po/ru.po | 13 +- src/bin/pg_rewind/po/sv.po | 213 +- src/bin/pg_test_fsync/po/es.po | 2 +- src/bin/pg_test_timing/po/es.po | 2 +- src/bin/pg_upgrade/po/es.po | 2 +- src/bin/pg_upgrade/po/uk.po | 157 +- src/bin/pg_verifybackup/po/es.po | 2 +- src/bin/pg_waldump/po/es.po | 2 +- src/bin/psql/po/de.po | 1617 ++++++------ src/bin/psql/po/es.po | 1617 ++++++------ src/bin/psql/po/ja.po | 1619 ++++++------ src/bin/psql/po/ru.po | 1621 ++++++------ src/bin/psql/po/sv.po | 1702 ++++++------ src/bin/psql/po/uk.po | 2268 ++++++++-------- src/bin/scripts/po/es.po | 2 +- src/interfaces/ecpg/ecpglib/po/es.po | 2 +- src/interfaces/ecpg/preproc/po/es.po | 2 +- src/interfaces/libpq/po/de.po | 360 +-- src/interfaces/libpq/po/es.po | 327 +-- src/interfaces/libpq/po/fr.po | 2 +- src/interfaces/libpq/po/ja.po | 377 +-- src/interfaces/libpq/po/ru.po | 334 +-- src/interfaces/libpq/po/sv.po | 360 +-- src/interfaces/libpq/po/uk.po | 368 +-- src/pl/plperl/po/es.po | 2 +- src/pl/plpgsql/src/po/es.po | 2 +- src/pl/plpython/po/es.po | 2 +- src/pl/tcl/po/es.po | 2 +- 53 files changed, 13009 insertions(+), 12645 deletions(-) diff --git a/src/backend/po/de.po b/src/backend/po/de.po index 5e670448583..83ac856ab8a 100644 --- a/src/backend/po/de.po +++ b/src/backend/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-07 07:01+0000\n" +"POT-Creation-Date: 2026-02-07 09:01+0000\n" "PO-Revision-Date: 2025-08-25 21:55+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -73,14 +73,14 @@ msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 #: access/transam/twophase.c:1349 access/transam/xlog.c:3211 -#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1223 -#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 -#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1838 +#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1233 +#: access/transam/xlogrecovery.c:1325 access/transam/xlogrecovery.c:1362 +#: access/transam/xlogrecovery.c:1422 backup/basebackup.c:1838 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 #: replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 -#: replication/logical/snapbuild.c:1995 replication/slot.c:1843 -#: replication/slot.c:1884 replication/walsender.c:672 +#: replication/logical/snapbuild.c:1995 replication/slot.c:1874 +#: replication/slot.c:1915 replication/walsender.c:672 #: storage/file/buffile.c:463 storage/file/copydir.c:195 #: utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 #, c-format @@ -92,7 +92,7 @@ msgstr "konnte Datei »%s« nicht lesen: %m" #: backup/basebackup.c:1842 replication/logical/origin.c:734 #: replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 #: replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 -#: replication/slot.c:1847 replication/slot.c:1888 replication/walsender.c:677 +#: replication/slot.c:1878 replication/slot.c:1919 replication/walsender.c:677 #: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -111,7 +111,7 @@ msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: replication/logical/origin.c:667 replication/logical/origin.c:806 #: replication/logical/reorderbuffer.c:5152 #: replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 -#: replication/slot.c:1732 replication/slot.c:1895 replication/walsender.c:687 +#: replication/slot.c:1763 replication/slot.c:1926 replication/walsender.c:687 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:742 #: storage/file/fd.c:3635 storage/file/fd.c:3741 utils/cache/relmapper.c:831 #: utils/cache/relmapper.c:968 @@ -144,14 +144,14 @@ msgstr "" #: access/transam/timeline.c:348 access/transam/twophase.c:1305 #: access/transam/xlog.c:2945 access/transam/xlog.c:3127 #: access/transam/xlog.c:3166 access/transam/xlog.c:3358 -#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4255 -#: access/transam/xlogrecovery.c:4358 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4265 +#: access/transam/xlogrecovery.c:4368 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 #: replication/logical/reorderbuffer.c:4298 #: replication/logical/reorderbuffer.c:5074 #: replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 -#: replication/slot.c:1815 replication/walsender.c:645 +#: replication/slot.c:1846 replication/walsender.c:645 #: replication/walsender.c:2740 storage/file/copydir.c:161 #: storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 #: storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 @@ -164,7 +164,7 @@ msgstr "konnte Datei »%s« nicht öffnen: %m" #: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1753 access/transam/twophase.c:1762 -#: access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8770 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 #: postmaster/postmaster.c:5637 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 @@ -179,11 +179,11 @@ msgstr "konnte Datei »%s« nicht schreiben: %m" #: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 #: access/transam/timeline.c:506 access/transam/twophase.c:1774 #: access/transam/xlog.c:3051 access/transam/xlog.c:3245 -#: access/transam/xlog.c:3986 access/transam/xlog.c:8049 -#: access/transam/xlog.c:8092 backup/basebackup_server.c:207 +#: access/transam/xlog.c:3986 access/transam/xlog.c:8073 +#: access/transam/xlog.c:8116 backup/basebackup_server.c:207 #: commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 -#: replication/slot.c:1716 replication/slot.c:1825 storage/file/fd.c:734 -#: storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 +#: replication/slot.c:1747 replication/slot.c:1856 storage/file/fd.c:734 +#: storage/file/fd.c:3733 storage/smgr/md.c:997 storage/smgr/md.c:1038 #: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 #, c-format msgid "could not fsync file \"%s\": %m" @@ -202,7 +202,7 @@ msgstr "konnte Datei »%s« nicht fsyncen: %m" #: postmaster/bgworker.c:931 postmaster/postmaster.c:2598 #: postmaster/postmaster.c:4183 postmaster/postmaster.c:5562 #: postmaster/postmaster.c:5933 -#: replication/libpqwalreceiver/libpqwalreceiver.c:300 +#: replication/libpqwalreceiver/libpqwalreceiver.c:313 #: replication/logical/logical.c:206 replication/walsender.c:715 #: storage/buffer/localbuf.c:442 storage/file/fd.c:889 storage/file/fd.c:1431 #: storage/file/fd.c:1592 storage/file/fd.c:2406 storage/ipc/procarray.c:1463 @@ -210,18 +210,18 @@ msgstr "konnte Datei »%s« nicht fsyncen: %m" #: storage/ipc/procarray.c:2804 storage/ipc/procarray.c:3435 #: tcop/postgres.c:3645 utils/activity/pgstat_shmem.c:503 #: utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 -#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:453 -#: utils/adt/pg_locale.c:617 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 +#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:454 +#: utils/adt/pg_locale.c:618 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 #: utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 -#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 -#: utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5204 +#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 +#: utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 utils/misc/guc.c:5204 #: utils/misc/guc.c:5220 utils/misc/guc.c:5233 utils/misc/guc.c:8804 #: utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:702 #: utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805 utils/mmgr/generation.c:266 -#: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 -#: utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 -#: utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:238 +#: utils/mmgr/mcxt.c:891 utils/mmgr/mcxt.c:927 utils/mmgr/mcxt.c:965 +#: utils/mmgr/mcxt.c:1003 utils/mmgr/mcxt.c:1111 utils/mmgr/mcxt.c:1142 +#: utils/mmgr/mcxt.c:1178 utils/mmgr/mcxt.c:1230 utils/mmgr/mcxt.c:1265 +#: utils/mmgr/mcxt.c:1300 utils/mmgr/slab.c:238 #, c-format msgid "out of memory" msgstr "Speicher aufgebraucht" @@ -267,7 +267,7 @@ msgstr "konnte kein »%s« zum Ausführen finden" msgid "could not change directory to \"%s\": %m" msgstr "konnte nicht in Verzeichnis »%s« wechseln: %m" -#: ../common/exec.c:299 access/transam/xlog.c:8395 backup/basebackup.c:1338 +#: ../common/exec.c:299 access/transam/xlog.c:8419 backup/basebackup.c:1338 #: utils/adt/misc.c:335 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -324,7 +324,7 @@ msgstr "konnte Verzeichnis »%s« nicht lesen: %m" #: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 #: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 -#: replication/slot.c:750 replication/slot.c:1599 replication/slot.c:1748 +#: replication/slot.c:750 replication/slot.c:1630 replication/slot.c:1779 #: storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -1111,38 +1111,38 @@ msgstr "in Operatorfamilie »%s« für Zugriffsmethode %s fehlt Support-Funktion msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "in Operatorfamilie »%s« für Zugriffsmethode %s fehlen typübergreifende Operatoren" -#: access/heap/heapam.c:2272 +#: access/heap/heapam.c:2275 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "in einem parallelen Arbeitsprozess können keine Tupel eingefügt werden" -#: access/heap/heapam.c:2747 +#: access/heap/heapam.c:2750 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "während einer parallelen Operation können keine Tupel gelöscht werden" -#: access/heap/heapam.c:2793 +#: access/heap/heapam.c:2796 #, c-format msgid "attempted to delete invisible tuple" msgstr "Versuch ein unsichtbares Tupel zu löschen" -#: access/heap/heapam.c:3240 access/heap/heapam.c:6489 access/index/genam.c:819 +#: access/heap/heapam.c:3243 access/heap/heapam.c:6577 access/index/genam.c:819 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "während einer parallelen Operation können keine Tupel aktualisiert werden" -#: access/heap/heapam.c:3410 +#: access/heap/heapam.c:3413 #, c-format msgid "attempted to update invisible tuple" msgstr "Versuch ein unsichtbares Tupel zu aktualisieren" -#: access/heap/heapam.c:4896 access/heap/heapam.c:4934 -#: access/heap/heapam.c:5199 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4901 access/heap/heapam.c:4939 +#: access/heap/heapam.c:5206 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "konnte Sperre für Zeile in Relation »%s« nicht setzen" -#: access/heap/heapam.c:6302 commands/trigger.c:3471 +#: access/heap/heapam.c:6331 commands/trigger.c:3471 #: executor/nodeModifyTable.c:2383 executor/nodeModifyTable.c:2474 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" @@ -1166,11 +1166,11 @@ msgstr "konnte nicht in Datei »%s« schreiben, %d von %d geschrieben: %m" #: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:481 #: access/transam/xlog.c:2967 access/transam/xlog.c:3180 -#: access/transam/xlog.c:3965 access/transam/xlog.c:8729 +#: access/transam/xlog.c:3965 access/transam/xlog.c:8753 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 #: backup/basebackup_server.c:242 commands/dbcommands.c:494 #: postmaster/postmaster.c:4610 postmaster/postmaster.c:5624 -#: replication/logical/origin.c:587 replication/slot.c:1660 +#: replication/logical/origin.c:587 replication/slot.c:1691 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -1188,7 +1188,7 @@ msgstr "konnte Datei »%s« nicht auf %u kürzen: %m" #: postmaster/postmaster.c:4620 postmaster/postmaster.c:4630 #: replication/logical/origin.c:599 replication/logical/origin.c:641 #: replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 -#: replication/slot.c:1696 storage/file/buffile.c:537 +#: replication/slot.c:1727 storage/file/buffile.c:537 #: storage/file/copydir.c:207 utils/init/miscinit.c:1493 #: utils/init/miscinit.c:1504 utils/init/miscinit.c:1512 utils/misc/guc.c:8787 #: utils/misc/guc.c:8818 utils/misc/guc.c:10816 utils/misc/guc.c:10830 @@ -1202,7 +1202,7 @@ msgstr "konnte nicht in Datei »%s« schreiben: %m" #: postmaster/postmaster.c:1159 postmaster/syslogger.c:1537 #: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 #: replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 -#: replication/slot.c:1799 storage/file/fd.c:792 storage/file/fd.c:3260 +#: replication/slot.c:1830 storage/file/fd.c:792 storage/file/fd.c:3260 #: storage/file/fd.c:3322 storage/file/reinit.c:262 storage/ipc/dsm.c:317 #: storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 #: utils/time/snapmgr.c:1606 @@ -1595,13 +1595,13 @@ msgstr "Stellen Sie sicher, dass der Konfigurationsparameter »%s« auf dem Prim msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Stellen Sie sicher, dass der Konfigurationsparameter »%s« gesetzt ist." -#: access/transam/multixact.c:1022 +#: access/transam/multixact.c:1106 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "Datenbank nimmt keine Befehle an, die neue MultiXactIds erzeugen, um Datenverlust wegen Transaktionsnummernüberlauf in Datenbank »%s« zu vermeiden" -#: access/transam/multixact.c:1024 access/transam/multixact.c:1031 -#: access/transam/multixact.c:1055 access/transam/multixact.c:1064 +#: access/transam/multixact.c:1108 access/transam/multixact.c:1115 +#: access/transam/multixact.c:1139 access/transam/multixact.c:1148 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1610,65 +1610,70 @@ msgstr "" "Führen Sie ein datenbankweites VACUUM in dieser Datenbank aus.\n" "Eventuell müssen Sie auch alte vorbereitete Transaktionen committen oder zurückrollen oder unbenutzte Replikations-Slots löschen." -#: access/transam/multixact.c:1029 +#: access/transam/multixact.c:1113 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "Datenbank nimmt keine Befehle an, die neue MultiXactIds erzeugen, um Datenverlust wegen Transaktionsnummernüberlauf in Datenbank mit OID %u zu vermeiden" -#: access/transam/multixact.c:1050 access/transam/multixact.c:2334 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2421 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" msgstr[0] "Datenbank »%s« muss gevacuumt werden, bevor %u weitere MultiXactId aufgebraucht ist" msgstr[1] "Datenbank »%s« muss gevacuumt werden, bevor %u weitere MultiXactIds aufgebraucht sind" -#: access/transam/multixact.c:1059 access/transam/multixact.c:2343 +#: access/transam/multixact.c:1143 access/transam/multixact.c:2430 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" msgstr[0] "Datenbank mit OID %u muss gevacuumt werden, bevor %u weitere MultiXactId aufgebraucht ist" msgstr[1] "Datenbank mit OID %u muss gevacuumt werden, bevor %u weitere MultiXactIds aufgebraucht sind" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1207 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "Grenzwert für Multixact-»Members« überschritten" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1208 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "Dieser Befehl würde eine Multixact mit %u Mitgliedern erzeugen, aber es ist nur genug Platz für %u Mitglied." msgstr[1] "Dieser Befehl würde eine Multixact mit %u Mitgliedern erzeugen, aber es ist nur genug Platz für %u Mitglieder." -#: access/transam/multixact.c:1126 +#: access/transam/multixact.c:1213 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Führen Sie ein datenbankweites VACUUM in der Datenbank mit OID %u aus, mit reduzierten Einstellungen für vacuum_multixact_freeze_min_age und vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1157 +#: access/transam/multixact.c:1244 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "Datenbank mit OID %u muss gevacuumt werden, bevor %d weiteres Multixact-Mitglied aufgebraucht ist" msgstr[1] "Datenbank mit OID %u muss gevacuumt werden, bevor %d weitere Multixact-Mitglieder aufgebraucht sind" -#: access/transam/multixact.c:1162 +#: access/transam/multixact.c:1249 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Führen Sie ein datenbankweites VACUUM in dieser Datenbank aus, mit reduzierten Einstellungen für vacuum_multixact_freeze_min_age und vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1301 +#: access/transam/multixact.c:1388 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u existiert nicht mehr -- anscheinender Überlauf" -#: access/transam/multixact.c:1307 +#: access/transam/multixact.c:1394 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u wurde noch nicht erzeugt -- anscheinender Überlauf" -#: access/transam/multixact.c:2339 access/transam/multixact.c:2348 +#: access/transam/multixact.c:1469 +#, c-format +msgid "MultiXact %u has invalid next offset" +msgstr "MultiXact %u hat ungültiges nächstes Offset" + +#: access/transam/multixact.c:2426 access/transam/multixact.c:2435 #: access/transam/varsup.c:151 access/transam/varsup.c:158 #: access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format @@ -1679,61 +1684,66 @@ msgstr "" "Um ein Abschalten der Datenbank zu vermeiden, führen Sie ein komplettes VACUUM über diese Datenbank aus.\n" "Eventuell müssen Sie auch alte vorbereitete Transaktionen committen oder zurückrollen oder unbenutzte Replikations-Slots löschen." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2709 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "MultiXact-Member-Wraparound-Schutz ist deaktiviert, weil die älteste gecheckpointete MultiXact %u nicht auf der Festplatte existiert" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2731 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "MultiXact-Member-Wraparound-Schutz ist jetzt aktiviert" -#: access/transam/multixact.c:3038 +#: access/transam/multixact.c:3125 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "älteste MultiXact %u nicht gefunden, älteste ist MultiXact %u, Truncate wird ausgelassen" -#: access/transam/multixact.c:3056 +#: access/transam/multixact.c:3143 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "kann nicht bis MultiXact %u trunkieren, weil sie nicht auf der Festplatte existiert, Trunkierung wird ausgelassen" -#: access/transam/multixact.c:3370 +#: access/transam/multixact.c:3160 +#, c-format +msgid "cannot truncate up to MultiXact %u because it has invalid offset, skipping truncation" +msgstr "kann nicht bis MultiXact %u trunkieren, weil es ein ungültiges Offset hat, Trunkierung wird ausgelassen" + +#: access/transam/multixact.c:3498 #, c-format msgid "invalid MultiXactId: %u" msgstr "ungültige MultiXactId: %u" -#: access/transam/parallel.c:737 access/transam/parallel.c:856 +#: access/transam/parallel.c:744 access/transam/parallel.c:863 #, c-format msgid "parallel worker failed to initialize" msgstr "Initialisierung von parallelem Arbeitsprozess fehlgeschlagen" -#: access/transam/parallel.c:738 access/transam/parallel.c:857 +#: access/transam/parallel.c:745 access/transam/parallel.c:864 #, c-format msgid "More details may be available in the server log." msgstr "Weitere Einzelheiten sind möglicherweise im Serverlog zu finden." -#: access/transam/parallel.c:918 +#: access/transam/parallel.c:925 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "Postmaster beendete während einer parallelen Transaktion" -#: access/transam/parallel.c:1105 +#: access/transam/parallel.c:1112 #, c-format msgid "lost connection to parallel worker" msgstr "Verbindung mit parallelem Arbeitsprozess verloren" -#: access/transam/parallel.c:1171 access/transam/parallel.c:1173 +#: access/transam/parallel.c:1178 access/transam/parallel.c:1180 msgid "parallel worker" msgstr "paralleler Arbeitsprozess" -#: access/transam/parallel.c:1326 +#: access/transam/parallel.c:1333 #, c-format msgid "could not map dynamic shared memory segment" msgstr "konnte dynamisches Shared-Memory-Segment nicht mappen" -#: access/transam/parallel.c:1331 +#: access/transam/parallel.c:1338 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "ungültige magische Zahl in dynamischem Shared-Memory-Segment" @@ -2107,112 +2117,112 @@ msgstr "Datenbank mit OID %u muss innerhalb von %u Transaktionen gevacuumt werde msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "kann nicht mehr als 2^32-2 Befehle in einer Transaktion ausführen" -#: access/transam/xact.c:1644 +#: access/transam/xact.c:1654 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "maximale Anzahl committeter Subtransaktionen (%d) überschritten" -#: access/transam/xact.c:2501 +#: access/transam/xact.c:2511 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "PREPARE kann nicht für eine Transaktion ausgeführt werden, die temporäre Objekte bearbeitet hat" -#: access/transam/xact.c:2511 +#: access/transam/xact.c:2521 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "PREPARE kann nicht für eine Transaktion ausgeführt werden, die Snapshots exportiert hat" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3479 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s kann nicht in einem Transaktionsblock laufen" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s kann nicht in einer Subtransaktion laufen" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s kann nicht innerhalb einer Pipeline ausgeführt werden" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 +#: access/transam/xact.c:3519 #, c-format msgid "%s cannot be executed from a function" msgstr "%s kann nicht aus einer Funktion ausgeführt werden" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3580 access/transam/xact.c:3895 -#: access/transam/xact.c:3974 access/transam/xact.c:4097 -#: access/transam/xact.c:4248 access/transam/xact.c:4317 -#: access/transam/xact.c:4428 +#: access/transam/xact.c:3590 access/transam/xact.c:3905 +#: access/transam/xact.c:3984 access/transam/xact.c:4107 +#: access/transam/xact.c:4258 access/transam/xact.c:4327 +#: access/transam/xact.c:4438 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s kann nur in Transaktionsblöcken verwendet werden" -#: access/transam/xact.c:3781 +#: access/transam/xact.c:3791 #, c-format msgid "there is already a transaction in progress" msgstr "eine Transaktion ist bereits begonnen" -#: access/transam/xact.c:3900 access/transam/xact.c:3979 -#: access/transam/xact.c:4102 +#: access/transam/xact.c:3910 access/transam/xact.c:3989 +#: access/transam/xact.c:4112 #, c-format msgid "there is no transaction in progress" msgstr "keine Transaktion offen" -#: access/transam/xact.c:3990 +#: access/transam/xact.c:4000 #, c-format msgid "cannot commit during a parallel operation" msgstr "während einer parallelen Operation kann nicht committet werden" -#: access/transam/xact.c:4113 +#: access/transam/xact.c:4123 #, c-format msgid "cannot abort during a parallel operation" msgstr "während einer parallelen Operation kann nicht abgebrochen werden" -#: access/transam/xact.c:4212 +#: access/transam/xact.c:4222 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "während einer parallelen Operation können keine Sicherungspunkte definiert werden" -#: access/transam/xact.c:4299 +#: access/transam/xact.c:4309 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "während einer parallelen Operation können keine Sicherungspunkte freigegeben werden" -#: access/transam/xact.c:4309 access/transam/xact.c:4360 -#: access/transam/xact.c:4420 access/transam/xact.c:4469 +#: access/transam/xact.c:4319 access/transam/xact.c:4370 +#: access/transam/xact.c:4430 access/transam/xact.c:4479 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "Sicherungspunkt »%s« existiert nicht" -#: access/transam/xact.c:4366 access/transam/xact.c:4475 +#: access/transam/xact.c:4376 access/transam/xact.c:4485 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "Sicherungspunkt »%s« existiert nicht innerhalb der aktuellen Sicherungspunktebene" -#: access/transam/xact.c:4408 +#: access/transam/xact.c:4418 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "während einer parallelen Operation kann nicht auf einen Sicherungspunkt zurückgerollt werden" -#: access/transam/xact.c:4536 +#: access/transam/xact.c:4546 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "während einer parallelen Operation können keine Subtransaktionen gestartet werden" -#: access/transam/xact.c:4604 +#: access/transam/xact.c:4614 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "während einer parallelen Operation können keine Subtransaktionen committet werden" -#: access/transam/xact.c:5251 +#: access/transam/xact.c:5261 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "kann nicht mehr als 2^32-1 Subtransaktionen in einer Transaktion haben" @@ -2514,142 +2524,142 @@ msgstr "Restart-Punkt komplett: %d Puffer geschrieben (%.1f%%); %d WAL-Datei(en) msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgstr "Checkpoint komplett: %d Puffer geschrieben (%.1f%%); %d WAL-Datei(en) hinzugefügt, %d entfernt, %d wiederverwendet; Schreiben=%ld,%03d s, Sync=%ld,%03d s, gesamt=%ld,%03d s; sync. Dateien=%d, längste=%ld,%03d s, Durchschnitt=%ld.%03d s; Entfernung=%d kB, Schätzung=%d kB" -#: access/transam/xlog.c:6653 +#: access/transam/xlog.c:6663 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "gleichzeitige Write-Ahead-Log-Aktivität während das Datenbanksystem herunterfährt" -#: access/transam/xlog.c:7236 +#: access/transam/xlog.c:7260 #, c-format msgid "recovery restart point at %X/%X" msgstr "Recovery-Restart-Punkt bei %X/%X" -#: access/transam/xlog.c:7238 +#: access/transam/xlog.c:7262 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Die letzte vollständige Transaktion war bei Logzeit %s." -#: access/transam/xlog.c:7487 +#: access/transam/xlog.c:7511 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "Restore-Punkt »%s« erzeugt bei %X/%X" -#: access/transam/xlog.c:7694 +#: access/transam/xlog.c:7718 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "Online-Sicherung wurde storniert, Wiederherstellung kann nicht fortgesetzt werden" -#: access/transam/xlog.c:7752 +#: access/transam/xlog.c:7776 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "unerwartete Zeitleisten-ID %u (sollte %u sein) im Shutdown-Checkpoint-Datensatz" -#: access/transam/xlog.c:7810 +#: access/transam/xlog.c:7834 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "unerwartete Zeitleisten-ID %u (sollte %u sein) im Online-Checkpoint-Datensatz" -#: access/transam/xlog.c:7839 +#: access/transam/xlog.c:7863 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "unerwartete Zeitleisten-ID %u (sollte %u sein) im End-of-Recovery-Datensatz" -#: access/transam/xlog.c:8097 +#: access/transam/xlog.c:8121 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "konnte Write-Through-Logdatei »%s« nicht fsyncen: %m" -#: access/transam/xlog.c:8103 +#: access/transam/xlog.c:8127 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fdatasyncen: %m" -#: access/transam/xlog.c:8198 access/transam/xlog.c:8565 +#: access/transam/xlog.c:8222 access/transam/xlog.c:8589 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "WAL-Level nicht ausreichend, um Online-Sicherung durchzuführen" -#: access/transam/xlog.c:8199 access/transam/xlog.c:8566 +#: access/transam/xlog.c:8223 access/transam/xlog.c:8590 #: access/transam/xlogfuncs.c:199 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "wal_level muss beim Serverstart auf »replica« oder »logical« gesetzt werden." -#: access/transam/xlog.c:8204 +#: access/transam/xlog.c:8228 #, c-format msgid "backup label too long (max %d bytes)" msgstr "Backup-Label zu lang (maximal %d Bytes)" -#: access/transam/xlog.c:8320 +#: access/transam/xlog.c:8344 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "mit full_page_writes=off erzeugtes WAL wurde seit dem letzten Restart-Punkt zurückgespielt" -#: access/transam/xlog.c:8322 access/transam/xlog.c:8678 +#: access/transam/xlog.c:8346 access/transam/xlog.c:8702 #, 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 primary, and then try an online backup again." msgstr "Das bedeutet, dass die aktuelle Datensicherung auf dem Standby-Server verfälscht ist und nicht verwendet werden sollte. Schalten Sie auf dem Primärserver full_page_writes ein, führen Sie dort CHECKPOINT aus und versuchen Sie dann die Online-Sicherung erneut." -#: access/transam/xlog.c:8402 backup/basebackup.c:1343 utils/adt/misc.c:340 +#: access/transam/xlog.c:8426 backup/basebackup.c:1343 utils/adt/misc.c:340 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "Ziel für symbolische Verknüpfung »%s« ist zu lang" -#: access/transam/xlog.c:8452 backup/basebackup.c:1358 +#: access/transam/xlog.c:8476 backup/basebackup.c:1358 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:348 #, c-format msgid "tablespaces are not supported on this platform" msgstr "Tablespaces werden auf dieser Plattform nicht unterstützt" -#: access/transam/xlog.c:8611 access/transam/xlog.c:8624 -#: access/transam/xlogrecovery.c:1237 access/transam/xlogrecovery.c:1244 -#: access/transam/xlogrecovery.c:1303 access/transam/xlogrecovery.c:1383 -#: access/transam/xlogrecovery.c:1407 +#: access/transam/xlog.c:8635 access/transam/xlog.c:8648 +#: access/transam/xlogrecovery.c:1247 access/transam/xlogrecovery.c:1254 +#: access/transam/xlogrecovery.c:1313 access/transam/xlogrecovery.c:1393 +#: access/transam/xlogrecovery.c:1417 #, c-format msgid "invalid data in file \"%s\"" msgstr "ungültige Daten in Datei »%s«" -#: access/transam/xlog.c:8628 backup/basebackup.c:1204 +#: access/transam/xlog.c:8652 backup/basebackup.c:1204 #, c-format msgid "the standby was promoted during online backup" msgstr "der Standby-Server wurde während der Online-Sicherung zum Primärserver befördert" -#: access/transam/xlog.c:8629 backup/basebackup.c:1205 +#: access/transam/xlog.c:8653 backup/basebackup.c:1205 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Das bedeutet, dass die aktuelle Online-Sicherung verfälscht ist und nicht verwendet werden sollte. Versuchen Sie, eine neue Online-Sicherung durchzuführen." -#: access/transam/xlog.c:8676 +#: access/transam/xlog.c:8700 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "mit full_page_writes=off erzeugtes WAL wurde während der Online-Sicherung zurückgespielt" -#: access/transam/xlog.c:8801 +#: access/transam/xlog.c:8825 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "Basissicherung beendet, warte bis die benötigten WAL-Segmente archiviert sind" -#: access/transam/xlog.c:8815 +#: access/transam/xlog.c:8839 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "warte immer noch, bis alle benötigten WAL-Segmente archiviert sind (%d Sekunden abgelaufen)" -#: access/transam/xlog.c:8817 +#: access/transam/xlog.c:8841 #, c-format 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 "Prüfen Sie, ob das archive_command korrekt ausgeführt wird. Dieser Sicherungsvorgang kann gefahrlos abgebrochen werden, aber die Datenbanksicherung wird ohne die fehlenden WAL-Segmente nicht benutzbar sein." -#: access/transam/xlog.c:8824 +#: access/transam/xlog.c:8848 #, c-format msgid "all required WAL segments have been archived" msgstr "alle benötigten WAL-Segmente wurden archiviert" -#: access/transam/xlog.c:8828 +#: access/transam/xlog.c:8852 #, 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-Archivierung ist nicht eingeschaltet; Sie müssen dafür sorgen, dass alle benötigten WAL-Segmente auf andere Art kopiert werden, um die Sicherung abzuschließen" -#: access/transam/xlog.c:8877 +#: access/transam/xlog.c:8901 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "Backup wird abgebrochen, weil Backend-Prozess beendete, bevor pg_backup_stop aufgerufen wurde" @@ -3021,374 +3031,379 @@ msgstr "starte Wiederherstellung aus Backup neu mit Redo-LSN %X/%X" msgid "could not locate a valid checkpoint record" msgstr "konnte keinen gültigen Checkpoint-Datensatz finden" -#: access/transam/xlogrecovery.c:834 +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "could not find redo location %X/%08X referenced by checkpoint record at %X/%08X" +msgstr "konnte die Redo-Position %X/%08X, die vom Checkpoint-Datensatz bei %X/%08X referenziert wird, nicht finden" + +#: access/transam/xlogrecovery.c:844 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "angeforderte Zeitleiste %u ist kein Kind der History dieses Servers" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:846 #, 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 "Neuester Checkpoint ist bei %X/%X auf Zeitleiste %u, aber in der History der angeforderten Zeitleiste zweigte der Server von dieser Zeitleiste bei %X/%X ab." -#: access/transam/xlogrecovery.c:850 +#: access/transam/xlogrecovery.c:860 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "angeforderte Zeitleiste %u enthält nicht den minimalen Wiederherstellungspunkt %X/%X auf Zeitleiste %u" -#: access/transam/xlogrecovery.c:878 +#: access/transam/xlogrecovery.c:888 #, c-format msgid "invalid next transaction ID" msgstr "ungültige nächste Transaktions-ID" -#: access/transam/xlogrecovery.c:883 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid redo in checkpoint record" msgstr "ungültiges Redo im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:894 +#: access/transam/xlogrecovery.c:904 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "ungültiger Redo-Datensatz im Shutdown-Checkpoint" -#: access/transam/xlogrecovery.c:923 +#: access/transam/xlogrecovery.c:933 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "Datenbanksystem wurde nicht richtig heruntergefahren; automatische Wiederherstellung läuft" -#: access/transam/xlogrecovery.c:927 +#: access/transam/xlogrecovery.c:937 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "Wiederherstellung nach Absturz beginnt in Zeitleiste %u und hat Zielzeitleiste %u" -#: access/transam/xlogrecovery.c:970 +#: access/transam/xlogrecovery.c:980 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "Daten in backup_label stimmen nicht mit Kontrolldatei überein" -#: access/transam/xlogrecovery.c:971 +#: access/transam/xlogrecovery.c:981 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Das bedeutet, dass die Datensicherung verfälscht ist und Sie eine andere Datensicherung zur Wiederherstellung verwenden werden müssen." -#: access/transam/xlogrecovery.c:1025 +#: access/transam/xlogrecovery.c:1035 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "Verwendung von Recovery-Befehlsdatei »%s« wird nicht unterstützt" -#: access/transam/xlogrecovery.c:1090 +#: access/transam/xlogrecovery.c:1100 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "Standby-Modus wird von Servern im Einzelbenutzermodus nicht unterstützt" -#: access/transam/xlogrecovery.c:1107 +#: access/transam/xlogrecovery.c:1117 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "weder primary_conninfo noch restore_command angegeben" -#: access/transam/xlogrecovery.c:1108 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Der Datenbankserver prüft das Unterverzeichnis pg_wal regelmäßig auf dort abgelegte Dateien." -#: access/transam/xlogrecovery.c:1116 +#: access/transam/xlogrecovery.c:1126 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "restore_command muss angegeben werden, wenn der Standby-Modus nicht eingeschaltet ist" -#: access/transam/xlogrecovery.c:1154 +#: access/transam/xlogrecovery.c:1164 #, c-format msgid "recovery target timeline %u does not exist" msgstr "recovery_target_timeline %u existiert nicht" -#: access/transam/xlogrecovery.c:1304 +#: access/transam/xlogrecovery.c:1314 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Gelesene Zeitleisten-ID ist %u, aber %u wurde erwartet." -#: access/transam/xlogrecovery.c:1686 +#: access/transam/xlogrecovery.c:1696 #, c-format msgid "redo starts at %X/%X" msgstr "Redo beginnt bei %X/%X" -#: access/transam/xlogrecovery.c:1699 +#: access/transam/xlogrecovery.c:1709 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "Redo im Gang, abgelaufene Zeit: %ld.%02d s, aktuelle LSN: %X/%X" -#: access/transam/xlogrecovery.c:1791 +#: access/transam/xlogrecovery.c:1801 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "angeforderter Recovery-Endpunkt ist vor konsistentem Recovery-Punkt" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1833 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "Redo fertig bei %X/%X Systembenutzung: %s" -#: access/transam/xlogrecovery.c:1829 +#: access/transam/xlogrecovery.c:1839 #, c-format msgid "last completed transaction was at log time %s" msgstr "letzte vollständige Transaktion war bei Logzeit %s" -#: access/transam/xlogrecovery.c:1838 +#: access/transam/xlogrecovery.c:1848 #, c-format msgid "redo is not required" msgstr "Redo nicht nötig" -#: access/transam/xlogrecovery.c:1849 +#: access/transam/xlogrecovery.c:1859 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "Wiederherstellung endete bevor das konfigurierte Wiederherstellungsziel erreicht wurde" -#: access/transam/xlogrecovery.c:2024 +#: access/transam/xlogrecovery.c:2034 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "fehlender Contrecord bei %X/%X erfolgreich übersprungen, überschrieben am %s" -#: access/transam/xlogrecovery.c:2091 +#: access/transam/xlogrecovery.c:2101 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "unerwarteter Verzeichniseintrag »%s« in %s gefunden" -#: access/transam/xlogrecovery.c:2093 +#: access/transam/xlogrecovery.c:2103 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Alle Verzeichniseinträge in pg_tblspc/ sollten symbolische Verknüpfungen sein." -#: access/transam/xlogrecovery.c:2094 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." msgstr "Entfernen Sie diese Verzeichnisse oder setzen Sie allow_in_place_tablespaces vorrübergehend auf ON, damit die Wiederherstellung abschließen kann." -#: access/transam/xlogrecovery.c:2146 +#: access/transam/xlogrecovery.c:2156 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "Wiederherstellung aus Backup abgeschlossen mit Redo-LSN %X/%X und End-LSN %X/%X" -#: access/transam/xlogrecovery.c:2176 +#: access/transam/xlogrecovery.c:2186 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "konsistenter Wiederherstellungszustand erreicht bei %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2214 +#: access/transam/xlogrecovery.c:2224 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL-Redo bei %X/%X für %s" -#: access/transam/xlogrecovery.c:2310 +#: access/transam/xlogrecovery.c:2320 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "unerwartete vorherige Zeitleisten-ID %u (aktuelle Zeitleisten-ID %u) im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:2319 +#: access/transam/xlogrecovery.c:2329 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "unerwartete Zeitleisten-ID %u (nach %u) im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:2335 +#: access/transam/xlogrecovery.c:2345 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "unerwartete Zeitleisten-ID %u in Checkpoint-Datensatz, bevor der minimale Wiederherstellungspunkt %X/%X auf Zeitleiste %u erreicht wurde" -#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 +#: access/transam/xlogrecovery.c:2529 access/transam/xlogrecovery.c:2805 #, c-format msgid "recovery stopping after reaching consistency" msgstr "Wiederherstellung beendet nachdem Konsistenz erreicht wurde" -#: access/transam/xlogrecovery.c:2540 +#: access/transam/xlogrecovery.c:2550 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "Wiederherstellung beendet vor WAL-Position (LSN) »%X/%X«" -#: access/transam/xlogrecovery.c:2630 +#: access/transam/xlogrecovery.c:2640 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "Wiederherstellung beendet vor Commit der Transaktion %u, Zeit %s" -#: access/transam/xlogrecovery.c:2637 +#: access/transam/xlogrecovery.c:2647 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "Wiederherstellung beendet vor Abbruch der Transaktion %u, Zeit %s" -#: access/transam/xlogrecovery.c:2690 +#: access/transam/xlogrecovery.c:2700 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "Wiederherstellung beendet bei Restore-Punkt »%s«, Zeit %s" -#: access/transam/xlogrecovery.c:2708 +#: access/transam/xlogrecovery.c:2718 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "Wiederherstellung beendet nach WAL-Position (LSN) »%X/%X«" -#: access/transam/xlogrecovery.c:2775 +#: access/transam/xlogrecovery.c:2785 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "Wiederherstellung beendet nach Commit der Transaktion %u, Zeit %s" -#: access/transam/xlogrecovery.c:2783 +#: access/transam/xlogrecovery.c:2793 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "Wiederherstellung beendet nach Abbruch der Transaktion %u, Zeit %s" -#: access/transam/xlogrecovery.c:2864 +#: access/transam/xlogrecovery.c:2874 #, c-format msgid "pausing at the end of recovery" msgstr "pausiere am Ende der Wiederherstellung" -#: access/transam/xlogrecovery.c:2865 +#: access/transam/xlogrecovery.c:2875 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Führen Sie pg_wal_replay_resume() aus, um den Server zum Primärserver zu befördern." -#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:2878 access/transam/xlogrecovery.c:4700 #, c-format msgid "recovery has paused" msgstr "Wiederherstellung wurde pausiert" -#: access/transam/xlogrecovery.c:2869 +#: access/transam/xlogrecovery.c:2879 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Führen Sie pg_wal_replay_resume() aus um fortzusetzen." -#: access/transam/xlogrecovery.c:3135 +#: access/transam/xlogrecovery.c:3145 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "unerwartete Zeitleisten-ID %u in Logsegment %s, Offset %u" -#: access/transam/xlogrecovery.c:3340 +#: access/transam/xlogrecovery.c:3350 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "konnte nicht aus Logsegment %s, Position %u lesen: %m" -#: access/transam/xlogrecovery.c:3346 +#: access/transam/xlogrecovery.c:3356 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "konnte nicht aus Logsegment %s bei Position %u lesen: %d von %zu gelesen" -#: access/transam/xlogrecovery.c:4007 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "ungültige primäre Checkpoint-Verknüpfung in Kontrolldatei" -#: access/transam/xlogrecovery.c:4011 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "ungültige Checkpoint-Verknüpfung in backup_label-Datei" -#: access/transam/xlogrecovery.c:4029 +#: access/transam/xlogrecovery.c:4039 #, c-format msgid "invalid primary checkpoint record" msgstr "ungültiger primärer Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4033 +#: access/transam/xlogrecovery.c:4043 #, c-format msgid "invalid checkpoint record" msgstr "ungültiger Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4044 +#: access/transam/xlogrecovery.c:4054 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "ungültige Resource-Manager-ID im primären Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4048 +#: access/transam/xlogrecovery.c:4058 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ungültige Resource-Manager-ID im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4061 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "ungültige xl_info im primären Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4065 +#: access/transam/xlogrecovery.c:4075 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ungültige xl_info im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4076 +#: access/transam/xlogrecovery.c:4086 #, c-format msgid "invalid length of primary checkpoint record" msgstr "ungültige Länge des primären Checkpoint-Datensatzes" -#: access/transam/xlogrecovery.c:4080 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "ungültige Länge des Checkpoint-Datensatzes" -#: access/transam/xlogrecovery.c:4136 +#: access/transam/xlogrecovery.c:4146 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "neue Zeitleiste %u ist kein Kind der Datenbanksystemzeitleiste %u" -#: access/transam/xlogrecovery.c:4150 +#: access/transam/xlogrecovery.c:4160 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "neue Zeitleiste %u zweigte von der aktuellen Datenbanksystemzeitleiste %u vor dem aktuellen Wiederherstellungspunkt %X/%X ab" -#: access/transam/xlogrecovery.c:4169 +#: access/transam/xlogrecovery.c:4179 #, c-format msgid "new target timeline is %u" msgstr "neue Zielzeitleiste ist %u" -#: access/transam/xlogrecovery.c:4372 +#: access/transam/xlogrecovery.c:4382 #, c-format msgid "WAL receiver process shutdown requested" msgstr "Herunterfahren des WAL-Receiver-Prozesses verlangt" -#: access/transam/xlogrecovery.c:4435 +#: access/transam/xlogrecovery.c:4445 #, c-format msgid "received promote request" msgstr "Anforderung zum Befördern empfangen" -#: access/transam/xlogrecovery.c:4448 +#: access/transam/xlogrecovery.c:4458 #, c-format msgid "promote trigger file found: %s" msgstr "Promote-Triggerdatei gefunden: %s" -#: access/transam/xlogrecovery.c:4456 +#: access/transam/xlogrecovery.c:4466 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "konnte »stat« für Promote-Triggerdatei »%s« nicht ausführen: %m" -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "Hot Standby ist nicht möglich wegen unzureichender Parametereinstellungen" -#: access/transam/xlogrecovery.c:4682 access/transam/xlogrecovery.c:4709 -#: access/transam/xlogrecovery.c:4739 +#: access/transam/xlogrecovery.c:4692 access/transam/xlogrecovery.c:4719 +#: access/transam/xlogrecovery.c:4749 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d ist eine niedrigere Einstellung als auf dem Primärserver, wo der Wert %d war." -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Wenn die Wiederherstellungspause beendet wird, wird der Server herunterfahren." -#: access/transam/xlogrecovery.c:4692 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Sie können den Server dann neu starten, nachdem die nötigen Konfigurationsänderungen getätigt worden sind." -#: access/transam/xlogrecovery.c:4703 +#: access/transam/xlogrecovery.c:4713 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "Beförderung ist nicht möglich wegen unzureichender Parametereinstellungen" -#: access/transam/xlogrecovery.c:4713 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Starten Sie den Server neu, nachdem die nötigen Konfigurationsänderungen getätigt worden sind." -#: access/transam/xlogrecovery.c:4737 +#: access/transam/xlogrecovery.c:4747 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "Wiederherstellung abgebrochen wegen unzureichender Parametereinstellungen" -#: access/transam/xlogrecovery.c:4743 +#: access/transam/xlogrecovery.c:4753 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Sie können den Server neu starten, nachdem die nötigen Konfigurationsänderungen getätigt worden sind." @@ -3588,7 +3603,7 @@ msgstr "relativer Pfad nicht erlaubt für auf dem Server abgelegtes Backup" #: backup/basebackup_server.c:102 commands/dbcommands.c:477 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1587 +#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1618 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -4256,7 +4271,7 @@ msgid "language with OID %u does not exist" msgstr "Sprache mit OID %u existiert nicht" #: catalog/aclchk.c:4576 catalog/aclchk.c:5365 commands/collationcmds.c:595 -#: commands/publicationcmds.c:1745 +#: commands/publicationcmds.c:1750 #, c-format msgid "schema with OID %u does not exist" msgstr "Schema mit OID %u existiert nicht" @@ -4327,7 +4342,7 @@ msgstr "Konversion mit OID %u existiert nicht" msgid "extension with OID %u does not exist" msgstr "Erweiterung mit OID %u existiert nicht" -#: catalog/aclchk.c:5727 commands/publicationcmds.c:1999 +#: catalog/aclchk.c:5727 commands/publicationcmds.c:2004 #, c-format msgid "publication with OID %u does not exist" msgstr "Publikation mit OID %u existiert nicht" @@ -4620,14 +4635,14 @@ msgstr "Dadurch würde die generierte Spalte von ihrem eigenen Wert abhängen." msgid "generation expression is not immutable" msgstr "Generierungsausdruck ist nicht »immutable«" -#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1285 +#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "Spalte »%s« hat Typ %s, aber der Vorgabeausdruck hat Typ %s" #: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 #: parser/parse_target.c:594 parser/parse_target.c:891 -#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1290 +#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Sie müssen den Ausdruck umschreiben oder eine Typumwandlung vornehmen." @@ -4713,7 +4728,7 @@ msgstr "Relation »%s« existiert bereits, wird übersprungen" msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "Index-OID-Wert für pg_class ist im Binary-Upgrade-Modus nicht gesetzt" -#: catalog/index.c:927 utils/cache/relcache.c:3745 +#: catalog/index.c:927 utils/cache/relcache.c:3761 #, c-format msgid "index relfilenode value not set when in binary upgrade mode" msgstr "Index-Relfilenode-Wert ist im Binary-Upgrade-Modus nicht gesetzt" @@ -4723,34 +4738,34 @@ msgstr "Index-Relfilenode-Wert ist im Binary-Upgrade-Modus nicht gesetzt" msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY muss die erste Aktion in einer Transaktion sein" -#: catalog/index.c:3662 +#: catalog/index.c:3669 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht reindizieren" -#: catalog/index.c:3673 commands/indexcmds.c:3577 +#: catalog/index.c:3680 commands/indexcmds.c:3577 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "ungültiger Index einer TOAST-Tabelle kann nicht reindiziert werden" -#: catalog/index.c:3689 commands/indexcmds.c:3457 commands/indexcmds.c:3601 +#: catalog/index.c:3696 commands/indexcmds.c:3457 commands/indexcmds.c:3601 #: commands/tablecmds.c:3331 #, c-format msgid "cannot move system relation \"%s\"" msgstr "Systemrelation »%s« kann nicht verschoben werden" -#: catalog/index.c:3833 +#: catalog/index.c:3840 #, c-format msgid "index \"%s\" was reindexed" msgstr "Index »%s« wurde neu indiziert" -#: catalog/index.c:3970 +#: catalog/index.c:3977 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "ungültiger Index »%s.%s« einer TOAST-Tabelle kann nicht reindizert werden, wird übersprungen" #: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5860 +#: commands/trigger.c:5881 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: »%s.%s.%s«" @@ -5916,8 +5931,8 @@ msgstr "doppelte Spalte »%s« in Publikationsspaltenliste" msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "Schema »%s« ist schon Mitglied der Publikation »%s«" -#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1391 -#: commands/publicationcmds.c:1430 commands/publicationcmds.c:1967 +#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1396 +#: commands/publicationcmds.c:1435 commands/publicationcmds.c:1972 #, c-format msgid "publication \"%s\" does not exist" msgstr "Publikation »%s« existiert nicht" @@ -6060,7 +6075,7 @@ msgstr "Fehler während der Erzeugung eines Multirange-Typs für Typ »%s«." msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Sie können einen Multirange-Typnamen manuell angeben, mit dem Attribut »multirange_type_name«." -#: catalog/storage.c:530 storage/buffer/bufmgr.c:1047 +#: catalog/storage.c:530 storage/buffer/bufmgr.c:1054 #, c-format msgid "invalid page in block %u of relation %s" msgstr "ungültige Seite in Block %u von Relation %s" @@ -6175,7 +6190,7 @@ msgstr "Server »%s« existiert bereits" msgid "language \"%s\" already exists" msgstr "Sprache »%s« existiert bereits" -#: commands/alter.c:97 commands/publicationcmds.c:770 +#: commands/alter.c:97 commands/publicationcmds.c:775 #, c-format msgid "publication \"%s\" already exists" msgstr "Publikation »%s« existiert bereits" @@ -6303,27 +6318,27 @@ msgstr "überspringe Analysieren des Vererbungsbaums »%s.%s« --- dieser Vererb msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "überspringe Analysieren des Vererbungsbaums »%s.%s« --- dieser Vererbungsbaum enthält keine analysierbaren abgeleiteten Tabellen" -#: commands/async.c:646 +#: commands/async.c:645 #, c-format msgid "channel name cannot be empty" msgstr "Kanalname kann nicht leer sein" -#: commands/async.c:652 +#: commands/async.c:651 #, c-format msgid "channel name too long" msgstr "Kanalname zu lang" -#: commands/async.c:657 +#: commands/async.c:656 #, c-format msgid "payload string too long" msgstr "Payload-Zeichenkette zu lang" -#: commands/async.c:876 +#: commands/async.c:875 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "PREPARE kann nicht in einer Transaktion ausgeführt werden, die LISTEN, UNLISTEN oder NOTIFY ausgeführt hat" -#: commands/async.c:980 +#: commands/async.c:979 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "zu viele Benachrichtigungen in NOTIFY-Schlange" @@ -6435,8 +6450,8 @@ msgstr "Attribut »%s« für Sortierfolge unbekannt" #: commands/collationcmds.c:119 commands/collationcmds.c:125 #: commands/define.c:389 commands/tablecmds.c:7913 #: replication/pgoutput/pgoutput.c:319 replication/pgoutput/pgoutput.c:342 -#: replication/pgoutput/pgoutput.c:356 replication/pgoutput/pgoutput.c:366 -#: replication/pgoutput/pgoutput.c:376 replication/pgoutput/pgoutput.c:386 +#: replication/pgoutput/pgoutput.c:360 replication/pgoutput/pgoutput.c:370 +#: replication/pgoutput/pgoutput.c:380 replication/pgoutput/pgoutput.c:390 #: replication/walsender.c:1015 replication/walsender.c:1037 #: replication/walsender.c:1047 #, c-format @@ -6611,7 +6626,7 @@ msgstr "generierte Spalten werden in COPY-FROM-WHERE-Bedingungen nicht unterstü #: commands/copy.c:176 commands/tablecmds.c:12461 commands/tablecmds.c:17648 #: commands/tablecmds.c:17727 commands/trigger.c:668 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 +#: rewrite/rewriteHandler.c:939 rewrite/rewriteHandler.c:974 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Spalte »%s« ist eine generierte Spalte." @@ -6772,7 +6787,7 @@ msgstr "Spalte »%s« ist eine generierte Spalte" msgid "Generated columns cannot be used in COPY." msgstr "Generierte Spalten können nicht in COPY verwendet werden." -#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:243 +#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:263 #: commands/tablecmds.c:2393 commands/tablecmds.c:3049 #: commands/tablecmds.c:3558 parser/parse_relation.c:3669 #: parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 @@ -6861,7 +6876,7 @@ msgstr "Spalte »%s« mit FORCE_NOT_NULL wird von COPY nicht verwendet" msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "Spalte »%s« mit FORCE_NULL wird von COPY nicht verwendet" -#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:386 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "Standardumwandlung von Kodierung »%s« nach »%s« existiert nicht" @@ -7587,7 +7602,7 @@ msgstr "Sortierfolge »%s« existiert nicht, wird übersprungen" msgid "conversion \"%s\" does not exist, skipping" msgstr "Konversion »%s« existiert nicht, wird übersprungen" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:675 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "Statistikobjekt »%s« existiert nicht, wird übersprungen" @@ -9123,7 +9138,7 @@ msgstr "Join-Schätzfunktion %s muss Typ %s zurückgeben" msgid "operator attribute \"%s\" cannot be changed" msgstr "Operator-Attribut »%s« kann nicht geändert werden" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:155 #: commands/tablecmds.c:1623 commands/tablecmds.c:2211 #: commands/tablecmds.c:3452 commands/tablecmds.c:6377 #: commands/tablecmds.c:9253 commands/tablecmds.c:17383 @@ -9225,188 +9240,188 @@ msgstr "vorbereitete Anweisung »%s« existiert nicht" msgid "must be superuser to create custom procedural language" msgstr "nur Superuser können maßgeschneiderte prozedurale Sprachen erzeugen" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1224 +#: commands/publicationcmds.c:135 postmaster/postmaster.c:1224 #: postmaster/postmaster.c:1323 utils/init/miscinit.c:1703 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "ungültige Listensyntax für Parameter »%s«" -#: commands/publicationcmds.c:149 +#: commands/publicationcmds.c:154 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "unbekannter Wert für Publikationsoption »%s«: »%s«" -#: commands/publicationcmds.c:163 +#: commands/publicationcmds.c:168 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "unbekannter Publikationsparameter: »%s«" -#: commands/publicationcmds.c:204 +#: commands/publicationcmds.c:209 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "kein Schema für CURRENT_SCHEMA ausgewählt" -#: commands/publicationcmds.c:501 +#: commands/publicationcmds.c:506 msgid "System columns are not allowed." msgstr "Systemspalten sind nicht erlaubt." -#: commands/publicationcmds.c:508 commands/publicationcmds.c:513 -#: commands/publicationcmds.c:530 +#: commands/publicationcmds.c:513 commands/publicationcmds.c:518 +#: commands/publicationcmds.c:535 msgid "User-defined operators are not allowed." msgstr "Benutzerdefinierte Operatoren sind nicht erlaubt." -#: commands/publicationcmds.c:554 +#: commands/publicationcmds.c:559 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." msgstr "Nur Spalten, Konstanten, eingebaute Operatoren, eingebaute Datentypen, eingebaute Sortierfolgen und eingebaute Funktionen, die »immutable« sind, sind erlaubt." -#: commands/publicationcmds.c:566 +#: commands/publicationcmds.c:571 msgid "User-defined types are not allowed." msgstr "Benutzerdefinierte Typen sind nicht erlaubt." -#: commands/publicationcmds.c:569 +#: commands/publicationcmds.c:574 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Benutzerdefinierte Funktionen oder eingebaute Funktionen, die nicht »immutable« sind, sind nicht erlaubt." -#: commands/publicationcmds.c:572 +#: commands/publicationcmds.c:577 msgid "User-defined collations are not allowed." msgstr "Benutzerdefinierte Sortierfolgen sind nicht erlaubt." -#: commands/publicationcmds.c:582 +#: commands/publicationcmds.c:587 #, c-format msgid "invalid publication WHERE expression" msgstr "ungültiger WHERE-Ausdruck für Publikation" -#: commands/publicationcmds.c:635 +#: commands/publicationcmds.c:640 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "Publikations-WHERE-Ausdruck kann nicht für Relation »%s« verwendet werden" -#: commands/publicationcmds.c:637 +#: commands/publicationcmds.c:642 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "WHERE-Klausel kann nicht für eine partitionierte Tabelle verwendet werden, wenn %s falsch ist." -#: commands/publicationcmds.c:708 commands/publicationcmds.c:722 +#: commands/publicationcmds.c:713 commands/publicationcmds.c:727 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "für Relation »%s.%s« in Publikation »%s« kann keine Spaltenliste verwendet werden" -#: commands/publicationcmds.c:711 +#: commands/publicationcmds.c:716 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." msgstr "Spaltenlisten können nicht in Publikationen, die FOR-TABLES-IN-SCHEMA-Elemente enthalten, angegeben werden." -#: commands/publicationcmds.c:725 +#: commands/publicationcmds.c:730 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." msgstr "Spaltenlisten können nicht für partitionierte Tabellen angegeben werden, wenn %s falsch ist." -#: commands/publicationcmds.c:760 +#: commands/publicationcmds.c:765 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "nur Superuser können eine Publikation FOR ALL TABLES erzeugen" -#: commands/publicationcmds.c:831 +#: commands/publicationcmds.c:836 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "nur Superuser können eine Publikation FOR TABLES IN SCHEMA erzeugen" -#: commands/publicationcmds.c:867 +#: commands/publicationcmds.c:872 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "wal_level ist nicht ausreichend, um logische Veränderungen zu publizieren" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:873 #, c-format msgid "Set wal_level to \"logical\" before creating subscriptions." msgstr "Setzen Sie wal_level auf »logical« bevor Sie Subskriptionen erzeugen." -#: commands/publicationcmds.c:964 commands/publicationcmds.c:972 +#: commands/publicationcmds.c:969 commands/publicationcmds.c:977 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "Parameter »%s« kann für Publikation »%s« nicht auf falsch gesetzt werden" -#: commands/publicationcmds.c:967 +#: commands/publicationcmds.c:972 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Die Publikation enthält eine WHERE-Klausel für die partitionierte Tabelle »%s«, was nicht erlaubt ist, wenn »%s« falsch ist." -#: commands/publicationcmds.c:975 +#: commands/publicationcmds.c:980 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Die Publikation enthält eine Spaltenliste für die partitionierte Tabelle »%s«, was nicht erlaubt ist, wenn »%s« falsch ist." -#: commands/publicationcmds.c:1298 +#: commands/publicationcmds.c:1303 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "Schema kann nicht zu Publikation »%s« hinzugefügt werden" -#: commands/publicationcmds.c:1300 +#: commands/publicationcmds.c:1305 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." msgstr "Schemas können nicht hinzugefügt werden, wenn Tabellen, die eine Spaltenliste angeben, schon Teil der Publikation sind." -#: commands/publicationcmds.c:1348 +#: commands/publicationcmds.c:1353 #, c-format msgid "must be superuser to add or set schemas" msgstr "nur Superuser können Schemas hinzufügen oder setzen" -#: commands/publicationcmds.c:1357 commands/publicationcmds.c:1365 +#: commands/publicationcmds.c:1362 commands/publicationcmds.c:1370 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "Publikation »%s« ist als FOR ALL TABLES definiert" -#: commands/publicationcmds.c:1359 +#: commands/publicationcmds.c:1364 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "In einer FOR-ALL-TABLES-Publikation können keine Schemas hinzugefügt oder entfernt werden." -#: commands/publicationcmds.c:1367 +#: commands/publicationcmds.c:1372 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "In einer FOR-ALL-TABLES-Publikation können keine Tabellen hinzugefügt oder entfernt werden." -#: commands/publicationcmds.c:1593 commands/publicationcmds.c:1656 +#: commands/publicationcmds.c:1598 commands/publicationcmds.c:1661 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "widersprüchliche oder überflüssige WHERE-Klauseln für Tabelle »%s«" -#: commands/publicationcmds.c:1600 commands/publicationcmds.c:1668 +#: commands/publicationcmds.c:1605 commands/publicationcmds.c:1673 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "widersprüchliche oder überflüssige Spaltenlisten für Tabelle »%s«" -#: commands/publicationcmds.c:1802 +#: commands/publicationcmds.c:1807 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "in ALTER PUBLICATION ... DROP darf keine Spaltenliste angegeben werden" -#: commands/publicationcmds.c:1814 +#: commands/publicationcmds.c:1819 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "Relation »%s« ist nicht Teil der Publikation" -#: commands/publicationcmds.c:1821 +#: commands/publicationcmds.c:1826 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "WHERE-Klausel kann nicht verwendet werden, wenn eine Tabelle aus einer Publikation entfernt wird" -#: commands/publicationcmds.c:1881 +#: commands/publicationcmds.c:1886 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "Tabellen von Schema »%s« sind nicht Teil der Publikation" -#: commands/publicationcmds.c:1924 commands/publicationcmds.c:1931 +#: commands/publicationcmds.c:1929 commands/publicationcmds.c:1936 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "keine Berechtigung, um Eigentümer der Publikation »%s« zu ändern" -#: commands/publicationcmds.c:1926 +#: commands/publicationcmds.c:1931 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "Der Eigentümer einer FOR-ALL-TABLES-Publikation muss ein Superuser sein." -#: commands/publicationcmds.c:1933 +#: commands/publicationcmds.c:1938 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "Der Eigentümer einer FOR-TABLES-IN-SCHEMA-Publikation muss ein Superuser sein." @@ -9582,72 +9597,72 @@ msgstr "in CREATE STATISTICS ist nur eine einzelne Relation erlaubt" msgid "cannot define statistics for relation \"%s\"" msgstr "für Relation »%s« können keine Statistiken definiert werden" -#: commands/statscmds.c:191 +#: commands/statscmds.c:211 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "Statistikobjekt »%s« existiert bereits, wird übersprungen" -#: commands/statscmds.c:199 +#: commands/statscmds.c:219 #, c-format msgid "statistics object \"%s\" already exists" msgstr "Statistikobjekt »%s« existiert bereits" -#: commands/statscmds.c:210 +#: commands/statscmds.c:230 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "Statistiken können nicht mehr als %d Spalten enthalten" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:271 commands/statscmds.c:294 commands/statscmds.c:328 #, c-format msgid "statistics creation on system columns is not supported" msgstr "Statistikerzeugung für Systemspalten wird nicht unterstützt" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:278 commands/statscmds.c:301 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "Spalte »%s« kann nicht in Statistiken verwendet werden, weil ihr Typ %s keine Standardoperatorklasse für btree hat" -#: commands/statscmds.c:325 +#: commands/statscmds.c:345 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "Ausdruck kann nicht in multivariaten Statistiken verwendet werden, weil sein Typ %s keine Standardoperatorklasse für btree hat" -#: commands/statscmds.c:346 +#: commands/statscmds.c:366 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "wenn Statistiken für einen einzelnen Ausdruck gebaut werden, kann die Statistikart nicht angegeben werden" -#: commands/statscmds.c:375 +#: commands/statscmds.c:395 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "unbekannte Statistikart »%s«" -#: commands/statscmds.c:404 +#: commands/statscmds.c:424 #, c-format msgid "extended statistics require at least 2 columns" msgstr "erweiterte Statistiken benötigen mindestens 2 Spalten" -#: commands/statscmds.c:422 +#: commands/statscmds.c:442 #, c-format msgid "duplicate column name in statistics definition" msgstr "doppelter Spaltenname in Statistikdefinition" -#: commands/statscmds.c:457 +#: commands/statscmds.c:477 #, c-format msgid "duplicate expression in statistics definition" msgstr "doppelter Ausdruck in Statistikdefinition" -#: commands/statscmds.c:620 commands/tablecmds.c:8217 +#: commands/statscmds.c:640 commands/tablecmds.c:8217 #, c-format msgid "statistics target %d is too low" msgstr "Statistikziel %d ist zu niedrig" -#: commands/statscmds.c:628 commands/tablecmds.c:8225 +#: commands/statscmds.c:648 commands/tablecmds.c:8225 #, c-format msgid "lowering statistics target to %d" msgstr "setze Statistikziel auf %d herab" -#: commands/statscmds.c:651 +#: commands/statscmds.c:671 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "Statistikobjekt »%s.%s« existiert nicht, wird übersprungen" @@ -9808,7 +9823,7 @@ msgid "could not receive list of replicated tables from the publisher: %s" msgstr "konnte Liste der replizierten Tabellen nicht vom Publikationsserver empfangen: %s" #: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 -#: replication/pgoutput/pgoutput.c:1110 +#: replication/pgoutput/pgoutput.c:1114 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "für Tabelle »%s.%s« können nicht verschiedene Spaltenlisten für verschiedene Publikationen verwendet werden" @@ -11693,8 +11708,8 @@ msgstr "aus abgeleiteten Fremdtabellen können keine Übergangstupel gesammelt w #: commands/trigger.c:3472 executor/nodeModifyTable.c:1543 #: executor/nodeModifyTable.c:1617 executor/nodeModifyTable.c:2384 -#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3036 -#: executor/nodeModifyTable.c:3175 +#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3027 +#: executor/nodeModifyTable.c:3166 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Verwenden Sie einen AFTER-Trigger anstelle eines BEFORE-Triggers, um Änderungen an andere Zeilen zu propagieren." @@ -11708,23 +11723,23 @@ msgid "could not serialize access due to concurrent update" msgstr "konnte Zugriff nicht serialisieren wegen gleichzeitiger Aktualisierung" #: commands/trigger.c:3521 executor/nodeModifyTable.c:1649 -#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2649 -#: executor/nodeModifyTable.c:3054 +#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2641 +#: executor/nodeModifyTable.c:3045 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "konnte Zugriff nicht serialisieren wegen gleichzeitigem Löschen" -#: commands/trigger.c:4730 +#: commands/trigger.c:4714 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "aufgeschobener Trigger kann nicht in einer sicherheitsbeschränkten Operation ausgelöst werden" -#: commands/trigger.c:5911 +#: commands/trigger.c:5932 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "Constraint »%s« ist nicht aufschiebbar" -#: commands/trigger.c:5934 +#: commands/trigger.c:5955 #, c-format msgid "constraint \"%s\" does not exist" msgstr "Constraint »%s« existiert nicht" @@ -12368,107 +12383,107 @@ msgstr "Rolle »%s« ist schon Mitglied der Rolle »%s«" msgid "role \"%s\" is not a member of role \"%s\"" msgstr "Rolle »%s« ist kein Mitglied der Rolle »%s«" -#: commands/vacuum.c:140 +#: commands/vacuum.c:141 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "unbekannte ANALYZE-Option »%s«" -#: commands/vacuum.c:178 +#: commands/vacuum.c:179 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "Option PARALLEL benötigt einen Wert zwischen 0 und %d" -#: commands/vacuum.c:190 +#: commands/vacuum.c:191 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "parallele Arbeitsprozesse für Vacuum müssen zwischen 0 und %d sein" -#: commands/vacuum.c:207 +#: commands/vacuum.c:208 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "unbekannte VACUUM-Option »%s«" -#: commands/vacuum.c:230 +#: commands/vacuum.c:231 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL kann nicht parallel ausgeführt werden" -#: commands/vacuum.c:246 +#: commands/vacuum.c:247 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "Option ANALYZE muss angegeben werden, wenn eine Spaltenliste angegeben ist" -#: commands/vacuum.c:336 +#: commands/vacuum.c:337 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s kann nicht aus VACUUM oder ANALYZE ausgeführt werden" -#: commands/vacuum.c:346 +#: commands/vacuum.c:347 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "VACUUM-Option DISABLE_PAGE_SKIPPING kann nicht zusammen mit FULL verwendet werden" -#: commands/vacuum.c:353 +#: commands/vacuum.c:354 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "PROCESS_TOAST benötigt VACUUM FULL" -#: commands/vacuum.c:596 +#: commands/vacuum.c:597 #, c-format msgid "skipping \"%s\" --- only superuser can vacuum it" msgstr "überspringe »%s« --- nur Superuser kann sie vacuumen" -#: commands/vacuum.c:600 +#: commands/vacuum.c:601 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" msgstr "überspringe »%s« --- nur Superuser oder Eigentümer der Datenbank kann sie vacuumen" -#: commands/vacuum.c:604 +#: commands/vacuum.c:605 #, c-format msgid "skipping \"%s\" --- only table or database owner can vacuum it" msgstr "überspringe »%s« --- nur Eigentümer der Tabelle oder der Datenbank kann sie vacuumen" -#: commands/vacuum.c:619 +#: commands/vacuum.c:620 #, c-format msgid "skipping \"%s\" --- only superuser can analyze it" msgstr "überspringe »%s« --- nur Superuser kann sie analysieren" -#: commands/vacuum.c:623 +#: commands/vacuum.c:624 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can analyze it" msgstr "überspringe »%s« --- nur Superuser oder Eigentümer der Datenbank kann sie analysieren" -#: commands/vacuum.c:627 +#: commands/vacuum.c:628 #, c-format msgid "skipping \"%s\" --- only table or database owner can analyze it" msgstr "überspringe »%s« --- nur Eigentümer der Tabelle oder der Datenbank kann sie analysieren" -#: commands/vacuum.c:706 commands/vacuum.c:802 +#: commands/vacuum.c:707 commands/vacuum.c:803 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "überspringe Vacuum von »%s« --- Sperre nicht verfügbar" -#: commands/vacuum.c:711 +#: commands/vacuum.c:712 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "überspringe Vacuum von »%s« --- Relation existiert nicht mehr" -#: commands/vacuum.c:727 commands/vacuum.c:807 +#: commands/vacuum.c:728 commands/vacuum.c:808 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "überspringe Analyze von »%s« --- Sperre nicht verfügbar" -#: commands/vacuum.c:732 +#: commands/vacuum.c:733 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "überspringe Analyze von »%s« --- Relation existiert nicht mehr" -#: commands/vacuum.c:1051 +#: commands/vacuum.c:1052 #, c-format msgid "oldest xmin is far in the past" msgstr "älteste xmin ist weit in der Vergangenheit" -#: commands/vacuum.c:1052 +#: commands/vacuum.c:1053 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -12477,42 +12492,42 @@ msgstr "" "Schließen Sie bald alle offenen Transaktionen, um Überlaufprobleme zu vermeiden.\n" "Eventuell müssen Sie auch alte vorbereitete Transaktionen committen oder zurückrollen oder unbenutzte Replikations-Slots löschen." -#: commands/vacuum.c:1095 +#: commands/vacuum.c:1096 #, c-format msgid "oldest multixact is far in the past" msgstr "älteste Multixact ist weit in der Vergangenheit" -#: commands/vacuum.c:1096 +#: commands/vacuum.c:1097 #, c-format msgid "Close open transactions with multixacts soon to avoid wraparound problems." msgstr "Schließen Sie bald alle offenen Transaktionen mit Multixacts, um Überlaufprobleme zu vermeiden." -#: commands/vacuum.c:1830 +#: commands/vacuum.c:1831 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "einige Datenbanken sind seit über 2 Milliarden Transaktionen nicht gevacuumt worden" -#: commands/vacuum.c:1831 +#: commands/vacuum.c:1832 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Sie haben möglicherweise bereits Daten wegen Transaktionsnummernüberlauf verloren." -#: commands/vacuum.c:2006 +#: commands/vacuum.c:2013 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "überspringe »%s« --- kann Nicht-Tabellen oder besondere Systemtabellen nicht vacuumen" -#: commands/vacuum.c:2384 +#: commands/vacuum.c:2391 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "Index »%s« gelesen und %d Zeilenversionen entfernt" -#: commands/vacuum.c:2403 +#: commands/vacuum.c:2410 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "Index »%s« enthält %.0f Zeilenversionen in %u Seiten" -#: commands/vacuum.c:2407 +#: commands/vacuum.c:2414 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12774,7 +12789,7 @@ msgstr "Anfrage liefert einen Wert für eine gelöschte Spalte auf Position %d." msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "Tabelle hat Typ %s auf Position %d, aber Anfrage erwartet %s." -#: executor/execExpr.c:1098 parser/parse_agg.c:861 +#: executor/execExpr.c:1098 parser/parse_agg.c:888 #, c-format msgid "window function calls cannot be nested" msgstr "Aufrufe von Fensterfunktionen können nicht geschachtelt werden" @@ -12951,38 +12966,38 @@ msgstr "kann Sequenz »%s« nicht ändern" msgid "cannot change TOAST relation \"%s\"" msgstr "kann TOAST-Relation »%s« nicht ändern" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3149 -#: rewrite/rewriteHandler.c:4037 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3152 +#: rewrite/rewriteHandler.c:4057 #, c-format msgid "cannot insert into view \"%s\"" msgstr "kann nicht in Sicht »%s« einfügen" -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3152 -#: rewrite/rewriteHandler.c:4040 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:4060 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "Um Einfügen in die Sicht zu ermöglichen, richten Sie einen INSTEAD OF INSERT Trigger oder eine ON INSERT DO INSTEAD Regel ohne Bedingung ein." -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3157 -#: rewrite/rewriteHandler.c:4045 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3160 +#: rewrite/rewriteHandler.c:4065 #, c-format msgid "cannot update view \"%s\"" msgstr "kann Sicht »%s« nicht aktualisieren" -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3160 -#: rewrite/rewriteHandler.c:4048 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:4068 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "Um Aktualisieren der Sicht zu ermöglichen, richten Sie einen INSTEAD OF UPDATE Trigger oder eine ON UPDATE DO INSTEAD Regel ohne Bedingung ein." -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3165 -#: rewrite/rewriteHandler.c:4053 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3168 +#: rewrite/rewriteHandler.c:4073 #, c-format msgid "cannot delete from view \"%s\"" msgstr "kann nicht aus Sicht »%s« löschen" -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3168 -#: rewrite/rewriteHandler.c:4056 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3171 +#: rewrite/rewriteHandler.c:4076 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "Um Löschen aus der Sicht zu ermöglichen, richten Sie einen INSTEAD OF DELETE Trigger oder eine ON DELETE DO INSTEAD Regel ohne Bedingung ein." @@ -13335,7 +13350,7 @@ msgstr "Rückgabetyp %s wird von SQL-Funktionen nicht unterstützt" msgid "aggregate %u needs to have compatible input type and transition type" msgstr "Aggregatfunktion %u muss kompatiblen Eingabe- und Übergangstyp haben" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:677 parser/parse_agg.c:705 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:684 parser/parse_agg.c:727 #, c-format msgid "aggregate function calls cannot be nested" msgstr "Aufrufe von Aggregatfunktionen können nicht geschachtelt werden" @@ -13421,8 +13436,8 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "Definieren Sie den Fremdschlüssel eventuell für Tabelle »%s«." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3042 -#: executor/nodeModifyTable.c:3181 +#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3033 +#: executor/nodeModifyTable.c:3172 #, c-format msgid "%s command cannot affect row a second time" msgstr "Befehl in %s kann eine Zeile nicht ein zweites Mal ändern" @@ -13432,17 +13447,17 @@ msgstr "Befehl in %s kann eine Zeile nicht ein zweites Mal ändern" msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Stellen Sie sicher, dass keine im selben Befehl fürs Einfügen vorgesehene Zeilen doppelte Werte haben, die einen Constraint verletzen würden." -#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 +#: executor/nodeModifyTable.c:3026 executor/nodeModifyTable.c:3165 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "das zu aktualisierende oder zu löschende Tupel wurde schon durch eine vom aktuellen Befehl ausgelöste Operation verändert" -#: executor/nodeModifyTable.c:3044 executor/nodeModifyTable.c:3183 +#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Stellen Sie sicher, dass nicht mehr als eine Quellzeile auf jede Zielzeile passt." -#: executor/nodeModifyTable.c:3133 +#: executor/nodeModifyTable.c:3124 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "das zu löschende Tupel wurde schon durch ein gleichzeitiges Update in eine andere Partition verschoben" @@ -16451,331 +16466,341 @@ msgstr "%s kann nicht auf einen benannten Tupelstore angewendet werden" msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "Relation »%s« in %s nicht in der FROM-Klausel gefunden" -#: parser/parse_agg.c:208 parser/parse_oper.c:227 +#: parser/parse_agg.c:211 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "konnte keinen Sortieroperator für Typ %s ermitteln" -#: parser/parse_agg.c:210 +#: parser/parse_agg.c:213 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Aggregatfunktionen mit DISTINCT müssen ihre Eingaben sortieren können." -#: parser/parse_agg.c:268 +#: parser/parse_agg.c:271 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING muss weniger als 32 Argumente haben" -#: parser/parse_agg.c:371 +#: parser/parse_agg.c:375 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "Aggregatfunktionen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:377 msgid "grouping operations are not allowed in JOIN conditions" msgstr "Gruppieroperationen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:387 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "Aggregatfunktionen sind nicht in der FROM-Klausel ihrer eigenen Anfrageebene erlaubt" -#: parser/parse_agg.c:385 +#: parser/parse_agg.c:389 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "Gruppieroperationen sind nicht in der FROM-Klausel ihrer eigenen Anfrageebene erlaubt" -#: parser/parse_agg.c:390 +#: parser/parse_agg.c:394 msgid "aggregate functions are not allowed in functions in FROM" msgstr "Aggregatfunktionen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:396 msgid "grouping operations are not allowed in functions in FROM" msgstr "Gruppieroperationen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:400 +#: parser/parse_agg.c:404 msgid "aggregate functions are not allowed in policy expressions" msgstr "Aggregatfunktionen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:402 +#: parser/parse_agg.c:406 msgid "grouping operations are not allowed in policy expressions" msgstr "Gruppieroperationen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:423 msgid "aggregate functions are not allowed in window RANGE" msgstr "Aggregatfunktionen sind in der Fenster-RANGE-Klausel nicht erlaubt" -#: parser/parse_agg.c:421 +#: parser/parse_agg.c:425 msgid "grouping operations are not allowed in window RANGE" msgstr "Gruppieroperationen sind in der Fenster-RANGE-Klausel nicht erlaubt" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:430 msgid "aggregate functions are not allowed in window ROWS" msgstr "Aggregatfunktionen sind in der Fenster-ROWS-Klausel nicht erlaubt" -#: parser/parse_agg.c:428 +#: parser/parse_agg.c:432 msgid "grouping operations are not allowed in window ROWS" msgstr "Gruppieroperationen sind in der Fenster-ROWS-Klausel nicht erlaubt" -#: parser/parse_agg.c:433 +#: parser/parse_agg.c:437 msgid "aggregate functions are not allowed in window GROUPS" msgstr "Aggregatfunktionen sind in der Fenster-GROUPS-Klausel nicht erlaubt" -#: parser/parse_agg.c:435 +#: parser/parse_agg.c:439 msgid "grouping operations are not allowed in window GROUPS" msgstr "Gruppieroperationen sind in der Fenster-GROUPS-Klausel nicht erlaubt" -#: parser/parse_agg.c:448 +#: parser/parse_agg.c:452 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "Aggregatfunktionen sind in MERGE-WHEN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:450 +#: parser/parse_agg.c:454 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "Gruppieroperationen sind in MERGE-WHEN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:480 msgid "aggregate functions are not allowed in check constraints" msgstr "Aggregatfunktionen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:482 msgid "grouping operations are not allowed in check constraints" msgstr "Gruppieroperationen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:489 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "Aggregatfunktionen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:487 +#: parser/parse_agg.c:491 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "Gruppieroperationen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:496 msgid "aggregate functions are not allowed in index expressions" msgstr "Aggregatfunktionen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:494 +#: parser/parse_agg.c:498 msgid "grouping operations are not allowed in index expressions" msgstr "Gruppieroperationen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:503 msgid "aggregate functions are not allowed in index predicates" msgstr "Aggregatfunktionen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:501 +#: parser/parse_agg.c:505 msgid "grouping operations are not allowed in index predicates" msgstr "Gruppieroperationen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:510 msgid "aggregate functions are not allowed in statistics expressions" msgstr "Aggregatfunktionen sind in Statistikausdrücken nicht erlaubt" -#: parser/parse_agg.c:508 +#: parser/parse_agg.c:512 msgid "grouping operations are not allowed in statistics expressions" msgstr "Gruppieroperationen sind in Statistikausdrücken nicht erlaubt" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:517 msgid "aggregate functions are not allowed in transform expressions" msgstr "Aggregatfunktionen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:515 +#: parser/parse_agg.c:519 msgid "grouping operations are not allowed in transform expressions" msgstr "Gruppieroperationen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:524 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "Aggregatfunktionen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:522 +#: parser/parse_agg.c:526 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "Gruppieroperationen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:531 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "Aggregatfunktionen sind in der WHEN-Bedingung eines Triggers nicht erlaubt" -#: parser/parse_agg.c:529 +#: parser/parse_agg.c:533 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "Gruppieroperationen sind in der WHEN-Bedingung eines Triggers nicht erlaubt" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:538 msgid "aggregate functions are not allowed in partition bound" msgstr "Aggregatfunktionen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:536 +#: parser/parse_agg.c:540 msgid "grouping operations are not allowed in partition bound" msgstr "Gruppieroperationen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:545 msgid "aggregate functions are not allowed in partition key expressions" msgstr "Aggregatfunktionen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:547 msgid "grouping operations are not allowed in partition key expressions" msgstr "Gruppieroperationen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:553 msgid "aggregate functions are not allowed in column generation expressions" msgstr "Aggregatfunktionen sind in Spaltengenerierungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:555 msgid "grouping operations are not allowed in column generation expressions" msgstr "Gruppieroperationen sind in Spaltengenerierungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:561 msgid "aggregate functions are not allowed in CALL arguments" msgstr "Aggregatfunktionen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:563 msgid "grouping operations are not allowed in CALL arguments" msgstr "Gruppieroperationen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:565 +#: parser/parse_agg.c:569 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "Aggregatfunktionen sind in COPY-FROM-WHERE-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:567 +#: parser/parse_agg.c:571 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "Gruppieroperationen sind in COPY-FROM-WHERE-Bedingungen nicht erlaubt" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:594 parser/parse_clause.c:1836 +#: parser/parse_agg.c:598 parser/parse_clause.c:1836 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "Aggregatfunktionen sind in %s nicht erlaubt" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:597 +#: parser/parse_agg.c:601 #, c-format msgid "grouping operations are not allowed in %s" msgstr "Gruppieroperationen sind in %s nicht erlaubt" -#: parser/parse_agg.c:698 +#: parser/parse_agg.c:697 parser/parse_agg.c:734 +#, c-format +msgid "outer-level aggregate cannot use a nested CTE" +msgstr "Aggregatfunktionen auf äußerer Ebene kann keine geschachtelte CTE verwenden" + +#: parser/parse_agg.c:698 parser/parse_agg.c:735 +#, c-format +msgid "CTE \"%s\" is below the aggregate's semantic level." +msgstr "CTE »%s« ist unterhalb der semantischen Ebene der Aggregatfunktion." + +#: parser/parse_agg.c:720 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "Aggregatfunktion auf äußerer Ebene kann keine Variable einer unteren Ebene in ihren direkten Argumenten haben" -#: parser/parse_agg.c:776 +#: parser/parse_agg.c:805 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "Aufrufe von Aggregatfunktionen können keine Aufrufe von Funktionen mit Ergebnismenge enthalten" -#: parser/parse_agg.c:777 parser/parse_expr.c:1674 parser/parse_expr.c:2164 +#: parser/parse_agg.c:806 parser/parse_expr.c:1674 parser/parse_expr.c:2164 #: parser/parse_func.c:883 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Sie können möglicherweise die Funktion mit Ergebnismenge in ein LATERAL-FROM-Element verschieben." -#: parser/parse_agg.c:782 +#: parser/parse_agg.c:811 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "Aufrufe von Aggregatfunktionen können keine Aufrufe von Fensterfunktionen enthalten" -#: parser/parse_agg.c:887 +#: parser/parse_agg.c:914 msgid "window functions are not allowed in JOIN conditions" msgstr "Fensterfunktionen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:894 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in functions in FROM" msgstr "Fensterfunktionen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in policy expressions" msgstr "Fensterfunktionen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in window definitions" msgstr "Fensterfunktionen sind in Fensterdefinitionen nicht erlaubt" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "Fensterfunktionen sind in MERGE-WHEN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:975 msgid "window functions are not allowed in check constraints" msgstr "Fensterfunktionen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:952 +#: parser/parse_agg.c:979 msgid "window functions are not allowed in DEFAULT expressions" msgstr "Fensterfunktionen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:955 +#: parser/parse_agg.c:982 msgid "window functions are not allowed in index expressions" msgstr "Fensterfunktionen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:958 +#: parser/parse_agg.c:985 msgid "window functions are not allowed in statistics expressions" msgstr "Fensterfunktionen sind in Statistikausdrücken nicht erlaubt" -#: parser/parse_agg.c:961 +#: parser/parse_agg.c:988 msgid "window functions are not allowed in index predicates" msgstr "Fensterfunktionen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:964 +#: parser/parse_agg.c:991 msgid "window functions are not allowed in transform expressions" msgstr "Fensterfunktionen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:967 +#: parser/parse_agg.c:994 msgid "window functions are not allowed in EXECUTE parameters" msgstr "Fensterfunktionen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:970 +#: parser/parse_agg.c:997 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "Fensterfunktionen sind in der WHEN-Bedingung eines Triggers nicht erlaubt" -#: parser/parse_agg.c:973 +#: parser/parse_agg.c:1000 msgid "window functions are not allowed in partition bound" msgstr "Fensterfunktionen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:976 +#: parser/parse_agg.c:1003 msgid "window functions are not allowed in partition key expressions" msgstr "Fensterfunktionen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:979 +#: parser/parse_agg.c:1006 msgid "window functions are not allowed in CALL arguments" msgstr "Fensterfunktionen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:982 +#: parser/parse_agg.c:1009 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "Fensterfunktionen sind in COPY-FROM-WHERE-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:985 +#: parser/parse_agg.c:1012 msgid "window functions are not allowed in column generation expressions" msgstr "Fensterfunktionen sind in Spaltengenerierungsausdrücken nicht erlaubt" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:1008 parser/parse_clause.c:1845 +#: parser/parse_agg.c:1035 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "Fensterfunktionen sind in %s nicht erlaubt" -#: parser/parse_agg.c:1042 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1069 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "Fenster »%s« existiert nicht" -#: parser/parse_agg.c:1126 +#: parser/parse_agg.c:1153 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "zu viele Grouping-Sets vorhanden (maximal 4096)" -#: parser/parse_agg.c:1266 +#: parser/parse_agg.c:1293 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "Aggregatfunktionen sind nicht im rekursiven Ausdruck einer rekursiven Anfrage erlaubt" -#: parser/parse_agg.c:1459 +#: parser/parse_agg.c:1486 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "Spalte »%s.%s« muss in der GROUP-BY-Klausel erscheinen oder in einer Aggregatfunktion verwendet werden" -#: parser/parse_agg.c:1462 +#: parser/parse_agg.c:1489 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Direkte Argumente einer Ordered-Set-Aggregatfunktion dürfen nur gruppierte Spalten verwenden." -#: parser/parse_agg.c:1467 +#: parser/parse_agg.c:1494 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "Unteranfrage verwendet nicht gruppierte Spalte »%s.%s« aus äußerer Anfrage" -#: parser/parse_agg.c:1631 +#: parser/parse_agg.c:1658 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "Argumente von GROUPING müssen Gruppierausdrücke der zugehörigen Anfrageebene sein" @@ -18603,22 +18628,22 @@ msgstr "FROM muss genau einen Wert pro Partitionierungsspalte angeben" msgid "TO must specify exactly one value per partitioning column" msgstr "TO muss genau einen Wert pro Partitionierungsspalte angeben" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4282 #, c-format msgid "cannot specify NULL in range bound" msgstr "NULL kann nicht in der Bereichsgrenze angegeben werden" -#: parser/parse_utilcmd.c:4329 +#: parser/parse_utilcmd.c:4330 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "jede Begrenzung, die auf MAXVALUE folgt, muss auch MAXVALUE sein" -#: parser/parse_utilcmd.c:4336 +#: parser/parse_utilcmd.c:4337 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "jede Begrenzung, die auf MINVALUE folgt, muss auch MINVALUE sein" -#: parser/parse_utilcmd.c:4379 +#: parser/parse_utilcmd.c:4380 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "angegebener Wert kann nicht in Typ %s für Spalte »%s« umgewandelt werden" @@ -19811,117 +19836,118 @@ msgstr "ungültige Streaming-Startposition" msgid "unterminated quoted string" msgstr "Zeichenkette in Anführungszeichen nicht abgeschlossen" -#: replication/libpqwalreceiver/libpqwalreceiver.c:233 +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 #, c-format msgid "could not clear search path: %s" msgstr "konnte Suchpfad nicht auf leer setzen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:273 +#: replication/libpqwalreceiver/libpqwalreceiver.c:286 +#: replication/libpqwalreceiver/libpqwalreceiver.c:444 #, c-format msgid "invalid connection string syntax: %s" msgstr "ungültige Syntax für Verbindungszeichenkette: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:299 +#: replication/libpqwalreceiver/libpqwalreceiver.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "konnte Verbindungsparameter nicht interpretieren: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:372 +#: replication/libpqwalreceiver/libpqwalreceiver.c:385 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "konnte Datenbanksystemidentifikator und Zeitleisten-ID nicht vom Primärserver empfangen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:388 -#: replication/libpqwalreceiver/libpqwalreceiver.c:626 +#: replication/libpqwalreceiver/libpqwalreceiver.c:402 +#: replication/libpqwalreceiver/libpqwalreceiver.c:685 #, c-format msgid "invalid response from primary server" msgstr "ungültige Antwort vom Primärserver" -#: replication/libpqwalreceiver/libpqwalreceiver.c:389 +#: replication/libpqwalreceiver/libpqwalreceiver.c:403 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Konnte System nicht identifizieren: %d Zeilen und %d Felder erhalten, %d Zeilen und %d oder mehr Felder erwartet." -#: replication/libpqwalreceiver/libpqwalreceiver.c:469 -#: replication/libpqwalreceiver/libpqwalreceiver.c:476 -#: replication/libpqwalreceiver/libpqwalreceiver.c:506 +#: replication/libpqwalreceiver/libpqwalreceiver.c:528 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 +#: replication/libpqwalreceiver/libpqwalreceiver.c:565 #, c-format msgid "could not start WAL streaming: %s" msgstr "konnte WAL-Streaming nicht starten: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:530 +#: replication/libpqwalreceiver/libpqwalreceiver.c:589 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "konnte End-of-Streaming-Nachricht nicht an Primärserver senden: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:553 +#: replication/libpqwalreceiver/libpqwalreceiver.c:612 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "unerwartete Ergebnismenge nach End-of-Streaming" -#: replication/libpqwalreceiver/libpqwalreceiver.c:568 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "Fehler beim Beenden des COPY-Datenstroms: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:578 +#: replication/libpqwalreceiver/libpqwalreceiver.c:637 #, c-format msgid "error reading result of streaming command: %s" msgstr "Fehler beim Lesen des Ergebnisses von Streaming-Befehl: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 -#: replication/libpqwalreceiver/libpqwalreceiver.c:822 +#: replication/libpqwalreceiver/libpqwalreceiver.c:646 +#: replication/libpqwalreceiver/libpqwalreceiver.c:881 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "unerwartetes Ergebnis nach CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:614 +#: replication/libpqwalreceiver/libpqwalreceiver.c:673 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "konnte Zeitleisten-History-Datei nicht vom Primärserver empfangen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:627 +#: replication/libpqwalreceiver/libpqwalreceiver.c:686 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "1 Tupel mit 2 Feldern erwartet, %d Tupel mit %d Feldern erhalten." -#: replication/libpqwalreceiver/libpqwalreceiver.c:785 -#: replication/libpqwalreceiver/libpqwalreceiver.c:838 -#: replication/libpqwalreceiver/libpqwalreceiver.c:845 +#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:897 +#: replication/libpqwalreceiver/libpqwalreceiver.c:904 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "konnte keine Daten vom WAL-Stream empfangen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:865 +#: replication/libpqwalreceiver/libpqwalreceiver.c:924 #, c-format msgid "could not send data to WAL stream: %s" msgstr "konnte keine Daten an den WAL-Stream senden: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:957 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1016 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "konnte Replikations-Slot »%s« nicht erzeugen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1062 #, c-format msgid "invalid query response" msgstr "ungültige Antwort auf Anfrage" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1004 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1063 #, c-format msgid "Expected %d fields, got %d fields." msgstr "%d Felder erwartet, %d Feldern erhalten." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1074 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1133 #, c-format msgid "the query interface requires a database connection" msgstr "Ausführen von Anfragen benötigt eine Datenbankverbindung" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1105 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1164 msgid "empty query" msgstr "leere Anfrage" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1111 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1170 msgid "unexpected pipeline mode" msgstr "unerwarteter Pipeline-Modus" @@ -19975,12 +20001,12 @@ msgstr "logische Dekodierung benötigt eine Datenbankverbindung" msgid "logical decoding cannot be used while in recovery" msgstr "logische Dekodierung kann nicht während der Wiederherstellung verwendet werden" -#: replication/logical/logical.c:351 replication/logical/logical.c:505 +#: replication/logical/logical.c:351 replication/logical/logical.c:507 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "physischer Replikations-Slot kann nicht für logisches Dekodieren verwendet werden" -#: replication/logical/logical.c:356 replication/logical/logical.c:510 +#: replication/logical/logical.c:356 replication/logical/logical.c:512 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "Replikations-Slot »%s« wurde nicht in dieser Datenbank erzeugt" @@ -19990,40 +20016,40 @@ msgstr "Replikations-Slot »%s« wurde nicht in dieser Datenbank erzeugt" msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "logischer Replikations-Slot kann nicht in einer Transaktion erzeugt werden, die Schreibvorgänge ausgeführt hat" -#: replication/logical/logical.c:573 +#: replication/logical/logical.c:575 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "starte logisches Dekodieren für Slot »%s«" -#: replication/logical/logical.c:575 +#: replication/logical/logical.c:577 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Streaming beginnt bei Transaktionen, die nach %X/%X committen; lese WAL ab %X/%X." -#: replication/logical/logical.c:723 +#: replication/logical/logical.c:725 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "Slot »%s«, Ausgabe-Plugin »%s«, im Callback %s, zugehörige LSN %X/%X" -#: replication/logical/logical.c:729 +#: replication/logical/logical.c:731 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "Slot »%s«, Ausgabe-Plugin »%s«, im Callback %s" -#: replication/logical/logical.c:900 replication/logical/logical.c:945 -#: replication/logical/logical.c:990 replication/logical/logical.c:1036 +#: replication/logical/logical.c:902 replication/logical/logical.c:947 +#: replication/logical/logical.c:992 replication/logical/logical.c:1038 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "logische Replikation bei PREPARE TRANSACTION benötigt einen %s-Callback" -#: replication/logical/logical.c:1268 replication/logical/logical.c:1317 -#: replication/logical/logical.c:1358 replication/logical/logical.c:1444 -#: replication/logical/logical.c:1493 +#: replication/logical/logical.c:1270 replication/logical/logical.c:1319 +#: replication/logical/logical.c:1360 replication/logical/logical.c:1446 +#: replication/logical/logical.c:1495 #, c-format msgid "logical streaming requires a %s callback" msgstr "logisches Streaming benötigt einen %s-Callback" -#: replication/logical/logical.c:1403 +#: replication/logical/logical.c:1405 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "logisches Streaming bei PREPARE TRANSACTION benötigt einen %s-Callback" @@ -20130,7 +20156,7 @@ msgid "could not find free replication state slot for replication origin with ID msgstr "konnte keinen freien Replication-State-Slot für Replication-Origin mit ID %d finden" #: replication/logical/origin.c:941 replication/logical/origin.c:1131 -#: replication/slot.c:1983 +#: replication/slot.c:2014 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Erhöhen Sie max_replication_slots und versuchen Sie es erneut." @@ -20313,22 +20339,17 @@ msgstr "konnte WHERE-Klausel-Informationen für Tabelle »%s.%s« nicht vom Publ msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "konnte Kopieren des Anfangsinhalts für Tabelle »%s.%s« nicht starten: %s" -#: replication/logical/tablesync.c:1369 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1383 replication/logical/worker.c:1635 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "Benutzer »%s« kann nicht in eine Relation mit Sicherheit auf Zeilenebene replizieren: »%s«" -#: replication/logical/tablesync.c:1384 +#: replication/logical/tablesync.c:1398 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "beim Kopieren der Tabelle konnte die Transaktion auf dem Publikationsserver nicht gestartet werden: %s" -#: replication/logical/tablesync.c:1426 -#, c-format -msgid "replication origin \"%s\" already exists" -msgstr "Replication-Origin »%s« existiert bereits" - -#: replication/logical/tablesync.c:1439 +#: replication/logical/tablesync.c:1437 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "beim Kopieren der Tabelle konnte die Transaktion auf dem Publikationsserver nicht beenden werden: %s" @@ -20473,42 +20494,42 @@ msgstr "ungültige proto_version" msgid "proto_version \"%s\" out of range" msgstr "proto_version »%s« ist außerhalb des gültigen Bereichs" -#: replication/pgoutput/pgoutput.c:349 +#: replication/pgoutput/pgoutput.c:353 #, c-format msgid "invalid publication_names syntax" msgstr "ungültige Syntax für publication_names" -#: replication/pgoutput/pgoutput.c:464 +#: replication/pgoutput/pgoutput.c:468 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or lower" msgstr "Client sendete proto_version=%d, aber wir unterstützen nur Protokoll %d oder niedriger" -#: replication/pgoutput/pgoutput.c:470 +#: replication/pgoutput/pgoutput.c:474 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or higher" msgstr "Client sendete proto_version=%d, aber wir unterstützen nur Protokoll %d oder höher" -#: replication/pgoutput/pgoutput.c:476 +#: replication/pgoutput/pgoutput.c:480 #, c-format msgid "publication_names parameter missing" msgstr "Parameter »publication_names« fehlt" -#: replication/pgoutput/pgoutput.c:489 +#: replication/pgoutput/pgoutput.c:493 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "angeforderte proto_version=%d unterstützt Streaming nicht, benötigt %d oder höher" -#: replication/pgoutput/pgoutput.c:494 +#: replication/pgoutput/pgoutput.c:498 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "Streaming angefordert, aber wird vom Ausgabe-Plugin nicht unterstützt" -#: replication/pgoutput/pgoutput.c:511 +#: replication/pgoutput/pgoutput.c:515 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "angeforderte proto_version=%d unterstützt Zwei-Phasen-Commit nicht, benötigt %d oder höher" -#: replication/pgoutput/pgoutput.c:516 +#: replication/pgoutput/pgoutput.c:520 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "Zwei-Phasen-Commit angefordert, aber wird vom Ausgabe-Plugin nicht unterstützt" @@ -20553,82 +20574,82 @@ msgstr "Geben Sie einen frei oder erhöhen Sie max_replication_slots." msgid "replication slot \"%s\" does not exist" msgstr "Replikations-Slot »%s« existiert nicht" -#: replication/slot.c:547 replication/slot.c:1122 +#: replication/slot.c:547 replication/slot.c:1151 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "Replikations-Slot »%s« ist aktiv für PID %d" -#: replication/slot.c:783 replication/slot.c:1528 replication/slot.c:1918 +#: replication/slot.c:783 replication/slot.c:1559 replication/slot.c:1949 #, c-format msgid "could not remove directory \"%s\"" msgstr "konnte Verzeichnis »%s« nicht löschen" -#: replication/slot.c:1157 +#: replication/slot.c:1186 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "Replikations-Slots können nur verwendet werden, wenn max_replication_slots > 0" -#: replication/slot.c:1162 +#: replication/slot.c:1191 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "Replikations-Slots können nur verwendet werden, wenn wal_level >= replica" -#: replication/slot.c:1174 +#: replication/slot.c:1203 #, c-format msgid "must be superuser or replication role to use replication slots" msgstr "nur Superuser und Replikationsrollen können Replikations-Slots verwenden" -#: replication/slot.c:1359 +#: replication/slot.c:1390 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "Prozess %d wird beendet, um Replikations-Slot »%s« freizugeben" -#: replication/slot.c:1397 +#: replication/slot.c:1428 #, c-format msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" msgstr "Slot »%s« wird ungültig gemacht, weil seine restart_lsn %X/%X max_slot_wal_keep_size überschreitet" -#: replication/slot.c:1856 +#: replication/slot.c:1887 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "Replikations-Slot-Datei »%s« hat falsche magische Zahl: %u statt %u" -#: replication/slot.c:1863 +#: replication/slot.c:1894 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "Replikations-Slot-Datei »%s« hat nicht unterstützte Version %u" -#: replication/slot.c:1870 +#: replication/slot.c:1901 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "Replikations-Slot-Datei »%s« hat falsche Länge %u" -#: replication/slot.c:1906 +#: replication/slot.c:1937 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "Prüfsummenfehler bei Replikations-Slot-Datei »%s«: ist %u, sollte %u sein" -#: replication/slot.c:1940 +#: replication/slot.c:1971 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "logischer Replikations-Slot »%s« existiert, aber wal_level < logical" -#: replication/slot.c:1942 +#: replication/slot.c:1973 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Ändern Sie wal_level in logical oder höher." -#: replication/slot.c:1946 +#: replication/slot.c:1977 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "physischer Replikations-Slot »%s« existiert, aber wal_level < replica" -#: replication/slot.c:1948 +#: replication/slot.c:1979 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Ändern Sie wal_level in replica oder höher." -#: replication/slot.c:1982 +#: replication/slot.c:2013 #, c-format msgid "too many replication slots active before shutdown" msgstr "zu viele aktive Replikations-Slots vor dem Herunterfahren" @@ -20798,7 +20819,7 @@ msgstr "konnte nicht in Logsegment %s bei Position %u, Länge %lu schreiben: %m" msgid "cannot use %s with a logical replication slot" msgstr "%s kann nicht mit einem logischem Replikations-Slot verwendet werden" -#: replication/walsender.c:652 storage/smgr/md.c:1379 +#: replication/walsender.c:652 storage/smgr/md.c:1382 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "konnte Positionszeiger nicht ans Ende der Datei »%s« setzen: %m" @@ -21146,198 +21167,198 @@ msgstr "Umbenennen einer ON-SELECT-Regel ist nicht erlaubt" msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "WITH-Anfragename »%s« erscheint sowohl in der Regelaktion als auch in der umzuschreibenden Anfrage" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:613 #, c-format msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" msgstr "INSTEAD...SELECT-Regelaktionen werden für Anfrangen mit datenmodifizierenden Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:666 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "RETURNING-Listen können nicht in mehreren Regeln auftreten" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:898 rewrite/rewriteHandler.c:937 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "kann keinen Wert außer DEFAULT in Spalte »%s« einfügen" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:966 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Spalte »%s« ist eine Identitätsspalte, die als GENERATED ALWAYS definiert ist." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:902 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Verwenden Sie OVERRIDING SYSTEM VALUE, um diese Einschränkung außer Kraft zu setzen." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:964 rewrite/rewriteHandler.c:972 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "Spalte »%s« kann nur auf DEFAULT aktualisiert werden" -#: rewrite/rewriteHandler.c:1104 rewrite/rewriteHandler.c:1122 +#: rewrite/rewriteHandler.c:1107 rewrite/rewriteHandler.c:1125 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "mehrere Zuweisungen zur selben Spalte »%s«" -#: rewrite/rewriteHandler.c:1727 rewrite/rewriteHandler.c:3182 +#: rewrite/rewriteHandler.c:1730 rewrite/rewriteHandler.c:3185 #, c-format msgid "access to non-system view \"%s\" is restricted" msgstr "Zugriff auf Nicht-System-Sicht »%s« ist beschränkt" -#: rewrite/rewriteHandler.c:2159 rewrite/rewriteHandler.c:4111 +#: rewrite/rewriteHandler.c:2162 rewrite/rewriteHandler.c:4131 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "unendliche Rekursion entdeckt in Regeln für Relation »%s«" -#: rewrite/rewriteHandler.c:2264 +#: rewrite/rewriteHandler.c:2267 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "unendliche Rekursion entdeckt in Policys für Relation »%s«" -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2597 msgid "Junk view columns are not updatable." msgstr "Junk-Sichtspalten sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2602 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Sichtspalten, die nicht Spalten ihrer Basisrelation sind, sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2605 msgid "View columns that refer to system columns are not updatable." msgstr "Sichtspalten, die auf Systemspalten verweisen, sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2608 msgid "View columns that return whole-row references are not updatable." msgstr "Sichtspalten, die Verweise auf ganze Zeilen zurückgeben, sind nicht aktualisierbar." -#: rewrite/rewriteHandler.c:2666 +#: rewrite/rewriteHandler.c:2669 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Sichten, die DISTINCT enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2669 +#: rewrite/rewriteHandler.c:2672 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Sichten, die GROUP BY enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2675 msgid "Views containing HAVING are not automatically updatable." msgstr "Sichten, die HAVING enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2678 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Sichten, die UNION, INTERSECT oder EXCEPT enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2678 +#: rewrite/rewriteHandler.c:2681 msgid "Views containing WITH are not automatically updatable." msgstr "Sichten, die WITH enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2681 +#: rewrite/rewriteHandler.c:2684 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Sichten, die LIMIT oder OFFSET enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2693 +#: rewrite/rewriteHandler.c:2696 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Sichten, die Aggregatfunktionen zurückgeben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2696 +#: rewrite/rewriteHandler.c:2699 msgid "Views that return window functions are not automatically updatable." msgstr "Sichten, die Fensterfunktionen zurückgeben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2699 +#: rewrite/rewriteHandler.c:2702 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Sichten, die Funktionen mit Ergebnismenge zurückgeben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2706 rewrite/rewriteHandler.c:2710 -#: rewrite/rewriteHandler.c:2718 +#: rewrite/rewriteHandler.c:2709 rewrite/rewriteHandler.c:2713 +#: rewrite/rewriteHandler.c:2721 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Sichten, die nicht aus einer einzigen Tabelle oder Sicht lesen, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2721 +#: rewrite/rewriteHandler.c:2724 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Sichten, die TABLESAMPLE enthalten, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:2745 +#: rewrite/rewriteHandler.c:2748 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Sichten, die keine aktualisierbaren Spalten haben, sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:3242 +#: rewrite/rewriteHandler.c:3245 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "kann nicht in Spalte »%s« von Sicht »%s« einfügen" -#: rewrite/rewriteHandler.c:3250 +#: rewrite/rewriteHandler.c:3253 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "kann Spalte »%s« von Sicht »%s« nicht aktualisieren" -#: rewrite/rewriteHandler.c:3738 +#: rewrite/rewriteHandler.c:3757 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-NOTIFY-Regeln werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3749 +#: rewrite/rewriteHandler.c:3768 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-NOTHING-Regeln werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3763 +#: rewrite/rewriteHandler.c:3782 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-Regeln mit Bedingung werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "DO-ALSO-Regeln werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:3772 +#: rewrite/rewriteHandler.c:3791 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "DO-INSTEAD-Regeln mit mehreren Anweisungen werden für datenmodifizierende Anweisungen in WITH nicht unterstützt" -#: rewrite/rewriteHandler.c:4039 rewrite/rewriteHandler.c:4047 -#: rewrite/rewriteHandler.c:4055 +#: rewrite/rewriteHandler.c:4059 rewrite/rewriteHandler.c:4067 +#: rewrite/rewriteHandler.c:4075 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Sichten mit DO-INSTEAD-Regeln mit Bedingung sind nicht automatisch aktualisierbar." -#: rewrite/rewriteHandler.c:4160 +#: rewrite/rewriteHandler.c:4181 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "INSERT RETURNING kann in Relation »%s« nicht ausgeführt werden" -#: rewrite/rewriteHandler.c:4162 +#: rewrite/rewriteHandler.c:4183 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Sie benötigen eine ON INSERT DO INSTEAD Regel ohne Bedingung, mit RETURNING-Klausel." -#: rewrite/rewriteHandler.c:4167 +#: rewrite/rewriteHandler.c:4188 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "UPDATE RETURNING kann in Relation »%s« nicht ausgeführt werden" -#: rewrite/rewriteHandler.c:4169 +#: rewrite/rewriteHandler.c:4190 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Sie benötigen eine ON UPDATE DO INSTEAD Regel ohne Bedingung, mit RETURNING-Klausel." -#: rewrite/rewriteHandler.c:4174 +#: rewrite/rewriteHandler.c:4195 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "DELETE RETURNING kann in Relation »%s« nicht ausgeführt werden" -#: rewrite/rewriteHandler.c:4176 +#: rewrite/rewriteHandler.c:4197 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Sie benötigen eine ON DELETE DO INSTEAD Regel ohne Bedingung, mit RETURNING-Klausel." -#: rewrite/rewriteHandler.c:4194 +#: rewrite/rewriteHandler.c:4215 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT mit ON-CONFLICT-Klausel kann nicht mit Tabelle verwendet werden, die INSERT- oder UPDATE-Regeln hat" -#: rewrite/rewriteHandler.c:4251 +#: rewrite/rewriteHandler.c:4272 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH kann nicht in einer Anfrage verwendet werden, die durch Regeln in mehrere Anfragen umgeschrieben wird" @@ -21505,47 +21526,47 @@ msgstr "Statistikobjekt »%s.%s« konnte für Relation »%s.%s« nicht berechnet msgid "function returning record called in context that cannot accept type record" msgstr "Funktion, die einen Record zurückgibt, in einem Zusammenhang aufgerufen, der Typ record nicht verarbeiten kann" -#: storage/buffer/bufmgr.c:603 storage/buffer/bufmgr.c:773 +#: storage/buffer/bufmgr.c:610 storage/buffer/bufmgr.c:780 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "auf temporäre Tabellen anderer Sitzungen kann nicht zugegriffen werden" -#: storage/buffer/bufmgr.c:851 +#: storage/buffer/bufmgr.c:858 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "kann Relation %s nicht auf über %u Blöcke erweitern" -#: storage/buffer/bufmgr.c:938 +#: storage/buffer/bufmgr.c:945 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "unerwartete Daten hinter Dateiende in Block %u von Relation %s" -#: storage/buffer/bufmgr.c:940 +#: storage/buffer/bufmgr.c:947 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Das scheint mit fehlerhaften Kernels vorzukommen; Sie sollten eine Systemaktualisierung in Betracht ziehen." -#: storage/buffer/bufmgr.c:1039 +#: storage/buffer/bufmgr.c:1046 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "ungültige Seite in Block %u von Relation %s; fülle Seite mit Nullen" -#: storage/buffer/bufmgr.c:4671 +#: storage/buffer/bufmgr.c:4737 #, c-format msgid "could not write block %u of %s" msgstr "konnte Block %u von %s nicht schreiben" -#: storage/buffer/bufmgr.c:4673 +#: storage/buffer/bufmgr.c:4739 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Mehrere Fehlschläge --- Schreibfehler ist möglicherweise dauerhaft." -#: storage/buffer/bufmgr.c:4694 storage/buffer/bufmgr.c:4713 +#: storage/buffer/bufmgr.c:4760 storage/buffer/bufmgr.c:4779 #, c-format msgid "writing block %u of relation %s" msgstr "schreibe Block %u von Relation %s" -#: storage/buffer/bufmgr.c:5017 +#: storage/buffer/bufmgr.c:5083 #, c-format msgid "snapshot too old" msgstr "Snapshot zu alt" @@ -21575,7 +21596,7 @@ msgstr "konnte Größe von temporärer Datei »%s« von BufFile »%s« nicht bes msgid "could not delete fileset \"%s\": %m" msgstr "konnte Fileset »%s« nicht löschen: %m" -#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:909 +#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:912 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "kann Datei »%s« nicht kürzen: %m" @@ -22272,22 +22293,22 @@ msgstr "konnte Block %u in Datei »%s« nicht schreiben: %m" msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "konnte Block %u in Datei »%s« nicht schreiben: es wurden nur %d von %d Bytes geschrieben" -#: storage/smgr/md.c:880 +#: storage/smgr/md.c:883 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "konnte Datei »%s« nicht auf %u Blöcke kürzen: es sind jetzt nur %u Blöcke" -#: storage/smgr/md.c:935 +#: storage/smgr/md.c:938 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "konnte Datei »%s« nicht auf %u Blöcke kürzen: %m" -#: storage/smgr/md.c:1344 +#: storage/smgr/md.c:1347 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "konnte Datei »%s« nicht öffnen (Zielblock %u): vorhergehendes Segment hat nur %u Blöcke" -#: storage/smgr/md.c:1358 +#: storage/smgr/md.c:1361 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "konnte Datei »%s« nicht öffnen (Zielblock %u): %m" @@ -23342,8 +23363,8 @@ msgstr "NULL-Werte im Array sind in diesem Zusammenhang nicht erlaubt" msgid "cannot compare arrays of different element types" msgstr "kann Arrays mit verschiedenen Elementtypen nicht vergleichen" -#: utils/adt/arrayfuncs.c:4034 utils/adt/multirangetypes.c:2799 -#: utils/adt/multirangetypes.c:2871 utils/adt/rangetypes.c:1343 +#: utils/adt/arrayfuncs.c:4034 utils/adt/multirangetypes.c:2800 +#: utils/adt/multirangetypes.c:2872 utils/adt/rangetypes.c:1343 #: utils/adt/rangetypes.c:1407 utils/adt/rowtypes.c:1858 #, c-format msgid "could not identify a hash function for type %s" @@ -24897,12 +24918,12 @@ msgstr "Start einer Range erwartet." msgid "Expected comma or end of multirange." msgstr "Komma oder Ende der Multirange erwartet." -#: utils/adt/multirangetypes.c:976 +#: utils/adt/multirangetypes.c:977 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "Multiranges können nicht aus mehrdimensionalen Arrays konstruiert werden" -#: utils/adt/multirangetypes.c:1002 +#: utils/adt/multirangetypes.c:1003 #, c-format msgid "multirange values cannot contain null members" msgstr "Multirange-Werte können keine Mitglieder, die NULL sind, haben" @@ -25121,94 +25142,94 @@ msgstr "gewünschtes Zeichen ist nicht gültig für die Kodierung: %u" msgid "percentile value %g is not between 0 and 1" msgstr "Perzentilwert %g ist nicht zwischen 0 und 1" -#: utils/adt/pg_locale.c:1231 +#: utils/adt/pg_locale.c:1232 #, c-format msgid "Apply system library package updates." msgstr "Aktualisieren Sie die Systembibliotheken." -#: utils/adt/pg_locale.c:1455 utils/adt/pg_locale.c:1703 -#: utils/adt/pg_locale.c:1982 utils/adt/pg_locale.c:2004 +#: utils/adt/pg_locale.c:1458 utils/adt/pg_locale.c:1706 +#: utils/adt/pg_locale.c:1985 utils/adt/pg_locale.c:2007 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "konnte Collator für Locale »%s« nicht öffnen: %s" -#: utils/adt/pg_locale.c:1468 utils/adt/pg_locale.c:2013 +#: utils/adt/pg_locale.c:1471 utils/adt/pg_locale.c:2016 #, c-format msgid "ICU is not supported in this build" msgstr "ICU wird in dieser Installation nicht unterstützt" -#: utils/adt/pg_locale.c:1497 +#: utils/adt/pg_locale.c:1500 #, c-format msgid "could not create locale \"%s\": %m" msgstr "konnte Locale »%s« nicht erzeugen: %m" -#: utils/adt/pg_locale.c:1500 +#: utils/adt/pg_locale.c:1503 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "Das Betriebssystem konnte keine Locale-Daten für den Locale-Namen »%s« finden." -#: utils/adt/pg_locale.c:1608 +#: utils/adt/pg_locale.c:1611 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "Sortierfolgen mit unterschiedlichen »collate«- und »ctype«-Werten werden auf dieser Plattform nicht unterstützt" -#: utils/adt/pg_locale.c:1617 +#: utils/adt/pg_locale.c:1620 #, c-format msgid "collation provider LIBC is not supported on this platform" msgstr "Sortierfolgen-Provider LIBC wird auf dieser Plattform nicht unterstützt" -#: utils/adt/pg_locale.c:1652 +#: utils/adt/pg_locale.c:1655 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "Sortierfolge »%s« hat keine tatsächliche Version, aber eine Version wurde aufgezeichnet" -#: utils/adt/pg_locale.c:1658 +#: utils/adt/pg_locale.c:1661 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "Version von Sortierfolge »%s« stimmt nicht überein" -#: utils/adt/pg_locale.c:1660 +#: utils/adt/pg_locale.c:1663 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "Die Sortierfolge in der Datenbank wurde mit Version %s erzeugt, aber das Betriebssystem hat Version %s." -#: utils/adt/pg_locale.c:1663 +#: utils/adt/pg_locale.c:1666 #, 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 "Bauen Sie alle von dieser Sortierfolge beinflussten Objekte neu und führen Sie ALTER COLLATION %s REFRESH VERSION aus, oder bauen Sie PostgreSQL mit der richtigen Bibliotheksversion." -#: utils/adt/pg_locale.c:1734 +#: utils/adt/pg_locale.c:1737 #, c-format msgid "could not load locale \"%s\"" msgstr "konnte Locale »%s« nicht laden" -#: utils/adt/pg_locale.c:1759 +#: utils/adt/pg_locale.c:1762 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "konnte Sortierfolgenversion für Locale »%s« nicht ermitteln: Fehlercode %lu" -#: utils/adt/pg_locale.c:1797 +#: utils/adt/pg_locale.c:1800 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "Kodierung »%s« wird von ICU nicht unterstützt" -#: utils/adt/pg_locale.c:1804 +#: utils/adt/pg_locale.c:1807 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "konnte ICU-Konverter für Kodierung »%s« nicht öffnen: %s" -#: utils/adt/pg_locale.c:1835 utils/adt/pg_locale.c:1844 -#: utils/adt/pg_locale.c:1873 utils/adt/pg_locale.c:1883 +#: utils/adt/pg_locale.c:1838 utils/adt/pg_locale.c:1847 +#: utils/adt/pg_locale.c:1876 utils/adt/pg_locale.c:1886 #, c-format msgid "%s failed: %s" msgstr "%s fehlgeschlagen: %s" -#: utils/adt/pg_locale.c:2182 +#: utils/adt/pg_locale.c:2185 #, c-format msgid "invalid multibyte character for locale" msgstr "ungültiges Mehrbytezeichen für Locale" -#: utils/adt/pg_locale.c:2183 +#: utils/adt/pg_locale.c:2186 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "Die LC_CTYPE-Locale des Servers ist wahrscheinlich mit der Kodierung der Datenbank inkompatibel." @@ -26086,7 +26107,7 @@ msgstr "nicht unterstützte XML-Funktionalität" msgid "This functionality requires the server to be built with libxml support." msgstr "Diese Funktionalität verlangt, dass der Server mit Libxml-Unterstützung gebaut wird." -#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "ungültiger Kodierungsname »%s«" @@ -26266,27 +26287,27 @@ msgstr "in Operatorklasse »%s« für Zugriffsmethode %s fehlt Support-Funktion msgid "cached plan must not change result type" msgstr "gecachter Plan darf den Ergebnistyp nicht ändern" -#: utils/cache/relcache.c:3755 +#: utils/cache/relcache.c:3771 #, c-format msgid "heap relfilenode value not set when in binary upgrade mode" msgstr "Heap-Relfilenode-Wert ist im Binary-Upgrade-Modus nicht gesetzt" -#: utils/cache/relcache.c:3763 +#: utils/cache/relcache.c:3779 #, c-format msgid "unexpected request for new relfilenode in binary upgrade mode" msgstr "unerwartete Anforderung eines neuen Relfilenodes im Binary-Upgrade-Modus" -#: utils/cache/relcache.c:6476 +#: utils/cache/relcache.c:6492 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "konnte Initialisierungsdatei für Relationscache »%s« nicht erzeugen: %m" -#: utils/cache/relcache.c:6478 +#: utils/cache/relcache.c:6494 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Setze trotzdem fort, aber irgendwas stimmt nicht." -#: utils/cache/relcache.c:6800 +#: utils/cache/relcache.c:6816 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "konnte Cache-Datei »%s« nicht löschen: %m" @@ -26907,48 +26928,48 @@ msgstr "unerwartete Kodierungs-ID %d für ISO-8859-Zeichensatz" msgid "unexpected encoding ID %d for WIN character sets" msgstr "unerwartete Kodierungs-ID %d für WIN-Zeichensatz" -#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 +#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 #, c-format msgid "conversion between %s and %s is not supported" msgstr "Umwandlung zwischen %s und %s wird nicht unterstützt" -#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 -#: utils/mb/mbutils.c:842 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 +#: utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Zeichenkette mit %d Bytes ist zu lang für Kodierungsumwandlung." -#: utils/mb/mbutils.c:568 +#: utils/mb/mbutils.c:569 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "ungültiger Quellkodierungsname »%s«" -#: utils/mb/mbutils.c:573 +#: utils/mb/mbutils.c:574 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "ungültiger Zielkodierungsname »%s«" -#: utils/mb/mbutils.c:713 +#: utils/mb/mbutils.c:714 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "ungültiger Byte-Wert für Kodierung »%s«: 0x%02x" -#: utils/mb/mbutils.c:877 +#: utils/mb/mbutils.c:878 #, c-format msgid "invalid Unicode code point" msgstr "ungültiger Unicode-Codepunkt" -#: utils/mb/mbutils.c:1146 +#: utils/mb/mbutils.c:1147 #, c-format msgid "bind_textdomain_codeset failed" msgstr "bind_textdomain_codeset fehlgeschlagen" -#: utils/mb/mbutils.c:1667 +#: utils/mb/mbutils.c:1668 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "ungültige Byte-Sequenz für Kodierung »%s«: %s" -#: utils/mb/mbutils.c:1708 +#: utils/mb/mbutils.c:1709 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "Zeichen mit Byte-Folge %s in Kodierung »%s« hat keine Entsprechung in Kodierung »%s«" @@ -29258,15 +29279,15 @@ msgstr "Fehler während der Erzeugung des Speicherkontexts »%s«." msgid "could not attach to dynamic shared area" msgstr "konnte nicht an dynamische Shared Area anbinden" -#: utils/mmgr/mcxt.c:889 utils/mmgr/mcxt.c:925 utils/mmgr/mcxt.c:963 -#: utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1120 -#: utils/mmgr/mcxt.c:1156 utils/mmgr/mcxt.c:1208 utils/mmgr/mcxt.c:1243 -#: utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:892 utils/mmgr/mcxt.c:928 utils/mmgr/mcxt.c:966 +#: utils/mmgr/mcxt.c:1004 utils/mmgr/mcxt.c:1112 utils/mmgr/mcxt.c:1143 +#: utils/mmgr/mcxt.c:1179 utils/mmgr/mcxt.c:1231 utils/mmgr/mcxt.c:1266 +#: utils/mmgr/mcxt.c:1301 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Fehler bei Anfrage mit Größe %zu im Speicherkontext »%s«." -#: utils/mmgr/mcxt.c:1052 +#: utils/mmgr/mcxt.c:1067 #, c-format msgid "logging memory contexts of PID %d" msgstr "logge Speicherkontexte von PID %d" @@ -29316,24 +29337,24 @@ msgstr "konnte Positionszeiger in temporärer Datei nicht auf Block %ld setzen" msgid "could not read block %ld of temporary file: read only %zu of %zu bytes" msgstr "konnte Block %ld von temporärer Datei nicht lesen: es wurden nur %zu von %zu Bytes gelesen" -#: utils/sort/sharedtuplestore.c:432 utils/sort/sharedtuplestore.c:441 -#: utils/sort/sharedtuplestore.c:464 utils/sort/sharedtuplestore.c:481 -#: utils/sort/sharedtuplestore.c:498 +#: utils/sort/sharedtuplestore.c:433 utils/sort/sharedtuplestore.c:442 +#: utils/sort/sharedtuplestore.c:465 utils/sort/sharedtuplestore.c:482 +#: utils/sort/sharedtuplestore.c:499 #, c-format msgid "could not read from shared tuplestore temporary file" msgstr "konnte nicht aus temporärer Datei für Shared-Tuplestore lesen" -#: utils/sort/sharedtuplestore.c:487 +#: utils/sort/sharedtuplestore.c:488 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "unerwarteter Chunk in temporärer Datei für Shared-Tuplestore" -#: utils/sort/sharedtuplestore.c:572 +#: utils/sort/sharedtuplestore.c:573 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "konnte Positionszeiger in temporärer Datei für Shared-Tuplestore nicht auf Block %u setzen" -#: utils/sort/sharedtuplestore.c:579 +#: utils/sort/sharedtuplestore.c:580 #, c-format msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes" msgstr "konnte nicht aus temporärer Datei für Shared-Tuplestore lesen: es wurden nur %zu von %zu Bytes gelesen" diff --git a/src/backend/po/es.po b/src/backend/po/es.po index b9551ed44df..77e8b182440 100644 --- a/src/backend/po/es.po +++ b/src/backend/po/es.po @@ -66,7 +66,7 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL server 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:00+0000\n" +"POT-Creation-Date: 2026-02-06 21:12+0000\n" "PO-Revision-Date: 2025-02-15 12:02+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" @@ -133,14 +133,14 @@ msgstr "no se pudo abrir archivo «%s» para lectura: %m" #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 #: access/transam/twophase.c:1349 access/transam/xlog.c:3211 -#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1223 -#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 -#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1838 +#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1233 +#: access/transam/xlogrecovery.c:1325 access/transam/xlogrecovery.c:1362 +#: access/transam/xlogrecovery.c:1422 backup/basebackup.c:1838 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 #: replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 -#: replication/logical/snapbuild.c:1995 replication/slot.c:1843 -#: replication/slot.c:1884 replication/walsender.c:672 +#: replication/logical/snapbuild.c:1995 replication/slot.c:1874 +#: replication/slot.c:1915 replication/walsender.c:672 #: storage/file/buffile.c:463 storage/file/copydir.c:195 #: utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 #, c-format @@ -152,7 +152,7 @@ msgstr "no se pudo leer el archivo «%s»: %m" #: backup/basebackup.c:1842 replication/logical/origin.c:734 #: replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 #: replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 -#: replication/slot.c:1847 replication/slot.c:1888 replication/walsender.c:677 +#: replication/slot.c:1878 replication/slot.c:1919 replication/walsender.c:677 #: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -171,7 +171,7 @@ msgstr "no se pudo leer el archivo «%s»: leídos %d de %zu" #: replication/logical/origin.c:667 replication/logical/origin.c:806 #: replication/logical/reorderbuffer.c:5152 #: replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 -#: replication/slot.c:1732 replication/slot.c:1895 replication/walsender.c:687 +#: replication/slot.c:1763 replication/slot.c:1926 replication/walsender.c:687 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:742 #: storage/file/fd.c:3635 storage/file/fd.c:3741 utils/cache/relmapper.c:831 #: utils/cache/relmapper.c:968 @@ -204,14 +204,14 @@ msgstr "" #: access/transam/timeline.c:348 access/transam/twophase.c:1305 #: access/transam/xlog.c:2945 access/transam/xlog.c:3127 #: access/transam/xlog.c:3166 access/transam/xlog.c:3358 -#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4255 -#: access/transam/xlogrecovery.c:4358 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4265 +#: access/transam/xlogrecovery.c:4368 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 #: replication/logical/reorderbuffer.c:4298 #: replication/logical/reorderbuffer.c:5074 #: replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 -#: replication/slot.c:1815 replication/walsender.c:645 +#: replication/slot.c:1846 replication/walsender.c:645 #: replication/walsender.c:2740 storage/file/copydir.c:161 #: storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 #: storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 @@ -224,7 +224,7 @@ msgstr "no se pudo abrir el archivo «%s»: %m" #: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1753 access/transam/twophase.c:1762 -#: access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8770 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 #: postmaster/postmaster.c:5637 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 @@ -239,11 +239,11 @@ msgstr "no se pudo escribir el archivo «%s»: %m" #: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 #: access/transam/timeline.c:506 access/transam/twophase.c:1774 #: access/transam/xlog.c:3051 access/transam/xlog.c:3245 -#: access/transam/xlog.c:3986 access/transam/xlog.c:8049 -#: access/transam/xlog.c:8092 backup/basebackup_server.c:207 +#: access/transam/xlog.c:3986 access/transam/xlog.c:8073 +#: access/transam/xlog.c:8116 backup/basebackup_server.c:207 #: commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 -#: replication/slot.c:1716 replication/slot.c:1825 storage/file/fd.c:734 -#: storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 +#: replication/slot.c:1747 replication/slot.c:1856 storage/file/fd.c:734 +#: storage/file/fd.c:3733 storage/smgr/md.c:997 storage/smgr/md.c:1038 #: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 #, c-format msgid "could not fsync file \"%s\": %m" @@ -262,7 +262,7 @@ msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" #: postmaster/bgworker.c:931 postmaster/postmaster.c:2598 #: postmaster/postmaster.c:4183 postmaster/postmaster.c:5562 #: postmaster/postmaster.c:5933 -#: replication/libpqwalreceiver/libpqwalreceiver.c:300 +#: replication/libpqwalreceiver/libpqwalreceiver.c:313 #: replication/logical/logical.c:206 replication/walsender.c:715 #: storage/buffer/localbuf.c:442 storage/file/fd.c:889 storage/file/fd.c:1431 #: storage/file/fd.c:1592 storage/file/fd.c:2406 storage/ipc/procarray.c:1463 @@ -270,18 +270,18 @@ msgstr "no se pudo sincronizar (fsync) archivo «%s»: %m" #: storage/ipc/procarray.c:2804 storage/ipc/procarray.c:3435 #: tcop/postgres.c:3645 utils/activity/pgstat_shmem.c:503 #: utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 -#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:453 -#: utils/adt/pg_locale.c:617 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 +#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:454 +#: utils/adt/pg_locale.c:618 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 #: utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 -#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 -#: utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5204 +#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 +#: utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 utils/misc/guc.c:5204 #: utils/misc/guc.c:5220 utils/misc/guc.c:5233 utils/misc/guc.c:8804 #: utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:702 #: utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805 utils/mmgr/generation.c:266 -#: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 -#: utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 -#: utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:238 +#: utils/mmgr/mcxt.c:891 utils/mmgr/mcxt.c:927 utils/mmgr/mcxt.c:965 +#: utils/mmgr/mcxt.c:1003 utils/mmgr/mcxt.c:1111 utils/mmgr/mcxt.c:1142 +#: utils/mmgr/mcxt.c:1178 utils/mmgr/mcxt.c:1230 utils/mmgr/mcxt.c:1265 +#: utils/mmgr/mcxt.c:1300 utils/mmgr/slab.c:238 #, c-format msgid "out of memory" msgstr "memoria agotada" @@ -327,7 +327,7 @@ msgstr "no se pudo encontrar un «%s» para ejecutar" msgid "could not change directory to \"%s\": %m" msgstr "no se pudo cambiar al directorio «%s»: %m" -#: ../common/exec.c:299 access/transam/xlog.c:8395 backup/basebackup.c:1338 +#: ../common/exec.c:299 access/transam/xlog.c:8419 backup/basebackup.c:1338 #: utils/adt/misc.c:335 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -384,7 +384,7 @@ msgstr "no se pudo leer el directorio «%s»: %m" #: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 #: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 -#: replication/slot.c:750 replication/slot.c:1599 replication/slot.c:1748 +#: replication/slot.c:750 replication/slot.c:1630 replication/slot.c:1779 #: storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -1171,38 +1171,38 @@ msgstr "la familia de operadores «%s» del método de acceso %s no tiene funci msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "faltan operadores entre tipos en la familia de operadores «%s» del método de acceso %s" -#: access/heap/heapam.c:2272 +#: access/heap/heapam.c:2275 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "no se pueden insertar tuplas en un ayudante paralelo" -#: access/heap/heapam.c:2747 +#: access/heap/heapam.c:2750 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "no se pueden eliminar tuplas durante una operación paralela" -#: access/heap/heapam.c:2793 +#: access/heap/heapam.c:2796 #, c-format msgid "attempted to delete invisible tuple" msgstr "se intentó eliminar una tupla invisible" -#: access/heap/heapam.c:3240 access/heap/heapam.c:6489 access/index/genam.c:819 +#: access/heap/heapam.c:3243 access/heap/heapam.c:6577 access/index/genam.c:819 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "no se pueden actualizar tuplas durante una operación paralela" -#: access/heap/heapam.c:3410 +#: access/heap/heapam.c:3413 #, c-format msgid "attempted to update invisible tuple" msgstr "se intentó actualizar una tupla invisible" -#: access/heap/heapam.c:4896 access/heap/heapam.c:4934 -#: access/heap/heapam.c:5199 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4901 access/heap/heapam.c:4939 +#: access/heap/heapam.c:5206 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "no se pudo bloquear un candado en la fila de la relación «%s»" -#: access/heap/heapam.c:6302 commands/trigger.c:3471 +#: access/heap/heapam.c:6331 commands/trigger.c:3471 #: executor/nodeModifyTable.c:2383 executor/nodeModifyTable.c:2474 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" @@ -1226,11 +1226,11 @@ msgstr "no se pudo escribir al archivo «%s», se escribió %d de %d: %m" #: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:481 #: access/transam/xlog.c:2967 access/transam/xlog.c:3180 -#: access/transam/xlog.c:3965 access/transam/xlog.c:8729 +#: access/transam/xlog.c:3965 access/transam/xlog.c:8753 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 #: backup/basebackup_server.c:242 commands/dbcommands.c:494 #: postmaster/postmaster.c:4610 postmaster/postmaster.c:5624 -#: replication/logical/origin.c:587 replication/slot.c:1660 +#: replication/logical/origin.c:587 replication/slot.c:1691 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -1248,7 +1248,7 @@ msgstr "no se pudo truncar el archivo «%s» a %u: %m" #: postmaster/postmaster.c:4620 postmaster/postmaster.c:4630 #: replication/logical/origin.c:599 replication/logical/origin.c:641 #: replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 -#: replication/slot.c:1696 storage/file/buffile.c:537 +#: replication/slot.c:1727 storage/file/buffile.c:537 #: storage/file/copydir.c:207 utils/init/miscinit.c:1493 #: utils/init/miscinit.c:1504 utils/init/miscinit.c:1512 utils/misc/guc.c:8787 #: utils/misc/guc.c:8818 utils/misc/guc.c:10816 utils/misc/guc.c:10830 @@ -1262,7 +1262,7 @@ msgstr "no se pudo escribir a archivo «%s»: %m" #: postmaster/postmaster.c:1159 postmaster/syslogger.c:1537 #: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 #: replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 -#: replication/slot.c:1799 storage/file/fd.c:792 storage/file/fd.c:3260 +#: replication/slot.c:1830 storage/file/fd.c:792 storage/file/fd.c:3260 #: storage/file/fd.c:3322 storage/file/reinit.c:262 storage/ipc/dsm.c:317 #: storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 #: utils/time/snapmgr.c:1606 @@ -1655,13 +1655,13 @@ msgstr "Asegúrese que el parámetro de configuración «%s» esté definido en msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Asegúrese que el parámetro de configuración «%s» esté definido." -#: access/transam/multixact.c:1022 +#: access/transam/multixact.c:1106 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "la base de datos no está aceptando órdenes que generen nuevos MultiXactIds para evitar pérdida de datos debido al reciclaje de transacciones en la base de datos «%s»" -#: access/transam/multixact.c:1024 access/transam/multixact.c:1031 -#: access/transam/multixact.c:1055 access/transam/multixact.c:1064 +#: access/transam/multixact.c:1108 access/transam/multixact.c:1115 +#: access/transam/multixact.c:1139 access/transam/multixact.c:1148 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1670,65 +1670,70 @@ msgstr "" "Ejecute VACUUM de la base completa en esa base de datos.\n" "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." -#: access/transam/multixact.c:1029 +#: access/transam/multixact.c:1113 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "la base de datos no está aceptando órdenes que generen nuevos MultiXactIds para evitar pérdida de datos debido al problema del reciclaje de transacciones en la base con OID %u" -#: access/transam/multixact.c:1050 access/transam/multixact.c:2334 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2421 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" msgstr[0] "base de datos «%s» debe ser limpiada antes de que %u más MultiXactId sea usado" msgstr[1] "base de datos «%s» debe ser limpiada dentro de que %u más MultiXactIds sean usados" -#: access/transam/multixact.c:1059 access/transam/multixact.c:2343 +#: access/transam/multixact.c:1143 access/transam/multixact.c:2430 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" msgstr[0] "base de datos con OID %u debe ser limpiada antes de que %u más MultiXactId sea usado" msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %u más MultiXactIds sean usados" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1207 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "límite de miembros de multixact alcanzado" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1208 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "Esta orden crearía un multixact con %u miembros, pero el espacio que queda sólo sirve para %u miembro." msgstr[1] "Esta orden crearía un multixact con %u miembros, pero el espacio que queda sólo sirve para %u miembros." -#: access/transam/multixact.c:1126 +#: access/transam/multixact.c:1213 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Ejecute un VACUUM de la base completa en la base de datos con OID %u con vacuum_multixact_freeze_min_age y vacuum_multixact_freeze_table_age reducidos." -#: access/transam/multixact.c:1157 +#: access/transam/multixact.c:1244 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "base de datos con OID %u debe ser limpiada antes de que %d miembro más de multixact sea usado" msgstr[1] "base de datos con OID %u debe ser limpiada antes de que %d más miembros de multixact sean usados" -#: access/transam/multixact.c:1162 +#: access/transam/multixact.c:1249 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Ejecute un VACUUM de la base completa en esa base de datos con vacuum_multixact_freeze_min_age y vacuum_multixact_freeze_table_age reducidos." -#: access/transam/multixact.c:1301 +#: access/transam/multixact.c:1388 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "el MultiXactId %u ya no existe -- aparente problema por reciclaje" -#: access/transam/multixact.c:1307 +#: access/transam/multixact.c:1394 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "el MultiXactId %u no se ha creado aún -- aparente problema por reciclaje" -#: access/transam/multixact.c:2339 access/transam/multixact.c:2348 +#: access/transam/multixact.c:1469 +#, c-format +msgid "MultiXact %u has invalid next offset" +msgstr "el MultiXact %u tiene un siguiente offset no válido" + +#: access/transam/multixact.c:2426 access/transam/multixact.c:2435 #: access/transam/varsup.c:151 access/transam/varsup.c:158 #: access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format @@ -1739,61 +1744,66 @@ msgstr "" "Para evitar que la base de datos se desactive, ejecute VACUUM en esa base de datos.\n" "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2709 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "las protecciones de reciclaje de miembros de multixact están inhabilitadas porque el multixact más antiguo %u en checkpoint no existe en disco" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2731 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "las protecciones de reciclaje de miembros de multixact están habilitadas" -#: access/transam/multixact.c:3038 +#: access/transam/multixact.c:3125 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "multixact más antiguo %u no encontrado, multixact más antiguo es %u, omitiendo el truncado" -#: access/transam/multixact.c:3056 +#: access/transam/multixact.c:3143 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "no se puede truncar hasta el MultiXact %u porque no existe en disco, omitiendo el truncado" -#: access/transam/multixact.c:3370 +#: access/transam/multixact.c:3160 +#, c-format +msgid "cannot truncate up to MultiXact %u because it has invalid offset, skipping truncation" +msgstr "no se puede truncar hasta el MultiXact %u porque tiene un offset no válido, omitiendo el truncado" + +#: access/transam/multixact.c:3498 #, c-format msgid "invalid MultiXactId: %u" msgstr "el MultiXactId no es válido: %u" -#: access/transam/parallel.c:737 access/transam/parallel.c:856 +#: access/transam/parallel.c:744 access/transam/parallel.c:863 #, c-format msgid "parallel worker failed to initialize" msgstr "el ayudante paralelo no pudo iniciar" -#: access/transam/parallel.c:738 access/transam/parallel.c:857 +#: access/transam/parallel.c:745 access/transam/parallel.c:864 #, c-format msgid "More details may be available in the server log." msgstr "Puede haber más detalles disponibles en el log del servidor." -#: access/transam/parallel.c:918 +#: access/transam/parallel.c:925 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster terminó durante una transacción paralela" -#: access/transam/parallel.c:1105 +#: access/transam/parallel.c:1112 #, c-format msgid "lost connection to parallel worker" msgstr "se ha perdido la conexión al ayudante paralelo" -#: access/transam/parallel.c:1171 access/transam/parallel.c:1173 +#: access/transam/parallel.c:1178 access/transam/parallel.c:1180 msgid "parallel worker" msgstr "ayudante paralelo" -#: access/transam/parallel.c:1326 +#: access/transam/parallel.c:1333 #, c-format msgid "could not map dynamic shared memory segment" msgstr "no se pudo mapear el segmento de memoria compartida dinámica" -#: access/transam/parallel.c:1331 +#: access/transam/parallel.c:1338 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "número mágico no válido en segmento de memoria compartida dinámica" @@ -2167,112 +2177,112 @@ msgstr "base de datos con OID %u debe ser limpiada dentro de %u transacciones" msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "no se pueden tener más de 2^32-2 órdenes en una transacción" -#: access/transam/xact.c:1644 +#: access/transam/xact.c:1654 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "se superó el número máximo de subtransacciones comprometidas (%d)" -#: access/transam/xact.c:2501 +#: access/transam/xact.c:2511 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "no se puede hacer PREPARE de una transacción que ha operado en objetos temporales" -#: access/transam/xact.c:2511 +#: access/transam/xact.c:2521 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "no se puede hacer PREPARE de una transacción que ha exportado snapshots" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3479 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s no puede ser ejecutado dentro de un bloque de transacción" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s no puede ser ejecutado dentro de una subtransacción" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s no puede ser ejecutado en un pipeline" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 +#: access/transam/xact.c:3519 #, c-format msgid "%s cannot be executed from a function" msgstr "%s no puede ser ejecutado desde una función" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3580 access/transam/xact.c:3895 -#: access/transam/xact.c:3974 access/transam/xact.c:4097 -#: access/transam/xact.c:4248 access/transam/xact.c:4317 -#: access/transam/xact.c:4428 +#: access/transam/xact.c:3590 access/transam/xact.c:3905 +#: access/transam/xact.c:3984 access/transam/xact.c:4107 +#: access/transam/xact.c:4258 access/transam/xact.c:4327 +#: access/transam/xact.c:4438 #, c-format msgid "%s can only be used in transaction blocks" msgstr "la orden %s sólo puede ser usada en bloques de transacción" -#: access/transam/xact.c:3781 +#: access/transam/xact.c:3791 #, c-format msgid "there is already a transaction in progress" msgstr "ya hay una transacción en curso" -#: access/transam/xact.c:3900 access/transam/xact.c:3979 -#: access/transam/xact.c:4102 +#: access/transam/xact.c:3910 access/transam/xact.c:3989 +#: access/transam/xact.c:4112 #, c-format msgid "there is no transaction in progress" msgstr "no hay una transacción en curso" -#: access/transam/xact.c:3990 +#: access/transam/xact.c:4000 #, c-format msgid "cannot commit during a parallel operation" msgstr "no se puede comprometer una transacción durante una operación paralela" -#: access/transam/xact.c:4113 +#: access/transam/xact.c:4123 #, c-format msgid "cannot abort during a parallel operation" msgstr "no se puede abortar durante una operación paralela" -#: access/transam/xact.c:4212 +#: access/transam/xact.c:4222 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "no se pueden definir savepoints durante una operación paralela" -#: access/transam/xact.c:4299 +#: access/transam/xact.c:4309 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "no se pueden liberar savepoints durante una operación paralela" -#: access/transam/xact.c:4309 access/transam/xact.c:4360 -#: access/transam/xact.c:4420 access/transam/xact.c:4469 +#: access/transam/xact.c:4319 access/transam/xact.c:4370 +#: access/transam/xact.c:4430 access/transam/xact.c:4479 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "no existe el “savepoint” «%s»" -#: access/transam/xact.c:4366 access/transam/xact.c:4475 +#: access/transam/xact.c:4376 access/transam/xact.c:4485 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "el “savepoint” «%s» no existe dentro del nivel de savepoint actual" -#: access/transam/xact.c:4408 +#: access/transam/xact.c:4418 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "no se puede hacer rollback a un savepoint durante una operación paralela" -#: access/transam/xact.c:4536 +#: access/transam/xact.c:4546 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "no se pueden iniciar subtransacciones durante una operación paralela" -#: access/transam/xact.c:4604 +#: access/transam/xact.c:4614 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "no se pueden comprometer subtransacciones durante una operación paralela" -#: access/transam/xact.c:5251 +#: access/transam/xact.c:5261 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "no se pueden tener más de 2^32-1 subtransacciones en una transacción" @@ -2574,142 +2584,142 @@ msgstr "restartpoint completado: se escribió %d buffers (%.1f%%); %d archivo(s) msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgstr "checkpoint completado: se escribió %d buffers (%.1f%%); %d archivo(s) WAL añadido(s), %d eliminado(s), %d reciclado(s); escritura=%ld.%03d s, sincronización=%ld.%03d s, total=%ld.%03d s; archivos sincronizados=%d, más largo=%ld.%03d s, promedio=%ld.%03d s; distancia=%d kB, estimado=%d kB" -#: access/transam/xlog.c:6653 +#: access/transam/xlog.c:6663 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "hay actividad de WAL mientras el sistema se está apagando" -#: access/transam/xlog.c:7236 +#: access/transam/xlog.c:7260 #, c-format msgid "recovery restart point at %X/%X" msgstr "restartpoint de recuperación en %X/%X" -#: access/transam/xlog.c:7238 +#: access/transam/xlog.c:7262 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Última transacción completada al tiempo de registro %s." -#: access/transam/xlog.c:7487 +#: access/transam/xlog.c:7511 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "punto de recuperación «%s» creado en %X/%X" -#: access/transam/xlog.c:7694 +#: access/transam/xlog.c:7718 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "el respaldo en línea fue cancelado, la recuperación no puede continuar" -#: access/transam/xlog.c:7752 +#: access/transam/xlog.c:7776 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de checkpoint de detención" -#: access/transam/xlog.c:7810 +#: access/transam/xlog.c:7834 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de checkpoint «online»" -#: access/transam/xlog.c:7839 +#: access/transam/xlog.c:7863 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "ID de timeline %u inesperado (debería ser %u) en el registro de fin-de-recuperación" -#: access/transam/xlog.c:8097 +#: access/transam/xlog.c:8121 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "no se pudo sincronizar (fsync write-through) el archivo «%s»: %m" -#: access/transam/xlog.c:8103 +#: access/transam/xlog.c:8127 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "no se pudo sincronizar (fdatasync) archivo «%s»: %m" -#: access/transam/xlog.c:8198 access/transam/xlog.c:8565 +#: access/transam/xlog.c:8222 access/transam/xlog.c:8589 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "el nivel de WAL no es suficiente para hacer un respaldo en línea" -#: access/transam/xlog.c:8199 access/transam/xlog.c:8566 +#: access/transam/xlog.c:8223 access/transam/xlog.c:8590 #: access/transam/xlogfuncs.c:199 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "wal_level debe ser definido a «replica» o «logical» al inicio del servidor." -#: access/transam/xlog.c:8204 +#: access/transam/xlog.c:8228 #, c-format msgid "backup label too long (max %d bytes)" msgstr "la etiqueta de respaldo es demasiado larga (máximo %d bytes)" -#: access/transam/xlog.c:8320 +#: access/transam/xlog.c:8344 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "el WAL generado con full_page_writes=off fue restaurado desde el último restartpoint" -#: access/transam/xlog.c:8322 access/transam/xlog.c:8678 +#: access/transam/xlog.c:8346 access/transam/xlog.c:8702 #, 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 primary, and then try an online backup again." msgstr "Esto significa que el respaldo que estaba siendo tomado en el standby está corrupto y no debería usarse. Active full_page_writes y ejecute CHECKPOINT en el primario, luego trate de ejecutar un respaldo en línea nuevamente." -#: access/transam/xlog.c:8402 backup/basebackup.c:1343 utils/adt/misc.c:340 +#: access/transam/xlog.c:8426 backup/basebackup.c:1343 utils/adt/misc.c:340 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "la ruta «%s» del enlace simbólico es demasiado larga" -#: access/transam/xlog.c:8452 backup/basebackup.c:1358 +#: access/transam/xlog.c:8476 backup/basebackup.c:1358 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:348 #, c-format msgid "tablespaces are not supported on this platform" msgstr "tablespaces no están soportados en esta plataforma" -#: access/transam/xlog.c:8611 access/transam/xlog.c:8624 -#: access/transam/xlogrecovery.c:1237 access/transam/xlogrecovery.c:1244 -#: access/transam/xlogrecovery.c:1303 access/transam/xlogrecovery.c:1383 -#: access/transam/xlogrecovery.c:1407 +#: access/transam/xlog.c:8635 access/transam/xlog.c:8648 +#: access/transam/xlogrecovery.c:1247 access/transam/xlogrecovery.c:1254 +#: access/transam/xlogrecovery.c:1313 access/transam/xlogrecovery.c:1393 +#: access/transam/xlogrecovery.c:1417 #, c-format msgid "invalid data in file \"%s\"" msgstr "datos no válidos en archivo «%s»" -#: access/transam/xlog.c:8628 backup/basebackup.c:1204 +#: access/transam/xlog.c:8652 backup/basebackup.c:1204 #, c-format msgid "the standby was promoted during online backup" msgstr "el standby fue promovido durante el respaldo en línea" -#: access/transam/xlog.c:8629 backup/basebackup.c:1205 +#: access/transam/xlog.c:8653 backup/basebackup.c:1205 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Esto significa que el respaldo que se estaba tomando está corrupto y no debería ser usado. Trate de ejecutar un nuevo respaldo en línea." -#: access/transam/xlog.c:8676 +#: access/transam/xlog.c:8700 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "el WAL generado con full_page_writes=off fue restaurado durante el respaldo en línea" -#: access/transam/xlog.c:8801 +#: access/transam/xlog.c:8825 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "respaldo base completo, esperando que se archiven los segmentos WAL requeridos" -#: access/transam/xlog.c:8815 +#: access/transam/xlog.c:8839 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "todavía en espera de que todos los segmentos WAL requeridos sean archivados (han pasado %d segundos)" -#: access/transam/xlog.c:8817 +#: access/transam/xlog.c:8841 #, c-format 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 "Verifique que su archive_command se esté ejecutando con normalidad. Puede cancelar este respaldo con confianza, pero el respaldo de la base de datos no será utilizable a menos que disponga de todos los segmentos de WAL." -#: access/transam/xlog.c:8824 +#: access/transam/xlog.c:8848 #, c-format msgid "all required WAL segments have been archived" msgstr "todos los segmentos de WAL requeridos han sido archivados" -#: access/transam/xlog.c:8828 +#: access/transam/xlog.c:8852 #, 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 "el archivado de WAL no está activo; debe asegurarse que todos los segmentos WAL requeridos se copian por algún otro mecanismo para completar el respaldo" -#: access/transam/xlog.c:8877 +#: access/transam/xlog.c:8901 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "abortando el backup porque el proceso servidor terminó antes de que pg_backup_stop fuera invocada" @@ -3082,376 +3092,381 @@ msgstr "reiniciando la recuperación de backup con LSN de redo «%X/%X»" msgid "could not locate a valid checkpoint record" msgstr "no se pudo localizar un registro de punto de control válido" -#: access/transam/xlogrecovery.c:834 +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "could not find redo location %X/%08X referenced by checkpoint record at %X/%08X" +msgstr "no se pudo encontrar la ubicación de redo %X/%08X referida por el registro de punto de control en %X/%08X" + +#: access/transam/xlogrecovery.c:844 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "el timeline solicitado %u no es un hijo de la historia de este servidor" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:846 #, 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 "El punto de control más reciente está en %X/%X en el timeline %u, pero en la historia del timeline solicitado, el servidor se desvió desde ese timeline en %X/%X." -#: access/transam/xlogrecovery.c:850 +#: access/transam/xlogrecovery.c:860 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "el timeline solicitado %u no contiene el punto mínimo de recuperación %X/%X en el timeline %u" -#: access/transam/xlogrecovery.c:878 +#: access/transam/xlogrecovery.c:888 #, c-format msgid "invalid next transaction ID" msgstr "el siguiente ID de transacción no es válido" -#: access/transam/xlogrecovery.c:883 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid redo in checkpoint record" msgstr "redo no es válido en el registro de punto de control" -#: access/transam/xlogrecovery.c:894 +#: access/transam/xlogrecovery.c:904 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "registro redo no es válido en el punto de control de apagado" -#: access/transam/xlogrecovery.c:923 +#: access/transam/xlogrecovery.c:933 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "el sistema de bases de datos no fue apagado apropiadamente; se está efectuando la recuperación automática" -#: access/transam/xlogrecovery.c:927 +#: access/transam/xlogrecovery.c:937 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "la recuperación comienza en el timeline %u y tiene un timeline de destino %u" -#: access/transam/xlogrecovery.c:970 +#: access/transam/xlogrecovery.c:980 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label contiene datos inconsistentes con el archivo de control" -#: access/transam/xlogrecovery.c:971 +#: access/transam/xlogrecovery.c:981 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Esto significa que el respaldo está corrupto y deberá usar otro respaldo para la recuperación." -#: access/transam/xlogrecovery.c:1025 +#: access/transam/xlogrecovery.c:1035 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "el uso del archivo de configuración de recuperación «%s» no está soportado" -#: access/transam/xlogrecovery.c:1090 +#: access/transam/xlogrecovery.c:1100 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "el modo standby no está soportado en el modo mono-usuario" -#: access/transam/xlogrecovery.c:1107 +#: access/transam/xlogrecovery.c:1117 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "no se especifica primary_conninfo ni restore_command" -#: access/transam/xlogrecovery.c:1108 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "El servidor de bases de datos monitoreará el subdirectorio pg_wal con regularidad en búsqueda de archivos almacenados ahí." -#: access/transam/xlogrecovery.c:1116 +#: access/transam/xlogrecovery.c:1126 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "debe especificarse restore_command cuando el modo standby no está activo" -#: access/transam/xlogrecovery.c:1154 +#: access/transam/xlogrecovery.c:1164 #, c-format msgid "recovery target timeline %u does not exist" msgstr "no existe el timeline %u especificado como destino de recuperación" -#: access/transam/xlogrecovery.c:1304 +#: access/transam/xlogrecovery.c:1314 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "El ID de timeline interpretado es %u, pero se esperaba %u." -#: access/transam/xlogrecovery.c:1686 +#: access/transam/xlogrecovery.c:1696 #, c-format msgid "redo starts at %X/%X" msgstr "redo comienza en %X/%X" -#: access/transam/xlogrecovery.c:1699 +#: access/transam/xlogrecovery.c:1709 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "redo en progreso, tiempo transcurrido: %ld.%02d s, LSN actual: %X/%X" -#: access/transam/xlogrecovery.c:1791 +#: access/transam/xlogrecovery.c:1801 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "el punto de detención de recuperación pedido es antes del punto de recuperación consistente" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1833 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "redo listo en %X/%X utilización del sistema: %s" -#: access/transam/xlogrecovery.c:1829 +#: access/transam/xlogrecovery.c:1839 #, c-format msgid "last completed transaction was at log time %s" msgstr "última transacción completada al tiempo de registro %s" -#: access/transam/xlogrecovery.c:1838 +#: access/transam/xlogrecovery.c:1848 #, c-format msgid "redo is not required" msgstr "no se requiere redo" -#: access/transam/xlogrecovery.c:1849 +#: access/transam/xlogrecovery.c:1859 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "la recuperación terminó antes de alcanzar el punto configurado como destino de recuperación" -#: access/transam/xlogrecovery.c:2024 +#: access/transam/xlogrecovery.c:2034 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "se omitió con éxito contrecord no encontrado en %X/%X, sobrescrito en %s" -#: access/transam/xlogrecovery.c:2091 +#: access/transam/xlogrecovery.c:2101 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "entrada de directorio inesperada «%s» fue encontrada en %s" -#: access/transam/xlogrecovery.c:2093 +#: access/transam/xlogrecovery.c:2103 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Todas las entradas de directorio en pg_tblspc deberían ser enlaces simbólicos" -#: access/transam/xlogrecovery.c:2094 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." msgstr "Elimine esos directorios, o defina allow_in_place_tablespaces a ON transitoriamente para permitir que la recuperación pueda completarse." -#: access/transam/xlogrecovery.c:2146 +#: access/transam/xlogrecovery.c:2156 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "se completó la recuperación de backup con LSN de redo %X/%X y LSN de término %X/%X" -#: access/transam/xlogrecovery.c:2176 +#: access/transam/xlogrecovery.c:2186 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "el estado de recuperación consistente fue alcanzado en %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2214 +#: access/transam/xlogrecovery.c:2224 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "redo WAL en %X/%X para %s" -#: access/transam/xlogrecovery.c:2310 +#: access/transam/xlogrecovery.c:2320 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "ID de timeline previo %u inesperado (timeline actual %u) en el registro de punto de control" -#: access/transam/xlogrecovery.c:2319 +#: access/transam/xlogrecovery.c:2329 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "ID de timeline %u inesperado (después de %u) en el registro de punto de control" -#: access/transam/xlogrecovery.c:2335 +#: access/transam/xlogrecovery.c:2345 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "timeline ID %u inesperado en registro de checkpoint, antes de alcanzar el punto mínimo de recuperación %X/%X en el timeline %u" -#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 +#: access/transam/xlogrecovery.c:2529 access/transam/xlogrecovery.c:2805 #, c-format msgid "recovery stopping after reaching consistency" msgstr "deteniendo recuperación al alcanzar un estado consistente" -#: access/transam/xlogrecovery.c:2540 +#: access/transam/xlogrecovery.c:2550 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "deteniendo recuperación antes de la ubicación (LSN) de WAL «%X/%X»" -#: access/transam/xlogrecovery.c:2630 +#: access/transam/xlogrecovery.c:2640 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "deteniendo recuperación antes de comprometer la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2637 +#: access/transam/xlogrecovery.c:2647 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "deteniendo recuperación antes de abortar la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2690 +#: access/transam/xlogrecovery.c:2700 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "deteniendo recuperación en el punto de recuperación «%s», hora %s" -#: access/transam/xlogrecovery.c:2708 +#: access/transam/xlogrecovery.c:2718 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "deteniendo recuperación después de la ubicación (LSN) de WAL «%X/%X»" -#: access/transam/xlogrecovery.c:2775 +#: access/transam/xlogrecovery.c:2785 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "deteniendo recuperación de comprometer la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2783 +#: access/transam/xlogrecovery.c:2793 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "deteniendo recuperación después de abortar la transacción %u, hora %s" -#: access/transam/xlogrecovery.c:2864 +#: access/transam/xlogrecovery.c:2874 #, c-format msgid "pausing at the end of recovery" msgstr "pausando al final de la recuperación" -#: access/transam/xlogrecovery.c:2865 +#: access/transam/xlogrecovery.c:2875 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Ejecute pg_wal_replay_resume() para promover." -#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:2878 access/transam/xlogrecovery.c:4700 #, c-format msgid "recovery has paused" msgstr "la recuperación está en pausa" -#: access/transam/xlogrecovery.c:2869 +#: access/transam/xlogrecovery.c:2879 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Ejecute pg_wal_replay_resume() para continuar." -#: access/transam/xlogrecovery.c:3135 +#: access/transam/xlogrecovery.c:3145 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "ID de timeline %u inesperado en archivo %s, posición %u" # XXX why talk about "log segment" instead of "file"? -#: access/transam/xlogrecovery.c:3340 +#: access/transam/xlogrecovery.c:3350 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "no se pudo leer del archivo de segmento %s, posición %u: %m" # XXX why talk about "log segment" instead of "file"? -#: access/transam/xlogrecovery.c:3346 +#: access/transam/xlogrecovery.c:3356 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "no se pudo leer del archivo de segmento %s, posición %u: leídos %d de %zu" -#: access/transam/xlogrecovery.c:4007 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "el enlace de punto de control primario en archivo de control no es válido" -#: access/transam/xlogrecovery.c:4011 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "el enlace del punto de control en backup_label no es válido" -#: access/transam/xlogrecovery.c:4029 +#: access/transam/xlogrecovery.c:4039 #, c-format msgid "invalid primary checkpoint record" msgstr "el registro del punto de control primario no es válido" -#: access/transam/xlogrecovery.c:4033 +#: access/transam/xlogrecovery.c:4043 #, c-format msgid "invalid checkpoint record" msgstr "el registro del punto de control no es válido" -#: access/transam/xlogrecovery.c:4044 +#: access/transam/xlogrecovery.c:4054 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "el ID de gestor de recursos en el registro del punto de control primario no es válido" -#: access/transam/xlogrecovery.c:4048 +#: access/transam/xlogrecovery.c:4058 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "el ID de gestor de recursos en el registro del punto de control no es válido" -#: access/transam/xlogrecovery.c:4061 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "xl_info en el registro del punto de control primario no es válido" -#: access/transam/xlogrecovery.c:4065 +#: access/transam/xlogrecovery.c:4075 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "xl_info en el registro del punto de control no es válido" -#: access/transam/xlogrecovery.c:4076 +#: access/transam/xlogrecovery.c:4086 #, c-format msgid "invalid length of primary checkpoint record" msgstr "la longitud del registro del punto de control primario no es válida" -#: access/transam/xlogrecovery.c:4080 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "la longitud del registro de punto de control no es válida" -#: access/transam/xlogrecovery.c:4136 +#: access/transam/xlogrecovery.c:4146 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "el nuevo timeline %u especificado no es hijo del timeline de sistema %u" -#: access/transam/xlogrecovery.c:4150 +#: access/transam/xlogrecovery.c:4160 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "el nuevo timeline %u bifurcó del timeline del sistema actual %u antes del punto re recuperación actual %X/%X" -#: access/transam/xlogrecovery.c:4169 +#: access/transam/xlogrecovery.c:4179 #, c-format msgid "new target timeline is %u" msgstr "el nuevo timeline destino es %u" -#: access/transam/xlogrecovery.c:4372 +#: access/transam/xlogrecovery.c:4382 #, c-format msgid "WAL receiver process shutdown requested" msgstr "se recibió una petición de apagado para el proceso receptor de wal" -#: access/transam/xlogrecovery.c:4435 +#: access/transam/xlogrecovery.c:4445 #, c-format msgid "received promote request" msgstr "se recibió petición de promoción" -#: access/transam/xlogrecovery.c:4448 +#: access/transam/xlogrecovery.c:4458 #, c-format msgid "promote trigger file found: %s" msgstr "se encontró el archivo disparador de promoción: %s" -#: access/transam/xlogrecovery.c:4456 +#: access/transam/xlogrecovery.c:4466 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "no se pudo hacer stat al archivo disparador de promoción «%s»: %m" -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby no es posible porque la configuración de parámetros no es suficiente" -#: access/transam/xlogrecovery.c:4682 access/transam/xlogrecovery.c:4709 -#: access/transam/xlogrecovery.c:4739 +#: access/transam/xlogrecovery.c:4692 access/transam/xlogrecovery.c:4719 +#: access/transam/xlogrecovery.c:4749 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d es una configuración menor que en el servidor primario, donde su valor era %d." -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Si se continúa con la recuperación, el servidor se apagará." -#: access/transam/xlogrecovery.c:4692 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Luego puede reiniciar el servidor después de hacer los cambios necesarios en la configuración." -#: access/transam/xlogrecovery.c:4703 +#: access/transam/xlogrecovery.c:4713 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "la promoción no es posible porque la configuración de parámetros no es suficiente" -#: access/transam/xlogrecovery.c:4713 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Reinicie el servidor luego de hacer los cambios necesarios en la configuración." -#: access/transam/xlogrecovery.c:4737 +#: access/transam/xlogrecovery.c:4747 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "se abortó la recuperación porque la configuración de parámetros no es suficiente" -#: access/transam/xlogrecovery.c:4743 +#: access/transam/xlogrecovery.c:4753 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Puede reiniciar el servidor luego de hacer los cambios necesarios en la configuración." @@ -3653,7 +3668,7 @@ msgstr "no se permiten rutas relativas para un respaldo almacenado en el servido #: backup/basebackup_server.c:102 commands/dbcommands.c:477 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1587 +#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1618 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -4321,7 +4336,7 @@ msgid "language with OID %u does not exist" msgstr "no existe el lenguaje con OID %u" #: catalog/aclchk.c:4576 catalog/aclchk.c:5365 commands/collationcmds.c:595 -#: commands/publicationcmds.c:1745 +#: commands/publicationcmds.c:1750 #, c-format msgid "schema with OID %u does not exist" msgstr "no existe el esquema con OID %u" @@ -4392,7 +4407,7 @@ msgstr "no existe la conversión con OID %u" msgid "extension with OID %u does not exist" msgstr "no existe la extensión con OID %u" -#: catalog/aclchk.c:5727 commands/publicationcmds.c:1999 +#: catalog/aclchk.c:5727 commands/publicationcmds.c:2004 #, c-format msgid "publication with OID %u does not exist" msgstr "no existe la publicación con OID %u" @@ -4685,14 +4700,14 @@ msgstr "Esto causaría que la columna generada dependa de su propio valor." msgid "generation expression is not immutable" msgstr "la expresión de generación no es inmutable" -#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1285 +#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "la columna «%s» es de tipo %s pero la expresión default es de tipo %s" #: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 #: parser/parse_target.c:594 parser/parse_target.c:891 -#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1290 +#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Necesitará reescribir la expresión o aplicarle una conversión de tipo." @@ -4778,7 +4793,7 @@ msgstr "la relación «%s» ya existe, omitiendo" msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "el valor de OID de índice de pg_class no se definió en modo de actualización binaria" -#: catalog/index.c:927 utils/cache/relcache.c:3745 +#: catalog/index.c:927 utils/cache/relcache.c:3761 #, c-format msgid "index relfilenode value not set when in binary upgrade mode" msgstr "el valor de relfilenode de índice no se definió en modo de actualización binaria" @@ -4788,34 +4803,34 @@ msgstr "el valor de relfilenode de índice no se definió en modo de actualizaci msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY debe ser la primera acción en una transacción" -#: catalog/index.c:3662 +#: catalog/index.c:3669 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "no se puede hacer reindex de tablas temporales de otras sesiones" -#: catalog/index.c:3673 commands/indexcmds.c:3577 +#: catalog/index.c:3680 commands/indexcmds.c:3577 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "no es posible reindexar un índice no válido en tabla TOAST" -#: catalog/index.c:3689 commands/indexcmds.c:3457 commands/indexcmds.c:3601 +#: catalog/index.c:3696 commands/indexcmds.c:3457 commands/indexcmds.c:3601 #: commands/tablecmds.c:3331 #, c-format msgid "cannot move system relation \"%s\"" msgstr "no se puede mover la relación de sistema «%s»" -#: catalog/index.c:3833 +#: catalog/index.c:3840 #, c-format msgid "index \"%s\" was reindexed" msgstr "el índice «%s» fue reindexado" -#: catalog/index.c:3970 +#: catalog/index.c:3977 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "no se puede reindexar el índice no válido «%s.%s» en tabla TOAST, omitiendo" #: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5860 +#: commands/trigger.c:5881 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "no están implementadas las referencias entre bases de datos: «%s.%s.%s»" @@ -5981,8 +5996,8 @@ msgstr "columna duplicada «%s» en lista de columnas de publicación" msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "el esquema «%s» ya es un miembro de la publicación «%s»" -#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1391 -#: commands/publicationcmds.c:1430 commands/publicationcmds.c:1967 +#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1396 +#: commands/publicationcmds.c:1435 commands/publicationcmds.c:1972 #, c-format msgid "publication \"%s\" does not exist" msgstr "no existe la publicación «%s»" @@ -6125,7 +6140,7 @@ msgstr "Falla al crear un tipo de multirango para el tipo «%s»." msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Puede especificar manualmente un nombre para el tipo de multirango usando el atributo «multirange_type_name»." -#: catalog/storage.c:530 storage/buffer/bufmgr.c:1047 +#: catalog/storage.c:530 storage/buffer/bufmgr.c:1054 #, c-format msgid "invalid page in block %u of relation %s" msgstr "la página no es válida en el bloque %u de la relación %s" @@ -6240,7 +6255,7 @@ msgstr "el servidor «%s» ya existe" msgid "language \"%s\" already exists" msgstr "ya existe el lenguaje «%s»" -#: commands/alter.c:97 commands/publicationcmds.c:770 +#: commands/alter.c:97 commands/publicationcmds.c:775 #, c-format msgid "publication \"%s\" already exists" msgstr "la publicación «%s» ya existe" @@ -6368,27 +6383,27 @@ msgstr "omitiendo el análisis del árbol de herencia «%s.%s» --- este árbol msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "omitiendo el análisis del árbol de herencia «%s.%s» --- este árbol no contiene tablas hijas analizables" -#: commands/async.c:646 +#: commands/async.c:645 #, c-format msgid "channel name cannot be empty" msgstr "el nombre de canal no puede ser vacío" -#: commands/async.c:652 +#: commands/async.c:651 #, c-format msgid "channel name too long" msgstr "el nombre de canal es demasiado largo" -#: commands/async.c:657 +#: commands/async.c:656 #, c-format msgid "payload string too long" msgstr "la cadena de carga es demasiado larga" -#: commands/async.c:876 +#: commands/async.c:875 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "no se puede hacer PREPARE de una transacción que ha ejecutado LISTEN, UNLISTEN o NOTIFY" -#: commands/async.c:980 +#: commands/async.c:979 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "demasiadas notificaciones en la cola NOTIFY" @@ -6500,8 +6515,8 @@ msgstr "el atributo de ordenamiento (collation) «%s» no es reconocido" #: commands/collationcmds.c:119 commands/collationcmds.c:125 #: commands/define.c:389 commands/tablecmds.c:7913 #: replication/pgoutput/pgoutput.c:319 replication/pgoutput/pgoutput.c:342 -#: replication/pgoutput/pgoutput.c:356 replication/pgoutput/pgoutput.c:366 -#: replication/pgoutput/pgoutput.c:376 replication/pgoutput/pgoutput.c:386 +#: replication/pgoutput/pgoutput.c:360 replication/pgoutput/pgoutput.c:370 +#: replication/pgoutput/pgoutput.c:380 replication/pgoutput/pgoutput.c:390 #: replication/walsender.c:1015 replication/walsender.c:1037 #: replication/walsender.c:1047 #, c-format @@ -6676,7 +6691,7 @@ msgstr "no se permiten columnas generadas en las condiciones WHERE de COPY FROM" #: commands/copy.c:176 commands/tablecmds.c:12461 commands/tablecmds.c:17648 #: commands/tablecmds.c:17727 commands/trigger.c:668 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 +#: rewrite/rewriteHandler.c:939 rewrite/rewriteHandler.c:974 #, c-format msgid "Column \"%s\" is a generated column." msgstr "La columna «%s» es una columna generada." @@ -6837,7 +6852,7 @@ msgstr "la columna «%s» es una columna generada" msgid "Generated columns cannot be used in COPY." msgstr "Las columnas generadas no pueden usarse en COPY." -#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:243 +#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:263 #: commands/tablecmds.c:2393 commands/tablecmds.c:3049 #: commands/tablecmds.c:3558 parser/parse_relation.c:3669 #: parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 @@ -6926,7 +6941,7 @@ msgstr "la columna FORCE_NOT_NULL «%s» no es referenciada en COPY" msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "la columna FORCE_NULL «%s» no es referenciada en COPY" -#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:386 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "no existe el procedimiento por omisión de conversión desde la codificación «%s» a «%s»" @@ -7652,7 +7667,7 @@ msgstr "no existe el ordenamiento (collation) «%s», omitiendo" msgid "conversion \"%s\" does not exist, skipping" msgstr "no existe la conversión «%s», omitiendo" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:675 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "no existe el objeto de estadísticas «%s», omitiendo" @@ -9188,7 +9203,7 @@ msgstr "la función de estimación de join %s debe retornar tipo %s" msgid "operator attribute \"%s\" cannot be changed" msgstr "el atributo de operador «%s» no puede ser cambiado" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:155 #: commands/tablecmds.c:1623 commands/tablecmds.c:2211 #: commands/tablecmds.c:3452 commands/tablecmds.c:6377 #: commands/tablecmds.c:9253 commands/tablecmds.c:17383 @@ -9290,188 +9305,188 @@ msgstr "no existe la sentencia preparada «%s»" msgid "must be superuser to create custom procedural language" msgstr "debe ser superusuario para crear un lenguaje procedural personalizado" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1224 +#: commands/publicationcmds.c:135 postmaster/postmaster.c:1224 #: postmaster/postmaster.c:1323 utils/init/miscinit.c:1703 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "la sintaxis de lista no es válida para el parámetro «%s»" -#: commands/publicationcmds.c:149 +#: commands/publicationcmds.c:154 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "valor no reconocido para la opción de publicación «%s»: «%s»" -#: commands/publicationcmds.c:163 +#: commands/publicationcmds.c:168 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "parámetro de publicación no reconocido: «%s»" -#: commands/publicationcmds.c:204 +#: commands/publicationcmds.c:209 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "ningún esquema se ha seleccionado para CURRENT_SCHEMA" -#: commands/publicationcmds.c:501 +#: commands/publicationcmds.c:506 msgid "System columns are not allowed." msgstr "Las columnas de sistema no están permitidas." -#: commands/publicationcmds.c:508 commands/publicationcmds.c:513 -#: commands/publicationcmds.c:530 +#: commands/publicationcmds.c:513 commands/publicationcmds.c:518 +#: commands/publicationcmds.c:535 msgid "User-defined operators are not allowed." msgstr "Los operadores definidos por el usuario no están permitidos." -#: commands/publicationcmds.c:554 +#: commands/publicationcmds.c:559 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." msgstr "Sólo columnas, constantes, operadores built-in, tipos de datos built-in, «collations» built-in, y funciones built-in inmutables son permitidas." -#: commands/publicationcmds.c:566 +#: commands/publicationcmds.c:571 msgid "User-defined types are not allowed." msgstr "Los tipos definidos por el usuario no están permitidos." -#: commands/publicationcmds.c:569 +#: commands/publicationcmds.c:574 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Las funciones definidas por el usuario, o las que son mutables, no están permitidas." -#: commands/publicationcmds.c:572 +#: commands/publicationcmds.c:577 msgid "User-defined collations are not allowed." msgstr "Los «collations» definidos por el usuario no están permitidos." -#: commands/publicationcmds.c:582 +#: commands/publicationcmds.c:587 #, c-format msgid "invalid publication WHERE expression" msgstr "expresión WHERE de publicación no válida" -#: commands/publicationcmds.c:635 +#: commands/publicationcmds.c:640 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "no se puede usar una cláusula WHERE para la relación «%s»" -#: commands/publicationcmds.c:637 +#: commands/publicationcmds.c:642 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "La cláusula WHERE no puede usarse para una tabla particionada cuando %s es falso." -#: commands/publicationcmds.c:708 commands/publicationcmds.c:722 +#: commands/publicationcmds.c:713 commands/publicationcmds.c:727 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "no se puede usar una lista de columnas para la relación «%s.%s» en la publicación «%s»" -#: commands/publicationcmds.c:711 +#: commands/publicationcmds.c:716 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." msgstr "No se pueden especificar listas de columnas en publicaciones que contienen elementos FOR TABLES IN SCHEMA." -#: commands/publicationcmds.c:725 +#: commands/publicationcmds.c:730 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." msgstr "No se pueden especificar listas de columnas para tablas particionadas cuando %s es falso." -#: commands/publicationcmds.c:760 +#: commands/publicationcmds.c:765 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "debe ser superusuario para crear publicaciones FOR ALL TABLES" -#: commands/publicationcmds.c:831 +#: commands/publicationcmds.c:836 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "debe ser superusuario para crear publicaciones FOR TABLES IN SCHEMA" -#: commands/publicationcmds.c:867 +#: commands/publicationcmds.c:872 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "wal_level es insuficiente para publicar cambios lógicos" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:873 #, c-format msgid "Set wal_level to \"logical\" before creating subscriptions." msgstr "Cambie wal_level a «logical» antes de crear suscripciones." -#: commands/publicationcmds.c:964 commands/publicationcmds.c:972 +#: commands/publicationcmds.c:969 commands/publicationcmds.c:977 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "no se puede definir el parámetro «%s» a falso para la publicación «%s»" -#: commands/publicationcmds.c:967 +#: commands/publicationcmds.c:972 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "La publicación contiene una cláusula WHERE para la tabla particionada «%s», que no está permitido cuando «%s» es falso." -#: commands/publicationcmds.c:975 +#: commands/publicationcmds.c:980 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "La publicación contiene una lista de columns para la tabla particionada «%s», que no está permitido cuando «%s» es falso." -#: commands/publicationcmds.c:1298 +#: commands/publicationcmds.c:1303 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "no se puede agregar un esquema a la publicación «%s»" -#: commands/publicationcmds.c:1300 +#: commands/publicationcmds.c:1305 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." msgstr "No se puede agregar esquemas si alguna table que especifica lista de columnas ya es parte de la publicación." -#: commands/publicationcmds.c:1348 +#: commands/publicationcmds.c:1353 #, c-format msgid "must be superuser to add or set schemas" msgstr "debe ser superusuario para agregar o definir esquemas" -#: commands/publicationcmds.c:1357 commands/publicationcmds.c:1365 +#: commands/publicationcmds.c:1362 commands/publicationcmds.c:1370 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "la publicación \"%s\" se define como FOR ALL TABLES" -#: commands/publicationcmds.c:1359 +#: commands/publicationcmds.c:1364 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "No se pueden agregar ni eliminar esquemas de las publicaciones FOR ALL TABLES." -#: commands/publicationcmds.c:1367 +#: commands/publicationcmds.c:1372 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "Las tablas no se pueden agregar ni eliminar de las publicaciones FOR ALL TABLES." -#: commands/publicationcmds.c:1593 commands/publicationcmds.c:1656 +#: commands/publicationcmds.c:1598 commands/publicationcmds.c:1661 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "cláusulas WHERE en conflicto o redundantes para la tabla «%s»" -#: commands/publicationcmds.c:1600 commands/publicationcmds.c:1668 +#: commands/publicationcmds.c:1605 commands/publicationcmds.c:1673 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "listas de columnas contradictorias o redundantes para la tabla «%s»" -#: commands/publicationcmds.c:1802 +#: commands/publicationcmds.c:1807 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "la lista de columnas no debe ser especificada en ALTER PUBLICATION ... DROP" -#: commands/publicationcmds.c:1814 +#: commands/publicationcmds.c:1819 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "relación «%s» no es parte de la publicación" -#: commands/publicationcmds.c:1821 +#: commands/publicationcmds.c:1826 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "no se puede usar una cláusula WHERE cuando se elimina una tabla de una publicación" -#: commands/publicationcmds.c:1881 +#: commands/publicationcmds.c:1886 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "las tablas del esquema «%s» no son parte de la publicación" -#: commands/publicationcmds.c:1924 commands/publicationcmds.c:1931 +#: commands/publicationcmds.c:1929 commands/publicationcmds.c:1936 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "se ha denegado el permiso para cambiar el dueño de la publicación «%s»" -#: commands/publicationcmds.c:1926 +#: commands/publicationcmds.c:1931 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "El dueño de una publicación FOR ALL TABLES debe ser un superusuario." -#: commands/publicationcmds.c:1933 +#: commands/publicationcmds.c:1938 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "El dueño de una publicación FOR TABLES IN SCHEMA debe ser un superusuario." @@ -9647,72 +9662,72 @@ msgstr "sólo se permite una relación en CREATE STATISTICS" msgid "cannot define statistics for relation \"%s\"" msgstr "no se puede definir estadística para la relación «%s»" -#: commands/statscmds.c:191 +#: commands/statscmds.c:211 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "el objeto de estadísticas «%s» ya existe, omitiendo" -#: commands/statscmds.c:199 +#: commands/statscmds.c:219 #, c-format msgid "statistics object \"%s\" already exists" msgstr "el objeto de estadísticas «%s» ya existe" -#: commands/statscmds.c:210 +#: commands/statscmds.c:230 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "no se puede tener más de %d columnas en estadísticas" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:271 commands/statscmds.c:294 commands/statscmds.c:328 #, c-format msgid "statistics creation on system columns is not supported" msgstr "la creación de estadísticas en columnas de sistema no está soportada" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:278 commands/statscmds.c:301 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "la columna «%s» no puede ser usado en estadísticas porque su tipo %s no tiene una clase de operadores por omisión para btree" -#: commands/statscmds.c:325 +#: commands/statscmds.c:345 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "la expresión no puede ser usada en estadísticas multivariantes porque su tipo %s no tiene una clase de operadores por omisión para btree" -#: commands/statscmds.c:346 +#: commands/statscmds.c:366 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "al crear estadísticas sobre una sola expresión, no se deben especificar tipos de estadísticas" -#: commands/statscmds.c:375 +#: commands/statscmds.c:395 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "tipo de estadísticas «%s» no reconocido" -#: commands/statscmds.c:404 +#: commands/statscmds.c:424 #, c-format msgid "extended statistics require at least 2 columns" msgstr "las estadísticas extendidas requieren al menos 2 columnas" -#: commands/statscmds.c:422 +#: commands/statscmds.c:442 #, c-format msgid "duplicate column name in statistics definition" msgstr "nombre de columna duplicado en definición de estadísticas" -#: commands/statscmds.c:457 +#: commands/statscmds.c:477 #, c-format msgid "duplicate expression in statistics definition" msgstr "expresión duplicada en definición de estadísticas" -#: commands/statscmds.c:620 commands/tablecmds.c:8217 +#: commands/statscmds.c:640 commands/tablecmds.c:8217 #, c-format msgid "statistics target %d is too low" msgstr "el valor de estadísticas %d es demasiado bajo" -#: commands/statscmds.c:628 commands/tablecmds.c:8225 +#: commands/statscmds.c:648 commands/tablecmds.c:8225 #, c-format msgid "lowering statistics target to %d" msgstr "bajando el valor de estadísticas a %d" -#: commands/statscmds.c:651 +#: commands/statscmds.c:671 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "no existe el objeto de estadísticas «%s.%s», omitiendo" @@ -9873,7 +9888,7 @@ msgid "could not receive list of replicated tables from the publisher: %s" msgstr "no se pudo recibir la lista de tablas replicadas desde el editor (publisher): %s" #: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 -#: replication/pgoutput/pgoutput.c:1110 +#: replication/pgoutput/pgoutput.c:1114 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "no se pueden usar listas de columnas diferentes para la tabla «%s.%s» en distintas publicaciones" @@ -11758,8 +11773,8 @@ msgstr "no se puede recolectar tuplas de transición desde tablas foráneas hija #: commands/trigger.c:3472 executor/nodeModifyTable.c:1543 #: executor/nodeModifyTable.c:1617 executor/nodeModifyTable.c:2384 -#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3036 -#: executor/nodeModifyTable.c:3175 +#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3027 +#: executor/nodeModifyTable.c:3166 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Considere usar un disparador AFTER en lugar de un disparador BEFORE para propagar cambios a otros registros." @@ -11773,23 +11788,23 @@ msgid "could not serialize access due to concurrent update" msgstr "no se pudo serializar el acceso debido a un update concurrente" #: commands/trigger.c:3521 executor/nodeModifyTable.c:1649 -#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2649 -#: executor/nodeModifyTable.c:3054 +#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2641 +#: executor/nodeModifyTable.c:3045 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "no se pudo serializar el acceso debido a un delete concurrente" -#: commands/trigger.c:4730 +#: commands/trigger.c:4714 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "no se puede ejecutar un disparador postergado dentro de una operación restringida por seguridad" -#: commands/trigger.c:5911 +#: commands/trigger.c:5932 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "la restricción «%s» no es postergable" -#: commands/trigger.c:5934 +#: commands/trigger.c:5955 #, c-format msgid "constraint \"%s\" does not exist" msgstr "no existe la restricción «%s»" @@ -12433,107 +12448,107 @@ msgstr "el rol «%s» ya es un miembro del rol «%s»" msgid "role \"%s\" is not a member of role \"%s\"" msgstr "el rol «%s» no es un miembro del rol «%s»" -#: commands/vacuum.c:140 +#: commands/vacuum.c:141 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "opción de ANALYZE «%s» no reconocida" -#: commands/vacuum.c:178 +#: commands/vacuum.c:179 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "la opción parallel requiere un valor entre 0 y %d" -#: commands/vacuum.c:190 +#: commands/vacuum.c:191 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "el número de procesos paralelos para vacuum debe estar entre 0 y %d" -#: commands/vacuum.c:207 +#: commands/vacuum.c:208 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "opción de VACUUM «%s» no reconocida" -#: commands/vacuum.c:230 +#: commands/vacuum.c:231 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL no puede ser ejecutado en paralelo" -#: commands/vacuum.c:246 +#: commands/vacuum.c:247 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "la opción ANALYZE debe especificarse cuando se provee una lista de columnas" -#: commands/vacuum.c:336 +#: commands/vacuum.c:337 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s no puede ejecutarse desde VACUUM o ANALYZE" -#: commands/vacuum.c:346 +#: commands/vacuum.c:347 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "la opción DISABLE_PAGE_SKIPPING de VACUUM no puede usarse con FULL" -#: commands/vacuum.c:353 +#: commands/vacuum.c:354 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "se requiere especificar PROCESS_TOAST al hacer VACUUM FULL" -#: commands/vacuum.c:596 +#: commands/vacuum.c:597 #, c-format msgid "skipping \"%s\" --- only superuser can vacuum it" msgstr "omitiendo «%s»: sólo un superusuario puede aplicarle VACUUM" -#: commands/vacuum.c:600 +#: commands/vacuum.c:601 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" msgstr "omitiendo «%s»: sólo un superusuario o el dueño de la base de datos puede aplicarle VACUUM" -#: commands/vacuum.c:604 +#: commands/vacuum.c:605 #, c-format msgid "skipping \"%s\" --- only table or database owner can vacuum it" msgstr "omitiendo «%s»: sólo su dueño o el de la base de datos puede aplicarle VACUUM" -#: commands/vacuum.c:619 +#: commands/vacuum.c:620 #, c-format msgid "skipping \"%s\" --- only superuser can analyze it" msgstr "omitiendo «%s»: sólo un superusuario puede analizarla" -#: commands/vacuum.c:623 +#: commands/vacuum.c:624 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can analyze it" msgstr "omitiendo «%s»: sólo un superusuario o el dueño de la base de datos puede analizarla" -#: commands/vacuum.c:627 +#: commands/vacuum.c:628 #, c-format msgid "skipping \"%s\" --- only table or database owner can analyze it" msgstr "omitiendo «%s»: sólo su dueño o el de la base de datos puede analizarla" -#: commands/vacuum.c:706 commands/vacuum.c:802 +#: commands/vacuum.c:707 commands/vacuum.c:803 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "omitiendo el vacuum de «%s»: el candado no está disponible" -#: commands/vacuum.c:711 +#: commands/vacuum.c:712 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "omitiendo el vacuum de «%s» --- la relación ya no existe" -#: commands/vacuum.c:727 commands/vacuum.c:807 +#: commands/vacuum.c:728 commands/vacuum.c:808 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "omitiendo analyze de «%s»: el candado no está disponible" -#: commands/vacuum.c:732 +#: commands/vacuum.c:733 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "omitiendo analyze de «%s» --- la relación ya no existe" -#: commands/vacuum.c:1051 +#: commands/vacuum.c:1052 #, c-format msgid "oldest xmin is far in the past" msgstr "xmin más antiguo es demasiado antiguo" -#: commands/vacuum.c:1052 +#: commands/vacuum.c:1053 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -12542,42 +12557,42 @@ msgstr "" "Cierre transaciones abiertas pronto para impedir problemas por reciclaje de contadores.\n" "Puede que además necesite comprometer o abortar transacciones preparadas antiguas, o eliminar slots de replicación añejos." -#: commands/vacuum.c:1095 +#: commands/vacuum.c:1096 #, c-format msgid "oldest multixact is far in the past" msgstr "multixact más antiguo es demasiado antiguo" -#: commands/vacuum.c:1096 +#: commands/vacuum.c:1097 #, c-format msgid "Close open transactions with multixacts soon to avoid wraparound problems." msgstr "Cierre transacciones con multixact pronto para prevenir problemas por reciclaje del contador." -#: commands/vacuum.c:1830 +#: commands/vacuum.c:1831 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "algunas bases de datos no han tenido VACUUM en más de 2 mil millones de transacciones" -#: commands/vacuum.c:1831 +#: commands/vacuum.c:1832 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Puede haber sufrido ya problemas de pérdida de datos por reciclaje del contador de transacciones." -#: commands/vacuum.c:2006 +#: commands/vacuum.c:2013 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "omitiendo «%s»: no se puede aplicar VACUUM a objetos que no son tablas o a tablas especiales de sistema" -#: commands/vacuum.c:2384 +#: commands/vacuum.c:2391 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "se recorrió el índice «%s» para eliminar %d versiones de filas" -#: commands/vacuum.c:2403 +#: commands/vacuum.c:2410 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "el índice «%s» ahora contiene %.0f versiones de filas en %u páginas" -#: commands/vacuum.c:2407 +#: commands/vacuum.c:2414 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12839,7 +12854,7 @@ msgstr "La consulta entrega un valor para una columna eliminada en la posición msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "La tabla tiene tipo %s en posición ordinal %d, pero la consulta esperaba %s." -#: executor/execExpr.c:1098 parser/parse_agg.c:861 +#: executor/execExpr.c:1098 parser/parse_agg.c:888 #, c-format msgid "window function calls cannot be nested" msgstr "no se pueden anidar llamadas a funciones de ventana deslizante" @@ -13016,38 +13031,38 @@ msgstr "no se puede cambiar la secuencia «%s»" msgid "cannot change TOAST relation \"%s\"" msgstr "no se puede cambiar la relación TOAST «%s»" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3149 -#: rewrite/rewriteHandler.c:4037 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3152 +#: rewrite/rewriteHandler.c:4057 #, c-format msgid "cannot insert into view \"%s\"" msgstr "no se puede insertar en la vista «%s»" -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3152 -#: rewrite/rewriteHandler.c:4040 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:4060 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "Para posibilitar las inserciones en la vista, provea un disparador INSTEAD OF INSERT o una regla incodicional ON INSERT DO INSTEAD." -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3157 -#: rewrite/rewriteHandler.c:4045 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3160 +#: rewrite/rewriteHandler.c:4065 #, c-format msgid "cannot update view \"%s\"" msgstr "no se puede actualizar la vista «%s»" -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3160 -#: rewrite/rewriteHandler.c:4048 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:4068 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "Para posibilitar las actualizaciones en la vista, provea un disparador INSTEAD OF UPDATE o una regla incondicional ON UPDATE DO INSTEAD." -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3165 -#: rewrite/rewriteHandler.c:4053 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3168 +#: rewrite/rewriteHandler.c:4073 #, c-format msgid "cannot delete from view \"%s\"" msgstr "no se puede eliminar de la vista «%s»" -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3168 -#: rewrite/rewriteHandler.c:4056 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3171 +#: rewrite/rewriteHandler.c:4076 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "Para posibilitar las eliminaciones en la vista, provea un disparador INSTEAD OF DELETE o una regla incondicional ON DELETE DO INSTEAD." @@ -13400,7 +13415,7 @@ msgstr "el tipo de retorno %s no es soportado en funciones SQL" msgid "aggregate %u needs to have compatible input type and transition type" msgstr "la función de agregación %u necesita tener tipos de entrada y transición compatibles" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:677 parser/parse_agg.c:705 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:684 parser/parse_agg.c:727 #, c-format msgid "aggregate function calls cannot be nested" msgstr "no se pueden anidar llamadas a funciones de agregación" @@ -13486,8 +13501,8 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "Considere definir la llave foránea en la tabla «%s»." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3042 -#: executor/nodeModifyTable.c:3181 +#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3033 +#: executor/nodeModifyTable.c:3172 #, c-format msgid "%s command cannot affect row a second time" msgstr "la orden %s no puede afectar una fila por segunda vez" @@ -13497,17 +13512,17 @@ msgstr "la orden %s no puede afectar una fila por segunda vez" msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Asegúrese de que ningún registro propuesto para inserción dentro de la misma orden tenga valores duplicados restringidos." -#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 +#: executor/nodeModifyTable.c:3026 executor/nodeModifyTable.c:3165 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "el registro a ser actualizado o eliminado ya fue modificado por una operación disparada por la orden actual" -#: executor/nodeModifyTable.c:3044 executor/nodeModifyTable.c:3183 +#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Asegúrese que no más de un registro de origen coincide con cada registro de destino." -#: executor/nodeModifyTable.c:3133 +#: executor/nodeModifyTable.c:3124 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "el registro a ser eliminado ya fue movido a otra partición por un update concurrente" @@ -15999,331 +16014,341 @@ msgstr "%s no puede ser aplicado a un «tuplestore» con nombre" msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "la relación «%s» en la cláusula %s no fue encontrada en la cláusula FROM" -#: parser/parse_agg.c:208 parser/parse_oper.c:227 +#: parser/parse_agg.c:211 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "no se pudo identificar un operador de ordenamiento para el tipo %s" -#: parser/parse_agg.c:210 +#: parser/parse_agg.c:213 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Las funciones de agregación con DISTINCT deben ser capaces de ordenar sus valores de entrada." -#: parser/parse_agg.c:268 +#: parser/parse_agg.c:271 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING debe tener menos de 32 argumentos" -#: parser/parse_agg.c:371 +#: parser/parse_agg.c:375 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "no se permiten funciones de agregación en las condiciones de JOIN" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:377 msgid "grouping operations are not allowed in JOIN conditions" msgstr "no se permiten las operaciones «grouping» en condiciones JOIN" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:387 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "las funciones de agregación no están permitidas en la cláusula FROM de su mismo nivel de consulta" -#: parser/parse_agg.c:385 +#: parser/parse_agg.c:389 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "las operaciones «grouping» no están permitidas en la cláusula FROM de su mismo nivel de consulta" -#: parser/parse_agg.c:390 +#: parser/parse_agg.c:394 msgid "aggregate functions are not allowed in functions in FROM" msgstr "no se permiten funciones de agregación en una función en FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:396 msgid "grouping operations are not allowed in functions in FROM" msgstr "no se permiten operaciones «grouping» en funciones en FROM" -#: parser/parse_agg.c:400 +#: parser/parse_agg.c:404 msgid "aggregate functions are not allowed in policy expressions" msgstr "no se permiten funciones de agregación en expresiones de políticas" -#: parser/parse_agg.c:402 +#: parser/parse_agg.c:406 msgid "grouping operations are not allowed in policy expressions" msgstr "no se permiten operaciones «grouping» en expresiones de políticas" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:423 msgid "aggregate functions are not allowed in window RANGE" msgstr "no se permiten funciones de agregación en RANGE de ventana deslizante" -#: parser/parse_agg.c:421 +#: parser/parse_agg.c:425 msgid "grouping operations are not allowed in window RANGE" msgstr "no se permiten operaciones «grouping» en RANGE de ventana deslizante" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:430 msgid "aggregate functions are not allowed in window ROWS" msgstr "no se permiten funciones de agregación en ROWS de ventana deslizante" -#: parser/parse_agg.c:428 +#: parser/parse_agg.c:432 msgid "grouping operations are not allowed in window ROWS" msgstr "no se permiten operaciones «grouping» en ROWS de ventana deslizante" -#: parser/parse_agg.c:433 +#: parser/parse_agg.c:437 msgid "aggregate functions are not allowed in window GROUPS" msgstr "no se permiten funciones de agregación en GROUPS de ventana deslizante" -#: parser/parse_agg.c:435 +#: parser/parse_agg.c:439 msgid "grouping operations are not allowed in window GROUPS" msgstr "no se permiten operaciones «grouping» en GROUPS de ventana deslizante" -#: parser/parse_agg.c:448 +#: parser/parse_agg.c:452 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "no se permiten funciones de agregación en condiciones MERGE WHEN" -#: parser/parse_agg.c:450 +#: parser/parse_agg.c:454 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "no se permiten operaciones «grouping» en condiciones MERGE WHEN" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:480 msgid "aggregate functions are not allowed in check constraints" msgstr "no se permiten funciones de agregación en restricciones «check»" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:482 msgid "grouping operations are not allowed in check constraints" msgstr "no se permiten operaciones «grouping» en restricciones «check»" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:489 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "no se permiten funciones de agregación en expresiones DEFAULT" -#: parser/parse_agg.c:487 +#: parser/parse_agg.c:491 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "no se permiten operaciones «grouping» en expresiones DEFAULT" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:496 msgid "aggregate functions are not allowed in index expressions" msgstr "no se permiten funciones de agregación en una expresión de índice" -#: parser/parse_agg.c:494 +#: parser/parse_agg.c:498 msgid "grouping operations are not allowed in index expressions" msgstr "no se permiten operaciones «grouping» en expresiones de índice" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:503 msgid "aggregate functions are not allowed in index predicates" msgstr "no se permiten funciones de agregación en predicados de índice" -#: parser/parse_agg.c:501 +#: parser/parse_agg.c:505 msgid "grouping operations are not allowed in index predicates" msgstr "no se permiten operaciones «grouping» en predicados de índice" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:510 msgid "aggregate functions are not allowed in statistics expressions" msgstr "no se permiten funciones de agregación en expresiones de estadísticas" -#: parser/parse_agg.c:508 +#: parser/parse_agg.c:512 msgid "grouping operations are not allowed in statistics expressions" msgstr "no se permiten operaciones «grouping» en expresiones de estadísticas" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:517 msgid "aggregate functions are not allowed in transform expressions" msgstr "no se permiten funciones de agregación en una expresión de transformación" -#: parser/parse_agg.c:515 +#: parser/parse_agg.c:519 msgid "grouping operations are not allowed in transform expressions" msgstr "no se permiten operaciones «grouping» en expresiones de transformación" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:524 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "no se permiten funciones de agregación en un parámetro a EXECUTE" -#: parser/parse_agg.c:522 +#: parser/parse_agg.c:526 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "no se permiten operaciones «grouping» en parámetros a EXECUTE" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:531 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "no se permiten funciones de agregación en condición WHEN de un disparador" -#: parser/parse_agg.c:529 +#: parser/parse_agg.c:533 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "no se permiten operaciones «grouping» en condiciones WHEN de un disparador" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:538 msgid "aggregate functions are not allowed in partition bound" msgstr "no se permiten funciones de agregación en borde de partición" -#: parser/parse_agg.c:536 +#: parser/parse_agg.c:540 msgid "grouping operations are not allowed in partition bound" msgstr "no se permiten operaciones «grouping» en borde de partición" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:545 msgid "aggregate functions are not allowed in partition key expressions" msgstr "no se permiten funciones de agregación en una expresión de llave de particionamiento" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:547 msgid "grouping operations are not allowed in partition key expressions" msgstr "no se permiten operaciones «grouping» en expresiones de llave de particionamiento" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:553 msgid "aggregate functions are not allowed in column generation expressions" msgstr "no se permiten funciones de agregación en expresiones de generación de columna" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:555 msgid "grouping operations are not allowed in column generation expressions" msgstr "no se permiten operaciones «grouping» en expresiones de generación de columna" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:561 msgid "aggregate functions are not allowed in CALL arguments" msgstr "no se permiten funciones de agregación en argumentos de CALL" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:563 msgid "grouping operations are not allowed in CALL arguments" msgstr "no se permiten operaciones «grouping» en argumentos de CALL" -#: parser/parse_agg.c:565 +#: parser/parse_agg.c:569 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten funciones de agregación en las condiciones WHERE de COPY FROM" -#: parser/parse_agg.c:567 +#: parser/parse_agg.c:571 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten las operaciones «grouping» en condiciones WHERE de COPY FROM" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:594 parser/parse_clause.c:1836 +#: parser/parse_agg.c:598 parser/parse_clause.c:1836 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "no se permiten funciones de agregación en %s" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:597 +#: parser/parse_agg.c:601 #, c-format msgid "grouping operations are not allowed in %s" msgstr "no se permiten operaciones «grouping» en %s" -#: parser/parse_agg.c:698 +#: parser/parse_agg.c:697 parser/parse_agg.c:734 +#, c-format +msgid "outer-level aggregate cannot use a nested CTE" +msgstr "una función de agregación de nivel externo no puede usar un CTE anidado" + +#: parser/parse_agg.c:698 parser/parse_agg.c:735 +#, c-format +msgid "CTE \"%s\" is below the aggregate's semantic level." +msgstr "El CTE «%s» está debajo del nivel semántico de la función de agregación." + +#: parser/parse_agg.c:720 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "una función de agregación de nivel exterior no puede contener una variable de nivel inferior en sus argumentos directos" -#: parser/parse_agg.c:776 +#: parser/parse_agg.c:805 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones que retornan conjuntos" -#: parser/parse_agg.c:777 parser/parse_expr.c:1674 parser/parse_expr.c:2164 +#: parser/parse_agg.c:806 parser/parse_expr.c:1674 parser/parse_expr.c:2164 #: parser/parse_func.c:883 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Puede intentar mover la función que retorna conjuntos a un elemento LATERAL FROM." -#: parser/parse_agg.c:782 +#: parser/parse_agg.c:811 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "las llamadas a funciones de agregación no pueden contener llamadas a funciones de ventana deslizante" -#: parser/parse_agg.c:887 +#: parser/parse_agg.c:914 msgid "window functions are not allowed in JOIN conditions" msgstr "no se permiten funciones de ventana deslizante en condiciones JOIN" -#: parser/parse_agg.c:894 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in functions in FROM" msgstr "no se permiten funciones de ventana deslizante en funciones en FROM" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in policy expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de políticas" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in window definitions" msgstr "no se permiten funciones de ventana deslizante en definiciones de ventana deslizante" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "no se permiten funciones de ventana deslizante en condiciones MERGE WHEN" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:975 msgid "window functions are not allowed in check constraints" msgstr "no se permiten funciones de ventana deslizante en restricciones «check»" -#: parser/parse_agg.c:952 +#: parser/parse_agg.c:979 msgid "window functions are not allowed in DEFAULT expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones DEFAULT" -#: parser/parse_agg.c:955 +#: parser/parse_agg.c:982 msgid "window functions are not allowed in index expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de índice" -#: parser/parse_agg.c:958 +#: parser/parse_agg.c:985 msgid "window functions are not allowed in statistics expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de estadísticas" -#: parser/parse_agg.c:961 +#: parser/parse_agg.c:988 msgid "window functions are not allowed in index predicates" msgstr "no se permiten funciones de ventana deslizante en predicados de índice" -#: parser/parse_agg.c:964 +#: parser/parse_agg.c:991 msgid "window functions are not allowed in transform expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de transformación" -#: parser/parse_agg.c:967 +#: parser/parse_agg.c:994 msgid "window functions are not allowed in EXECUTE parameters" msgstr "no se permiten funciones de ventana deslizante en parámetros a EXECUTE" -#: parser/parse_agg.c:970 +#: parser/parse_agg.c:997 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "no se permiten funciones de ventana deslizante en condiciones WHEN de un disparador" -#: parser/parse_agg.c:973 +#: parser/parse_agg.c:1000 msgid "window functions are not allowed in partition bound" msgstr "no se permiten funciones de ventana deslizante en borde de partición" -#: parser/parse_agg.c:976 +#: parser/parse_agg.c:1003 msgid "window functions are not allowed in partition key expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de llave de particionamiento" -#: parser/parse_agg.c:979 +#: parser/parse_agg.c:1006 msgid "window functions are not allowed in CALL arguments" msgstr "no se permiten funciones de ventana deslizante en argumentos de CALL" -#: parser/parse_agg.c:982 +#: parser/parse_agg.c:1009 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "no se permiten funciones de ventana deslizante en las condiciones WHERE de COPY FROM" -#: parser/parse_agg.c:985 +#: parser/parse_agg.c:1012 msgid "window functions are not allowed in column generation expressions" msgstr "no se permiten funciones de ventana deslizante en expresiones de generación de columna" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:1008 parser/parse_clause.c:1845 +#: parser/parse_agg.c:1035 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "no se permiten funciones de ventana deslizante en %s" -#: parser/parse_agg.c:1042 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1069 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "la ventana «%s» no existe" -#: parser/parse_agg.c:1126 +#: parser/parse_agg.c:1153 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "demasiados conjuntos «grouping» presentes (máximo 4096)" -#: parser/parse_agg.c:1266 +#: parser/parse_agg.c:1293 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "no se permiten funciones de agregación en el término recursivo de una consulta recursiva" -#: parser/parse_agg.c:1459 +#: parser/parse_agg.c:1486 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "la columna «%s.%s» debe aparecer en la cláusula GROUP BY o ser usada en una función de agregación" -#: parser/parse_agg.c:1462 +#: parser/parse_agg.c:1489 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Argumentos directos de una función de agregación de conjuntos ordenados debe usar sólo columnas agrupadas." -#: parser/parse_agg.c:1467 +#: parser/parse_agg.c:1494 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "la subconsulta usa la columna «%s.%s» no agrupada de una consulta exterior" -#: parser/parse_agg.c:1631 +#: parser/parse_agg.c:1658 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "los argumentos de GROUPING deben ser expresiones agrupantes del nivel de consulta asociado" @@ -18156,22 +18181,22 @@ msgstr "FROM debe especificar exactamente un valor por cada columna de particion msgid "TO must specify exactly one value per partitioning column" msgstr "TO debe especificar exactamente un valor por cada columna de particionado" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4282 #, c-format msgid "cannot specify NULL in range bound" msgstr "no se puede especificar NULL en borde de rango" -#: parser/parse_utilcmd.c:4329 +#: parser/parse_utilcmd.c:4330 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "cada borde que sigue a un MAXVALUE debe ser también MAXVALUE" -#: parser/parse_utilcmd.c:4336 +#: parser/parse_utilcmd.c:4337 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "cada borde que siga a un MINVALUE debe ser también MINVALUE" -#: parser/parse_utilcmd.c:4379 +#: parser/parse_utilcmd.c:4380 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "el valor especificado no puede ser convertido al tipo %s para la columna «%s»" @@ -19352,117 +19377,118 @@ msgstr "no se pudo determinar qué ordenamiento usar para la expresión regular" msgid "nondeterministic collations are not supported for regular expressions" msgstr "los ordenamientos no determinísticos no están soportados para expresiones regulares" -#: replication/libpqwalreceiver/libpqwalreceiver.c:233 +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 #, c-format msgid "could not clear search path: %s" msgstr "no se pudo limpiar la ruta de búsqueda: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:273 +#: replication/libpqwalreceiver/libpqwalreceiver.c:286 +#: replication/libpqwalreceiver/libpqwalreceiver.c:444 #, c-format msgid "invalid connection string syntax: %s" msgstr "sintaxis de cadena de conexión no válida: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:299 +#: replication/libpqwalreceiver/libpqwalreceiver.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "no se pudo interpretar la cadena de conexión: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:372 +#: replication/libpqwalreceiver/libpqwalreceiver.c:385 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "no se pudo recibir el identificador de sistema y el ID de timeline del servidor primario: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:388 -#: replication/libpqwalreceiver/libpqwalreceiver.c:626 +#: replication/libpqwalreceiver/libpqwalreceiver.c:402 +#: replication/libpqwalreceiver/libpqwalreceiver.c:685 #, c-format msgid "invalid response from primary server" msgstr "respuesta no válida del servidor primario" -#: replication/libpqwalreceiver/libpqwalreceiver.c:389 +#: replication/libpqwalreceiver/libpqwalreceiver.c:403 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "No se pudo identificar el sistema: se obtuvieron %d filas y %d campos, se esperaban %d filas y %d o más campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:469 -#: replication/libpqwalreceiver/libpqwalreceiver.c:476 -#: replication/libpqwalreceiver/libpqwalreceiver.c:506 +#: replication/libpqwalreceiver/libpqwalreceiver.c:528 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 +#: replication/libpqwalreceiver/libpqwalreceiver.c:565 #, c-format msgid "could not start WAL streaming: %s" msgstr "no se pudo iniciar el flujo de WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:530 +#: replication/libpqwalreceiver/libpqwalreceiver.c:589 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "no se pudo enviar el mensaje fin-de-flujo al primario: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:553 +#: replication/libpqwalreceiver/libpqwalreceiver.c:612 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "conjunto de resultados inesperado después del fin-de-flujo" -#: replication/libpqwalreceiver/libpqwalreceiver.c:568 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ocurrió un error mientras se apagaba el flujo COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:578 +#: replication/libpqwalreceiver/libpqwalreceiver.c:637 #, c-format msgid "error reading result of streaming command: %s" msgstr "ocurrió un error mientras se leía la orden de flujo: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 -#: replication/libpqwalreceiver/libpqwalreceiver.c:822 +#: replication/libpqwalreceiver/libpqwalreceiver.c:646 +#: replication/libpqwalreceiver/libpqwalreceiver.c:881 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "resultado inesperado después de CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:614 +#: replication/libpqwalreceiver/libpqwalreceiver.c:673 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "no se pudo recibir el archivo de historia de timeline del servidor primario: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:627 +#: replication/libpqwalreceiver/libpqwalreceiver.c:686 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Se esperaba 1 tupla con 2 campos, se obtuvieron %d tuplas con %d campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:785 -#: replication/libpqwalreceiver/libpqwalreceiver.c:838 -#: replication/libpqwalreceiver/libpqwalreceiver.c:845 +#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:897 +#: replication/libpqwalreceiver/libpqwalreceiver.c:904 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "no se pudo recibir datos desde el flujo de WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:865 +#: replication/libpqwalreceiver/libpqwalreceiver.c:924 #, c-format msgid "could not send data to WAL stream: %s" msgstr "no se pudo enviar datos al flujo de WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:957 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1016 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "no se pudo create el slot de replicación «%s»: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1062 #, c-format msgid "invalid query response" msgstr "respuesta no válida a consulta" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1004 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1063 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Se esperaban %d campos, se obtuvieron %d campos." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1074 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1133 #, c-format msgid "the query interface requires a database connection" msgstr "la interfaz de consulta requiere una conexión a base de datos" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1105 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1164 msgid "empty query" msgstr "consulta vacía" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1111 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1170 msgid "unexpected pipeline mode" msgstr "modo pipeline inesperado" @@ -19517,12 +19543,12 @@ msgstr "decodificación lógica requiere una conexión a una base de datos" msgid "logical decoding cannot be used while in recovery" msgstr "la decodificación lógica no puede ejecutarse durante la recuperación" -#: replication/logical/logical.c:351 replication/logical/logical.c:505 +#: replication/logical/logical.c:351 replication/logical/logical.c:507 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "no se puede usar un slot de replicación física para decodificación lógica" -#: replication/logical/logical.c:356 replication/logical/logical.c:510 +#: replication/logical/logical.c:356 replication/logical/logical.c:512 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "el slot de replicación «%s» no fue creado en esta base de datos" @@ -19532,41 +19558,41 @@ msgstr "el slot de replicación «%s» no fue creado en esta base de datos" msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "no se puede crear un slot de replicación lógica en una transacción que ha efectuado escrituras" -#: replication/logical/logical.c:573 +#: replication/logical/logical.c:575 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "iniciando la decodificación lógica para el slot «%s»" -#: replication/logical/logical.c:575 +#: replication/logical/logical.c:577 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Transacciones en flujo comprometiendo después de %X/%X, leyendo WAL desde %X/%X." -#: replication/logical/logical.c:723 +#: replication/logical/logical.c:725 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "slot «%s», plugin de salida «%s», en el callback %s, LSN asociado %X/%X" # FIXME must quote callback name? Need a translator: comment? -#: replication/logical/logical.c:729 +#: replication/logical/logical.c:731 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "slot «%s», plugin de salida «%s», en el callback %s" -#: replication/logical/logical.c:900 replication/logical/logical.c:945 -#: replication/logical/logical.c:990 replication/logical/logical.c:1036 +#: replication/logical/logical.c:902 replication/logical/logical.c:947 +#: replication/logical/logical.c:992 replication/logical/logical.c:1038 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "durante la preparación, la replicación lógica requiere una función callback %s" -#: replication/logical/logical.c:1268 replication/logical/logical.c:1317 -#: replication/logical/logical.c:1358 replication/logical/logical.c:1444 -#: replication/logical/logical.c:1493 +#: replication/logical/logical.c:1270 replication/logical/logical.c:1319 +#: replication/logical/logical.c:1360 replication/logical/logical.c:1446 +#: replication/logical/logical.c:1495 #, c-format msgid "logical streaming requires a %s callback" msgstr "el flujo lógico requiere una función callback %s" -#: replication/logical/logical.c:1403 +#: replication/logical/logical.c:1405 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "durante la preparación, el flujo lógico requiere una función callback %s" @@ -19673,7 +19699,7 @@ msgid "could not find free replication state slot for replication origin with ID msgstr "no se pudo encontrar un slot libre para el estado del origen de replicación con ID %d" #: replication/logical/origin.c:941 replication/logical/origin.c:1131 -#: replication/slot.c:1983 +#: replication/slot.c:2014 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Aumente max_replication_slots y reintente." @@ -19859,22 +19885,17 @@ msgstr "no se pudo obtener información de la cláusula WHERE para la tabla «%s msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "no se pudo iniciar la copia de contenido inicial para de la tabla «%s.%s»: %s" -#: replication/logical/tablesync.c:1369 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1383 replication/logical/worker.c:1635 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "el usuario «%s» no puede replicar en relaciones con seguridad de registros activa: «%s»" -#: replication/logical/tablesync.c:1384 +#: replication/logical/tablesync.c:1398 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "la copia de la tabla no pudo iniciar una transacción en el editor (publisher): %s" -#: replication/logical/tablesync.c:1426 -#, c-format -msgid "replication origin \"%s\" already exists" -msgstr "el origen de replicación «%s» ya existe" - -#: replication/logical/tablesync.c:1439 +#: replication/logical/tablesync.c:1437 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "la copia de tabla no pudo terminar la transacción en el editor (publisher): %s" @@ -20019,42 +20040,42 @@ msgstr "proto_version no válido" msgid "proto_version \"%s\" out of range" msgstr "proto_version «%s» fuera de rango" -#: replication/pgoutput/pgoutput.c:349 +#: replication/pgoutput/pgoutput.c:353 #, c-format msgid "invalid publication_names syntax" msgstr "sintaxis de publication_names no válida" -#: replication/pgoutput/pgoutput.c:464 +#: replication/pgoutput/pgoutput.c:468 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or lower" msgstr "el cliente envió proto_version=%d pero sólo soportamos el protocolo %d o inferior" -#: replication/pgoutput/pgoutput.c:470 +#: replication/pgoutput/pgoutput.c:474 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or higher" msgstr "el cliente envió proto_version=%d pero sólo soportamos el protocolo %d o superior" -#: replication/pgoutput/pgoutput.c:476 +#: replication/pgoutput/pgoutput.c:480 #, c-format msgid "publication_names parameter missing" msgstr "parámetro publication_names faltante" -#: replication/pgoutput/pgoutput.c:489 +#: replication/pgoutput/pgoutput.c:493 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "la proto_version=%d no soporta flujo, se necesita %d o superior" -#: replication/pgoutput/pgoutput.c:494 +#: replication/pgoutput/pgoutput.c:498 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "se solicitó flujo, pero no está soportado por plugin de salida" -#: replication/pgoutput/pgoutput.c:511 +#: replication/pgoutput/pgoutput.c:515 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "la proto_version=%d solicitada no soporta «two-phase commit», se necesita %d o superior" -#: replication/pgoutput/pgoutput.c:516 +#: replication/pgoutput/pgoutput.c:520 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "«two-phase commit» fue solicitado, pero no está soportado por el plugin de salida" @@ -20099,86 +20120,86 @@ msgstr "Libere uno o incremente max_replication_slots." msgid "replication slot \"%s\" does not exist" msgstr "no existe el slot de replicación «%s»" -#: replication/slot.c:547 replication/slot.c:1122 +#: replication/slot.c:547 replication/slot.c:1151 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "el slot de replicación «%s» está activo para el PID %d" -#: replication/slot.c:783 replication/slot.c:1528 replication/slot.c:1918 +#: replication/slot.c:783 replication/slot.c:1559 replication/slot.c:1949 #, c-format msgid "could not remove directory \"%s\"" msgstr "no se pudo eliminar el directorio «%s»" -#: replication/slot.c:1157 +#: replication/slot.c:1186 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "los slots de replicación sólo pueden usarse si max_replication_slots > 0" # FIXME see logical.c:81 -#: replication/slot.c:1162 +#: replication/slot.c:1191 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "los slots de replicación sólo pueden usarse si wal_level >= replica" -#: replication/slot.c:1174 +#: replication/slot.c:1203 #, c-format msgid "must be superuser or replication role to use replication slots" msgstr "debe ser superusuario o rol de replicación para usar slots de replicación" -#: replication/slot.c:1359 +#: replication/slot.c:1390 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "terminando el proceso %d para liberar el slot de replicación «%s»" -#: replication/slot.c:1397 +#: replication/slot.c:1428 #, c-format msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" msgstr "invalidando el slot «%s» porque su restart_lsn %X/%X excede max_slot_wal_keep_size" -#: replication/slot.c:1856 +#: replication/slot.c:1887 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "el archivo de slot de replicación «%s» tiene número mágico erróneo: %u en lugar de %u" -#: replication/slot.c:1863 +#: replication/slot.c:1894 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "el archivo de slot de replicación «%s» tiene versión no soportada %u" -#: replication/slot.c:1870 +#: replication/slot.c:1901 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "el archivo de slot de replicación «%s» tiene largo corrupto %u" -#: replication/slot.c:1906 +#: replication/slot.c:1937 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "suma de verificación no coincidente en archivo de slot de replicación «%s»: es %u, debería ser %u" # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/slot.c:1940 +#: replication/slot.c:1971 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "existe el slot de replicación lógica «%s», pero wal_level < logical" -#: replication/slot.c:1942 +#: replication/slot.c:1973 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Cambie wal_level a logical o superior." # FIXME see slot.c:779. See also postmaster.c:835 -#: replication/slot.c:1946 +#: replication/slot.c:1977 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "existe el slot de replicación lógica «%s», pero wal_level < logical" # <> hello vim -#: replication/slot.c:1948 +#: replication/slot.c:1979 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Cambie wal_level a replica o superior." -#: replication/slot.c:1982 +#: replication/slot.c:2013 #, c-format msgid "too many replication slots active before shutdown" msgstr "demasiados slots de replicación activos antes del apagado" @@ -20348,7 +20369,7 @@ msgstr "no se pudo escribir al segmento de log %s en la posición %u, largo %lu: msgid "cannot use %s with a logical replication slot" msgstr "no se puede usar %s con un slot de replicación lógica" -#: replication/walsender.c:652 storage/smgr/md.c:1379 +#: replication/walsender.c:652 storage/smgr/md.c:1382 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "no se pudo posicionar (seek) al fin del archivo «%s»: %m" @@ -20696,200 +20717,200 @@ msgstr "no se permite cambiar el nombre de una regla ON SELECT" msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "el nombre de consulta WITH «%s» aparece tanto en una acción de regla y en la consulta que está siendo reescrita" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:613 #, c-format msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" msgstr "las acciones de reglas INSERT...SELECT no están soportadas para consultas que tengan sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:666 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "no se puede usar RETURNING en múltiples reglas" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:898 rewrite/rewriteHandler.c:937 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "no se puede insertar un valor no-predeterminado en la columna «%s»" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:966 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "La columna \"%s\" es una columna de identidad definida como GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:902 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Use OVERRIDING SYSTEM VALUE para controlar manualmente." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:964 rewrite/rewriteHandler.c:972 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "la columna «%s» sólo puede actualizarse a DEFAULT" -#: rewrite/rewriteHandler.c:1104 rewrite/rewriteHandler.c:1122 +#: rewrite/rewriteHandler.c:1107 rewrite/rewriteHandler.c:1125 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "hay múltiples asignaciones a la misma columna «%s»" -#: rewrite/rewriteHandler.c:1727 rewrite/rewriteHandler.c:3182 +#: rewrite/rewriteHandler.c:1730 rewrite/rewriteHandler.c:3185 #, c-format msgid "access to non-system view \"%s\" is restricted" msgstr "el acceso a la vista «%s» que no son de sistema está restringido" -#: rewrite/rewriteHandler.c:2159 rewrite/rewriteHandler.c:4111 +#: rewrite/rewriteHandler.c:2162 rewrite/rewriteHandler.c:4131 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "se detectó recursión infinita en las reglas de la relación «%s»" -#: rewrite/rewriteHandler.c:2264 +#: rewrite/rewriteHandler.c:2267 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "se detectó recursión infinita en la política para la relación «%s»" -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2597 msgid "Junk view columns are not updatable." msgstr "Las columnas «basura» de vistas no son actualizables." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2602 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Las columnas de vistas que no son columnas de su relación base no son actualizables." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2605 msgid "View columns that refer to system columns are not updatable." msgstr "Las columnas de vistas que se refieren a columnas de sistema no son actualizables." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2608 msgid "View columns that return whole-row references are not updatable." msgstr "Las columnas de vistas que retornan referencias a la fila completa no son actualizables." # XXX a %s here would be nice ... -#: rewrite/rewriteHandler.c:2666 +#: rewrite/rewriteHandler.c:2669 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Las vistas que contienen DISTINCT no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2669 +#: rewrite/rewriteHandler.c:2672 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Las vistas que contienen GROUP BY no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2675 msgid "Views containing HAVING are not automatically updatable." msgstr "Las vistas que contienen HAVING no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2678 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Las vistas que contienen UNION, INTERSECT o EXCEPT no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2678 +#: rewrite/rewriteHandler.c:2681 msgid "Views containing WITH are not automatically updatable." msgstr "Las vistas que contienen WITH no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2681 +#: rewrite/rewriteHandler.c:2684 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Las vistas que contienen LIMIT u OFFSET no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2693 +#: rewrite/rewriteHandler.c:2696 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Las vistas que retornan funciones de agregación no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2696 +#: rewrite/rewriteHandler.c:2699 msgid "Views that return window functions are not automatically updatable." msgstr "Las vistas que retornan funciones ventana no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2699 +#: rewrite/rewriteHandler.c:2702 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Las vistas que retornan funciones-que-retornan-conjuntos no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2706 rewrite/rewriteHandler.c:2710 -#: rewrite/rewriteHandler.c:2718 +#: rewrite/rewriteHandler.c:2709 rewrite/rewriteHandler.c:2713 +#: rewrite/rewriteHandler.c:2721 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Las vistas que no extraen desde una única tabla o vista no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2721 +#: rewrite/rewriteHandler.c:2724 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Las vistas que contienen TABLESAMPLE no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:2745 +#: rewrite/rewriteHandler.c:2748 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Las vistas que no tienen columnas actualizables no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:3242 +#: rewrite/rewriteHandler.c:3245 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "no se puede insertar en la columna «%s» de la vista «%s»" -#: rewrite/rewriteHandler.c:3250 +#: rewrite/rewriteHandler.c:3253 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "no se puede actualizar la columna «%s» vista «%s»" -#: rewrite/rewriteHandler.c:3738 +#: rewrite/rewriteHandler.c:3757 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD NOTIFY no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3749 +#: rewrite/rewriteHandler.c:3768 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD NOTHING no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3763 +#: rewrite/rewriteHandler.c:3782 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD condicionales no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO ALSO no están soportadas para sentencias que modifiquen datos en WITH" -#: rewrite/rewriteHandler.c:3772 +#: rewrite/rewriteHandler.c:3791 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "las reglas DO INSTEAD de múltiples sentencias no están soportadas para sentencias que modifiquen datos en WITH" # XXX a %s here would be nice ... -#: rewrite/rewriteHandler.c:4039 rewrite/rewriteHandler.c:4047 -#: rewrite/rewriteHandler.c:4055 +#: rewrite/rewriteHandler.c:4059 rewrite/rewriteHandler.c:4067 +#: rewrite/rewriteHandler.c:4075 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Las vistas con reglas DO INSTEAD condicionales no son automáticamente actualizables." -#: rewrite/rewriteHandler.c:4160 +#: rewrite/rewriteHandler.c:4181 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "no se puede hacer INSERT RETURNING a la relación «%s»" -#: rewrite/rewriteHandler.c:4162 +#: rewrite/rewriteHandler.c:4183 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Necesita un regla incondicional ON INSERT DO INSTEAD con una cláusula RETURNING." -#: rewrite/rewriteHandler.c:4167 +#: rewrite/rewriteHandler.c:4188 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "no se puede hacer UPDATE RETURNING a la relación «%s»" -#: rewrite/rewriteHandler.c:4169 +#: rewrite/rewriteHandler.c:4190 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Necesita un regla incondicional ON UPDATE DO INSTEAD con una cláusula RETURNING." -#: rewrite/rewriteHandler.c:4174 +#: rewrite/rewriteHandler.c:4195 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "no se puede hacer DELETE RETURNING a la relación «%s»" -#: rewrite/rewriteHandler.c:4176 +#: rewrite/rewriteHandler.c:4197 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Necesita un regla incondicional ON DELETE DO INSTEAD con una clásula RETURNING." -#: rewrite/rewriteHandler.c:4194 +#: rewrite/rewriteHandler.c:4215 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT con una cláusula ON CONFLICT no puede usarse con una tabla que tiene reglas INSERT o UPDATE" -#: rewrite/rewriteHandler.c:4251 +#: rewrite/rewriteHandler.c:4272 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH no puede ser usado en una consulta que está siendo convertida en múltiples consultas a través de reglas" @@ -20950,47 +20971,47 @@ msgstr "el objeto de estadísticas «%s.%s» no pudo ser calculado para la relac msgid "function returning record called in context that cannot accept type record" msgstr "se llamó una función que retorna un registro en un contexto que no puede aceptarlo" -#: storage/buffer/bufmgr.c:603 storage/buffer/bufmgr.c:773 +#: storage/buffer/bufmgr.c:610 storage/buffer/bufmgr.c:780 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "no se pueden acceder tablas temporales de otras sesiones" -#: storage/buffer/bufmgr.c:851 +#: storage/buffer/bufmgr.c:858 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "no se puede extender la relación %s más allá de %u bloques" -#: storage/buffer/bufmgr.c:938 +#: storage/buffer/bufmgr.c:945 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "datos inesperados más allá del EOF en el bloque %u de relación %s" -#: storage/buffer/bufmgr.c:940 +#: storage/buffer/bufmgr.c:947 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Esto parece ocurrir sólo con kernels defectuosos; considere actualizar su sistema." -#: storage/buffer/bufmgr.c:1039 +#: storage/buffer/bufmgr.c:1046 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "la página no es válida en el bloque %u de la relación «%s»; reinicializando la página" -#: storage/buffer/bufmgr.c:4671 +#: storage/buffer/bufmgr.c:4737 #, c-format msgid "could not write block %u of %s" msgstr "no se pudo escribir el bloque %u de %s" -#: storage/buffer/bufmgr.c:4673 +#: storage/buffer/bufmgr.c:4739 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Múltiples fallas --- el error de escritura puede ser permanente." -#: storage/buffer/bufmgr.c:4694 storage/buffer/bufmgr.c:4713 +#: storage/buffer/bufmgr.c:4760 storage/buffer/bufmgr.c:4779 #, c-format msgid "writing block %u of relation %s" msgstr "escribiendo el bloque %u de la relación %s" -#: storage/buffer/bufmgr.c:5017 +#: storage/buffer/bufmgr.c:5083 #, c-format msgid "snapshot too old" msgstr "snapshot demasiado antiguo" @@ -21020,7 +21041,7 @@ msgstr "no se pudo determinar el tamaño del archivo temporal «%s» del BufFile msgid "could not delete fileset \"%s\": %m" msgstr "no se pudo borrar el “fileset” «%s»: %m" -#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:909 +#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:912 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "no se pudo truncar el archivo «%s»: %m" @@ -21718,22 +21739,22 @@ msgstr "no se pudo escribir el bloque %u en el archivo «%s»: %m" msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "no se pudo escribir el bloque %u en el archivo «%s»: se escribieron sólo %d de %d bytes" -#: storage/smgr/md.c:880 +#: storage/smgr/md.c:883 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "no se pudo truncar el archivo «%s» a %u bloques: es de sólo %u bloques ahora" -#: storage/smgr/md.c:935 +#: storage/smgr/md.c:938 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "no se pudo truncar el archivo «%s» a %u bloques: %m" -#: storage/smgr/md.c:1344 +#: storage/smgr/md.c:1347 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): el segmento previo sólo tiene %u bloques" -#: storage/smgr/md.c:1358 +#: storage/smgr/md.c:1361 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "no se pudo abrir el archivo «%s» (bloque buscado %u): %m" @@ -22797,8 +22818,8 @@ msgstr "los arrays con elementos null no son permitidos en este contexto" msgid "cannot compare arrays of different element types" msgstr "no se pueden comparar arrays con elementos de distintos tipos" -#: utils/adt/arrayfuncs.c:4034 utils/adt/multirangetypes.c:2799 -#: utils/adt/multirangetypes.c:2871 utils/adt/rangetypes.c:1343 +#: utils/adt/arrayfuncs.c:4034 utils/adt/multirangetypes.c:2800 +#: utils/adt/multirangetypes.c:2872 utils/adt/rangetypes.c:1343 #: utils/adt/rangetypes.c:1407 utils/adt/rowtypes.c:1858 #, c-format msgid "could not identify a hash function for type %s" @@ -24365,12 +24386,12 @@ msgstr "Se esperaba inicio de rango." msgid "Expected comma or end of multirange." msgstr "Se esperaba una coma o el final del multirango." -#: utils/adt/multirangetypes.c:976 +#: utils/adt/multirangetypes.c:977 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "no se puede construir multirangos a partir de arrays multidimensionales" -#: utils/adt/multirangetypes.c:1002 +#: utils/adt/multirangetypes.c:1003 #, c-format msgid "multirange values cannot contain null members" msgstr "valores de multirango no pueden contener miembros nulos" @@ -24589,94 +24610,94 @@ msgstr "el carácter pedido no es válido para el encoding: %u" msgid "percentile value %g is not between 0 and 1" msgstr "el valor de percentil %g no está entre 0 y 1" -#: utils/adt/pg_locale.c:1231 +#: utils/adt/pg_locale.c:1232 #, c-format msgid "Apply system library package updates." msgstr "Aplique actualizaciones de paquetes de bibliotecas del sistema." -#: utils/adt/pg_locale.c:1455 utils/adt/pg_locale.c:1703 -#: utils/adt/pg_locale.c:1982 utils/adt/pg_locale.c:2004 +#: utils/adt/pg_locale.c:1458 utils/adt/pg_locale.c:1706 +#: utils/adt/pg_locale.c:1985 utils/adt/pg_locale.c:2007 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "no se pudo abrir el «collator» para la configuración regional «%s»: %s" -#: utils/adt/pg_locale.c:1468 utils/adt/pg_locale.c:2013 +#: utils/adt/pg_locale.c:1471 utils/adt/pg_locale.c:2016 #, c-format msgid "ICU is not supported in this build" msgstr "ICU no está soportado en este servidor" -#: utils/adt/pg_locale.c:1497 +#: utils/adt/pg_locale.c:1500 #, c-format msgid "could not create locale \"%s\": %m" msgstr "no se pudo crear la configuración regional «%s»: %m" -#: utils/adt/pg_locale.c:1500 +#: utils/adt/pg_locale.c:1503 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "El sistema operativo no pudo encontrar datos para la configuración regional «%s»." -#: utils/adt/pg_locale.c:1608 +#: utils/adt/pg_locale.c:1611 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "los ordenamientos (collation) con valores collate y ctype diferentes no están soportados en esta plataforma" -#: utils/adt/pg_locale.c:1617 +#: utils/adt/pg_locale.c:1620 #, c-format msgid "collation provider LIBC is not supported on this platform" msgstr "el proveedor de ordenamientos LIBC no está soportado en esta plataforma" -#: utils/adt/pg_locale.c:1652 +#: utils/adt/pg_locale.c:1655 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "la “collation” «%s» no tiene versión actual, pero una versión fue registrada" -#: utils/adt/pg_locale.c:1658 +#: utils/adt/pg_locale.c:1661 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "el ordenamiento (collation) «%s» tiene una discordancia de versión" -#: utils/adt/pg_locale.c:1660 +#: utils/adt/pg_locale.c:1663 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "El ordenamiento en la base de datos fue creado usando la versión %s, pero el sistema operativo provee la versión %s." -#: utils/adt/pg_locale.c:1663 +#: utils/adt/pg_locale.c:1666 #, 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 "Reconstruya todos los objetos afectados por este ordenamiento y ejecute ALTER COLLATION %s REFRESH VERSION, o construya PostgreSQL con la versión correcta de la biblioteca." -#: utils/adt/pg_locale.c:1734 +#: utils/adt/pg_locale.c:1737 #, c-format msgid "could not load locale \"%s\"" msgstr "no se pudo cargar la configuración regional «%s»" -#: utils/adt/pg_locale.c:1759 +#: utils/adt/pg_locale.c:1762 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "no se pudo obtener la versión de «collation» para la configuración regional «%s»: código de error %lu" -#: utils/adt/pg_locale.c:1797 +#: utils/adt/pg_locale.c:1800 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "la codificación «%s» no está soportada por ICU" -#: utils/adt/pg_locale.c:1804 +#: utils/adt/pg_locale.c:1807 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "no se pudo abrir el conversor ICU para la codificación «%s»: %s" -#: utils/adt/pg_locale.c:1835 utils/adt/pg_locale.c:1844 -#: utils/adt/pg_locale.c:1873 utils/adt/pg_locale.c:1883 +#: utils/adt/pg_locale.c:1838 utils/adt/pg_locale.c:1847 +#: utils/adt/pg_locale.c:1876 utils/adt/pg_locale.c:1886 #, c-format msgid "%s failed: %s" msgstr "%s falló: %s" -#: utils/adt/pg_locale.c:2182 +#: utils/adt/pg_locale.c:2185 #, c-format msgid "invalid multibyte character for locale" msgstr "el carácter multibyte no es válido para esta configuración regional" -#: utils/adt/pg_locale.c:2183 +#: utils/adt/pg_locale.c:2186 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "El LC_CTYPE de la configuración regional del servidor es probablemente incompatible con la codificación de la base de datos." @@ -25569,7 +25590,7 @@ msgstr "característica XML no soportada" msgid "This functionality requires the server to be built with libxml support." msgstr "Esta funcionalidad requiere que el servidor haya sido construido con soporte libxml." -#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "nombre de codificación «%s» no válido" @@ -25749,27 +25770,27 @@ msgstr "falta la función de soporte %3$d para el tipo %4$s de la clase de opera msgid "cached plan must not change result type" msgstr "el plan almacenado no debe cambiar el tipo de resultado" -#: utils/cache/relcache.c:3755 +#: utils/cache/relcache.c:3771 #, c-format msgid "heap relfilenode value not set when in binary upgrade mode" msgstr "el valor de relfilende del “heap” no se definió en modo de actualización binaria" -#: utils/cache/relcache.c:3763 +#: utils/cache/relcache.c:3779 #, c-format msgid "unexpected request for new relfilenode in binary upgrade mode" msgstr "petición inesperada de un nuevo relfilenode en modo de actualización binaria" -#: utils/cache/relcache.c:6476 +#: utils/cache/relcache.c:6492 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "no se pudo crear el archivo de cache de catálogos de sistema «%s»: %m" -#: utils/cache/relcache.c:6478 +#: utils/cache/relcache.c:6494 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Prosiguiendo de todas maneras, pero hay algo mal." -#: utils/cache/relcache.c:6800 +#: utils/cache/relcache.c:6816 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "no se pudo eliminar el archivo de cache «%s»: %m" @@ -26390,48 +26411,48 @@ msgstr "ID de codificación %d inesperado para juegos de caracteres ISO 8859" msgid "unexpected encoding ID %d for WIN character sets" msgstr "ID de codificación %d inesperado para juegos de caracteres WIN" -#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 +#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 #, c-format msgid "conversion between %s and %s is not supported" msgstr "la conversión entre %s y %s no está soportada" -#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 -#: utils/mb/mbutils.c:842 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 +#: utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "La cadena de %d bytes es demasiado larga para la recodificación." -#: utils/mb/mbutils.c:568 +#: utils/mb/mbutils.c:569 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "la codificación de origen «%s» no es válida" -#: utils/mb/mbutils.c:573 +#: utils/mb/mbutils.c:574 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "la codificación de destino «%s» no es válida" -#: utils/mb/mbutils.c:713 +#: utils/mb/mbutils.c:714 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "byte no válido para codificación «%s»: 0x%02x" -#: utils/mb/mbutils.c:877 +#: utils/mb/mbutils.c:878 #, c-format msgid "invalid Unicode code point" msgstr "punto de código Unicode no válido" -#: utils/mb/mbutils.c:1146 +#: utils/mb/mbutils.c:1147 #, c-format msgid "bind_textdomain_codeset failed" msgstr "bind_textdomain_codeset falló" -#: utils/mb/mbutils.c:1667 +#: utils/mb/mbutils.c:1668 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "secuencia de bytes no válida para codificación «%s»: %s" -#: utils/mb/mbutils.c:1708 +#: utils/mb/mbutils.c:1709 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "carácter con secuencia de bytes %s en codificación «%s» no tiene equivalente en la codificación «%s»" @@ -28744,15 +28765,15 @@ msgstr "Falla al crear el contexto de memoria «%s»." msgid "could not attach to dynamic shared area" msgstr "no se pudo adjuntar al segmento de memoria compartida dinámica" -#: utils/mmgr/mcxt.c:889 utils/mmgr/mcxt.c:925 utils/mmgr/mcxt.c:963 -#: utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1120 -#: utils/mmgr/mcxt.c:1156 utils/mmgr/mcxt.c:1208 utils/mmgr/mcxt.c:1243 -#: utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:892 utils/mmgr/mcxt.c:928 utils/mmgr/mcxt.c:966 +#: utils/mmgr/mcxt.c:1004 utils/mmgr/mcxt.c:1112 utils/mmgr/mcxt.c:1143 +#: utils/mmgr/mcxt.c:1179 utils/mmgr/mcxt.c:1231 utils/mmgr/mcxt.c:1266 +#: utils/mmgr/mcxt.c:1301 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Falló una petición de tamaño %zu en el contexto de memoria «%s»." -#: utils/mmgr/mcxt.c:1052 +#: utils/mmgr/mcxt.c:1067 #, c-format msgid "logging memory contexts of PID %d" msgstr "registrando contextos de memoria del PID %d" @@ -28802,24 +28823,24 @@ msgstr "no se pudo posicionar (seek) en el bloque %ld del archivo temporal" msgid "could not read block %ld of temporary file: read only %zu of %zu bytes" msgstr "no se pudo leer el bloque %ld del archivo temporal: se leyeron sólo %zu de %zu bytes" -#: utils/sort/sharedtuplestore.c:432 utils/sort/sharedtuplestore.c:441 -#: utils/sort/sharedtuplestore.c:464 utils/sort/sharedtuplestore.c:481 -#: utils/sort/sharedtuplestore.c:498 +#: utils/sort/sharedtuplestore.c:433 utils/sort/sharedtuplestore.c:442 +#: utils/sort/sharedtuplestore.c:465 utils/sort/sharedtuplestore.c:482 +#: utils/sort/sharedtuplestore.c:499 #, c-format msgid "could not read from shared tuplestore temporary file" msgstr "no se pudo leer desde el archivo temporal del tuplestore compartido" -#: utils/sort/sharedtuplestore.c:487 +#: utils/sort/sharedtuplestore.c:488 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "trozo inesperado en archivo temporal del tuplestore compartido" -#: utils/sort/sharedtuplestore.c:572 +#: utils/sort/sharedtuplestore.c:573 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "no se pudo posicionar (seek) en el bloque %u en el archivo temporal del tuplestore compartido" -#: utils/sort/sharedtuplestore.c:579 +#: utils/sort/sharedtuplestore.c:580 #, c-format msgid "could not read from shared tuplestore temporary file: read only %zu of %zu bytes" msgstr "no se pudo leer el archivo temporal del tuplestore compartido: se leyeron sólo %zu de %zu bytes" diff --git a/src/backend/po/ja.po b/src/backend/po/ja.po index 7310c0b9cbe..87ec0eb05f7 100644 --- a/src/backend/po/ja.po +++ b/src/backend/po/ja.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: postgres (PostgreSQL 15)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-09-16 10:24+0900\n" -"PO-Revision-Date: 2025-09-16 10:45+0900\n" +"POT-Creation-Date: 2025-12-04 09:39+0900\n" +"PO-Revision-Date: 2025-12-04 10:14+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: jpug-doc \n" "Language: ja\n" @@ -27,7 +27,7 @@ msgstr "" #: ../common/compression.c:130 ../common/compression.c:139 ../common/compression.c:148 #, c-format msgid "this build does not support compression with %s" -msgstr "このビルドでは%sによる圧縮をサポートしていません" +msgstr "このビルドでは %s による圧縮をサポートしていません" #: ../common/compression.c:203 msgid "found empty string where a compression option was expected" @@ -73,18 +73,18 @@ msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み取り用にオープンできませんでした: %m" #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1349 access/transam/xlog.c:3211 access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1223 access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 access/transam/xlogrecovery.c:1412 backup/basebackup.c:1838 commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 -#: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 replication/logical/snapbuild.c:1995 replication/slot.c:1807 replication/slot.c:1848 replication/walsender.c:658 storage/file/buffile.c:463 storage/file/copydir.c:195 utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 +#: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 replication/logical/snapbuild.c:1995 replication/slot.c:1843 replication/slot.c:1884 replication/walsender.c:672 storage/file/buffile.c:463 storage/file/copydir.c:195 utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 #, c-format msgid "could not read file \"%s\": %m" msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" -#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 access/transam/xlog.c:3216 access/transam/xlog.c:4028 backup/basebackup.c:1842 replication/logical/origin.c:734 replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 utils/cache/relmapper.c:820 +#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 access/transam/xlog.c:3216 access/transam/xlog.c:4028 backup/basebackup.c:1842 replication/logical/origin.c:734 replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 replication/slot.c:1847 replication/slot.c:1888 replication/walsender.c:677 utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "ファイル\"%1$s\"を読み込めませんでした: %3$zuバイトのうち%2$dバイトを読み込みました" #: ../common/controldata_utils.c:114 ../common/controldata_utils.c:118 ../common/controldata_utils.c:271 ../common/controldata_utils.c:274 access/heap/rewriteheap.c:1178 access/heap/rewriteheap.c:1281 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:512 access/transam/twophase.c:1361 access/transam/twophase.c:1780 access/transam/xlog.c:3058 access/transam/xlog.c:3251 access/transam/xlog.c:3256 access/transam/xlog.c:3391 -#: access/transam/xlog.c:3993 access/transam/xlog.c:4739 commands/copyfrom.c:1585 commands/copyto.c:327 libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 replication/logical/origin.c:667 replication/logical/origin.c:806 replication/logical/reorderbuffer.c:5152 replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 replication/slot.c:1698 replication/slot.c:1859 replication/walsender.c:673 storage/file/copydir.c:218 storage/file/copydir.c:223 +#: access/transam/xlog.c:3993 access/transam/xlog.c:4739 commands/copyfrom.c:1585 commands/copyto.c:327 libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 replication/logical/origin.c:667 replication/logical/origin.c:806 replication/logical/reorderbuffer.c:5152 replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 replication/slot.c:1732 replication/slot.c:1895 replication/walsender.c:687 storage/file/copydir.c:218 storage/file/copydir.c:223 #: storage/file/fd.c:742 storage/file/fd.c:3635 storage/file/fd.c:3741 utils/cache/relmapper.c:831 utils/cache/relmapper.c:968 #, c-format msgid "could not close file \"%s\": %m" @@ -108,25 +108,25 @@ msgstr "" "PostgreSQLインストレーションはこのデータディレクトリと互換性がなくなります。" #: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224 ../common/file_utils.c:227 ../common/file_utils.c:286 ../common/file_utils.c:360 access/heap/rewriteheap.c:1264 access/transam/timeline.c:111 access/transam/timeline.c:251 access/transam/timeline.c:348 access/transam/twophase.c:1305 access/transam/xlog.c:2945 access/transam/xlog.c:3127 access/transam/xlog.c:3166 access/transam/xlog.c:3358 access/transam/xlog.c:4013 -#: access/transam/xlogrecovery.c:4244 access/transam/xlogrecovery.c:4347 access/transam/xlogutils.c:852 backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 replication/logical/reorderbuffer.c:4298 replication/logical/reorderbuffer.c:5074 replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 replication/slot.c:1779 replication/walsender.c:631 -#: replication/walsender.c:2726 storage/file/copydir.c:161 storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 utils/cache/relmapper.c:912 utils/error/elog.c:1953 utils/init/miscinit.c:1418 utils/init/miscinit.c:1552 utils/init/miscinit.c:1629 utils/misc/guc.c:9057 utils/misc/guc.c:9106 +#: access/transam/xlogrecovery.c:4255 access/transam/xlogrecovery.c:4358 access/transam/xlogutils.c:852 backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 replication/logical/reorderbuffer.c:4298 replication/logical/reorderbuffer.c:5074 replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 replication/slot.c:1815 replication/walsender.c:645 +#: replication/walsender.c:2740 storage/file/copydir.c:161 storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 utils/cache/relmapper.c:912 utils/error/elog.c:1953 utils/init/miscinit.c:1418 utils/init/miscinit.c:1552 utils/init/miscinit.c:1629 utils/misc/guc.c:9057 utils/misc/guc.c:9106 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 access/transam/twophase.c:1753 access/transam/twophase.c:1762 access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 backup/basebackup_server.c:173 backup/basebackup_server.c:266 postmaster/postmaster.c:5635 postmaster/syslogger.c:1571 postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 utils/cache/relmapper.c:946 +#: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 access/transam/twophase.c:1753 access/transam/twophase.c:1762 access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 backup/basebackup_server.c:173 backup/basebackup_server.c:266 postmaster/postmaster.c:5637 postmaster/syslogger.c:1571 postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 utils/cache/relmapper.c:946 #, c-format msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" #: ../common/controldata_utils.c:257 ../common/controldata_utils.c:262 ../common/file_utils.c:298 ../common/file_utils.c:368 access/heap/rewriteheap.c:960 access/heap/rewriteheap.c:1172 access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 access/transam/timeline.c:506 access/transam/twophase.c:1774 access/transam/xlog.c:3051 access/transam/xlog.c:3245 access/transam/xlog.c:3986 access/transam/xlog.c:8049 access/transam/xlog.c:8092 -#: backup/basebackup_server.c:207 commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:734 storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 +#: backup/basebackup_server.c:207 commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 replication/slot.c:1716 replication/slot.c:1825 storage/file/fd.c:734 storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "ファイル\"%s\"をfsyncできませんでした: %m" #: ../common/cryptohash.c:266 ../common/cryptohash_openssl.c:133 ../common/cryptohash_openssl.c:332 ../common/exec.c:560 ../common/exec.c:605 ../common/exec.c:697 ../common/hmac.c:309 ../common/hmac.c:325 ../common/hmac_openssl.c:132 ../common/hmac_openssl.c:327 ../common/md5_common.c:155 ../common/psprintf.c:143 ../common/scram-common.c:247 ../common/stringinfo.c:305 ../port/path.c:828 ../port/path.c:866 ../port/path.c:883 access/transam/twophase.c:1414 -#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1344 libpq/auth.c:1412 libpq/auth.c:1970 libpq/be-secure-gssapi.c:530 libpq/be-secure-gssapi.c:702 postmaster/bgworker.c:349 postmaster/bgworker.c:931 postmaster/postmaster.c:2596 postmaster/postmaster.c:4181 postmaster/postmaster.c:5560 postmaster/postmaster.c:5931 replication/libpqwalreceiver/libpqwalreceiver.c:300 replication/logical/logical.c:206 replication/walsender.c:701 +#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1344 libpq/auth.c:1412 libpq/auth.c:1970 libpq/be-secure-gssapi.c:530 libpq/be-secure-gssapi.c:702 postmaster/bgworker.c:349 postmaster/bgworker.c:931 postmaster/postmaster.c:2598 postmaster/postmaster.c:4183 postmaster/postmaster.c:5562 postmaster/postmaster.c:5933 replication/libpqwalreceiver/libpqwalreceiver.c:300 replication/logical/logical.c:206 replication/walsender.c:715 #: storage/buffer/localbuf.c:442 storage/file/fd.c:889 storage/file/fd.c:1431 storage/file/fd.c:1592 storage/file/fd.c:2406 storage/ipc/procarray.c:1463 storage/ipc/procarray.c:2292 storage/ipc/procarray.c:2299 storage/ipc/procarray.c:2804 storage/ipc/procarray.c:3435 tcop/postgres.c:3645 utils/activity/pgstat_shmem.c:503 utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 utils/adt/formatting.c:1977 utils/adt/pg_locale.c:453 utils/adt/pg_locale.c:617 #: utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5204 utils/misc/guc.c:5220 utils/misc/guc.c:5233 utils/misc/guc.c:8804 utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:702 utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805 utils/mmgr/generation.c:266 #: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:238 @@ -181,7 +181,7 @@ msgstr "シンボリックリンク\"%s\"を読めませんでした: %m" msgid "%s() failed: %m" msgstr "%s() が失敗しました: %m" -#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:162 ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:868 ../port/path.c:885 utils/misc/ps_status.c:208 utils/misc/ps_status.c:216 utils/misc/ps_status.c:246 utils/misc/ps_status.c:254 +#: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 ../common/fe_memutils.c:98 ../common/fe_memutils.c:162 ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:868 ../port/path.c:885 utils/misc/ps_status.c:210 utils/misc/ps_status.c:218 utils/misc/ps_status.c:248 utils/misc/ps_status.c:256 #, c-format msgid "out of memory\n" msgstr "メモリ不足です\n" @@ -197,7 +197,7 @@ msgstr "nullポインタは複製できません(内部エラー)\n" msgid "could not stat file \"%s\": %m" msgstr "ファイル\"%s\"のstatに失敗しました: %m" -#: ../common/file_utils.c:161 ../common/pgfnames.c:48 commands/tablespace.c:749 commands/tablespace.c:759 postmaster/postmaster.c:1581 storage/file/fd.c:2809 storage/file/reinit.c:126 utils/adt/misc.c:235 utils/misc/tzparser.c:338 +#: ../common/file_utils.c:161 ../common/pgfnames.c:48 commands/tablespace.c:749 commands/tablespace.c:759 postmaster/postmaster.c:1583 storage/file/fd.c:2809 storage/file/reinit.c:126 utils/adt/misc.c:235 utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" @@ -207,7 +207,7 @@ msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 replication/slot.c:721 replication/slot.c:1570 replication/slot.c:1712 storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 +#: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 replication/slot.c:750 replication/slot.c:1599 replication/slot.c:1748 storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"の名前を\"%s\"に変更できませんでした: %m" @@ -716,7 +716,7 @@ msgstr "認識できないパラメータ namaspace \"%s\"" msgid "invalid option name \"%s\": must not contain \"=\"" msgstr "不正なオプション名\"%s\": \"=\"が含まれていてはなりません" -#: access/common/reloptions.c:1312 utils/misc/guc.c:13061 +#: access/common/reloptions.c:1312 utils/misc/guc.c:13072 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "WITH OIDSと定義されたテーブルはサポートされません" @@ -896,7 +896,7 @@ msgstr "アクセスメソッド\"%2$s\"の演算子族\"%1$s\"は演算子%3$s msgid "could not determine which collation to use for string hashing" msgstr "文字列のハッシュ値計算で使用する照合順序を特定できませんでした" -#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:672 catalog/heap.c:678 commands/createas.c:206 commands/createas.c:515 commands/indexcmds.c:1962 commands/tablecmds.c:17798 commands/view.c:86 regex/regc_pg_locale.c:243 utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 utils/adt/formatting.c:1935 utils/adt/like.c:190 utils/adt/like_support.c:1025 utils/adt/varchar.c:733 utils/adt/varchar.c:1004 utils/adt/varchar.c:1065 +#: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:672 catalog/heap.c:678 commands/createas.c:206 commands/createas.c:515 commands/indexcmds.c:1962 commands/tablecmds.c:17808 commands/view.c:86 regex/regc_pg_locale.c:243 utils/adt/formatting.c:1690 utils/adt/formatting.c:1812 utils/adt/formatting.c:1935 utils/adt/like.c:190 utils/adt/like_support.c:1025 utils/adt/varchar.c:733 utils/adt/varchar.c:1004 utils/adt/varchar.c:1065 #: utils/adt/varlena.c:1499 #, c-format msgid "Use the COLLATE clause to set the collation explicitly." @@ -997,7 +997,7 @@ msgstr "行が大きすぎます: サイズは%zu、上限は%zu" msgid "could not write to file \"%s\", wrote %d of %d: %m" msgstr "ファイル\"%1$s\"に書き込めませんでした、%3$dバイト中%2$dバイト書き込みました: %m" -#: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:2967 access/transam/xlog.c:3180 access/transam/xlog.c:3965 access/transam/xlog.c:8729 access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:494 postmaster/postmaster.c:4608 postmaster/postmaster.c:5622 replication/logical/origin.c:587 replication/slot.c:1631 +#: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 access/transam/timeline.c:329 access/transam/timeline.c:481 access/transam/xlog.c:2967 access/transam/xlog.c:3180 access/transam/xlog.c:3965 access/transam/xlog.c:8729 access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:494 postmaster/postmaster.c:4610 postmaster/postmaster.c:5624 replication/logical/origin.c:587 replication/slot.c:1660 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -1008,13 +1008,13 @@ msgstr "ファイル\"%s\"を作成できませんでした: %m" msgid "could not truncate file \"%s\" to %u: %m" msgstr "ファイル\"%s\"を%uバイトに切り詰められませんでした: %m" -#: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3039 access/transam/xlog.c:3236 access/transam/xlog.c:3977 commands/dbcommands.c:506 postmaster/postmaster.c:4618 postmaster/postmaster.c:4628 replication/logical/origin.c:599 replication/logical/origin.c:641 replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 replication/slot.c:1666 +#: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:498 access/transam/xlog.c:3039 access/transam/xlog.c:3236 access/transam/xlog.c:3977 commands/dbcommands.c:506 postmaster/postmaster.c:4620 postmaster/postmaster.c:4630 replication/logical/origin.c:599 replication/logical/origin.c:641 replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 replication/slot.c:1696 #: storage/file/buffile.c:537 storage/file/copydir.c:207 utils/init/miscinit.c:1493 utils/init/miscinit.c:1504 utils/init/miscinit.c:1512 utils/misc/guc.c:8787 utils/misc/guc.c:8818 utils/misc/guc.c:10816 utils/misc/guc.c:10830 utils/time/snapmgr.c:1266 utils/time/snapmgr.c:1273 #, c-format msgid "could not write to file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: access/heap/rewriteheap.c:1249 access/transam/twophase.c:1713 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:436 postmaster/postmaster.c:1157 postmaster/syslogger.c:1537 replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 replication/slot.c:1763 storage/file/fd.c:792 storage/file/fd.c:3260 storage/file/fd.c:3322 storage/file/reinit.c:262 +#: access/heap/rewriteheap.c:1249 access/transam/twophase.c:1713 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:436 postmaster/postmaster.c:1159 postmaster/syslogger.c:1537 replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 replication/slot.c:1799 storage/file/fd.c:792 storage/file/fd.c:3260 storage/file/fd.c:3322 storage/file/reinit.c:262 #: storage/ipc/dsm.c:317 storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 utils/time/snapmgr.c:1606 #, c-format msgid "could not remove file \"%s\": %m" @@ -1252,7 +1252,7 @@ msgstr "システムカタログのスキャン中にトランザクションが msgid "cannot access index \"%s\" while it is being reindexed" msgstr "再作成中であるためインデックス\"%s\"にアクセスできません" -#: access/index/indexam.c:208 catalog/objectaddress.c:1376 commands/indexcmds.c:2824 commands/tablecmds.c:271 commands/tablecmds.c:295 commands/tablecmds.c:17484 commands/tablecmds.c:19368 +#: access/index/indexam.c:208 catalog/objectaddress.c:1376 commands/indexcmds.c:2824 commands/tablecmds.c:271 commands/tablecmds.c:295 commands/tablecmds.c:17484 commands/tablecmds.c:19382 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\"はインデックスではありません" @@ -1297,17 +1297,17 @@ msgstr "インデックス\"%s\"に削除処理中の内部ページがありま msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "これは9.3かそれ以前のバージョンで、アップグレード前にVACUUMが中断された際に起きた可能性があります。REINDEXしてください。" -#: access/nbtree/nbtutils.c:2690 +#: access/nbtree/nbtutils.c:2689 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "インデックス行サイズ%1$zuはインデックス\"%4$s\"でのbtreeバージョン %2$u の最大値%3$zuを超えています" -#: access/nbtree/nbtutils.c:2696 +#: access/nbtree/nbtutils.c:2695 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "インデックス行はリレーション\"%3$s\"のタプル(%1$u,%2$u)を参照しています。" -#: access/nbtree/nbtutils.c:2700 +#: access/nbtree/nbtutils.c:2699 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1401,12 +1401,12 @@ msgstr "プライマリサーバーで設定パラメータ\"%s\"がonに設定 msgid "Make sure the configuration parameter \"%s\" is set." msgstr "設定パラメータ\"%s\"が設定されていることを確認してください。" -#: access/transam/multixact.c:1022 +#: access/transam/multixact.c:1101 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "データベース\"%s\"におけるMultiXactIds周回によるデータ損失を防ぐために、データベースは新しくMultiXactIdsを生成するコマンドを受け付けません" -#: access/transam/multixact.c:1024 access/transam/multixact.c:1031 access/transam/multixact.c:1055 access/transam/multixact.c:1064 +#: access/transam/multixact.c:1103 access/transam/multixact.c:1110 access/transam/multixact.c:1134 access/transam/multixact.c:1143 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1415,61 +1415,66 @@ msgstr "" "そのデータベース全体の VACUUM を実行してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除も必要かもしれません。" -#: access/transam/multixact.c:1029 +#: access/transam/multixact.c:1108 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "OID %u を持つデータベースは周回によるデータ損失を防ぐために、新しいMultiXactIdsを生成するコマンドを受け付けない状態になっています" -#: access/transam/multixact.c:1050 access/transam/multixact.c:2334 +#: access/transam/multixact.c:1129 access/transam/multixact.c:2413 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" msgstr[0] "データベース\"%s\"はあと%u個のMultiXactIdが使われる前にVACUUMする必要があります" -#: access/transam/multixact.c:1059 access/transam/multixact.c:2343 +#: access/transam/multixact.c:1138 access/transam/multixact.c:2422 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" msgstr[0] "OID %u のデータベースはあと%u個のMultiXactIdが使われる前にVACUUMする必要があります" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1202 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "マルチトランザクションの\"メンバ\"が制限を超えました" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1203 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "このコマンドで%u個のメンバを持つマルチトランザクションが生成されますが、残りのスペースは %u 個のメンバ分しかありません。" -#: access/transam/multixact.c:1126 +#: access/transam/multixact.c:1208 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "vacuum_multixact_freeze_min_age と vacuum_multixact_freeze_table_age をより小さな値に設定してOID %u のデータベースでデータベース全体にVACUUMを実行してください。" -#: access/transam/multixact.c:1157 +#: access/transam/multixact.c:1239 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "OID %u のデータベースは更に%d個のマルチトランザクションメンバが使用される前にVACUUMを実行する必要があります" -#: access/transam/multixact.c:1162 +#: access/transam/multixact.c:1244 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "vacuum_multixact_freeze_min_age と vacuum_multixact_freeze_table_age をより小さな値に設定した上で、そのデータベースでVACUUMを実行してください。" -#: access/transam/multixact.c:1301 +#: access/transam/multixact.c:1383 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %uはもう存在しません: 周回しているようです" -#: access/transam/multixact.c:1307 +#: access/transam/multixact.c:1389 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %uを作成できませんでした: 周回している様子" -#: access/transam/multixact.c:2339 access/transam/multixact.c:2348 access/transam/varsup.c:151 access/transam/varsup.c:158 access/transam/varsup.c:466 access/transam/varsup.c:473 +#: access/transam/multixact.c:1464 +#, c-format +msgid "MultiXact %u has invalid next offset" +msgstr "MultiXact %u の次のオフセットが不正です" + +#: access/transam/multixact.c:2418 access/transam/multixact.c:2427 access/transam/varsup.c:151 access/transam/varsup.c:158 access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format msgid "" "To avoid a database shutdown, execute a database-wide VACUUM in that database.\n" @@ -1478,27 +1483,27 @@ msgstr "" "データベースの停止を防ぐために、データベース全体の VACUUM を実行してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除も必要かもしれません。" -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2701 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "最古のチェックポイント済みのマルチトランザクション%uがディスク上に存在しないため、マルチトランザクションメンバーの周回防止機能を無効にしました" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2723 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "マルチトランザクションメンバーの周回防止機能が有効になりました" -#: access/transam/multixact.c:3038 +#: access/transam/multixact.c:3117 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "最古のマルチトランザクション%uが見つかりません、アクセス可能な最古のものは%u、切り詰めをスキップします" -#: access/transam/multixact.c:3056 +#: access/transam/multixact.c:3135 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "マルチトランザクション%uがディスク上に存在しないため、そこまでの切り詰めができません、切り詰めをスキップします" -#: access/transam/multixact.c:3370 +#: access/transam/multixact.c:3473 #, c-format msgid "invalid MultiXactId: %u" msgstr "不正なMultiXactId: %u" @@ -1783,7 +1788,7 @@ msgstr "ファイル\"%s\"内に格納されているサイズが不正です" msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "算出されたCRCチェックサムがファイル\"%s\"に格納されている値と一致しません" -#: access/transam/twophase.c:1415 access/transam/xlogrecovery.c:588 replication/logical/logical.c:207 replication/walsender.c:702 +#: access/transam/twophase.c:1415 access/transam/xlogrecovery.c:588 replication/logical/logical.c:207 replication/walsender.c:716 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "WALリーダの割り当てに中に失敗しました。" @@ -2013,7 +2018,7 @@ msgstr "生成されたWALより先の位置までのフラッシュ要求; 要 msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "ログファイル%sのオフセット%uに長さ%zuの書き込みができませんでした: %m" -#: access/transam/xlog.c:3472 access/transam/xlogutils.c:847 replication/walsender.c:2720 +#: access/transam/xlog.c:3472 access/transam/xlogutils.c:847 replication/walsender.c:2734 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "要求された WAL セグメント %s はすでに削除されています" @@ -3002,7 +3007,7 @@ msgstr "リカバリ完了位置で一時停止しています" msgid "Execute pg_wal_replay_resume() to promote." msgstr "再開するには pg_wal_replay_resume() を実行してください" -#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4679 +#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4690 #, c-format msgid "recovery has paused" msgstr "リカバリは一時停止中です" @@ -3027,127 +3032,127 @@ msgstr "ログセグメント%s、オフセット%uを読み取れませんで msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "ログセグメント%1$s、オフセット%2$uを読み取れませんでした: %4$zu 中 %3$d の読み取り" -#: access/transam/xlogrecovery.c:3996 +#: access/transam/xlogrecovery.c:4007 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "制御ファイル内の最初のチェックポイントへのリンクが不正です" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4011 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "backup_labelファイル内のチェックポイントへのリンクが不正です" -#: access/transam/xlogrecovery.c:4018 +#: access/transam/xlogrecovery.c:4029 #, c-format msgid "invalid primary checkpoint record" msgstr "最初のチェックポイントレコードが不正です" -#: access/transam/xlogrecovery.c:4022 +#: access/transam/xlogrecovery.c:4033 #, c-format msgid "invalid checkpoint record" msgstr "チェックポイントレコードが不正です" -#: access/transam/xlogrecovery.c:4033 +#: access/transam/xlogrecovery.c:4044 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "プライマリチェックポイントレコード内のリソースマネージャIDが不正です" -#: access/transam/xlogrecovery.c:4037 +#: access/transam/xlogrecovery.c:4048 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "チェックポイントレコード内のリソースマネージャIDがで不正です" -#: access/transam/xlogrecovery.c:4050 +#: access/transam/xlogrecovery.c:4061 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "最初のチェックポイントレコード内のxl_infoが不正です" -#: access/transam/xlogrecovery.c:4054 +#: access/transam/xlogrecovery.c:4065 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "チェックポイントレコード内のxl_infoが不正です" -#: access/transam/xlogrecovery.c:4065 +#: access/transam/xlogrecovery.c:4076 #, c-format msgid "invalid length of primary checkpoint record" msgstr "最初のチェックポイントレコード長が不正です" -#: access/transam/xlogrecovery.c:4069 +#: access/transam/xlogrecovery.c:4080 #, c-format msgid "invalid length of checkpoint record" msgstr "チェックポイントレコード長が不正です" -#: access/transam/xlogrecovery.c:4125 +#: access/transam/xlogrecovery.c:4136 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "新しいタイムライン%uはデータベースシステムのタイムライン%uの子ではありません" -#: access/transam/xlogrecovery.c:4139 +#: access/transam/xlogrecovery.c:4150 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "新しいタイムライン%uは現在のデータベースシステムのタイムライン%uから現在のリカバリポイント%X/%Xより前に分岐しています" -#: access/transam/xlogrecovery.c:4158 +#: access/transam/xlogrecovery.c:4169 #, c-format msgid "new target timeline is %u" msgstr "新しい目標タイムラインは%uです" -#: access/transam/xlogrecovery.c:4361 +#: access/transam/xlogrecovery.c:4372 #, c-format msgid "WAL receiver process shutdown requested" msgstr "wal receiverプロセスのシャットダウンが要求されました" -#: access/transam/xlogrecovery.c:4424 +#: access/transam/xlogrecovery.c:4435 #, c-format msgid "received promote request" msgstr "昇格要求を受信しました" -#: access/transam/xlogrecovery.c:4437 +#: access/transam/xlogrecovery.c:4448 #, c-format msgid "promote trigger file found: %s" msgstr "昇格トリガファイルがあります: %s" -#: access/transam/xlogrecovery.c:4445 +#: access/transam/xlogrecovery.c:4456 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "昇格トリガファイル\"%s\"のstatに失敗しました: %m" -#: access/transam/xlogrecovery.c:4670 +#: access/transam/xlogrecovery.c:4681 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "不十分なパラメータ設定のため、ホットスタンバイを使用できません" -#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698 access/transam/xlogrecovery.c:4728 +#: access/transam/xlogrecovery.c:4682 access/transam/xlogrecovery.c:4709 access/transam/xlogrecovery.c:4739 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d はプライマリサーバーの設定値より小さいです、プライマリサーバーではこの値は%dでした。" -#: access/transam/xlogrecovery.c:4680 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "リカバリの一時停止を解除すると、サーバーはシャットダウンします。" -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4692 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "その後、必要な設定変更を行った後にサーバーを再起動できます。" -#: access/transam/xlogrecovery.c:4692 +#: access/transam/xlogrecovery.c:4703 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "不十分なパラメータ設定のため、昇格できません" -#: access/transam/xlogrecovery.c:4702 +#: access/transam/xlogrecovery.c:4713 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "必要な設定変更を行ったのち、サーバーを再起動してください。" -#: access/transam/xlogrecovery.c:4726 +#: access/transam/xlogrecovery.c:4737 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "不十分なパラメータ設定値のためリカバリが停止しました" -#: access/transam/xlogrecovery.c:4732 +#: access/transam/xlogrecovery.c:4743 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "必要な設定変更を行うことでサーバーを再起動できます。" @@ -3339,7 +3344,7 @@ msgstr "サーバー上に格納されるバックアップを作成するには msgid "relative path not allowed for backup stored on server" msgstr "サーバー上に格納されるバックアップでは相対パスは指定できません" -#: backup/basebackup_server.c:102 commands/dbcommands.c:477 commands/tablespace.c:163 commands/tablespace.c:179 commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1558 storage/file/copydir.c:47 +#: backup/basebackup_server.c:102 commands/dbcommands.c:477 commands/tablespace.c:163 commands/tablespace.c:179 commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1587 storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を作成できませんでした: %m" @@ -3554,7 +3559,7 @@ msgstr "デフォルト権限は列には設定できません" msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "GRANT/REVOKE ON SCHEMAS を使っている時には IN SCHEMA 句は指定できません" -#: catalog/aclchk.c:1588 catalog/catalog.c:657 catalog/objectaddress.c:1543 catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 commands/sequence.c:1673 commands/tablecmds.c:7376 commands/tablecmds.c:7532 commands/tablecmds.c:7582 commands/tablecmds.c:7656 commands/tablecmds.c:7726 commands/tablecmds.c:7838 commands/tablecmds.c:7932 commands/tablecmds.c:7991 commands/tablecmds.c:8080 commands/tablecmds.c:8110 commands/tablecmds.c:8238 +#: catalog/aclchk.c:1588 catalog/catalog.c:657 catalog/objectaddress.c:1543 catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:816 commands/sequence.c:1673 commands/tablecmds.c:7376 commands/tablecmds.c:7532 commands/tablecmds.c:7582 commands/tablecmds.c:7656 commands/tablecmds.c:7726 commands/tablecmds.c:7838 commands/tablecmds.c:7932 commands/tablecmds.c:7991 commands/tablecmds.c:8080 commands/tablecmds.c:8110 commands/tablecmds.c:8238 #: commands/tablecmds.c:8320 commands/tablecmds.c:8476 commands/tablecmds.c:8598 commands/tablecmds.c:12441 commands/tablecmds.c:12633 commands/tablecmds.c:12793 commands/tablecmds.c:14013 commands/tablecmds.c:16583 commands/trigger.c:954 parser/analyze.c:2517 parser/parse_relation.c:725 parser/parse_target.c:1077 parser/parse_type.c:144 parser/parse_utilcmd.c:3465 parser/parse_utilcmd.c:3501 parser/parse_utilcmd.c:3543 utils/adt/acl.c:2886 #: utils/adt/ruleutils.c:2828 #, c-format @@ -4150,8 +4155,8 @@ msgstr[0] "" msgid "cannot drop %s because other objects depend on it" msgstr "他のオブジェクトが依存しているため%sを削除できません" -#: catalog/dependency.c:1201 catalog/dependency.c:1208 catalog/dependency.c:1219 commands/tablecmds.c:1342 commands/tablecmds.c:14655 commands/tablespace.c:476 commands/user.c:1008 commands/view.c:522 libpq/auth.c:337 replication/syncrep.c:1110 storage/lmgr/deadlock.c:1151 storage/lmgr/proc.c:1421 utils/misc/guc.c:7414 utils/misc/guc.c:7450 utils/misc/guc.c:7520 utils/misc/guc.c:11939 utils/misc/guc.c:11973 utils/misc/guc.c:12007 utils/misc/guc.c:12050 -#: utils/misc/guc.c:12092 +#: catalog/dependency.c:1201 catalog/dependency.c:1208 catalog/dependency.c:1219 commands/tablecmds.c:1342 commands/tablecmds.c:14655 commands/tablespace.c:476 commands/user.c:1008 commands/view.c:522 libpq/auth.c:337 replication/slot.c:206 replication/syncrep.c:1110 storage/lmgr/deadlock.c:1151 storage/lmgr/proc.c:1421 utils/misc/guc.c:7414 utils/misc/guc.c:7450 utils/misc/guc.c:7520 utils/misc/guc.c:11939 utils/misc/guc.c:11973 utils/misc/guc.c:12007 +#: utils/misc/guc.c:12050 utils/misc/guc.c:12092 utils/misc/guc.c:13056 utils/misc/guc.c:13058 #, c-format msgid "%s" msgstr "%s" @@ -4324,12 +4329,12 @@ msgstr "これは生成列を自身の値に依存させることにつながり msgid "generation expression is not immutable" msgstr "生成式は不変ではありません" -#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1285 +#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "列\"%s\"の型は%sですが、デフォルト式の型は%sです" -#: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 parser/parse_target.c:594 parser/parse_target.c:891 parser/parse_target.c:901 rewrite/rewriteHandler.c:1290 +#: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 parser/parse_target.c:594 parser/parse_target.c:891 parser/parse_target.c:901 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "式を書き換えるかキャストする必要があります。" @@ -4479,7 +4484,7 @@ msgstr "リレーション\"%s.%s\"は存在しません" msgid "relation \"%s\" does not exist" msgstr "リレーション\"%s\"は存在しません" -#: catalog/namespace.c:501 catalog/namespace.c:3076 commands/extension.c:1556 commands/extension.c:1562 +#: catalog/namespace.c:501 catalog/namespace.c:3079 commands/extension.c:1556 commands/extension.c:1562 #, c-format msgid "no schema has been selected to create in" msgstr "作成先のスキーマが選択されていません" @@ -4504,82 +4509,82 @@ msgstr "一時スキーマの中には一時リレーションしか作成でき msgid "statistics object \"%s\" does not exist" msgstr "統計情報オブジェクト\"%s\"は存在しません" -#: catalog/namespace.c:2391 +#: catalog/namespace.c:2394 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "テキスト検索パーサ\"%s\"は存在しません" -#: catalog/namespace.c:2517 +#: catalog/namespace.c:2520 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "テキスト検索辞書\"%s\"は存在しません" -#: catalog/namespace.c:2644 +#: catalog/namespace.c:2647 #, c-format msgid "text search template \"%s\" does not exist" msgstr "テキスト検索テンプレート\"%s\"は存在しません" -#: catalog/namespace.c:2770 commands/tsearchcmds.c:1127 utils/cache/ts_cache.c:613 +#: catalog/namespace.c:2773 commands/tsearchcmds.c:1127 utils/cache/ts_cache.c:613 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "テキスト検索設定\"%s\"は存在しません" -#: catalog/namespace.c:2883 parser/parse_expr.c:806 parser/parse_target.c:1269 +#: catalog/namespace.c:2886 parser/parse_expr.c:806 parser/parse_target.c:1269 #, c-format msgid "cross-database references are not implemented: %s" msgstr "データベース間の参照は実装されていません: %s" -#: catalog/namespace.c:2889 gram.y:18272 gram.y:18312 parser/parse_expr.c:813 parser/parse_target.c:1276 +#: catalog/namespace.c:2892 gram.y:18272 gram.y:18312 parser/parse_expr.c:813 parser/parse_target.c:1276 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "修飾名が不適切です(ドット区切りの名前が多すぎます): %s" -#: catalog/namespace.c:3019 +#: catalog/namespace.c:3022 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "一時スキーマへ、または一時スキーマからオブジェクトを移動できません" -#: catalog/namespace.c:3025 +#: catalog/namespace.c:3028 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "TOASTスキーマへ、またはTOASTスキーマからオブジェクトを移動できません" -#: catalog/namespace.c:3098 commands/schemacmds.c:263 commands/schemacmds.c:343 commands/tablecmds.c:1287 +#: catalog/namespace.c:3101 commands/schemacmds.c:263 commands/schemacmds.c:343 commands/tablecmds.c:1287 #, c-format msgid "schema \"%s\" does not exist" msgstr "スキーマ\"%s\"は存在しません" -#: catalog/namespace.c:3129 +#: catalog/namespace.c:3132 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "リレーション名が不適切です(ドット区切りの名前が多すぎます): %s" -#: catalog/namespace.c:3696 +#: catalog/namespace.c:3699 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "エンコーディング\"%2$s\"の照合順序\"%1$s\"は存在しません" -#: catalog/namespace.c:3751 +#: catalog/namespace.c:3754 #, c-format msgid "conversion \"%s\" does not exist" msgstr "変換\"%sは存在しません" -#: catalog/namespace.c:4015 +#: catalog/namespace.c:4018 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "データベース\"%s\"に一時テーブルを作成する権限がありません" -#: catalog/namespace.c:4031 +#: catalog/namespace.c:4034 #, c-format msgid "cannot create temporary tables during recovery" msgstr "リカバリ中は一時テーブルを作成できません" -#: catalog/namespace.c:4037 +#: catalog/namespace.c:4040 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "並行処理中は一時テーブルを作成できません" -#: catalog/namespace.c:4338 commands/tablespace.c:1231 commands/variable.c:64 tcop/postgres.c:3614 utils/misc/guc.c:12124 utils/misc/guc.c:12226 +#: catalog/namespace.c:4341 commands/tablespace.c:1231 commands/variable.c:64 tcop/postgres.c:3614 utils/misc/guc.c:12124 utils/misc/guc.c:12226 #, c-format msgid "List syntax is invalid." msgstr "リスト文法が無効です" @@ -5963,27 +5968,27 @@ msgstr "継承ツリー\"%s.%s\"のANALYZEをスキップします --- このツ msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "継承ツリー\"%s.%s\"のANALYZEをスキップします --- このツリーにはアナライズ可能な子テーブルがありません" -#: commands/async.c:646 +#: commands/async.c:645 #, c-format msgid "channel name cannot be empty" msgstr "チャネル名が空であることはできません" -#: commands/async.c:652 +#: commands/async.c:651 #, c-format msgid "channel name too long" msgstr "チャネル名が長すぎます" -#: commands/async.c:657 +#: commands/async.c:656 #, c-format msgid "payload string too long" msgstr "ペイロード文字列が長すぎます" -#: commands/async.c:876 +#: commands/async.c:875 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "LISTEN / UNLISTEN / NOTIFY を実行しているトランザクションは PREPARE できません" -#: commands/async.c:980 +#: commands/async.c:979 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "NOTIFY キューで発生した通知イベントが多すぎます" @@ -6092,7 +6097,7 @@ msgstr "" msgid "collation attribute \"%s\" not recognized" msgstr "照合順序の属性\"%s\"が認識できません" -#: commands/collationcmds.c:119 commands/collationcmds.c:125 commands/define.c:389 commands/tablecmds.c:7913 replication/pgoutput/pgoutput.c:318 replication/pgoutput/pgoutput.c:341 replication/pgoutput/pgoutput.c:355 replication/pgoutput/pgoutput.c:365 replication/pgoutput/pgoutput.c:375 replication/pgoutput/pgoutput.c:385 replication/walsender.c:1001 replication/walsender.c:1023 replication/walsender.c:1033 +#: commands/collationcmds.c:119 commands/collationcmds.c:125 commands/define.c:389 commands/tablecmds.c:7913 replication/pgoutput/pgoutput.c:319 replication/pgoutput/pgoutput.c:342 replication/pgoutput/pgoutput.c:356 replication/pgoutput/pgoutput.c:366 replication/pgoutput/pgoutput.c:376 replication/pgoutput/pgoutput.c:386 replication/walsender.c:1015 replication/walsender.c:1037 replication/walsender.c:1047 #, c-format msgid "conflicting or redundant options" msgstr "競合するオプション、あるいは余計なオプションがあります" @@ -6254,167 +6259,177 @@ msgstr "ファイルからの COPY を行うにはスーパーユーザーまた msgid "must be superuser or have privileges of the pg_write_server_files role to COPY to a file" msgstr "ファイルへの COPY を行うにはスーパーユーザーまたはpg_write_server_filesロールの権限を持つ必要があります" -#: commands/copy.c:188 +#: commands/copy.c:175 +#, c-format +msgid "generated columns are not supported in COPY FROM WHERE conditions" +msgstr "生成列は COPY FROM の WHERE 条件ではサポートされていません" + +#: commands/copy.c:176 commands/tablecmds.c:12461 commands/tablecmds.c:17648 commands/tablecmds.c:17727 commands/trigger.c:668 rewrite/rewriteHandler.c:939 rewrite/rewriteHandler.c:974 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "列\"%s\"は生成カラムです。" + +#: commands/copy.c:225 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM で行レベルセキュリティはサポートされていません" -#: commands/copy.c:189 +#: commands/copy.c:226 #, c-format msgid "Use INSERT statements instead." msgstr "代わりにINSERTを文使用してください。" -#: commands/copy.c:283 +#: commands/copy.c:320 #, c-format msgid "MERGE not supported in COPY" msgstr "MERGEはCOPYではサポートされません" -#: commands/copy.c:376 +#: commands/copy.c:413 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "COPY TO の HEADERで\"%s\"は使用できません" -#: commands/copy.c:385 +#: commands/copy.c:422 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "パラメータ\"%s\"はBoolean値または\"match\"のみを取ります" -#: commands/copy.c:444 +#: commands/copy.c:481 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "COPY フォーマット\"%s\"を認識できません" -#: commands/copy.c:496 commands/copy.c:509 commands/copy.c:522 commands/copy.c:541 +#: commands/copy.c:533 commands/copy.c:546 commands/copy.c:559 commands/copy.c:578 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "オプション\"%s\"の引数は列名のリストでなければなりません" -#: commands/copy.c:553 +#: commands/copy.c:590 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "オプション\"%s\"の引数は有効なエンコーディング名でなければなりません" -#: commands/copy.c:560 commands/dbcommands.c:849 commands/dbcommands.c:2270 +#: commands/copy.c:597 commands/dbcommands.c:849 commands/dbcommands.c:2270 #, c-format msgid "option \"%s\" not recognized" msgstr "タイムゾーン\"%s\"を認識できません" -#: commands/copy.c:572 +#: commands/copy.c:609 #, c-format msgid "cannot specify DELIMITER in BINARY mode" msgstr "BINARYモードではDELIMITERを指定できません" -#: commands/copy.c:577 +#: commands/copy.c:614 #, c-format msgid "cannot specify NULL in BINARY mode" msgstr "BINARYモードではNULLを指定できません" -#: commands/copy.c:599 +#: commands/copy.c:636 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "COPYの区切り文字は単一の1バイト文字でなければなりません" -#: commands/copy.c:606 +#: commands/copy.c:643 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "COPYの区切り文字は改行や復帰記号とすることができません" -#: commands/copy.c:612 +#: commands/copy.c:649 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "COPYのNULL表現には改行や復帰記号を使用することはできません" -#: commands/copy.c:629 +#: commands/copy.c:666 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "COPYの区切り文字を\"%s\"とすることはできません" -#: commands/copy.c:635 +#: commands/copy.c:672 #, c-format msgid "cannot specify HEADER in BINARY mode" msgstr "BINARYモードではHEADERを指定できません" -#: commands/copy.c:641 +#: commands/copy.c:678 #, c-format msgid "COPY quote available only in CSV mode" msgstr "COPYの引用符はCSVモードでのみ使用できます" -#: commands/copy.c:646 +#: commands/copy.c:683 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "COPYの引用符は単一の1バイト文字でなければなりません" -#: commands/copy.c:651 +#: commands/copy.c:688 #, c-format msgid "COPY delimiter and quote must be different" msgstr "COPYの区切り文字と引用符は異なる文字でなければなりません" -#: commands/copy.c:657 +#: commands/copy.c:694 #, c-format msgid "COPY escape available only in CSV mode" msgstr "COPYのエスケープはCSVモードでのみ使用できます" -#: commands/copy.c:662 +#: commands/copy.c:699 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "COPYのエスケープは単一の1バイト文字でなければなりません" -#: commands/copy.c:668 +#: commands/copy.c:705 #, c-format msgid "COPY force quote available only in CSV mode" msgstr "COPYのFORCE_QUOTEオプションはCSVモードでのみ使用できます" -#: commands/copy.c:672 +#: commands/copy.c:709 #, c-format msgid "COPY force quote only available using COPY TO" msgstr "COPYのFORCE_QUOTEオプションはCOPY TOでのみ使用できます" -#: commands/copy.c:678 +#: commands/copy.c:715 #, c-format msgid "COPY force not null available only in CSV mode" msgstr "COPYのFORCE_NOT_NULLオプションはCSVモードでのみ使用できます" -#: commands/copy.c:682 +#: commands/copy.c:719 #, c-format msgid "COPY force not null only available using COPY FROM" msgstr "COPYのFORCE_NOT_NULLオプションはCOPY FROMでのみ使用できます" -#: commands/copy.c:688 +#: commands/copy.c:725 #, c-format msgid "COPY force null available only in CSV mode" msgstr "COPYのFORCE_NULLオプションはCSVモードでのみ使用できます" -#: commands/copy.c:693 +#: commands/copy.c:730 #, c-format msgid "COPY force null only available using COPY FROM" msgstr "COPYのFORCE_NOT_NULLオプションはCOPY FROMでのみ使用できます" -#: commands/copy.c:699 +#: commands/copy.c:736 #, c-format msgid "COPY delimiter must not appear in the NULL specification" msgstr "COPYの区切り文字をNULLオプションの値に使用できません" -#: commands/copy.c:706 +#: commands/copy.c:743 #, c-format msgid "CSV quote character must not appear in the NULL specification" msgstr "COPYの引用符をNULLオプションの値に使用できません" -#: commands/copy.c:767 +#: commands/copy.c:804 #, c-format msgid "column \"%s\" is a generated column" msgstr "列\"%s\"は生成カラムです" -#: commands/copy.c:769 +#: commands/copy.c:806 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "生成カラムはCOPYでは使えません。" -#: commands/copy.c:784 commands/indexcmds.c:1833 commands/statscmds.c:243 commands/tablecmds.c:2393 commands/tablecmds.c:3049 commands/tablecmds.c:3558 parser/parse_relation.c:3669 parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 +#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:263 commands/tablecmds.c:2393 commands/tablecmds.c:3049 commands/tablecmds.c:3558 parser/parse_relation.c:3669 parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 #, c-format msgid "column \"%s\" does not exist" msgstr "列\"%s\"は存在しません" -#: commands/copy.c:791 commands/tablecmds.c:2419 commands/trigger.c:963 parser/parse_target.c:1093 parser/parse_target.c:1104 +#: commands/copy.c:828 commands/tablecmds.c:2419 commands/trigger.c:963 parser/parse_target.c:1093 parser/parse_target.c:1104 #, c-format msgid "column \"%s\" specified more than once" msgstr "列\"%s\"が複数指定されました" @@ -7071,7 +7086,7 @@ msgstr "データベース\"%s\"のリレーションの中に、テーブルス msgid "You must move them back to the database's default tablespace before using this command." msgstr "このコマンドを使う前に、データベースのデフォルトのテーブルスペースに戻す必要があります。" -#: commands/dbcommands.c:2145 commands/dbcommands.c:2872 commands/dbcommands.c:3172 commands/dbcommands.c:3286 +#: commands/dbcommands.c:2145 commands/dbcommands.c:2872 commands/dbcommands.c:3172 commands/dbcommands.c:3287 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "元のデータベースのディレクトリ\"%s\"に不要なファイルが残っているかもしれません" @@ -7203,7 +7218,7 @@ msgstr "照合順序\"%s\"は存在しません、スキップします" msgid "conversion \"%s\" does not exist, skipping" msgstr "変換\"%sは存在しません、スキップします" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:675 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "統計情報オブジェクト\"%s\"は存在しません、スキップします" @@ -8280,7 +8295,7 @@ msgstr "包含列は NULLS FIRST/LAST オプションをサポートしません msgid "could not determine which collation to use for index expression" msgstr "インデックス式で使用する照合順序を特定できませんでした" -#: commands/indexcmds.c:1969 commands/tablecmds.c:17805 commands/typecmds.c:807 parser/parse_expr.c:2698 parser/parse_type.c:570 parser/parse_utilcmd.c:3823 utils/adt/misc.c:594 +#: commands/indexcmds.c:1969 commands/tablecmds.c:17815 commands/typecmds.c:807 parser/parse_expr.c:2698 parser/parse_type.c:570 parser/parse_utilcmd.c:3823 utils/adt/misc.c:594 #, c-format msgid "collations are not supported by type %s" msgstr "%s 型では照合順序はサポートされません" @@ -8315,7 +8330,7 @@ msgstr "アクセスメソッド\"%s\"はASC/DESCオプションをサポート msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "アクセスメソッド\"%s\"はNULLS FIRST/LASTオプションをサポートしません" -#: commands/indexcmds.c:2151 commands/tablecmds.c:17830 commands/tablecmds.c:17836 commands/typecmds.c:2302 +#: commands/indexcmds.c:2151 commands/tablecmds.c:17840 commands/tablecmds.c:17846 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"にはデータ型%1$s用のデフォルトの演算子クラスがありません" @@ -8725,7 +8740,7 @@ msgstr "JOIN推定関数 %s は %s型を返す必要があります" msgid "operator attribute \"%s\" cannot be changed" msgstr "演算子の属性\"%s\"は変更できません" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 commands/tablecmds.c:1623 commands/tablecmds.c:2211 commands/tablecmds.c:3452 commands/tablecmds.c:6377 commands/tablecmds.c:9253 commands/tablecmds.c:17383 commands/tablecmds.c:17418 commands/trigger.c:328 commands/trigger.c:1378 commands/trigger.c:1488 rewrite/rewriteDefine.c:279 rewrite/rewriteDefine.c:963 rewrite/rewriteRemove.c:80 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:155 commands/tablecmds.c:1623 commands/tablecmds.c:2211 commands/tablecmds.c:3452 commands/tablecmds.c:6377 commands/tablecmds.c:9253 commands/tablecmds.c:17383 commands/tablecmds.c:17418 commands/trigger.c:328 commands/trigger.c:1378 commands/trigger.c:1488 rewrite/rewriteDefine.c:279 rewrite/rewriteDefine.c:963 rewrite/rewriteRemove.c:80 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "権限がありません: \"%s\"はシステムカタログです" @@ -8820,7 +8835,7 @@ msgstr "準備された文\"%s\"は存在しません" msgid "must be superuser to create custom procedural language" msgstr "手続き言語を生成するためにはスーパーユーザーである必要があります" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1222 postmaster/postmaster.c:1321 utils/init/miscinit.c:1703 +#: commands/publicationcmds.c:130 postmaster/postmaster.c:1224 postmaster/postmaster.c:1323 utils/init/miscinit.c:1703 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "パラメータ\"%s\"のリスト構文が不正です" @@ -9175,72 +9190,72 @@ msgstr "CREATE STATISTICSで指定可能なリレーションは一つのみで msgid "cannot define statistics for relation \"%s\"" msgstr "リレーション\"%s\"に対して統計情報を定義できません" -#: commands/statscmds.c:191 +#: commands/statscmds.c:211 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "統計情報オブジェクト\"%s\"はすでに存在します、スキップします" -#: commands/statscmds.c:199 +#: commands/statscmds.c:219 #, c-format msgid "statistics object \"%s\" already exists" msgstr "統計情報オブジェクト\"%s\"はすでに存在します" -#: commands/statscmds.c:210 +#: commands/statscmds.c:230 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "統計情報は%dを超える列を使用できません" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:271 commands/statscmds.c:294 commands/statscmds.c:328 #, c-format msgid "statistics creation on system columns is not supported" msgstr "システム列に対する統計情報の作成はサポートされていません" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:278 commands/statscmds.c:301 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "列\"%s\"の型%sはデフォルトのbtreeオペレータクラスを持たないため統計情報では利用できません" -#: commands/statscmds.c:325 +#: commands/statscmds.c:345 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "式の型%sがデフォルトbtree演算子クラスを持たないためこの式は多値統計情報では使用できません" -#: commands/statscmds.c:346 +#: commands/statscmds.c:366 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "単一式上の統計情報の構築時には、統計種別は指定できません" -#: commands/statscmds.c:375 +#: commands/statscmds.c:395 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "認識できない統計情報種別\"%s\"" -#: commands/statscmds.c:404 +#: commands/statscmds.c:424 #, c-format msgid "extended statistics require at least 2 columns" msgstr "拡張統計情報には最低でも2つの列が必要です" -#: commands/statscmds.c:422 +#: commands/statscmds.c:442 #, c-format msgid "duplicate column name in statistics definition" msgstr "定形情報定義中の列名が重複しています" -#: commands/statscmds.c:457 +#: commands/statscmds.c:477 #, c-format msgid "duplicate expression in statistics definition" msgstr "統計情報定義内に重複した式" -#: commands/statscmds.c:620 commands/tablecmds.c:8217 +#: commands/statscmds.c:640 commands/tablecmds.c:8217 #, c-format msgid "statistics target %d is too low" msgstr "統計情報目標%dは小さすぎます" -#: commands/statscmds.c:628 commands/tablecmds.c:8225 +#: commands/statscmds.c:648 commands/tablecmds.c:8225 #, c-format msgid "lowering statistics target to %d" msgstr "統計情報目標を%dに減らします" -#: commands/statscmds.c:651 +#: commands/statscmds.c:671 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "統計情報オブジェクト\"%s.%s\"は存在しません、スキップします" @@ -9396,7 +9411,7 @@ msgstr "サブスクリプションの所有者はスーパーユーザーでな msgid "could not receive list of replicated tables from the publisher: %s" msgstr "発行テーブルの一覧を発行サーバーから受け取れませんでした: %s" -#: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 replication/pgoutput/pgoutput.c:1098 +#: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 replication/pgoutput/pgoutput.c:1110 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "テーブル\"%s.%s\"に対して、異なるパブリケーションで異なる列リストを使用することはできません" @@ -9488,7 +9503,7 @@ msgstr "実体化ビュー\"%s\"は存在しません、スキップします" msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "実体化ビューを削除するにはDROP MATERIALIZED VIEWを使用してください。" -#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19411 parser/parse_utilcmd.c:2305 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19425 parser/parse_utilcmd.c:2305 #, c-format msgid "index \"%s\" does not exist" msgstr "インデックス\"%s\"は存在しません" @@ -10303,11 +10318,6 @@ msgstr "型付けされたテーブルの列の型を変更できません" msgid "cannot specify USING when altering type of generated column" msgstr "生成列の型変更の際にはUSINGを指定することはできません" -#: commands/tablecmds.c:12461 commands/tablecmds.c:17648 commands/tablecmds.c:17738 commands/trigger.c:668 rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "列\"%s\"は生成カラムです。" - #: commands/tablecmds.c:12471 #, c-format msgid "cannot alter inherited column \"%s\"" @@ -10494,12 +10504,12 @@ msgstr "他のセッションの一時テーブルを継承できません" msgid "cannot inherit from a partition" msgstr "パーティションからの継承はできません" -#: commands/tablecmds.c:15234 commands/tablecmds.c:18149 +#: commands/tablecmds.c:15234 commands/tablecmds.c:18159 #, c-format msgid "circular inheritance not allowed" msgstr "循環継承を行うことはできません" -#: commands/tablecmds.c:15235 commands/tablecmds.c:18150 +#: commands/tablecmds.c:15235 commands/tablecmds.c:18160 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\"はすでに\"%s\"の子です" @@ -10714,162 +10724,162 @@ msgstr "パーティションキーに指定されている列\"%s\"は存在し msgid "cannot use system column \"%s\" in partition key" msgstr "パーティションキーでシステム列\"%s\"は使用できません" -#: commands/tablecmds.c:17647 commands/tablecmds.c:17737 +#: commands/tablecmds.c:17647 commands/tablecmds.c:17726 #, c-format msgid "cannot use generated column in partition key" msgstr "パーティションキーで生成カラムは使用できません" -#: commands/tablecmds.c:17720 +#: commands/tablecmds.c:17716 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "パーティションキー式はシステム列への参照を含むことができません" -#: commands/tablecmds.c:17767 +#: commands/tablecmds.c:17777 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "パーティションキー式で使われる関数はIMMUTABLE指定されている必要があります" -#: commands/tablecmds.c:17776 +#: commands/tablecmds.c:17786 #, c-format msgid "cannot use constant expression as partition key" msgstr "定数式をパーティションキーとして使うことはできません" -#: commands/tablecmds.c:17797 +#: commands/tablecmds.c:17807 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "パーティション式で使用する照合順序を特定できませんでした" -#: commands/tablecmds.c:17832 +#: commands/tablecmds.c:17842 #, 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:17838 +#: commands/tablecmds.c:17848 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "btree演算子クラスを指定するか、もしくはこのデータ型にデフォルトのbtree演算子クラスを定義するかする必要があります。" -#: commands/tablecmds.c:18089 +#: commands/tablecmds.c:18099 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\"はすでパーティションです" -#: commands/tablecmds.c:18095 +#: commands/tablecmds.c:18105 #, c-format msgid "cannot attach a typed table as partition" msgstr "型付けされたテーブルをパーティションにアタッチすることはできません" -#: commands/tablecmds.c:18111 +#: commands/tablecmds.c:18121 #, c-format msgid "cannot attach inheritance child as partition" msgstr "継承子テーブルをパーティションにアタッチすることはできません" -#: commands/tablecmds.c:18125 +#: commands/tablecmds.c:18135 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "継承親テーブルをパーティションにアタッチすることはできません" -#: commands/tablecmds.c:18159 +#: commands/tablecmds.c:18169 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "一時リレーションを永続リレーション \"%s\" のパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18167 +#: commands/tablecmds.c:18177 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "永続リレーションを一時リレーション\"%s\"のパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18175 +#: commands/tablecmds.c:18185 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "他セッションの一時リレーションのパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18182 +#: commands/tablecmds.c:18192 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "他セッションの一時リレーションにパーティション子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18202 +#: commands/tablecmds.c:18212 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "テーブル\"%1$s\"は親テーブル\"%3$s\"にない列\"%2$s\"を含んでいます" -#: commands/tablecmds.c:18205 +#: commands/tablecmds.c:18215 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "新しいパーティションは親に存在する列のみを含むことができます。" -#: commands/tablecmds.c:18217 +#: commands/tablecmds.c:18227 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "トリガ\"%s\"のため、テーブル\"%s\"はパーティション子テーブルにはなれません" -#: commands/tablecmds.c:18219 +#: commands/tablecmds.c:18229 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "遷移テーブルを使用するROWトリガはパーティションではサポートされません。" -#: commands/tablecmds.c:18398 +#: commands/tablecmds.c:18408 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "外部テーブル\"%s\"はパーティションテーブル\"%s\"の子テーブルとしてアタッチすることはできません" -#: commands/tablecmds.c:18401 +#: commands/tablecmds.c:18411 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "パーティション親テーブル\"%s\"はユニークインデックスを持っています。" -#: commands/tablecmds.c:18716 +#: commands/tablecmds.c:18727 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "デフォルトパーティションを持つパーティションは並列的に取り外しはできません" -#: commands/tablecmds.c:18825 +#: commands/tablecmds.c:18839 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "パーティション親テーブル\"%s\"には CREATE INDEX CONCURRENTLY は実行できません" -#: commands/tablecmds.c:18831 +#: commands/tablecmds.c:18845 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "パーティション子テーブル\\\"%s\\\"は同時に削除されました" -#: commands/tablecmds.c:19445 commands/tablecmds.c:19465 commands/tablecmds.c:19485 commands/tablecmds.c:19504 commands/tablecmds.c:19546 +#: commands/tablecmds.c:19459 commands/tablecmds.c:19479 commands/tablecmds.c:19499 commands/tablecmds.c:19518 commands/tablecmds.c:19560 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "インデックス\"%s\"をインデックス\"%s\"の子インデックスとしてアタッチすることはできません" -#: commands/tablecmds.c:19448 +#: commands/tablecmds.c:19462 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "インデックス\"%s\"はすでに別のインデックスにアタッチされています。" -#: commands/tablecmds.c:19468 +#: commands/tablecmds.c:19482 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "インデックス\"%s\"はテーブル\"%s\"のどの子テーブルのインデックスでもありません。" -#: commands/tablecmds.c:19488 +#: commands/tablecmds.c:19502 #, c-format msgid "The index definitions do not match." msgstr "インデックス定義が合致しません。" -#: commands/tablecmds.c:19507 +#: commands/tablecmds.c:19521 #, 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:19549 +#: commands/tablecmds.c:19563 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "子テーブル\"%s\"にはすでに他のインデックスがアタッチされています。" -#: commands/tablecmds.c:19786 +#: commands/tablecmds.c:19800 #, c-format msgid "column data type %s does not support compression" msgstr "列データ型%sは圧縮をサポートしていません" -#: commands/tablecmds.c:19793 +#: commands/tablecmds.c:19807 #, c-format msgid "invalid compression method \"%s\"" msgstr "無効な圧縮方式\"%s\"" @@ -11913,107 +11923,107 @@ msgstr "ロール\"%s\"はすでにロール\"%s\"のメンバです" msgid "role \"%s\" is not a member of role \"%s\"" msgstr "ロール\"%s\"はロール\"%s\"のメンバではありません" -#: commands/vacuum.c:140 +#: commands/vacuum.c:141 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "ANALYZEオプション\"%s\"が認識できません" -#: commands/vacuum.c:178 +#: commands/vacuum.c:179 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "パラレルオプションには0から%dまでの値である必要があります" -#: commands/vacuum.c:190 +#: commands/vacuum.c:191 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "VACUUMの並列ワーカーの数はは0から%dまでの値でなければなりません" -#: commands/vacuum.c:207 +#: commands/vacuum.c:208 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "認識できないVACUUMオプション \"%s\"" -#: commands/vacuum.c:230 +#: commands/vacuum.c:231 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULLは並列実行できません" -#: commands/vacuum.c:246 +#: commands/vacuum.c:247 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "ANALYZE オプションは列リストが与えられているときのみ指定できます" -#: commands/vacuum.c:336 +#: commands/vacuum.c:337 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%sはVACUUMやANALYZEからは実行できません" -#: commands/vacuum.c:346 +#: commands/vacuum.c:347 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "VACUUM のオプションDISABLE_PAGE_SKIPPINGはFULLと同時には指定できません" -#: commands/vacuum.c:353 +#: commands/vacuum.c:354 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "VACUUM FULLではPROCESS_TOASTの指定が必須です" -#: commands/vacuum.c:596 +#: commands/vacuum.c:597 #, c-format msgid "skipping \"%s\" --- only superuser can vacuum it" msgstr "\"%s\"をスキップしています --- スーパーユーザーのみがVACUUMを実行できます" -#: commands/vacuum.c:600 +#: commands/vacuum.c:601 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" msgstr "\"%s\"をスキップしています --- スーパーユーザーもしくはデータベースの所有者のみがVACUUMを実行できます" -#: commands/vacuum.c:604 +#: commands/vacuum.c:605 #, c-format msgid "skipping \"%s\" --- only table or database owner can vacuum it" msgstr "\"%s\"を飛ばしています --- テーブルまたはデータベースの所有者のみがVACUUMを実行することができます" -#: commands/vacuum.c:619 +#: commands/vacuum.c:620 #, c-format msgid "skipping \"%s\" --- only superuser can analyze it" msgstr "\"%s\"をスキップしています --- スーパーユーザーのみがANALYZEを実行できます" -#: commands/vacuum.c:623 +#: commands/vacuum.c:624 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can analyze it" msgstr "\"%s\"をスキップしています --- スーパーユーザーまたはデータベースの所有者のみがANALYZEを実行できます" -#: commands/vacuum.c:627 +#: commands/vacuum.c:628 #, c-format msgid "skipping \"%s\" --- only table or database owner can analyze it" msgstr "\"%s\"をスキップしています --- テーブルまたはデータベースの所有者のみがANALYZEを実行できます" -#: commands/vacuum.c:706 commands/vacuum.c:802 +#: commands/vacuum.c:707 commands/vacuum.c:803 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "\"%s\"のVACUUM処理をスキップしています -- ロックを獲得できませんでした" -#: commands/vacuum.c:711 +#: commands/vacuum.c:712 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "\"%s\"のVACUUM処理をスキップしています -- リレーションはすでに存在しません" -#: commands/vacuum.c:727 commands/vacuum.c:807 +#: commands/vacuum.c:728 commands/vacuum.c:808 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "\"%s\"のANALYZEをスキップしています --- ロック獲得できませんでした" -#: commands/vacuum.c:732 +#: commands/vacuum.c:733 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "\"%s\"のANALYZEをスキップします --- リレーションはすでに存在しません" -#: commands/vacuum.c:1051 +#: commands/vacuum.c:1052 #, c-format msgid "oldest xmin is far in the past" msgstr "最も古いxminが古すぎます" -#: commands/vacuum.c:1052 +#: commands/vacuum.c:1053 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -12022,42 +12032,42 @@ msgstr "" "周回問題を回避するためにすぐに実行中のトランザクションを終了してください。\n" "古い準備済みトランザクションのコミットまたはロールバック、もしくは古いレプリケーションスロットの削除が必要な場合もあります。" -#: commands/vacuum.c:1095 +#: commands/vacuum.c:1096 #, c-format msgid "oldest multixact is far in the past" msgstr "最古のマルチトランザクションが古すぎます" -#: commands/vacuum.c:1096 +#: commands/vacuum.c:1097 #, c-format msgid "Close open transactions with multixacts soon to avoid wraparound problems." msgstr "周回問題を回避するために、マルチトランザクションを使用している実行中のトランザクションをすぐにクローズしてください。" -#: commands/vacuum.c:1830 +#: commands/vacuum.c:1831 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "データベースの一部は20億トランザクション以上の間にVACUUMを実行されていませんでした" -#: commands/vacuum.c:1831 +#: commands/vacuum.c:1832 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "トランザクションの周回によるデータ損失が発生している可能性があります" -#: commands/vacuum.c:2006 +#: commands/vacuum.c:2013 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "\"%s\"をスキップしています --- テーブルではないものや、特別なシステムテーブルに対してはVACUUMを実行できません" -#: commands/vacuum.c:2384 +#: commands/vacuum.c:2391 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "%2$d行バージョンを削除するためインデックス\"%1$s\"をスキャンしました" -#: commands/vacuum.c:2403 +#: commands/vacuum.c:2410 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "現在インデックス\"%s\"は%.0f行バージョンを%uページで含んでいます" -#: commands/vacuum.c:2407 +#: commands/vacuum.c:2414 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12310,7 +12320,7 @@ msgstr "問い合わせで %d 番目に削除される列の値を指定して msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "テーブルでは %2$d 番目の型は %1$s ですが、問い合わせでは %3$s を想定しています。" -#: executor/execExpr.c:1098 parser/parse_agg.c:835 +#: executor/execExpr.c:1098 parser/parse_agg.c:888 #, c-format msgid "window function calls cannot be nested" msgstr "ウィンドウ関数の呼び出しを入れ子にすることはできません" @@ -12468,32 +12478,32 @@ msgstr "シーケンス\"%s\"を変更できません" msgid "cannot change TOAST relation \"%s\"" msgstr "TOASTリレーション\"%s\"を変更できません" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3149 rewrite/rewriteHandler.c:4037 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3152 rewrite/rewriteHandler.c:4057 #, c-format msgid "cannot insert into view \"%s\"" msgstr "ビュー\"%s\"へは挿入(INSERT)できません" -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3152 rewrite/rewriteHandler.c:4040 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3155 rewrite/rewriteHandler.c:4060 #, 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:1071 rewrite/rewriteHandler.c:3157 rewrite/rewriteHandler.c:4045 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3160 rewrite/rewriteHandler.c:4065 #, c-format msgid "cannot update view \"%s\"" msgstr "ビュー\"%s\"は更新できません" -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3160 rewrite/rewriteHandler.c:4048 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3163 rewrite/rewriteHandler.c:4068 #, 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:1079 rewrite/rewriteHandler.c:3165 rewrite/rewriteHandler.c:4053 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3168 rewrite/rewriteHandler.c:4073 #, c-format msgid "cannot delete from view \"%s\"" msgstr "ビュー\"%s\"からは削除できません" -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3168 rewrite/rewriteHandler.c:4056 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3171 rewrite/rewriteHandler.c:4076 #, 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ルールを作成してください。" @@ -12558,7 +12568,7 @@ msgstr "ビュー\"%s\"では行のロックはできません" msgid "cannot lock rows in materialized view \"%s\"" msgstr "実体化ビュー\"%s\"では行のロックはできません" -#: executor/execMain.c:1215 executor/execMain.c:2732 executor/nodeLockRows.c:136 +#: executor/execMain.c:1215 executor/execMain.c:2742 executor/nodeLockRows.c:136 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "外部テーブル\"%s\"では行のロックはできません" @@ -12568,57 +12578,57 @@ msgstr "外部テーブル\"%s\"では行のロックはできません" msgid "cannot lock rows in relation \"%s\"" msgstr "リレーション\"%s\"では行のロックはできません" -#: executor/execMain.c:1933 +#: executor/execMain.c:1943 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "リレーション\"%s\"の新しい行はパーティション制約に違反しています" -#: executor/execMain.c:1935 executor/execMain.c:2018 executor/execMain.c:2068 executor/execMain.c:2177 +#: executor/execMain.c:1945 executor/execMain.c:2028 executor/execMain.c:2078 executor/execMain.c:2187 #, c-format msgid "Failing row contains %s." msgstr "失敗した行は%sを含みます" -#: executor/execMain.c:2015 +#: executor/execMain.c:2025 #, c-format msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "リレーション\"%2$s\"の列\"%1$s\"のNULL値が非NULL制約に違反しています" -#: executor/execMain.c:2066 +#: executor/execMain.c:2076 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "リレーション\"%s\"の新しい行は検査制約\"%s\"に違反しています" -#: executor/execMain.c:2175 +#: executor/execMain.c:2185 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "新しい行はビュー\"%s\"のチェックオプションに違反しています" -#: executor/execMain.c:2185 +#: executor/execMain.c:2195 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "新しい行はテーブル\"%2$s\"行レベルセキュリティポリシ\"%1$s\"に違反しています" -#: executor/execMain.c:2190 +#: executor/execMain.c:2200 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "新しい行はテーブル\"%s\"の行レベルセキュリティポリシに違反しています" -#: executor/execMain.c:2198 +#: executor/execMain.c:2208 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "ターゲットの行はテーブル\"%s\"の行レベルセキュリティポリシ\"%s\"(USING式)に違反しています" -#: executor/execMain.c:2203 +#: executor/execMain.c:2213 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "ターゲットの行はテーブル\"%s\"の行レベルセキュリティポリシ(USING式)に違反しています" -#: executor/execMain.c:2210 +#: executor/execMain.c:2220 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "新しい行はテーブル\"%1$s\"の行レベルセキュリティポリシ\"%2$s\"(USING式)に違反しています" -#: executor/execMain.c:2215 +#: executor/execMain.c:2225 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "新しい行はテーブル\"%s\"の行レベルセキュリティポリシ(USING式)に違反しています" @@ -12836,7 +12846,7 @@ msgstr "戻り値型%sはSQL関数でサポートされていません" msgid "aggregate %u needs to have compatible input type and transition type" msgstr "集約%uは入力データ型と遷移用の型間で互換性が必要です" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:677 parser/parse_agg.c:705 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:684 parser/parse_agg.c:727 #, c-format msgid "aggregate function calls cannot be nested" msgstr "集約関数の呼び出しを入れ子にすることはできません" @@ -13063,7 +13073,7 @@ msgstr "カーソルで%s問い合わせを開くことができません" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHAREはサポートされていません" -#: executor/spi.c:1720 parser/analyze.c:2910 +#: executor/spi.c:1720 parser/analyze.c:2911 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "スクロール可能カーソルは読み取り専用である必要があります。" @@ -15604,7 +15614,7 @@ msgid "%s cannot be applied to the nullable side of an outer join" msgstr "外部結合のNULL可な側では%sを適用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: optimizer/plan/planner.c:1374 parser/analyze.c:1763 parser/analyze.c:2019 parser/analyze.c:3201 +#: optimizer/plan/planner.c:1374 parser/analyze.c:1763 parser/analyze.c:2019 parser/analyze.c:3202 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "UNION/INTERSECT/EXCEPTでは%sを使用できません" @@ -15675,22 +15685,22 @@ msgstr "リレーション\"%s\"はオープンできません" msgid "cannot access temporary or unlogged relations during recovery" msgstr "リカバリ中は一時テーブルやUNLOGGEDテーブルにはアクセスできません" -#: optimizer/util/plancat.c:705 +#: optimizer/util/plancat.c:710 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "行全体に渡るユニークインデックスの推定指定はサポートされていません" -#: optimizer/util/plancat.c:722 +#: optimizer/util/plancat.c:727 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "ON CONFLICT句中の制約には関連付けられるインデックスがありません" -#: optimizer/util/plancat.c:772 +#: optimizer/util/plancat.c:777 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATEでの排除制約の使用はサポートされていません" -#: optimizer/util/plancat.c:882 +#: optimizer/util/plancat.c:887 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "ON CONFLICT 指定に合致するユニーク制約または排除制約がありません" @@ -15721,7 +15731,7 @@ 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:1666 parser/analyze.c:3412 +#: parser/analyze.c:1666 parser/analyze.c:3413 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%sをVALUESに使用できません" @@ -15773,466 +15783,476 @@ msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "変数\"%s\"は型%sですが、式は型%sでした" #. translator: %s is a SQL keyword -#: parser/analyze.c:2860 parser/analyze.c:2868 +#: parser/analyze.c:2861 parser/analyze.c:2869 #, c-format msgid "cannot specify both %s and %s" msgstr "%sと%sの両方を同時には指定できません" -#: parser/analyze.c:2888 +#: parser/analyze.c:2889 #, 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:2896 +#: parser/analyze.c:2897 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %sはサポートされていません" -#: parser/analyze.c:2899 +#: parser/analyze.c:2900 #, 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:2907 +#: parser/analyze.c:2908 #, 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:2918 +#: parser/analyze.c:2919 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %sはが不正です" -#: parser/analyze.c:2921 +#: parser/analyze.c:2922 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "INSENSITIVEカーソルは読み取り専用である必要があります。" -#: parser/analyze.c:2987 +#: parser/analyze.c:2988 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "実体化ビューではWITH句にデータを変更する文を含んではなりません" -#: parser/analyze.c:2997 +#: parser/analyze.c:2998 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "実体化ビューでは一時テーブルやビューを使用してはいけません" -#: parser/analyze.c:3007 +#: parser/analyze.c:3008 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "実体化ビューは境界パラメータを用いて定義してはなりません" -#: parser/analyze.c:3019 +#: parser/analyze.c:3020 #, c-format msgid "materialized views cannot be unlogged" msgstr "実体化ビューをログ非取得にはできません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3208 +#: parser/analyze.c:3209 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "DISTINCT句では%sを使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3215 +#: parser/analyze.c:3216 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "GROUP BY句で%sを使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3222 +#: parser/analyze.c:3223 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "HAVING 句では%sを使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3229 +#: parser/analyze.c:3230 #, 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:3236 +#: parser/analyze.c:3237 #, 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:3243 +#: parser/analyze.c:3244 #, 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:3335 +#: parser/analyze.c:3336 #, 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:3385 +#: parser/analyze.c:3386 #, c-format msgid "%s cannot be applied to a join" msgstr "%sを結合に使用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3394 +#: parser/analyze.c:3395 #, 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:3403 +#: parser/analyze.c:3404 #, 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:3421 +#: parser/analyze.c:3422 #, 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:3430 +#: parser/analyze.c:3431 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%sは名前付きタプルストアには適用できません" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3450 +#: parser/analyze.c:3451 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "%2$s句のリレーション\"%1$s\"はFROM句にありません" -#: parser/parse_agg.c:208 parser/parse_oper.c:227 +#: parser/parse_agg.c:211 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "型%sの順序演算子を識別できませんでした" -#: parser/parse_agg.c:210 +#: parser/parse_agg.c:213 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "DISTINCT 付きの集約関数は、入力がソート可能である必要があります。" -#: parser/parse_agg.c:268 +#: parser/parse_agg.c:271 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPINGの引数は32より少くなければなりません" -#: parser/parse_agg.c:371 +#: parser/parse_agg.c:375 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "JOIN条件で集約関数を使用できません" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:377 msgid "grouping operations are not allowed in JOIN conditions" msgstr "グルーピング演算はJOIN条件の中では使用できません" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:387 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "集約関数は自身の問い合わせレベルのFROM句の中では使用できません" -#: parser/parse_agg.c:385 +#: parser/parse_agg.c:389 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "グルーピング演算は自身のクエリレベルのFROM句の中では使用できません" -#: parser/parse_agg.c:390 +#: parser/parse_agg.c:394 msgid "aggregate functions are not allowed in functions in FROM" msgstr "集約関数はFROM句内の関数では使用できません" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:396 msgid "grouping operations are not allowed in functions in FROM" msgstr "グルーピング演算はFROM句内の関数では使用できません" -#: parser/parse_agg.c:400 +#: parser/parse_agg.c:404 msgid "aggregate functions are not allowed in policy expressions" msgstr "集約関数はポリシ式では使用できません" -#: parser/parse_agg.c:402 +#: parser/parse_agg.c:406 msgid "grouping operations are not allowed in policy expressions" msgstr "グルーピング演算はポリシ式では使用できません" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:423 msgid "aggregate functions are not allowed in window RANGE" msgstr "集約関数はウィンドウRANGEの中では集約関数を使用できません" -#: parser/parse_agg.c:421 +#: parser/parse_agg.c:425 msgid "grouping operations are not allowed in window RANGE" msgstr "ウィンドウ定義のRANGE句の中ではグルーピング演算は使用できません" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:430 msgid "aggregate functions are not allowed in window ROWS" msgstr "ウィンドウ定義のROWS句では集約関数は使用できません" -#: parser/parse_agg.c:428 +#: parser/parse_agg.c:432 msgid "grouping operations are not allowed in window ROWS" msgstr "ウィンドウ定義のROWS句ではグルーピング演算は使用できません" -#: parser/parse_agg.c:433 +#: parser/parse_agg.c:437 msgid "aggregate functions are not allowed in window GROUPS" msgstr "ウィンドウ定義のGROUPS句では集約関数は使用できません" -#: parser/parse_agg.c:435 +#: parser/parse_agg.c:439 msgid "grouping operations are not allowed in window GROUPS" msgstr "ウィンドウ定義のGROUPS句ではグルーピング演算は使用できません" -#: parser/parse_agg.c:448 +#: parser/parse_agg.c:452 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN条件では集約関数を使用できません" -#: parser/parse_agg.c:450 +#: parser/parse_agg.c:454 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN条件ではグルーピング演算を使用できません" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:480 msgid "aggregate functions are not allowed in check constraints" msgstr "検査制約では集約関数を使用できません" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:482 msgid "grouping operations are not allowed in check constraints" msgstr "検査制約ではグルーピング演算を使用できません" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:489 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "DEFAULT式では集約関数を使用できません" -#: parser/parse_agg.c:487 +#: parser/parse_agg.c:491 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "DEFAULT式ではグルーピング演算を使用できません" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:496 msgid "aggregate functions are not allowed in index expressions" msgstr "インデックス式では集約関数を使用できません" -#: parser/parse_agg.c:494 +#: parser/parse_agg.c:498 msgid "grouping operations are not allowed in index expressions" msgstr "インデックス式ではグルーピング演算を使用できません" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:503 msgid "aggregate functions are not allowed in index predicates" msgstr "インデックス述語では集約関数を使用できません" -#: parser/parse_agg.c:501 +#: parser/parse_agg.c:505 msgid "grouping operations are not allowed in index predicates" msgstr "インデックス述語ではグルーピング演算を使用できません" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:510 msgid "aggregate functions are not allowed in statistics expressions" msgstr "統計情報式では集約関数を使用できません" -#: parser/parse_agg.c:508 +#: parser/parse_agg.c:512 msgid "grouping operations are not allowed in statistics expressions" msgstr "統計情報式ではグルーピング演算使用できません" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:517 msgid "aggregate functions are not allowed in transform expressions" msgstr "変換式では集約関数を使用できません" -#: parser/parse_agg.c:515 +#: parser/parse_agg.c:519 msgid "grouping operations are not allowed in transform expressions" msgstr "変換式ではグルーピング演算を使用できません" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:524 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "EXECUTEのパラメータでは集約関数を使用できません" -#: parser/parse_agg.c:522 +#: parser/parse_agg.c:526 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "EXECUTEのパラメータではグルーピング演算を使用できません" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:531 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "トリガのWHEN条件では集約関数を使用できません" -#: parser/parse_agg.c:529 +#: parser/parse_agg.c:533 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "トリガのWHEN条件ではグルーピング演算を使用できません" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:538 msgid "aggregate functions are not allowed in partition bound" msgstr "集約関数はパーティション境界では使用できません" -#: parser/parse_agg.c:536 +#: parser/parse_agg.c:540 msgid "grouping operations are not allowed in partition bound" msgstr "グルーピング演算はパーティション境界では使用できません" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:545 msgid "aggregate functions are not allowed in partition key expressions" msgstr "パーティションキー式では集約関数は使用できません" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:547 msgid "grouping operations are not allowed in partition key expressions" msgstr "パーティションキー式ではグルーピング演算は使用できません" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:553 msgid "aggregate functions are not allowed in column generation expressions" msgstr "集約関数はカラム生成式では使用できません" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:555 msgid "grouping operations are not allowed in column generation expressions" msgstr "グルーピング演算はカラム生成式では使用できません" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:561 msgid "aggregate functions are not allowed in CALL arguments" msgstr "CALLの引数では集約関数を使用できません" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:563 msgid "grouping operations are not allowed in CALL arguments" msgstr "CALLの引数ではグルーピング演算を使用できません" -#: parser/parse_agg.c:565 +#: parser/parse_agg.c:569 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "集約関数は COPY FROM の WHERE 条件では使用できません" -#: parser/parse_agg.c:567 +#: parser/parse_agg.c:571 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "グルーピング演算は COPY FROM の WHERE 条件の中では使用できません" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:594 parser/parse_clause.c:1836 +#: parser/parse_agg.c:598 parser/parse_clause.c:1836 #, 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:597 +#: parser/parse_agg.c:601 #, c-format msgid "grouping operations are not allowed in %s" msgstr "%sではグルーピング演算を使用できません" -#: parser/parse_agg.c:698 +#: parser/parse_agg.c:697 parser/parse_agg.c:734 +#, c-format +msgid "outer-level aggregate cannot use a nested CTE" +msgstr "上位レベルの集約では、下位レベルのCTEを使用することはできません" + +#: parser/parse_agg.c:698 parser/parse_agg.c:735 +#, c-format +msgid "CTE \"%s\" is below the aggregate's semantic level." +msgstr "CTE \"%s\" は、この集約のクエリレベルよりも下位にあります。" + +#: parser/parse_agg.c:720 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "アウタレベルの集約は直接引数に低位の変数を含むことができません" -#: parser/parse_agg.c:776 +#: parser/parse_agg.c:805 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "集合返却関数の呼び出しに集約関数の呼び出しを含むことはできません" -#: parser/parse_agg.c:777 parser/parse_expr.c:1674 parser/parse_expr.c:2164 parser/parse_func.c:883 +#: parser/parse_agg.c:806 parser/parse_expr.c:1674 parser/parse_expr.c:2164 parser/parse_func.c:883 #, 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:782 +#: parser/parse_agg.c:811 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "集約関数の呼び出しにウィンドウ関数の呼び出しを含むことはできません" -#: parser/parse_agg.c:861 +#: parser/parse_agg.c:914 msgid "window functions are not allowed in JOIN conditions" msgstr "JOIN条件ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:868 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in functions in FROM" msgstr "FROM句内の関数ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:874 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in policy expressions" msgstr "ポリシ式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:887 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in window definitions" msgstr "ウィンドウ定義ではウィンドウ関数は使用できません" -#: parser/parse_agg.c:898 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHEN条件ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:922 +#: parser/parse_agg.c:975 msgid "window functions are not allowed in check constraints" msgstr "検査制約の中ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:926 +#: parser/parse_agg.c:979 msgid "window functions are not allowed in DEFAULT expressions" msgstr "DEFAULT式の中ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:982 msgid "window functions are not allowed in index expressions" msgstr "インデックス式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:985 msgid "window functions are not allowed in statistics expressions" msgstr "統計情報式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:988 msgid "window functions are not allowed in index predicates" msgstr "インデックス述語ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:991 msgid "window functions are not allowed in transform expressions" msgstr "変換式ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:994 msgid "window functions are not allowed in EXECUTE parameters" msgstr "EXECUTEパラメータではウィンドウ関数を使用できません" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:997 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "トリガのWHEN条件ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:1000 msgid "window functions are not allowed in partition bound" msgstr "ウィンドウ関数はパーティション境界では使用できません" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:1003 msgid "window functions are not allowed in partition key expressions" msgstr "パーティションキー式ではウィンドウ関数は使用できません" -#: parser/parse_agg.c:953 +#: parser/parse_agg.c:1006 msgid "window functions are not allowed in CALL arguments" msgstr "CALLの引数ではウィンドウ関数は使用できません" -#: parser/parse_agg.c:956 +#: parser/parse_agg.c:1009 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "ウィンドウ関数は COPY FROM の WHERE 条件では使用できません" -#: parser/parse_agg.c:959 +#: parser/parse_agg.c:1012 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:982 parser/parse_clause.c:1845 +#: parser/parse_agg.c:1035 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "%sの中ではウィンドウ関数を使用できません" -#: parser/parse_agg.c:1016 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1069 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "ウィンドウ\"%s\"は存在しません" -#: parser/parse_agg.c:1100 +#: parser/parse_agg.c:1153 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "グルーピングセットの数が多すぎます (最大4096)" -#: parser/parse_agg.c:1240 +#: parser/parse_agg.c:1293 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "再帰問い合わせの再帰項では集約関数を使用できません" -#: parser/parse_agg.c:1433 +#: parser/parse_agg.c:1486 #, 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:1436 +#: parser/parse_agg.c:1489 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "順序集合集約の直接引数はグルーピングされた列のみを使用しなければなりません。" -#: parser/parse_agg.c:1441 +#: parser/parse_agg.c:1494 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "外部問い合わせから副問い合わせがグループ化されていない列\"%s.%s\"を使用しています" -#: parser/parse_agg.c:1605 +#: parser/parse_agg.c:1658 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "GROUPINGの引数は関連するクエリレベルのグルーピング式でなければなりません" @@ -18398,17 +18418,17 @@ msgstr "テーブル\"%s.%s.%s\"に対する自動VACUUM" msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "テーブル\"%s.%s.%s\"に対する自動ANALYZE" -#: postmaster/autovacuum.c:2743 +#: postmaster/autovacuum.c:2746 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "リレーション\"%s.%s.%s\"の作業エントリを処理しています" -#: postmaster/autovacuum.c:3363 +#: postmaster/autovacuum.c:3366 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "誤設定のため自動VACUUMが起動できません" -#: postmaster/autovacuum.c:3364 +#: postmaster/autovacuum.c:3367 #, c-format msgid "Enable the \"track_counts\" option." msgstr "\"track_counts\"オプションを有効にしてください。" @@ -18560,97 +18580,97 @@ msgstr "WALストリーミング(max_wal_senders > 0)を行うには wal_level msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: データトークンテーブルが不正です、修復してください\n" -#: postmaster/postmaster.c:1113 +#: postmaster/postmaster.c:1115 #, c-format msgid "could not create I/O completion port for child queue" msgstr "子キュー向けのI/O終了ポートを作成できませんでした" -#: postmaster/postmaster.c:1189 +#: postmaster/postmaster.c:1191 #, c-format msgid "ending log output to stderr" msgstr "標準エラー出力へのログ出力を終了しています" -#: postmaster/postmaster.c:1190 +#: postmaster/postmaster.c:1192 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "この後のログ出力はログ配送先\"%s\"に出力されます。" -#: postmaster/postmaster.c:1201 +#: postmaster/postmaster.c:1203 #, c-format msgid "starting %s" msgstr "%s を起動しています" -#: postmaster/postmaster.c:1253 +#: postmaster/postmaster.c:1255 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "\"%s\"に関する監視用ソケットを作成できませんでした" -#: postmaster/postmaster.c:1259 +#: postmaster/postmaster.c:1261 #, c-format msgid "could not create any TCP/IP sockets" msgstr "TCP/IPソケットを作成できませんでした" -#: postmaster/postmaster.c:1291 +#: postmaster/postmaster.c:1293 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister()が失敗しました: エラーコード %ld" -#: postmaster/postmaster.c:1343 +#: postmaster/postmaster.c:1345 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "ディレクトリ\"%s\"においてUnixドメインソケットを作成できませんでした" -#: postmaster/postmaster.c:1349 +#: postmaster/postmaster.c:1351 #, c-format msgid "could not create any Unix-domain sockets" msgstr "Unixドメインソケットを作成できませんでした" -#: postmaster/postmaster.c:1361 +#: postmaster/postmaster.c:1363 #, c-format msgid "no socket created for listening" msgstr "監視用に作成するソケットはありません" -#: postmaster/postmaster.c:1392 +#: postmaster/postmaster.c:1394 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %s\n" msgstr "%s: 外部PIDファイル\"%s\"の権限を変更できませんでした: %s\n" -#: postmaster/postmaster.c:1396 +#: postmaster/postmaster.c:1398 #, c-format msgid "%s: could not write external PID file \"%s\": %s\n" msgstr "%s: 外部PIDファイル\"%s\"に書き出せませんでした: %s\n" -#: postmaster/postmaster.c:1423 utils/init/postinit.c:220 +#: postmaster/postmaster.c:1425 utils/init/postinit.c:220 #, c-format msgid "could not load pg_hba.conf" msgstr "pg_hba.conf の読み込みができませんでした" -#: postmaster/postmaster.c:1451 +#: postmaster/postmaster.c:1453 #, c-format msgid "postmaster became multithreaded during startup" msgstr "postmasterは起動値処理中はマルチスレッドで動作します" -#: postmaster/postmaster.c:1452 postmaster/postmaster.c:5112 +#: postmaster/postmaster.c:1454 postmaster/postmaster.c:5114 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "LC_ALL環境変数を使用可能なロケールに設定してください。" -#: postmaster/postmaster.c:1553 +#: postmaster/postmaster.c:1555 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: 自身の実行ファイルのパスが特定できません" -#: postmaster/postmaster.c:1560 +#: postmaster/postmaster.c:1562 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: 一致するpostgres実行ファイルがありませんでした" -#: postmaster/postmaster.c:1583 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1585 utils/misc/tzparser.c:340 #, 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:1610 +#: postmaster/postmaster.c:1612 #, c-format msgid "" "%s: could not find the database system\n" @@ -18661,471 +18681,471 @@ msgstr "" "ディレクトリ\"%s\"にあるものと想定していましたが、\n" "ファイル\"%s\"をオープンできませんでした: %s\n" -#: postmaster/postmaster.c:1787 +#: postmaster/postmaster.c:1789 #, c-format msgid "select() failed in postmaster: %m" msgstr "postmasterでselect()が失敗しました: %m" -#: postmaster/postmaster.c:1918 +#: postmaster/postmaster.c:1920 #, c-format msgid "issuing SIGKILL to recalcitrant children" msgstr "手に負えない子プロセスにSIGKILLを送出します" -#: postmaster/postmaster.c:1939 +#: postmaster/postmaster.c:1941 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "データディレクトリのロックファイルが不正なため、即時シャットダウンを実行中です" -#: postmaster/postmaster.c:2042 postmaster/postmaster.c:2070 +#: postmaster/postmaster.c:2044 postmaster/postmaster.c:2072 #, c-format msgid "incomplete startup packet" msgstr "開始パケットが不完全です" -#: postmaster/postmaster.c:2054 postmaster/postmaster.c:2087 +#: postmaster/postmaster.c:2056 postmaster/postmaster.c:2089 #, c-format msgid "invalid length of startup packet" msgstr "不正な開始パケット長" -#: postmaster/postmaster.c:2116 +#: postmaster/postmaster.c:2118 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "SSLネゴシエーション応答の送信に失敗しました: %m" -#: postmaster/postmaster.c:2134 +#: postmaster/postmaster.c:2136 #, c-format msgid "received unencrypted data after SSL request" msgstr "SSL要求の後に非暗号化データを受信しました" -#: postmaster/postmaster.c:2135 postmaster/postmaster.c:2179 +#: postmaster/postmaster.c:2137 postmaster/postmaster.c:2181 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." msgstr "これはクライアントソフトウェアのバグであるか、man-in-the-middle攻撃の証左である可能性があります。" -#: postmaster/postmaster.c:2160 +#: postmaster/postmaster.c:2162 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "GSSAPIネゴシエーション応答の送信に失敗しました: %m" -#: postmaster/postmaster.c:2178 +#: postmaster/postmaster.c:2180 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "GSSAPI暗号化リクエストの後に非暗号化データを受信" -#: postmaster/postmaster.c:2202 +#: postmaster/postmaster.c:2204 #, 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:2266 utils/misc/guc.c:7412 utils/misc/guc.c:7448 utils/misc/guc.c:7518 utils/misc/guc.c:9003 utils/misc/guc.c:12045 utils/misc/guc.c:12086 +#: postmaster/postmaster.c:2268 utils/misc/guc.c:7412 utils/misc/guc.c:7448 utils/misc/guc.c:7518 utils/misc/guc.c:9003 utils/misc/guc.c:12045 utils/misc/guc.c:12086 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "パラメータ\"%s\"の値が不正です: \"%s\"" -#: postmaster/postmaster.c:2269 +#: postmaster/postmaster.c:2271 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "有効な値: \"false\", 0, \"true\", 1, \"database\"。" -#: postmaster/postmaster.c:2314 +#: postmaster/postmaster.c:2316 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "開始パケットの配置が不正です: 最終バイトはターミネータであるはずです" -#: postmaster/postmaster.c:2331 +#: postmaster/postmaster.c:2333 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "開始パケットで指定されたPostgreSQLユーザー名は存在しません" -#: postmaster/postmaster.c:2395 +#: postmaster/postmaster.c:2397 #, c-format msgid "the database system is starting up" msgstr "データベースシステムは起動処理中です" -#: postmaster/postmaster.c:2401 +#: postmaster/postmaster.c:2403 #, c-format msgid "the database system is not yet accepting connections" msgstr "データベースシステムはまだ接続を受け付けていません" -#: postmaster/postmaster.c:2402 +#: postmaster/postmaster.c:2404 #, c-format msgid "Consistent recovery state has not been yet reached." msgstr "リカバリの一貫性はまだ確保されていません。" -#: postmaster/postmaster.c:2406 +#: postmaster/postmaster.c:2408 #, c-format msgid "the database system is not accepting connections" msgstr "データベースシステムは接続を受け付けていません" -#: postmaster/postmaster.c:2407 +#: postmaster/postmaster.c:2409 #, c-format msgid "Hot standby mode is disabled." msgstr "ホットスタンバイモードは無効です。" -#: postmaster/postmaster.c:2412 +#: postmaster/postmaster.c:2414 #, c-format msgid "the database system is shutting down" msgstr "データベースシステムはシャットダウンしています" -#: postmaster/postmaster.c:2417 +#: postmaster/postmaster.c:2419 #, c-format msgid "the database system is in recovery mode" msgstr "データベースシステムはリカバリモードです" -#: postmaster/postmaster.c:2422 storage/ipc/procarray.c:493 storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:359 +#: postmaster/postmaster.c:2424 storage/ipc/procarray.c:493 storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:359 #, c-format msgid "sorry, too many clients already" msgstr "現在クライアント数が多すぎます" -#: postmaster/postmaster.c:2509 +#: postmaster/postmaster.c:2511 #, c-format msgid "wrong key in cancel request for process %d" msgstr "プロセス%dに対するキャンセル要求においてキーが間違っています" -#: postmaster/postmaster.c:2521 +#: postmaster/postmaster.c:2523 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "キャンセル要求内のPID %dがどのプロセスにも一致しません" -#: postmaster/postmaster.c:2774 +#: postmaster/postmaster.c:2776 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "SIGHUPを受け取りました。設定ファイルをリロードしています" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2798 postmaster/postmaster.c:2802 +#: postmaster/postmaster.c:2800 postmaster/postmaster.c:2804 #, c-format msgid "%s was not reloaded" msgstr "%s は再読み込みされていません" -#: postmaster/postmaster.c:2812 +#: postmaster/postmaster.c:2814 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL設定は再読み込みされていません" -#: postmaster/postmaster.c:2868 +#: postmaster/postmaster.c:2870 #, c-format msgid "received smart shutdown request" msgstr "スマートシャットダウン要求を受け取りました" -#: postmaster/postmaster.c:2909 +#: postmaster/postmaster.c:2911 #, c-format msgid "received fast shutdown request" msgstr "高速シャットダウン要求を受け取りました" -#: postmaster/postmaster.c:2927 +#: postmaster/postmaster.c:2929 #, c-format msgid "aborting any active transactions" msgstr "活動中の全トランザクションをアボートしています" -#: postmaster/postmaster.c:2951 +#: postmaster/postmaster.c:2953 #, c-format msgid "received immediate shutdown request" msgstr "即時シャットダウン要求を受け取りました" -#: postmaster/postmaster.c:3028 +#: postmaster/postmaster.c:3030 #, c-format msgid "shutdown at recovery target" msgstr "リカバリ目標でシャットダウンします" -#: postmaster/postmaster.c:3046 postmaster/postmaster.c:3082 +#: postmaster/postmaster.c:3048 postmaster/postmaster.c:3084 msgid "startup process" msgstr "起動プロセス" -#: postmaster/postmaster.c:3049 +#: postmaster/postmaster.c:3051 #, c-format msgid "aborting startup due to startup process failure" msgstr "起動プロセスの失敗のため起動を中断しています" -#: postmaster/postmaster.c:3122 +#: postmaster/postmaster.c:3124 #, c-format msgid "database system is ready to accept connections" msgstr "データベースシステムの接続受け付け準備が整いました" -#: postmaster/postmaster.c:3143 +#: postmaster/postmaster.c:3145 msgid "background writer process" msgstr "バックグランドライタプロセス" -#: postmaster/postmaster.c:3190 +#: postmaster/postmaster.c:3192 msgid "checkpointer process" msgstr "チェックポイント処理プロセス" -#: postmaster/postmaster.c:3206 +#: postmaster/postmaster.c:3208 msgid "WAL writer process" msgstr "WALライタプロセス" -#: postmaster/postmaster.c:3221 +#: postmaster/postmaster.c:3223 msgid "WAL receiver process" msgstr "WAL 受信プロセス" -#: postmaster/postmaster.c:3236 +#: postmaster/postmaster.c:3238 msgid "autovacuum launcher process" msgstr "自動VACUUM起動プロセス" -#: postmaster/postmaster.c:3254 +#: postmaster/postmaster.c:3256 msgid "archiver process" msgstr "アーカイバプロセス" -#: postmaster/postmaster.c:3267 +#: postmaster/postmaster.c:3269 msgid "system logger process" msgstr "システムログ取得プロセス" -#: postmaster/postmaster.c:3331 +#: postmaster/postmaster.c:3333 #, c-format msgid "background worker \"%s\"" msgstr "バックグラウンドワーカー\"%s\"" -#: postmaster/postmaster.c:3410 postmaster/postmaster.c:3430 postmaster/postmaster.c:3437 postmaster/postmaster.c:3455 +#: postmaster/postmaster.c:3412 postmaster/postmaster.c:3432 postmaster/postmaster.c:3439 postmaster/postmaster.c:3457 msgid "server process" msgstr "サーバープロセス" -#: postmaster/postmaster.c:3509 +#: postmaster/postmaster.c:3511 #, 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:3746 +#: postmaster/postmaster.c:3748 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d)は終了コード%dで終了しました" -#: postmaster/postmaster.c:3748 postmaster/postmaster.c:3760 postmaster/postmaster.c:3770 postmaster/postmaster.c:3781 +#: postmaster/postmaster.c:3750 postmaster/postmaster.c:3762 postmaster/postmaster.c:3772 postmaster/postmaster.c:3783 #, 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:3757 +#: postmaster/postmaster.c:3759 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d)は例外%Xで終了しました" -#: postmaster/postmaster.c:3759 postmaster/shell_archive.c:134 +#: postmaster/postmaster.c:3761 postmaster/shell_archive.c:134 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "16進値の説明についてはC インクルードファイル\"ntstatus.h\"を参照してください。" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3767 +#: postmaster/postmaster.c:3769 #, 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:3779 +#: postmaster/postmaster.c:3781 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d)は認識できないステータス%dで終了しました" -#: postmaster/postmaster.c:3979 +#: postmaster/postmaster.c:3981 #, c-format msgid "abnormal database system shutdown" msgstr "データベースシステムは異常にシャットダウンしました" -#: postmaster/postmaster.c:4005 +#: postmaster/postmaster.c:4007 #, c-format msgid "shutting down due to startup process failure" msgstr "起動プロセスの失敗のためシャットダウンしています" -#: postmaster/postmaster.c:4011 +#: postmaster/postmaster.c:4013 #, c-format msgid "shutting down because restart_after_crash is off" msgstr "restart_after_crashがoffであるためシャットダウンします" -#: postmaster/postmaster.c:4023 +#: postmaster/postmaster.c:4025 #, c-format msgid "all server processes terminated; reinitializing" msgstr "全てのサーバープロセスが終了しました: 再初期化しています" -#: postmaster/postmaster.c:4195 postmaster/postmaster.c:5524 postmaster/postmaster.c:5922 +#: postmaster/postmaster.c:4197 postmaster/postmaster.c:5526 postmaster/postmaster.c:5924 #, c-format msgid "could not generate random cancel key" msgstr "ランダムなキャンセルキーを生成できませんでした" -#: postmaster/postmaster.c:4257 +#: postmaster/postmaster.c:4259 #, c-format msgid "could not fork new process for connection: %m" msgstr "接続用の新しいプロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:4299 +#: postmaster/postmaster.c:4301 msgid "could not fork new process for connection: " msgstr "接続用の新しいプロセスをforkできませんでした" -#: postmaster/postmaster.c:4405 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "接続を受け付けました: ホスト=%s ポート番号=%s" -#: postmaster/postmaster.c:4410 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "接続を受け付けました: ホスト=%s" -#: postmaster/postmaster.c:4647 +#: postmaster/postmaster.c:4649 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "サーバープロセス\"%s\"を実行できませんでした: %m" -#: postmaster/postmaster.c:4705 +#: postmaster/postmaster.c:4707 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "バックエンドパラメータファイルのファイルマッピングを作成できませんでした: エラーコード%lu" -#: postmaster/postmaster.c:4714 +#: postmaster/postmaster.c:4716 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "バックエンドパラメータのメモリをマップできませんでした: エラーコード %lu" -#: postmaster/postmaster.c:4741 +#: postmaster/postmaster.c:4743 #, c-format msgid "subprocess command line too long" msgstr "サブプロセスのコマンドラインが長すぎます" -#: postmaster/postmaster.c:4759 +#: postmaster/postmaster.c:4761 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "CreateProcess() の呼び出しが失敗しました: %m (エラーコード %lu)" -#: postmaster/postmaster.c:4786 +#: postmaster/postmaster.c:4788 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "バックエンドパラメータファイルのビューをアンマップできませんでした: エラーコード %lu" -#: postmaster/postmaster.c:4790 +#: postmaster/postmaster.c:4792 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "バックエンドパラメータファイルのハンドルをクローズできませんでした: エラーコード%lu" -#: postmaster/postmaster.c:4812 +#: postmaster/postmaster.c:4814 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "共有メモリの確保のリトライ回数が多すぎるため中断します" -#: postmaster/postmaster.c:4813 +#: postmaster/postmaster.c:4815 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "これはASLRまたはアンチウイルスソフトウェアが原因である可能性があります。" -#: postmaster/postmaster.c:4986 +#: postmaster/postmaster.c:4988 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "SSL構成は子プロセスでは読み込めません" -#: postmaster/postmaster.c:5111 +#: postmaster/postmaster.c:5113 #, c-format msgid "postmaster became multithreaded" msgstr "postmasterがマルチスレッド動作になっています" -#: postmaster/postmaster.c:5184 +#: postmaster/postmaster.c:5186 #, c-format msgid "database system is ready to accept read-only connections" msgstr "データベースシステムはリードオンリー接続の受け付け準備ができました" -#: postmaster/postmaster.c:5448 +#: postmaster/postmaster.c:5450 #, c-format msgid "could not fork startup process: %m" msgstr "起動プロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5452 +#: postmaster/postmaster.c:5454 #, c-format msgid "could not fork archiver process: %m" msgstr "アーカイバプロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5456 +#: postmaster/postmaster.c:5458 #, c-format msgid "could not fork background writer process: %m" msgstr "バックグランドライタプロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5460 +#: postmaster/postmaster.c:5462 #, c-format msgid "could not fork checkpointer process: %m" msgstr "チェックポイント処理プロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5464 +#: postmaster/postmaster.c:5466 #, c-format msgid "could not fork WAL writer process: %m" msgstr "WALライタプロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5468 +#: postmaster/postmaster.c:5470 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "WAL 受信プロセスを fork できませんでした: %m" -#: postmaster/postmaster.c:5472 +#: postmaster/postmaster.c:5474 #, c-format msgid "could not fork process: %m" msgstr "プロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5673 postmaster/postmaster.c:5700 +#: postmaster/postmaster.c:5675 postmaster/postmaster.c:5702 #, c-format msgid "database connection requirement not indicated during registration" msgstr "登録時にデータベース接続の必要性が示されていません" -#: postmaster/postmaster.c:5684 postmaster/postmaster.c:5711 +#: postmaster/postmaster.c:5686 postmaster/postmaster.c:5713 #, c-format msgid "invalid processing mode in background worker" msgstr "バックグラウンドワーカー内の不正な処理モード" -#: postmaster/postmaster.c:5796 +#: postmaster/postmaster.c:5798 #, c-format msgid "could not fork worker process: %m" msgstr "ワーカープロセスをforkできませんでした: %m" -#: postmaster/postmaster.c:5908 +#: postmaster/postmaster.c:5910 #, c-format msgid "no slot available for new worker process" msgstr "新しいワーカープロセスに割り当て可能なスロットがありません" -#: postmaster/postmaster.c:6239 +#: postmaster/postmaster.c:6241 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "バックエンドで使用するためにソケット%dを複製できませんでした: エラーコード %d" -#: postmaster/postmaster.c:6271 +#: postmaster/postmaster.c:6273 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "継承したソケットを作成できませんでした: エラーコード %d\n" -#: postmaster/postmaster.c:6300 +#: postmaster/postmaster.c:6302 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "バックエンド変数ファイル\"%s\"をオープンできませんでした: %s\n" -#: postmaster/postmaster.c:6307 +#: postmaster/postmaster.c:6309 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "バックエンド変数ファイル\"%s\"から読み取れませんでした: %s\n" -#: postmaster/postmaster.c:6316 +#: postmaster/postmaster.c:6318 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "ファイル\"%s\"を削除できませんでした: %s\n" -#: postmaster/postmaster.c:6333 +#: postmaster/postmaster.c:6335 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "バックエンド変数のビューをマップできませんでした: エラーコード %lu\n" -#: postmaster/postmaster.c:6342 +#: postmaster/postmaster.c:6344 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "バックエンド変数のビューをアンマップできませんでした: エラーコード %lu\n" -#: postmaster/postmaster.c:6349 +#: postmaster/postmaster.c:6351 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "バックエンドパラメータ変数のハンドルをクローズできませんでした: エラーコード%lu\n" -#: postmaster/postmaster.c:6508 +#: postmaster/postmaster.c:6510 #, c-format msgid "could not read exit code for process\n" msgstr "子プロセスの終了コードの読み込みができませんでした\n" -#: postmaster/postmaster.c:6550 +#: postmaster/postmaster.c:6552 #, c-format msgid "could not post child completion status\n" msgstr "個プロセスの終了コードを投稿できませんでした\n" @@ -19536,7 +19556,7 @@ msgstr "ID%dのレプリケーション基点は既にPID %dで使用中です" msgid "could not find free replication state slot for replication origin with ID %d" msgstr "ID %dのレプリケーション基点に対するレプリケーション状態スロットの空きがありません" -#: replication/logical/origin.c:941 replication/logical/origin.c:1131 replication/slot.c:1947 +#: replication/logical/origin.c:941 replication/logical/origin.c:1131 replication/slot.c:1983 #, c-format msgid "Increase max_replication_slots and try again." msgstr "max_replication_slotsを増やして再度試してください" @@ -19863,172 +19883,171 @@ msgstr "%6$X/%7$Xで終了したトランザクション%5$u中、レプリケ msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "%7$X/%8$Xで終了したトランザクション%6$u中、レプリケーション先リレーション\"%3$s.%4$s\"、列\"%5$s\"に対するメッセージタイプ\"%2$s\"でレプリケーション基点\"%1$s\"のリモートからのデータを処理中" -#: replication/pgoutput/pgoutput.c:326 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "invalid proto_version" msgstr "不正なproto_version" -#: replication/pgoutput/pgoutput.c:331 +#: replication/pgoutput/pgoutput.c:332 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_version \"%s\"は範囲外です" -#: replication/pgoutput/pgoutput.c:348 +#: replication/pgoutput/pgoutput.c:349 #, c-format msgid "invalid publication_names syntax" msgstr "publication_namesの構文が不正です" -#: replication/pgoutput/pgoutput.c:452 +#: replication/pgoutput/pgoutput.c:464 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or lower" msgstr "クライアントが proto_version=%d を送信してきましたが、バージョン%d以下のプロトコルのみしかサポートしていません" -#: replication/pgoutput/pgoutput.c:458 +#: replication/pgoutput/pgoutput.c:470 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or higher" msgstr "クライアントが proto_version=%d を送信してきましたが、バージョン%d以上のプロトコルのみしかサポートしていません" -#: replication/pgoutput/pgoutput.c:464 +#: replication/pgoutput/pgoutput.c:476 #, c-format msgid "publication_names parameter missing" msgstr "publication_namesパラメータが指定されていません" -#: replication/pgoutput/pgoutput.c:477 +#: replication/pgoutput/pgoutput.c:489 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "要求されたproto_version=%dではストリーミングをサポートしていません、%d以上が必要です" -#: replication/pgoutput/pgoutput.c:482 +#: replication/pgoutput/pgoutput.c:494 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "ストリーミングが要求されましたが、出力プラグインでサポートされていません" -#: replication/pgoutput/pgoutput.c:499 +#: replication/pgoutput/pgoutput.c:511 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "要求されたproto_version=%dは2相コミットをサポートしていません、%d以上が必要です" -#: replication/pgoutput/pgoutput.c:504 +#: replication/pgoutput/pgoutput.c:516 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "2相コミットが要求されました、しかし出力プラグインではサポートされていません" -#: replication/slot.c:205 +#: replication/slot.c:237 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "レプリケーションスロット名\"%s\"は短すぎます" -#: replication/slot.c:214 +#: replication/slot.c:245 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "レプリケーションスロット名\"%s\"は長すぎます" -#: replication/slot.c:227 +#: replication/slot.c:257 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "レプリケーションスロット名\"%s\"は不正な文字を含んでいます" -#: replication/slot.c:229 -#, c-format +#: replication/slot.c:258 msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "レプリケーションスロット名は小文字、数字とアンダースコアのみを含むことができます。" -#: replication/slot.c:283 +#: replication/slot.c:312 #, c-format msgid "replication slot \"%s\" already exists" msgstr "レプリケーションスロット\"%s\"はすでに存在します" -#: replication/slot.c:293 +#: replication/slot.c:322 #, c-format msgid "all replication slots are in use" msgstr "レプリケーションスロットは全て使用中です" -#: replication/slot.c:294 +#: replication/slot.c:323 #, c-format msgid "Free one or increase max_replication_slots." msgstr "どれか一つを解放するか、max_replication_slots を大きくしてください。" -#: replication/slot.c:472 replication/slotfuncs.c:727 utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:704 +#: replication/slot.c:501 replication/slotfuncs.c:727 utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:704 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "レプリケーションスロット\"%s\"は存在しません" -#: replication/slot.c:518 replication/slot.c:1093 +#: replication/slot.c:547 replication/slot.c:1122 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "レプリケーションスロット\"%s\"はPID%dで使用中です" -#: replication/slot.c:754 replication/slot.c:1499 replication/slot.c:1882 +#: replication/slot.c:783 replication/slot.c:1528 replication/slot.c:1918 #, c-format msgid "could not remove directory \"%s\"" msgstr "ディレクトリ\"%s\"を削除できませんでした" -#: replication/slot.c:1128 +#: replication/slot.c:1157 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "レプリケーションスロットは max_replication_slots > 0 のときだけ使用できます" -#: replication/slot.c:1133 +#: replication/slot.c:1162 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "レプリケーションスロットは wal_level >= replica のときだけ使用できます" -#: replication/slot.c:1145 +#: replication/slot.c:1174 #, c-format msgid "must be superuser or replication role to use replication slots" msgstr "レプリケーションスロットを使用するためにはスーパーユーザーまたはreplicationロールである必要があります" -#: replication/slot.c:1330 +#: replication/slot.c:1359 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "プロセス%dを終了してレプリケーションスロット\"%s\"を解放します" -#: replication/slot.c:1368 +#: replication/slot.c:1397 #, c-format msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" msgstr "restart_lsnの値 %2$X/%3$X が max_slot_wal_keep_size の範囲を超えたため、スロット\"%1$s\"を無効化します" -#: replication/slot.c:1820 +#: replication/slot.c:1856 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "レプリケーションスロットファイル\"%1$s\"のマジックナンバーが不正です: %3$uのはずが%2$uでした" -#: replication/slot.c:1827 +#: replication/slot.c:1863 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "レプリケーションスロットファイル\"%s\"はサポート外のバージョン%uです" -#: replication/slot.c:1834 +#: replication/slot.c:1870 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "レプリケーションスロットファイル\"%s\"のサイズ%uは異常です" -#: replication/slot.c:1870 +#: replication/slot.c:1906 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "レプリケーションスロットファイル\"%s\"のチェックサムが一致しません: %uですが、%uであるべきです" -#: replication/slot.c:1904 +#: replication/slot.c:1940 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "論理レプリケーションスロット\"%s\"がありますが、wal_level < logical です" -#: replication/slot.c:1906 +#: replication/slot.c:1942 #, c-format msgid "Change wal_level to be logical or higher." msgstr "wal_level を logical もしくはそれより上位の設定にしてください。" -#: replication/slot.c:1910 +#: replication/slot.c:1946 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "物理レプリケーションスロット\"%s\"がありますが、wal_level < replica です" -#: replication/slot.c:1912 +#: replication/slot.c:1948 #, c-format msgid "Change wal_level to be replica or higher." msgstr "wal_level を replica もしくはそれより上位の設定にしてください。" -#: replication/slot.c:1946 +#: replication/slot.c:1982 #, c-format msgid "too many replication slots active before shutdown" msgstr "シャットダウン前のアクティブなレプリケーションスロットの数が多すぎます" @@ -20194,127 +20213,127 @@ msgstr "プライマリサーバーからライムライン%u用のタイムラ msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "ログファイルセグメント%sのオフセット%uに長さ%luで書き出せませんでした: %m" -#: replication/walsender.c:521 +#: replication/walsender.c:535 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "%sは論理レプリケーションスロットでは使用できません" -#: replication/walsender.c:638 storage/smgr/md.c:1379 +#: replication/walsender.c:652 storage/smgr/md.c:1379 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "ファイル\"%s\"の終端へシークできませんでした: %m" -#: replication/walsender.c:642 +#: replication/walsender.c:656 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "ファイル\"%s\"の先頭にシークできませんでした: %m" -#: replication/walsender.c:719 +#: replication/walsender.c:733 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "論理レプリケーションスロットは物理レプリケーションには使用できません" -#: replication/walsender.c:785 +#: replication/walsender.c:799 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "タイムライン%3$u上の要求された開始ポイント%1$X/%2$Xはサーバーの履歴にありません" -#: replication/walsender.c:788 +#: replication/walsender.c:802 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "サーバーの履歴はタイムライン%uの%X/%Xからフォークしました。" -#: replication/walsender.c:832 +#: replication/walsender.c:846 #, 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:1015 +#: replication/walsender.c:1029 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "CREATE_REPLICATION_SLOTのオプション\"%s\"に対する認識できない値: \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1100 +#: replication/walsender.c:1114 #, c-format msgid "%s must not be called inside a transaction" msgstr "%sはトランザクション内では呼び出せません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1110 +#: replication/walsender.c:1124 #, c-format msgid "%s must be called inside a transaction" msgstr "%sはトランザクション内で呼び出さなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 +#: replication/walsender.c:1130 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s は REPEATABLE READ 分離レベルのトランザクションで呼び出されなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1136 #, c-format msgid "%s must be called before any query" msgstr "%s は問い合わせの実行前に呼び出されなければなりません" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1142 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s はサブトランザクション内では呼び出せません" -#: replication/walsender.c:1271 +#: replication/walsender.c:1285 #, c-format msgid "cannot read from logical replication slot \"%s\"" msgstr "論理レプリケーションスロット\"%s\"は読み込めません" -#: replication/walsender.c:1273 +#: replication/walsender.c:1287 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "最大留保量を超えたため、このスロットは無効化されています。" -#: replication/walsender.c:1283 +#: replication/walsender.c:1297 #, c-format msgid "terminating walsender process after promotion" msgstr "昇格後にWAL送信プロセスを終了します" -#: replication/walsender.c:1704 +#: replication/walsender.c:1718 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "WAL送信プロセスが停止モードの間は新しいコマンドを実行できません" -#: replication/walsender.c:1739 +#: replication/walsender.c:1753 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "物理レプリケーション用のWAL送信プロセスでSQLコマンドは実行できません" -#: replication/walsender.c:1772 +#: replication/walsender.c:1786 #, c-format msgid "received replication command: %s" msgstr "レプリケーションコマンドを受信しました: %s" -#: replication/walsender.c:1780 tcop/fastpath.c:208 tcop/postgres.c:1083 tcop/postgres.c:1441 tcop/postgres.c:1693 tcop/postgres.c:2174 tcop/postgres.c:2607 tcop/postgres.c:2685 +#: replication/walsender.c:1794 tcop/fastpath.c:208 tcop/postgres.c:1083 tcop/postgres.c:1441 tcop/postgres.c:1693 tcop/postgres.c:2174 tcop/postgres.c:2607 tcop/postgres.c:2685 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "現在のトランザクションがアボートしました。トランザクションブロックが終わるまでコマンドは無視されます" -#: replication/walsender.c:1922 replication/walsender.c:1957 +#: replication/walsender.c:1936 replication/walsender.c:1971 #, c-format msgid "unexpected EOF on standby connection" msgstr "スタンバイ接続で想定外のEOFがありました" -#: replication/walsender.c:1945 +#: replication/walsender.c:1959 #, c-format msgid "invalid standby message type \"%c\"" msgstr "スタンバイのメッセージタイプ\"%c\"は不正です" -#: replication/walsender.c:2034 +#: replication/walsender.c:2048 #, c-format msgid "unexpected message type \"%c\"" msgstr "想定しないメッセージタイプ\"%c\"" -#: replication/walsender.c:2451 +#: replication/walsender.c:2465 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "レプリケーションタイムアウトにより WAL 送信プロセスを終了しています" @@ -20544,196 +20563,196 @@ msgstr "ON SELECTルールの名前を変更することはできません" msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "WITH の問い合わせ名\"%s\"が、ルールのアクションと書き換えられようとしている問い合わせの両方に現れています" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:613 #, c-format msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" msgstr "INSERT...SELECTルールのアクションはWITHにデータ更新文を持つ問い合わせに対してはサポートされません" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:666 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "複数ルールではRETURNINGリストを持つことはできません" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:898 rewrite/rewriteHandler.c:937 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "列\"%s\"への非デフォルト値の挿入はできません" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:966 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "列\"%s\"は GENERATED ALWAYS として定義されています。" -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:902 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "OVERRIDING SYSTEM VALUE を指定することで挿入を強制できます。" -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:964 rewrite/rewriteHandler.c:972 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "列\"%s\"はDEFAULTにのみ更新可能です" -#: rewrite/rewriteHandler.c:1104 rewrite/rewriteHandler.c:1122 +#: rewrite/rewriteHandler.c:1107 rewrite/rewriteHandler.c:1125 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "同じ列\"%s\"に複数の代入があります" -#: rewrite/rewriteHandler.c:1727 rewrite/rewriteHandler.c:3182 +#: rewrite/rewriteHandler.c:1730 rewrite/rewriteHandler.c:3185 #, c-format msgid "access to non-system view \"%s\" is restricted" msgstr "非システムのビュー\"%s\"へのアクセスは制限されています" -#: rewrite/rewriteHandler.c:2159 rewrite/rewriteHandler.c:4111 +#: rewrite/rewriteHandler.c:2162 rewrite/rewriteHandler.c:4131 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "リレーション\"%s\"のルールで無限再帰を検出しました" -#: rewrite/rewriteHandler.c:2264 +#: rewrite/rewriteHandler.c:2267 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "リレーション\"%s\"のポリシで無限再帰を検出しました" -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2597 msgid "Junk view columns are not updatable." msgstr "ジャンクビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2602 msgid "View columns that are not columns of their base relation are not updatable." msgstr "基底リレーションの列ではないビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2605 msgid "View columns that refer to system columns are not updatable." msgstr "システム列を参照するビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2608 msgid "View columns that return whole-row references are not updatable." msgstr "行全体参照を返すビュー列は更新不可です。" -#: rewrite/rewriteHandler.c:2666 +#: rewrite/rewriteHandler.c:2669 msgid "Views containing DISTINCT are not automatically updatable." msgstr "DISTINCTを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2669 +#: rewrite/rewriteHandler.c:2672 msgid "Views containing GROUP BY are not automatically updatable." msgstr "GROUP BYを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2675 msgid "Views containing HAVING are not automatically updatable." msgstr "HAVINGを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2678 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "UNION、INTERSECT、EXCEPTを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2678 +#: rewrite/rewriteHandler.c:2681 msgid "Views containing WITH are not automatically updatable." msgstr "WITHを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2681 +#: rewrite/rewriteHandler.c:2684 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "LIMIT、OFFSETを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2693 +#: rewrite/rewriteHandler.c:2696 msgid "Views that return aggregate functions are not automatically updatable." msgstr "集約関数を返すビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2696 +#: rewrite/rewriteHandler.c:2699 msgid "Views that return window functions are not automatically updatable." msgstr "ウィンドウ関数を返すビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2699 +#: rewrite/rewriteHandler.c:2702 msgid "Views that return set-returning functions are not automatically updatable." msgstr "集合返却関数を返すビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2706 rewrite/rewriteHandler.c:2710 rewrite/rewriteHandler.c:2718 +#: rewrite/rewriteHandler.c:2709 rewrite/rewriteHandler.c:2713 rewrite/rewriteHandler.c:2721 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "単一のテーブルまたはビューからselectしていないビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2721 +#: rewrite/rewriteHandler.c:2724 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "TABLESAMPLEを含むビューは自動更新できません。" -#: rewrite/rewriteHandler.c:2745 +#: rewrite/rewriteHandler.c:2748 msgid "Views that have no updatable columns are not automatically updatable." msgstr "更新可能な列を持たないビューは自動更新できません。" -#: rewrite/rewriteHandler.c:3242 +#: rewrite/rewriteHandler.c:3245 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "ビュー\"%2$s\"の列\"%1$s\"への挿入はできません" -#: rewrite/rewriteHandler.c:3250 +#: rewrite/rewriteHandler.c:3253 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "ビュー\"%2$s\"の列\"%1$s\"は更新できません" -#: rewrite/rewriteHandler.c:3738 +#: rewrite/rewriteHandler.c:3757 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "DO INSTEAD NOTIFYルールはWITH内のデータ更新文に対してはサポートされません" -#: rewrite/rewriteHandler.c:3749 +#: rewrite/rewriteHandler.c:3768 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合は DO INSTEAD NOTHING ルールはサポートされません" -#: rewrite/rewriteHandler.c:3763 +#: rewrite/rewriteHandler.c:3782 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合は、条件付き DO INSTEAD ルールはサポートされません" -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合は DO ALSO ルールはサポートされません" -#: rewrite/rewriteHandler.c:3772 +#: rewrite/rewriteHandler.c:3791 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "WITH にデータを変更するステートメントがある場合はマルチステートメントの DO INSTEAD ルールはサポートされません" -#: rewrite/rewriteHandler.c:4039 rewrite/rewriteHandler.c:4047 rewrite/rewriteHandler.c:4055 +#: rewrite/rewriteHandler.c:4059 rewrite/rewriteHandler.c:4067 rewrite/rewriteHandler.c:4075 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "条件付きDO INSTEADルールを持つビューは自動更新できません。" -#: rewrite/rewriteHandler.c:4160 +#: rewrite/rewriteHandler.c:4181 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "リレーション\"%s\"へのINSERT RETURNINGを行うことはできません" -#: rewrite/rewriteHandler.c:4162 +#: rewrite/rewriteHandler.c:4183 #, 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:4167 +#: rewrite/rewriteHandler.c:4188 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "リレーション\"%s\"へのUPDATE RETURNINGを行うことはできません" -#: rewrite/rewriteHandler.c:4169 +#: rewrite/rewriteHandler.c:4190 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "RETURNING句を持つ無条件のON UPDATE DO INSTEADルールが必要です。" -#: rewrite/rewriteHandler.c:4174 +#: rewrite/rewriteHandler.c:4195 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "リレーション\"%s\"へのDELETE RETURNINGを行うことはできません" -#: rewrite/rewriteHandler.c:4176 +#: rewrite/rewriteHandler.c:4197 #, 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:4194 +#: rewrite/rewriteHandler.c:4215 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "ON CONFLICT句を伴うINSERTは、INSERTまたはUPDATEルールを持つテーブルでは使えません" -#: rewrite/rewriteHandler.c:4251 +#: rewrite/rewriteHandler.c:4272 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "複数問い合わせに対するルールにより書き換えられた問い合わせでは WITH を使用できません" diff --git a/src/backend/po/ru.po b/src/backend/po/ru.po index fab1d5d03d6..e88e992cc02 100644 --- a/src/backend/po/ru.po +++ b/src/backend/po/ru.po @@ -4,14 +4,14 @@ # Serguei A. Mokhov , 2001-2005. # Oleg Bartunov , 2004-2005. # Dmitriy Olshevskiy , 2014. -# SPDX-FileCopyrightText: 2012-2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2012-2025, 2026 Alexander Lakhin # Maxim Yablokov , 2021, 2022, 2024. msgid "" msgstr "" "Project-Id-Version: postgres (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-09 06:29+0200\n" -"PO-Revision-Date: 2025-11-09 08:27+0200\n" +"POT-Creation-Date: 2026-02-07 08:58+0200\n" +"PO-Revision-Date: 2026-02-07 10:42+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -81,14 +81,14 @@ msgstr "не удалось открыть файл \"%s\" для чтения: #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 #: access/transam/twophase.c:1349 access/transam/xlog.c:3211 -#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1223 -#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 -#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1838 +#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1233 +#: access/transam/xlogrecovery.c:1325 access/transam/xlogrecovery.c:1362 +#: access/transam/xlogrecovery.c:1422 backup/basebackup.c:1838 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 #: replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 -#: replication/logical/snapbuild.c:1995 replication/slot.c:1843 -#: replication/slot.c:1884 replication/walsender.c:672 +#: replication/logical/snapbuild.c:1995 replication/slot.c:1874 +#: replication/slot.c:1915 replication/walsender.c:672 #: storage/file/buffile.c:463 storage/file/copydir.c:195 #: utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 #, c-format @@ -100,7 +100,7 @@ msgstr "не удалось прочитать файл \"%s\": %m" #: backup/basebackup.c:1842 replication/logical/origin.c:734 #: replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 #: replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 -#: replication/slot.c:1847 replication/slot.c:1888 replication/walsender.c:677 +#: replication/slot.c:1878 replication/slot.c:1919 replication/walsender.c:677 #: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -119,7 +119,7 @@ msgstr "не удалось прочитать файл \"%s\" (прочитан #: replication/logical/origin.c:667 replication/logical/origin.c:806 #: replication/logical/reorderbuffer.c:5152 #: replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 -#: replication/slot.c:1732 replication/slot.c:1895 replication/walsender.c:687 +#: replication/slot.c:1763 replication/slot.c:1926 replication/walsender.c:687 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:742 #: storage/file/fd.c:3635 storage/file/fd.c:3741 utils/cache/relmapper.c:831 #: utils/cache/relmapper.c:968 @@ -152,14 +152,14 @@ msgstr "" #: access/transam/timeline.c:348 access/transam/twophase.c:1305 #: access/transam/xlog.c:2945 access/transam/xlog.c:3127 #: access/transam/xlog.c:3166 access/transam/xlog.c:3358 -#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4255 -#: access/transam/xlogrecovery.c:4358 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4265 +#: access/transam/xlogrecovery.c:4368 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 #: replication/logical/reorderbuffer.c:4298 #: replication/logical/reorderbuffer.c:5074 #: replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 -#: replication/slot.c:1815 replication/walsender.c:645 +#: replication/slot.c:1846 replication/walsender.c:645 #: replication/walsender.c:2740 storage/file/copydir.c:161 #: storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 #: storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 @@ -172,7 +172,7 @@ msgstr "не удалось открыть файл \"%s\": %m" #: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1753 access/transam/twophase.c:1762 -#: access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8770 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 #: postmaster/postmaster.c:5637 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 @@ -187,11 +187,11 @@ msgstr "не удалось записать файл \"%s\": %m" #: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 #: access/transam/timeline.c:506 access/transam/twophase.c:1774 #: access/transam/xlog.c:3051 access/transam/xlog.c:3245 -#: access/transam/xlog.c:3986 access/transam/xlog.c:8049 -#: access/transam/xlog.c:8092 backup/basebackup_server.c:207 +#: access/transam/xlog.c:3986 access/transam/xlog.c:8073 +#: access/transam/xlog.c:8116 backup/basebackup_server.c:207 #: commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 -#: replication/slot.c:1716 replication/slot.c:1825 storage/file/fd.c:734 -#: storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 +#: replication/slot.c:1747 replication/slot.c:1856 storage/file/fd.c:734 +#: storage/file/fd.c:3733 storage/smgr/md.c:997 storage/smgr/md.c:1038 #: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 #, c-format msgid "could not fsync file \"%s\": %m" @@ -210,7 +210,7 @@ msgstr "не удалось синхронизировать с ФС файл \" #: postmaster/bgworker.c:931 postmaster/postmaster.c:2598 #: postmaster/postmaster.c:4183 postmaster/postmaster.c:5562 #: postmaster/postmaster.c:5933 -#: replication/libpqwalreceiver/libpqwalreceiver.c:300 +#: replication/libpqwalreceiver/libpqwalreceiver.c:313 #: replication/logical/logical.c:206 replication/walsender.c:715 #: storage/buffer/localbuf.c:442 storage/file/fd.c:889 storage/file/fd.c:1431 #: storage/file/fd.c:1592 storage/file/fd.c:2406 storage/ipc/procarray.c:1463 @@ -218,18 +218,18 @@ msgstr "не удалось синхронизировать с ФС файл \" #: storage/ipc/procarray.c:2804 storage/ipc/procarray.c:3435 #: tcop/postgres.c:3645 utils/activity/pgstat_shmem.c:503 #: utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 -#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:453 -#: utils/adt/pg_locale.c:617 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 +#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:454 +#: utils/adt/pg_locale.c:618 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 #: utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 -#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 -#: utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5204 +#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 +#: utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 utils/misc/guc.c:5204 #: utils/misc/guc.c:5220 utils/misc/guc.c:5233 utils/misc/guc.c:8804 #: utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:702 #: utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805 utils/mmgr/generation.c:266 -#: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 -#: utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 -#: utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:238 +#: utils/mmgr/mcxt.c:891 utils/mmgr/mcxt.c:927 utils/mmgr/mcxt.c:965 +#: utils/mmgr/mcxt.c:1003 utils/mmgr/mcxt.c:1111 utils/mmgr/mcxt.c:1142 +#: utils/mmgr/mcxt.c:1178 utils/mmgr/mcxt.c:1230 utils/mmgr/mcxt.c:1265 +#: utils/mmgr/mcxt.c:1300 utils/mmgr/slab.c:238 #, c-format msgid "out of memory" msgstr "нехватка памяти" @@ -275,7 +275,7 @@ msgstr "не удалось найти запускаемый файл \"%s\"" msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: ../common/exec.c:299 access/transam/xlog.c:8395 backup/basebackup.c:1338 +#: ../common/exec.c:299 access/transam/xlog.c:8419 backup/basebackup.c:1338 #: utils/adt/misc.c:335 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -332,7 +332,7 @@ msgstr "не удалось прочитать каталог \"%s\": %m" #: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 #: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 -#: replication/slot.c:750 replication/slot.c:1599 replication/slot.c:1748 +#: replication/slot.c:750 replication/slot.c:1630 replication/slot.c:1779 #: storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -1205,38 +1205,38 @@ msgid "" msgstr "" "в семействе операторов \"%s\" метода доступа %s нет межтипового оператора(ов)" -#: access/heap/heapam.c:2272 +#: access/heap/heapam.c:2275 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "вставлять кортежи в параллельном исполнителе нельзя" -#: access/heap/heapam.c:2747 +#: access/heap/heapam.c:2750 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "удалять кортежи во время параллельных операций нельзя" -#: access/heap/heapam.c:2793 +#: access/heap/heapam.c:2796 #, c-format msgid "attempted to delete invisible tuple" msgstr "попытка удаления невидимого кортежа" -#: access/heap/heapam.c:3240 access/heap/heapam.c:6489 access/index/genam.c:819 +#: access/heap/heapam.c:3243 access/heap/heapam.c:6577 access/index/genam.c:819 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "изменять кортежи во время параллельных операций нельзя" -#: access/heap/heapam.c:3410 +#: access/heap/heapam.c:3413 #, c-format msgid "attempted to update invisible tuple" msgstr "попытка изменения невидимого кортежа" -#: access/heap/heapam.c:4896 access/heap/heapam.c:4934 -#: access/heap/heapam.c:5199 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4901 access/heap/heapam.c:4939 +#: access/heap/heapam.c:5206 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не удалось получить блокировку строки в таблице \"%s\"" -#: access/heap/heapam.c:6302 commands/trigger.c:3471 +#: access/heap/heapam.c:6331 commands/trigger.c:3471 #: executor/nodeModifyTable.c:2383 executor/nodeModifyTable.c:2474 #, c-format msgid "" @@ -1268,11 +1268,11 @@ msgstr "не удалось записать в файл \"%s\" (записан #: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:481 #: access/transam/xlog.c:2967 access/transam/xlog.c:3180 -#: access/transam/xlog.c:3965 access/transam/xlog.c:8729 +#: access/transam/xlog.c:3965 access/transam/xlog.c:8753 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 #: backup/basebackup_server.c:242 commands/dbcommands.c:494 #: postmaster/postmaster.c:4610 postmaster/postmaster.c:5624 -#: replication/logical/origin.c:587 replication/slot.c:1660 +#: replication/logical/origin.c:587 replication/slot.c:1691 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -1290,7 +1290,7 @@ msgstr "не удалось обрезать файл \"%s\" до нужного #: postmaster/postmaster.c:4620 postmaster/postmaster.c:4630 #: replication/logical/origin.c:599 replication/logical/origin.c:641 #: replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 -#: replication/slot.c:1696 storage/file/buffile.c:537 +#: replication/slot.c:1727 storage/file/buffile.c:537 #: storage/file/copydir.c:207 utils/init/miscinit.c:1493 #: utils/init/miscinit.c:1504 utils/init/miscinit.c:1512 utils/misc/guc.c:8787 #: utils/misc/guc.c:8818 utils/misc/guc.c:10816 utils/misc/guc.c:10830 @@ -1304,7 +1304,7 @@ msgstr "не удалось записать в файл \"%s\": %m" #: postmaster/postmaster.c:1159 postmaster/syslogger.c:1537 #: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 #: replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 -#: replication/slot.c:1799 storage/file/fd.c:792 storage/file/fd.c:3260 +#: replication/slot.c:1830 storage/file/fd.c:792 storage/file/fd.c:3260 #: storage/file/fd.c:3322 storage/file/reinit.c:262 storage/ipc/dsm.c:317 #: storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 #: utils/time/snapmgr.c:1606 @@ -1782,7 +1782,7 @@ msgstr "" msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Убедитесь, что в конфигурации установлен параметр \"%s\"." -#: access/transam/multixact.c:1022 +#: access/transam/multixact.c:1106 #, c-format msgid "" "database is not accepting commands that generate new MultiXactIds to avoid " @@ -1791,8 +1791,8 @@ msgstr "" "база данных не принимает команды, создающие новые MultiXactId, во избежание " "потери данных из-за зацикливания в базе данных \"%s\"" -#: access/transam/multixact.c:1024 access/transam/multixact.c:1031 -#: access/transam/multixact.c:1055 access/transam/multixact.c:1064 +#: access/transam/multixact.c:1108 access/transam/multixact.c:1115 +#: access/transam/multixact.c:1139 access/transam/multixact.c:1148 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1803,7 +1803,7 @@ msgstr "" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/multixact.c:1029 +#: access/transam/multixact.c:1113 #, c-format msgid "" "database is not accepting commands that generate new MultiXactIds to avoid " @@ -1812,7 +1812,7 @@ msgstr "" "база данных не принимает команды, создающие новые MultiXactId, во избежание " "потери данных из-за зацикливания в базе данных с OID %u" -#: access/transam/multixact.c:1050 access/transam/multixact.c:2334 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2421 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "" @@ -1827,7 +1827,7 @@ msgstr[2] "" "база данных \"%s\" должна быть очищена, прежде чем будут использованы " "оставшиеся MultiXactId (%u)" -#: access/transam/multixact.c:1059 access/transam/multixact.c:2343 +#: access/transam/multixact.c:1143 access/transam/multixact.c:2430 #, c-format msgid "" "database with OID %u must be vacuumed before %u more MultiXactId is used" @@ -1843,12 +1843,12 @@ msgstr[2] "" "база данных с OID %u должна быть очищена, прежде чем будут использованы " "оставшиеся MultiXactId (%u)" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1207 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "слишком много членов мультитранзакции" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1208 #, c-format msgid "" "This command would create a multixact with %u members, but the remaining " @@ -1866,7 +1866,7 @@ msgstr[2] "" "Мультитранзакция, создаваемая этой командой, должна включать членов: %u, но " "оставшегося места хватает только для %u." -#: access/transam/multixact.c:1126 +#: access/transam/multixact.c:1213 #, c-format msgid "" "Execute a database-wide VACUUM in database with OID %u with reduced " @@ -1876,7 +1876,7 @@ msgstr "" "Выполните очистку (VACUUM) всей базы данных с OID %u, уменьшив значения " "vacuum_multixact_freeze_min_age и vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1157 +#: access/transam/multixact.c:1244 #, c-format msgid "" "database with OID %u must be vacuumed before %d more multixact member is used" @@ -1893,7 +1893,7 @@ msgstr[2] "" "база данных с OID %u должна быть очищена, пока не использованы оставшиеся " "члены мультитранзакций (%d)" -#: access/transam/multixact.c:1162 +#: access/transam/multixact.c:1249 #, c-format msgid "" "Execute a database-wide VACUUM in that database with reduced " @@ -1903,17 +1903,22 @@ msgstr "" "Выполните очистку (VACUUM) всей этой базы данных, уменьшив значения " "vacuum_multixact_freeze_min_age и vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1301 +#: access/transam/multixact.c:1388 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u прекратил существование: видимо, произошло зацикливание" -#: access/transam/multixact.c:1307 +#: access/transam/multixact.c:1394 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ещё не был создан: видимо, произошло зацикливание" -#: access/transam/multixact.c:2339 access/transam/multixact.c:2348 +#: access/transam/multixact.c:1469 +#, c-format +msgid "MultiXact %u has invalid next offset" +msgstr "для мультитранзакции %u получено некорректное следующее смещение" + +#: access/transam/multixact.c:2426 access/transam/multixact.c:2435 #: access/transam/varsup.c:151 access/transam/varsup.c:158 #: access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format @@ -1927,7 +1932,7 @@ msgstr "" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2709 #, c-format msgid "" "MultiXact member wraparound protections are disabled because oldest " @@ -1936,12 +1941,12 @@ msgstr "" "Защита от зацикливания членов мультитранзакций отключена, так как старейшая " "отмеченная мультитранзакция %u не найдена на диске" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2731 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "Защита от зацикливания мультитранзакций сейчас включена" -#: access/transam/multixact.c:3038 +#: access/transam/multixact.c:3125 #, c-format msgid "" "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" @@ -1949,7 +1954,7 @@ msgstr "" "старейшая мультитранзакция %u не найдена, новейшая мультитранзакция: %u, " "усечение пропускается" -#: access/transam/multixact.c:3056 +#: access/transam/multixact.c:3143 #, c-format msgid "" "cannot truncate up to MultiXact %u because it does not exist on disk, " @@ -1958,41 +1963,50 @@ msgstr "" "выполнить усечение до мультитранзакции %u нельзя ввиду её отсутствия на " "диске, усечение пропускается" -#: access/transam/multixact.c:3370 +#: access/transam/multixact.c:3160 +#, c-format +msgid "" +"cannot truncate up to MultiXact %u because it has invalid offset, skipping " +"truncation" +msgstr "" +"выполнить усечение до мультитранзакции %u нельзя из-за некорректного " +"смещения, усечение пропускается" + +#: access/transam/multixact.c:3498 #, c-format msgid "invalid MultiXactId: %u" msgstr "неверный MultiXactId: %u" -#: access/transam/parallel.c:737 access/transam/parallel.c:856 +#: access/transam/parallel.c:744 access/transam/parallel.c:863 #, c-format msgid "parallel worker failed to initialize" msgstr "не удалось инициализировать параллельный исполнитель" -#: access/transam/parallel.c:738 access/transam/parallel.c:857 +#: access/transam/parallel.c:745 access/transam/parallel.c:864 #, c-format msgid "More details may be available in the server log." msgstr "Дополнительная информация может быть в журнале сервера." -#: access/transam/parallel.c:918 +#: access/transam/parallel.c:925 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster завершился в процессе параллельной транзакции" -#: access/transam/parallel.c:1105 +#: access/transam/parallel.c:1112 #, c-format msgid "lost connection to parallel worker" msgstr "потеряно подключение к параллельному исполнителю" -#: access/transam/parallel.c:1171 access/transam/parallel.c:1173 +#: access/transam/parallel.c:1178 access/transam/parallel.c:1180 msgid "parallel worker" msgstr "параллельный исполнитель" -#: access/transam/parallel.c:1326 +#: access/transam/parallel.c:1333 #, c-format msgid "could not map dynamic shared memory segment" msgstr "не удалось отобразить динамический сегмент разделяемой памяти" -#: access/transam/parallel.c:1331 +#: access/transam/parallel.c:1338 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "неверное магическое число в динамическом сегменте разделяемой памяти" @@ -2413,114 +2427,114 @@ msgstr "" msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "в одной транзакции не может быть больше 2^32-2 команд" -#: access/transam/xact.c:1644 +#: access/transam/xact.c:1654 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "превышен предел числа зафиксированных подтранзакций (%d)" -#: access/transam/xact.c:2501 +#: access/transam/xact.c:2511 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "" "нельзя выполнить PREPARE для транзакции, оперирующей с временными объектами" -#: access/transam/xact.c:2511 +#: access/transam/xact.c:2521 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "нельзя выполнить PREPARE для транзакции, снимки которой экспортированы" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3479 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s не может выполняться внутри блока транзакции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s не может выполняться внутри подтранзакции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s нельзя выполнять в конвейере" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 +#: access/transam/xact.c:3519 #, c-format msgid "%s cannot be executed from a function" msgstr "%s нельзя выполнять внутри функции" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3580 access/transam/xact.c:3895 -#: access/transam/xact.c:3974 access/transam/xact.c:4097 -#: access/transam/xact.c:4248 access/transam/xact.c:4317 -#: access/transam/xact.c:4428 +#: access/transam/xact.c:3590 access/transam/xact.c:3905 +#: access/transam/xact.c:3984 access/transam/xact.c:4107 +#: access/transam/xact.c:4258 access/transam/xact.c:4327 +#: access/transam/xact.c:4438 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s может выполняться только внутри блоков транзакций" -#: access/transam/xact.c:3781 +#: access/transam/xact.c:3791 #, c-format msgid "there is already a transaction in progress" msgstr "транзакция уже выполняется" -#: access/transam/xact.c:3900 access/transam/xact.c:3979 -#: access/transam/xact.c:4102 +#: access/transam/xact.c:3910 access/transam/xact.c:3989 +#: access/transam/xact.c:4112 #, c-format msgid "there is no transaction in progress" msgstr "нет незавершённой транзакции" -#: access/transam/xact.c:3990 +#: access/transam/xact.c:4000 #, c-format msgid "cannot commit during a parallel operation" msgstr "фиксировать транзакции во время параллельных операций нельзя" -#: access/transam/xact.c:4113 +#: access/transam/xact.c:4123 #, c-format msgid "cannot abort during a parallel operation" msgstr "прерывание во время параллельных операций невозможно" -#: access/transam/xact.c:4212 +#: access/transam/xact.c:4222 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "определять точки сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4299 +#: access/transam/xact.c:4309 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "высвобождать точки сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4309 access/transam/xact.c:4360 -#: access/transam/xact.c:4420 access/transam/xact.c:4469 +#: access/transam/xact.c:4319 access/transam/xact.c:4370 +#: access/transam/xact.c:4430 access/transam/xact.c:4479 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка сохранения \"%s\" не существует" -#: access/transam/xact.c:4366 access/transam/xact.c:4475 +#: access/transam/xact.c:4376 access/transam/xact.c:4485 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "" "точка сохранения \"%s\" на текущем уровне точек сохранения не существует" -#: access/transam/xact.c:4408 +#: access/transam/xact.c:4418 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "откатиться к точке сохранения во время параллельных операций нельзя" -#: access/transam/xact.c:4536 +#: access/transam/xact.c:4546 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "запускать подтранзакции во время параллельных операций нельзя" -#: access/transam/xact.c:4604 +#: access/transam/xact.c:4614 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "фиксировать подтранзакции во время параллельных операций нельзя" -#: access/transam/xact.c:5251 +#: access/transam/xact.c:5261 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одной транзакции не может быть больше 2^32-1 подтранзакций" @@ -2933,7 +2947,7 @@ msgstr "" "сек., всего=%ld.%03d сек.; синхронизировано_файлов=%d, самая_долгая_синхр." "=%ld.%03d сек., средняя=%ld.%03d сек.; расстояние=%d КБ, ожидалось=%d КБ" -#: access/transam/xlog.c:6653 +#: access/transam/xlog.c:6663 #, c-format msgid "" "concurrent write-ahead log activity while database system is shutting down" @@ -2941,75 +2955,75 @@ msgstr "" "во время выключения системы баз данных отмечена активность в журнале " "предзаписи" -#: access/transam/xlog.c:7236 +#: access/transam/xlog.c:7260 #, c-format msgid "recovery restart point at %X/%X" msgstr "точка перезапуска восстановления в позиции %X/%X" -#: access/transam/xlog.c:7238 +#: access/transam/xlog.c:7262 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Последняя завершённая транзакция была выполнена в %s." -#: access/transam/xlog.c:7487 +#: access/transam/xlog.c:7511 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка восстановления \"%s\" создана в позиции %X/%X" -#: access/transam/xlog.c:7694 +#: access/transam/xlog.c:7718 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "" "резервное копирование \"на ходу\" было отменено, продолжить восстановление " "нельзя" -#: access/transam/xlog.c:7752 +#: access/transam/xlog.c:7776 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи точки выключения" -#: access/transam/xlog.c:7810 +#: access/transam/xlog.c:7834 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи точки активности" -#: access/transam/xlog.c:7839 +#: access/transam/xlog.c:7863 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в записи конец-" "восстановления" -#: access/transam/xlog.c:8097 +#: access/transam/xlog.c:8121 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не удалось синхронизировать с ФС файл сквозной записи %s: %m" -#: access/transam/xlog.c:8103 +#: access/transam/xlog.c:8127 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не удалось синхронизировать с ФС данные (fdatasync) файла \"%s\": %m" -#: access/transam/xlog.c:8198 access/transam/xlog.c:8565 +#: access/transam/xlog.c:8222 access/transam/xlog.c:8589 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "" "Выбранный уровень WAL недостаточен для резервного копирования \"на ходу\"" -#: access/transam/xlog.c:8199 access/transam/xlog.c:8566 +#: access/transam/xlog.c:8223 access/transam/xlog.c:8590 #: access/transam/xlogfuncs.c:199 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "Установите wal_level \"replica\" или \"logical\" при запуске сервера." -#: access/transam/xlog.c:8204 +#: access/transam/xlog.c:8228 #, c-format msgid "backup label too long (max %d bytes)" msgstr "длина метки резервной копии превышает предел (%d байт)" -#: access/transam/xlog.c:8320 +#: access/transam/xlog.c:8344 #, c-format msgid "" "WAL generated with full_page_writes=off was replayed since last restartpoint" @@ -3017,7 +3031,7 @@ msgstr "" "После последней точки перезапуска был воспроизведён WAL, созданный в режиме " "full_page_writes=off." -#: access/transam/xlog.c:8322 access/transam/xlog.c:8678 +#: access/transam/xlog.c:8346 access/transam/xlog.c:8702 #, c-format msgid "" "This means that the backup being taken on the standby is corrupt and should " @@ -3029,32 +3043,32 @@ msgstr "" "CHECKPOINT на ведущем сервере, а затем попробуйте резервное копирование \"на " "ходу\" ещё раз." -#: access/transam/xlog.c:8402 backup/basebackup.c:1343 utils/adt/misc.c:340 +#: access/transam/xlog.c:8426 backup/basebackup.c:1343 utils/adt/misc.c:340 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "целевой путь символической ссылки \"%s\" слишком длинный" -#: access/transam/xlog.c:8452 backup/basebackup.c:1358 +#: access/transam/xlog.c:8476 backup/basebackup.c:1358 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:348 #, c-format msgid "tablespaces are not supported on this platform" msgstr "табличные пространства не поддерживаются на этой платформе" -#: access/transam/xlog.c:8611 access/transam/xlog.c:8624 -#: access/transam/xlogrecovery.c:1237 access/transam/xlogrecovery.c:1244 -#: access/transam/xlogrecovery.c:1303 access/transam/xlogrecovery.c:1383 -#: access/transam/xlogrecovery.c:1407 +#: access/transam/xlog.c:8635 access/transam/xlog.c:8648 +#: access/transam/xlogrecovery.c:1247 access/transam/xlogrecovery.c:1254 +#: access/transam/xlogrecovery.c:1313 access/transam/xlogrecovery.c:1393 +#: access/transam/xlogrecovery.c:1417 #, c-format msgid "invalid data in file \"%s\"" msgstr "неверные данные в файле \"%s\"" -#: access/transam/xlog.c:8628 backup/basebackup.c:1204 +#: access/transam/xlog.c:8652 backup/basebackup.c:1204 #, c-format msgid "the standby was promoted during online backup" msgstr "" "ведомый сервер был повышен в процессе резервного копирования \"на ходу\"" -#: access/transam/xlog.c:8629 backup/basebackup.c:1205 +#: access/transam/xlog.c:8653 backup/basebackup.c:1205 #, c-format msgid "" "This means that the backup being taken is corrupt and should not be used. " @@ -3063,7 +3077,7 @@ msgstr "" "Это означает, что создаваемая резервная копия испорчена и использовать её не " "следует. Попробуйте резервное копирование \"на ходу\" ещё раз." -#: access/transam/xlog.c:8676 +#: access/transam/xlog.c:8700 #, c-format msgid "" "WAL generated with full_page_writes=off was replayed during online backup" @@ -3071,13 +3085,13 @@ msgstr "" "В процессе резервного копирования \"на ходу\" был воспроизведён WAL, " "созданный в режиме full_page_writes=off" -#: access/transam/xlog.c:8801 +#: access/transam/xlog.c:8825 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "" "базовое копирование выполнено, ожидается архивация нужных сегментов WAL" -#: access/transam/xlog.c:8815 +#: access/transam/xlog.c:8839 #, c-format msgid "" "still waiting for all required WAL segments to be archived (%d seconds " @@ -3085,7 +3099,7 @@ msgid "" msgstr "" "продолжается ожидание архивации всех нужных сегментов WAL (прошло %d сек.)" -#: access/transam/xlog.c:8817 +#: access/transam/xlog.c:8841 #, c-format msgid "" "Check that your archive_command is executing properly. You can safely " @@ -3096,12 +3110,12 @@ msgstr "" "копирования можно отменить безопасно, но резервная копия базы будет " "непригодна без всех сегментов WAL." -#: access/transam/xlog.c:8824 +#: access/transam/xlog.c:8848 #, c-format msgid "all required WAL segments have been archived" msgstr "все нужные сегменты WAL заархивированы" -#: access/transam/xlog.c:8828 +#: access/transam/xlog.c:8852 #, c-format msgid "" "WAL archiving is not enabled; you must ensure that all required WAL segments " @@ -3110,7 +3124,7 @@ msgstr "" "архивация WAL не настроена; вы должны обеспечить копирование всех требуемых " "сегментов WAL другими средствами для получения резервной копии" -#: access/transam/xlog.c:8877 +#: access/transam/xlog.c:8901 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "" @@ -3544,12 +3558,21 @@ msgstr "перезапуск восстановления копии с LSN redo msgid "could not locate a valid checkpoint record" msgstr "не удалось считать правильную запись контрольной точки" -#: access/transam/xlogrecovery.c:834 +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "" +"could not find redo location %X/%08X referenced by checkpoint record at %X/" +"%08X" +msgstr "" +"не удалось найти положение REDO %X/%08X, указанное в записи контрольной " +"точки в %X/%08X" + +#: access/transam/xlogrecovery.c:844 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "в истории сервера нет ответвления запрошенной линии времени %u" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:846 #, c-format msgid "" "Latest checkpoint is at %X/%X on timeline %u, but in the history of the " @@ -3558,7 +3581,7 @@ msgstr "" "Последняя контрольная точка: %X/%X на линии времени %u, но в истории " "запрошенной линии времени сервер ответвился с этой линии в %X/%X." -#: access/transam/xlogrecovery.c:850 +#: access/transam/xlogrecovery.c:860 #, c-format msgid "" "requested timeline %u does not contain minimum recovery point %X/%X on " @@ -3567,22 +3590,22 @@ msgstr "" "запрошенная линия времени %u не содержит минимальную точку восстановления %X/" "%X на линии времени %u" -#: access/transam/xlogrecovery.c:878 +#: access/transam/xlogrecovery.c:888 #, c-format msgid "invalid next transaction ID" msgstr "неверный ID следующей транзакции" -#: access/transam/xlogrecovery.c:883 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid redo in checkpoint record" msgstr "неверная запись REDO в контрольной точке" -#: access/transam/xlogrecovery.c:894 +#: access/transam/xlogrecovery.c:904 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "неверная запись REDO в контрольной точке выключения" -#: access/transam/xlogrecovery.c:923 +#: access/transam/xlogrecovery.c:933 #, c-format msgid "" "database system was not properly shut down; automatic recovery in progress" @@ -3590,19 +3613,19 @@ msgstr "" "система БД была остановлена нештатно; производится автоматическое " "восстановление" -#: access/transam/xlogrecovery.c:927 +#: access/transam/xlogrecovery.c:937 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "" "восстановление после сбоя начинается на линии времени %u, целевая линия " "времени: %u" -#: access/transam/xlogrecovery.c:970 +#: access/transam/xlogrecovery.c:980 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label содержит данные, не согласованные с файлом pg_control" -#: access/transam/xlogrecovery.c:971 +#: access/transam/xlogrecovery.c:981 #, c-format msgid "" "This means that the backup is corrupted and you will have to use another " @@ -3611,24 +3634,24 @@ msgstr "" "Это означает, что резервная копия повреждена и для восстановления БД " "придётся использовать другую копию." -#: access/transam/xlogrecovery.c:1025 +#: access/transam/xlogrecovery.c:1035 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "" "использование файла с конфигурацией восстановления \"%s\" не поддерживается" -#: access/transam/xlogrecovery.c:1090 +#: access/transam/xlogrecovery.c:1100 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "" "режим резервного сервера не поддерживается однопользовательским сервером" -#: access/transam/xlogrecovery.c:1107 +#: access/transam/xlogrecovery.c:1117 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "не указано ни primary_conninfo, ни restore_command" -#: access/transam/xlogrecovery.c:1108 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "" "The database server will regularly poll the pg_wal subdirectory to check for " @@ -3637,79 +3660,79 @@ msgstr "" "Сервер БД будет регулярно опрашивать подкаталог pg_wal и проверять " "содержащиеся в нём файлы." -#: access/transam/xlogrecovery.c:1116 +#: access/transam/xlogrecovery.c:1126 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "" "необходимо задать restore_command, если не выбран режим резервного сервера" -#: access/transam/xlogrecovery.c:1154 +#: access/transam/xlogrecovery.c:1164 #, c-format msgid "recovery target timeline %u does not exist" msgstr "целевая линия времени для восстановления %u не существует" -#: access/transam/xlogrecovery.c:1304 +#: access/transam/xlogrecovery.c:1314 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Получен идентификатор линии времени %u, но ожидался %u." -#: access/transam/xlogrecovery.c:1686 +#: access/transam/xlogrecovery.c:1696 #, c-format msgid "redo starts at %X/%X" msgstr "запись REDO начинается со смещения %X/%X" -#: access/transam/xlogrecovery.c:1699 +#: access/transam/xlogrecovery.c:1709 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "" "выполняется воспроизведение, прошло времени: %ld.%02d с, текущий LSN: %X/%X" -#: access/transam/xlogrecovery.c:1791 +#: access/transam/xlogrecovery.c:1801 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "" "запрошенная точка остановки восстановления предшествует согласованной точке " "восстановления" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1833 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "записи REDO обработаны до смещения %X/%X, нагрузка системы: %s" -#: access/transam/xlogrecovery.c:1829 +#: access/transam/xlogrecovery.c:1839 #, c-format msgid "last completed transaction was at log time %s" msgstr "последняя завершённая транзакция была выполнена в %s" -#: access/transam/xlogrecovery.c:1838 +#: access/transam/xlogrecovery.c:1848 #, c-format msgid "redo is not required" msgstr "данные REDO не требуются" -#: access/transam/xlogrecovery.c:1849 +#: access/transam/xlogrecovery.c:1859 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "восстановление окончилось до достижения заданной цели восстановления" -#: access/transam/xlogrecovery.c:2024 +#: access/transam/xlogrecovery.c:2034 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "" "успешно пропущена отсутствующая запись contrecord в %X/%X, перезаписанная в " "%s" -#: access/transam/xlogrecovery.c:2091 +#: access/transam/xlogrecovery.c:2101 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "в %2$s обнаружен недопустимый элемент-каталог \"%1$s\"" -#: access/transam/xlogrecovery.c:2093 +#: access/transam/xlogrecovery.c:2103 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "" "Все элементы-каталоги в pg_tblspc/ должны быть символическими ссылками." -#: access/transam/xlogrecovery.c:2094 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "" "Remove those directories, or set allow_in_place_tablespaces to ON " @@ -3718,23 +3741,23 @@ msgstr "" "Удалите эти каталоги или на время установите в allow_in_place_tablespaces " "значение ON, чтобы восстановление завершилось." -#: access/transam/xlogrecovery.c:2146 +#: access/transam/xlogrecovery.c:2156 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "завершено восстановление копии с LSN redo %X/%X и конечным LSN %X/%X" -#: access/transam/xlogrecovery.c:2176 +#: access/transam/xlogrecovery.c:2186 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "согласованное состояние восстановления достигнуто в позиции %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2214 +#: access/transam/xlogrecovery.c:2224 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запись REDO в WAL в позиции %X/%X для %s" -#: access/transam/xlogrecovery.c:2310 +#: access/transam/xlogrecovery.c:2320 #, c-format msgid "" "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint " @@ -3743,13 +3766,13 @@ msgstr "" "неожиданный ID предыдущей линии времени %u (ID текущей линии времени %u) в " "записи контрольной точки" -#: access/transam/xlogrecovery.c:2319 +#: access/transam/xlogrecovery.c:2329 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "неожиданный ID линии времени %u (после %u) в записи контрольной точки" # skip-rule: capital-letter-first -#: access/transam/xlogrecovery.c:2335 +#: access/transam/xlogrecovery.c:2345 #, c-format msgid "" "unexpected timeline ID %u in checkpoint record, before reaching minimum " @@ -3758,145 +3781,145 @@ msgstr "" "неожиданный ID линии времени %u в записи контрольной точки, до достижения " "минимальной к. т. %X/%X на линии времени %u" -#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 +#: access/transam/xlogrecovery.c:2529 access/transam/xlogrecovery.c:2805 #, c-format msgid "recovery stopping after reaching consistency" msgstr "" "восстановление останавливается после достижения согласованного состояния" -#: access/transam/xlogrecovery.c:2540 +#: access/transam/xlogrecovery.c:2550 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "восстановление останавливается перед позицией в WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2630 +#: access/transam/xlogrecovery.c:2640 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "" "восстановление останавливается перед фиксированием транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2637 +#: access/transam/xlogrecovery.c:2647 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "" "восстановление останавливается перед прерыванием транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2690 +#: access/transam/xlogrecovery.c:2700 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "восстановление останавливается в точке восстановления \"%s\", время %s" -#: access/transam/xlogrecovery.c:2708 +#: access/transam/xlogrecovery.c:2718 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "восстановление останавливается после позиции в WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2775 +#: access/transam/xlogrecovery.c:2785 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "" "восстановление останавливается после фиксирования транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2783 +#: access/transam/xlogrecovery.c:2793 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "" "восстановление останавливается после прерывания транзакции %u, время %s" -#: access/transam/xlogrecovery.c:2864 +#: access/transam/xlogrecovery.c:2874 #, c-format msgid "pausing at the end of recovery" msgstr "остановка в конце восстановления" -#: access/transam/xlogrecovery.c:2865 +#: access/transam/xlogrecovery.c:2875 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Выполните pg_wal_replay_resume() для повышения." -#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4690 +#: access/transam/xlogrecovery.c:2878 access/transam/xlogrecovery.c:4700 #, c-format msgid "recovery has paused" msgstr "восстановление приостановлено" -#: access/transam/xlogrecovery.c:2869 +#: access/transam/xlogrecovery.c:2879 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Выполните pg_wal_replay_resume() для продолжения." -#: access/transam/xlogrecovery.c:3135 +#: access/transam/xlogrecovery.c:3145 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "неожиданный ID линии времени %u в сегменте журнала %s, смещение %u" -#: access/transam/xlogrecovery.c:3340 +#: access/transam/xlogrecovery.c:3350 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "не удалось прочитать сегмент журнала %s, смещение %u: %m" -#: access/transam/xlogrecovery.c:3346 +#: access/transam/xlogrecovery.c:3356 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "" "не удалось прочитать из сегмента журнала %s по смещению %u (прочитано байт: " "%d из %zu)" -#: access/transam/xlogrecovery.c:4007 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "неверная ссылка на первичную контрольную точку в файле pg_control" -#: access/transam/xlogrecovery.c:4011 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "неверная ссылка на контрольную точку в файле backup_label" -#: access/transam/xlogrecovery.c:4029 +#: access/transam/xlogrecovery.c:4039 #, c-format msgid "invalid primary checkpoint record" msgstr "неверная запись первичной контрольной точки" -#: access/transam/xlogrecovery.c:4033 +#: access/transam/xlogrecovery.c:4043 #, c-format msgid "invalid checkpoint record" msgstr "неверная запись контрольной точки" -#: access/transam/xlogrecovery.c:4044 +#: access/transam/xlogrecovery.c:4054 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "неверный ID менеджера ресурсов в записи первичной контрольной точки" -#: access/transam/xlogrecovery.c:4048 +#: access/transam/xlogrecovery.c:4058 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "неверный ID менеджера ресурсов в записи контрольной точки" -#: access/transam/xlogrecovery.c:4061 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "неверные флаги xl_info в записи первичной контрольной точки" -#: access/transam/xlogrecovery.c:4065 +#: access/transam/xlogrecovery.c:4075 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "неверные флаги xl_info в записи контрольной точки" -#: access/transam/xlogrecovery.c:4076 +#: access/transam/xlogrecovery.c:4086 #, c-format msgid "invalid length of primary checkpoint record" msgstr "неверная длина записи первичной контрольной точки" -#: access/transam/xlogrecovery.c:4080 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "неверная длина записи контрольной точки" -#: access/transam/xlogrecovery.c:4136 +#: access/transam/xlogrecovery.c:4146 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "" "новая линия времени %u не является ответвлением линии времени системы БД %u" -#: access/transam/xlogrecovery.c:4150 +#: access/transam/xlogrecovery.c:4160 #, c-format msgid "" "new timeline %u forked off current database system timeline %u before " @@ -3905,40 +3928,40 @@ msgstr "" "новая линия времени %u ответвилась от текущей линии времени базы данных %u " "до текущей точки восстановления %X/%X" -#: access/transam/xlogrecovery.c:4169 +#: access/transam/xlogrecovery.c:4179 #, c-format msgid "new target timeline is %u" msgstr "новая целевая линия времени %u" -#: access/transam/xlogrecovery.c:4372 +#: access/transam/xlogrecovery.c:4382 #, c-format msgid "WAL receiver process shutdown requested" msgstr "получен запрос на выключение процесса приёмника WAL" -#: access/transam/xlogrecovery.c:4435 +#: access/transam/xlogrecovery.c:4445 #, c-format msgid "received promote request" msgstr "получен запрос повышения статуса" -#: access/transam/xlogrecovery.c:4448 +#: access/transam/xlogrecovery.c:4458 #, c-format msgid "promote trigger file found: %s" msgstr "найден файл триггера повышения: %s" -#: access/transam/xlogrecovery.c:4456 +#: access/transam/xlogrecovery.c:4466 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "не удалось получить информацию о файле триггера повышения \"%s\": %m" -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "" "режим горячего резерва невозможен из-за отсутствия достаточных значений " "параметров" -#: access/transam/xlogrecovery.c:4682 access/transam/xlogrecovery.c:4709 -#: access/transam/xlogrecovery.c:4739 +#: access/transam/xlogrecovery.c:4692 access/transam/xlogrecovery.c:4719 +#: access/transam/xlogrecovery.c:4749 #, c-format msgid "" "%s = %d is a lower setting than on the primary server, where its value was " @@ -3946,12 +3969,12 @@ msgid "" msgstr "" "Параметр %s = %d меньше, чем на ведущем сервере, где его значение было %d." -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "В случае возобновления восстановления сервер отключится." -#: access/transam/xlogrecovery.c:4692 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "" "You can then restart the server after making the necessary configuration " @@ -3960,24 +3983,24 @@ msgstr "" "Затем вы можете перезапустить сервер после внесения необходимых изменений " "конфигурации." -#: access/transam/xlogrecovery.c:4703 +#: access/transam/xlogrecovery.c:4713 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "повышение невозможно из-за отсутствия достаточных значений параметров" -#: access/transam/xlogrecovery.c:4713 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "" "Перезапустите сервер после внесения необходимых изменений конфигурации." -#: access/transam/xlogrecovery.c:4737 +#: access/transam/xlogrecovery.c:4747 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "" "восстановление прервано из-за отсутствия достаточных значений параметров" -#: access/transam/xlogrecovery.c:4743 +#: access/transam/xlogrecovery.c:4753 #, c-format msgid "" "You can restart the server after making the necessary configuration changes." @@ -4205,7 +4228,7 @@ msgstr "" #: backup/basebackup_server.c:102 commands/dbcommands.c:477 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1587 +#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1618 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -4884,7 +4907,7 @@ msgid "language with OID %u does not exist" msgstr "язык с OID %u не существует" #: catalog/aclchk.c:4576 catalog/aclchk.c:5365 commands/collationcmds.c:595 -#: commands/publicationcmds.c:1745 +#: commands/publicationcmds.c:1750 #, c-format msgid "schema with OID %u does not exist" msgstr "схема с OID %u не существует" @@ -4955,7 +4978,7 @@ msgstr "преобразование с OID %u не существует" msgid "extension with OID %u does not exist" msgstr "расширение с OID %u не существует" -#: catalog/aclchk.c:5727 commands/publicationcmds.c:1999 +#: catalog/aclchk.c:5727 commands/publicationcmds.c:2004 #, c-format msgid "publication with OID %u does not exist" msgstr "публикация с OID %u не существует" @@ -5287,14 +5310,14 @@ msgstr "" msgid "generation expression is not immutable" msgstr "генерирующее выражение не является постоянным" -#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1285 +#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "столбец \"%s\" имеет тип %s, но тип выражения по умолчанию %s" #: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 #: parser/parse_target.c:594 parser/parse_target.c:891 -#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1290 +#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Перепишите выражение или преобразуйте его тип." @@ -5391,7 +5414,7 @@ msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "" "значение OID индекса в pg_class не задано в режиме двоичного обновления" -#: catalog/index.c:927 utils/cache/relcache.c:3745 +#: catalog/index.c:927 utils/cache/relcache.c:3761 #, c-format msgid "index relfilenode value not set when in binary upgrade mode" msgstr "" @@ -5402,28 +5425,28 @@ msgstr "" msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY должен быть первым действием в транзакции" -#: catalog/index.c:3662 +#: catalog/index.c:3669 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "переиндексировать временные таблицы других сеансов нельзя" -#: catalog/index.c:3673 commands/indexcmds.c:3577 +#: catalog/index.c:3680 commands/indexcmds.c:3577 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "перестроить нерабочий индекс в таблице TOAST нельзя" -#: catalog/index.c:3689 commands/indexcmds.c:3457 commands/indexcmds.c:3601 +#: catalog/index.c:3696 commands/indexcmds.c:3457 commands/indexcmds.c:3601 #: commands/tablecmds.c:3331 #, c-format msgid "cannot move system relation \"%s\"" msgstr "переместить системную таблицу \"%s\" нельзя" -#: catalog/index.c:3833 +#: catalog/index.c:3840 #, c-format msgid "index \"%s\" was reindexed" msgstr "индекс \"%s\" был перестроен" -#: catalog/index.c:3970 +#: catalog/index.c:3977 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "" @@ -5431,7 +5454,7 @@ msgstr "" "пропускается" #: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5860 +#: commands/trigger.c:5881 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "ссылки между базами не реализованы: \"%s.%s.%s\"" @@ -6659,8 +6682,8 @@ msgstr "в списке публикуемых столбцов повторяе msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "схема \"%s\" уже включена в публикацию \"%s\"" -#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1391 -#: commands/publicationcmds.c:1430 commands/publicationcmds.c:1967 +#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1396 +#: commands/publicationcmds.c:1435 commands/publicationcmds.c:1972 #, c-format msgid "publication \"%s\" does not exist" msgstr "публикация \"%s\" не существует" @@ -6827,7 +6850,7 @@ msgstr "" "Имя мультидиапазонного типа можно указать вручную, воспользовавшись " "атрибутом \"multirange_type_name\"." -#: catalog/storage.c:530 storage/buffer/bufmgr.c:1047 +#: catalog/storage.c:530 storage/buffer/bufmgr.c:1054 #, c-format msgid "invalid page in block %u of relation %s" msgstr "некорректная страница в блоке %u отношения %s" @@ -6950,7 +6973,7 @@ msgstr "сервер \"%s\" уже существует" msgid "language \"%s\" already exists" msgstr "язык \"%s\" уже существует" -#: commands/alter.c:97 commands/publicationcmds.c:770 +#: commands/alter.c:97 commands/publicationcmds.c:775 #, c-format msgid "publication \"%s\" already exists" msgstr "публикация \"%s\" уже существует" @@ -7093,22 +7116,22 @@ msgstr "" "пропускается анализ дерева наследования \"%s.%s\" --- это дерево " "наследования не содержит анализируемых дочерних таблиц" -#: commands/async.c:646 +#: commands/async.c:645 #, c-format msgid "channel name cannot be empty" msgstr "имя канала не может быть пустым" -#: commands/async.c:652 +#: commands/async.c:651 #, c-format msgid "channel name too long" msgstr "слишком длинное имя канала" -#: commands/async.c:657 +#: commands/async.c:656 #, c-format msgid "payload string too long" msgstr "слишком длинная строка сообщения-нагрузки" -#: commands/async.c:876 +#: commands/async.c:875 #, c-format msgid "" "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" @@ -7116,7 +7139,7 @@ msgstr "" "выполнить PREPARE для транзакции с командами LISTEN, UNLISTEN или NOTIFY " "нельзя" -#: commands/async.c:980 +#: commands/async.c:979 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "слишком много уведомлений в очереди NOTIFY" @@ -7242,8 +7265,8 @@ msgstr "атрибут COLLATION \"%s\" не распознан" #: commands/collationcmds.c:119 commands/collationcmds.c:125 #: commands/define.c:389 commands/tablecmds.c:7913 #: replication/pgoutput/pgoutput.c:319 replication/pgoutput/pgoutput.c:342 -#: replication/pgoutput/pgoutput.c:356 replication/pgoutput/pgoutput.c:366 -#: replication/pgoutput/pgoutput.c:376 replication/pgoutput/pgoutput.c:386 +#: replication/pgoutput/pgoutput.c:360 replication/pgoutput/pgoutput.c:370 +#: replication/pgoutput/pgoutput.c:380 replication/pgoutput/pgoutput.c:390 #: replication/walsender.c:1015 replication/walsender.c:1037 #: replication/walsender.c:1047 #, c-format @@ -7440,7 +7463,7 @@ msgstr "генерируемые столбцы не поддерживаютс #: commands/copy.c:176 commands/tablecmds.c:12461 commands/tablecmds.c:17648 #: commands/tablecmds.c:17727 commands/trigger.c:668 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 +#: rewrite/rewriteHandler.c:939 rewrite/rewriteHandler.c:974 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Столбец \"%s\" является генерируемым." @@ -7605,7 +7628,7 @@ msgstr "столбец \"%s\" — генерируемый" msgid "Generated columns cannot be used in COPY." msgstr "Генерируемые столбцы нельзя использовать в COPY." -#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:243 +#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:263 #: commands/tablecmds.c:2393 commands/tablecmds.c:3049 #: commands/tablecmds.c:3558 parser/parse_relation.c:3669 #: parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 @@ -7700,7 +7723,7 @@ msgstr "столбец FORCE_NOT_NULL \"%s\" не фигурирует в COPY" msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "столбец FORCE_NULL \"%s\" не фигурирует в COPY" -#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:386 #, c-format msgid "" "default conversion function for encoding \"%s\" to \"%s\" does not exist" @@ -8517,7 +8540,7 @@ msgstr "правило сортировки \"%s\" не существует, п msgid "conversion \"%s\" does not exist, skipping" msgstr "преобразование \"%s\" не существует, пропускается" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:675 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "объект статистики \"%s\" не существует, пропускается" @@ -10198,7 +10221,7 @@ msgstr "функция оценки соединения %s должна воз msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" нельзя изменить" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:155 #: commands/tablecmds.c:1623 commands/tablecmds.c:2211 #: commands/tablecmds.c:3452 commands/tablecmds.c:6377 #: commands/tablecmds.c:9253 commands/tablecmds.c:17383 @@ -10306,37 +10329,37 @@ msgid "must be superuser to create custom procedural language" msgstr "" "для создания дополнительного процедурного языка нужно быть суперпользователем" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1224 +#: commands/publicationcmds.c:135 postmaster/postmaster.c:1224 #: postmaster/postmaster.c:1323 utils/init/miscinit.c:1703 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неверный формат списка в параметре \"%s\"" -#: commands/publicationcmds.c:149 +#: commands/publicationcmds.c:154 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "нераспознанное значение параметра публикации \"%s\": \"%s\"" -#: commands/publicationcmds.c:163 +#: commands/publicationcmds.c:168 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "нераспознанный параметр репликации: \"%s\"" -#: commands/publicationcmds.c:204 +#: commands/publicationcmds.c:209 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "для CURRENT_SCHEMA требуется, чтобы была выбрана схема" -#: commands/publicationcmds.c:501 +#: commands/publicationcmds.c:506 msgid "System columns are not allowed." msgstr "Системные столбцы не допускаются." -#: commands/publicationcmds.c:508 commands/publicationcmds.c:513 -#: commands/publicationcmds.c:530 +#: commands/publicationcmds.c:513 commands/publicationcmds.c:518 +#: commands/publicationcmds.c:535 msgid "User-defined operators are not allowed." msgstr "Пользовательские операторы не допускаются." -#: commands/publicationcmds.c:554 +#: commands/publicationcmds.c:559 msgid "" "Only columns, constants, built-in operators, built-in data types, built-in " "collations, and immutable built-in functions are allowed." @@ -10344,43 +10367,43 @@ msgstr "" "Допускаются только столбцы, константы, встроенные операторы, встроенные типы " "данных, встроенные правила сортировки и встроенные постоянные функции." -#: commands/publicationcmds.c:566 +#: commands/publicationcmds.c:571 msgid "User-defined types are not allowed." msgstr "Пользовательские типы не допускаются." -#: commands/publicationcmds.c:569 +#: commands/publicationcmds.c:574 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Пользовательские или встроенные непостоянные функции не допускаются." -#: commands/publicationcmds.c:572 +#: commands/publicationcmds.c:577 msgid "User-defined collations are not allowed." msgstr "Пользовательские правила сортировки не допускаются." -#: commands/publicationcmds.c:582 +#: commands/publicationcmds.c:587 #, c-format msgid "invalid publication WHERE expression" msgstr "неверное выражение в предложении WHERE публикации" -#: commands/publicationcmds.c:635 +#: commands/publicationcmds.c:640 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "" "использовать в публикации предложение WHERE для отношения \"%s\" нельзя" -#: commands/publicationcmds.c:637 +#: commands/publicationcmds.c:642 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "" "Предложение WHERE нельзя использовать для секционированной таблицы, когда %s " "равен false." -#: commands/publicationcmds.c:708 commands/publicationcmds.c:722 +#: commands/publicationcmds.c:713 commands/publicationcmds.c:727 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "" "использовать список столбцов отношения \"%s.%s\" в публикации \"%s\" нельзя" -#: commands/publicationcmds.c:711 +#: commands/publicationcmds.c:716 #, c-format msgid "" "Column lists cannot be specified in publications containing FOR TABLES IN " @@ -10389,7 +10412,7 @@ msgstr "" "Списки столбцов нельзя задавать в публикациях, содержащих элементы FOR " "TABLES IN SCHEMA." -#: commands/publicationcmds.c:725 +#: commands/publicationcmds.c:730 #, c-format msgid "" "Column lists cannot be specified for partitioned tables when %s is false." @@ -10397,34 +10420,34 @@ msgstr "" "Списки столбцов нельзя задавать для секционированных таблиц, когда %s равен " "false." -#: commands/publicationcmds.c:760 +#: commands/publicationcmds.c:765 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "для создания публикации всех таблиц нужно быть суперпользователем" -#: commands/publicationcmds.c:831 +#: commands/publicationcmds.c:836 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "" "для создания публикации вида FOR ALL TABLES IN SCHEMA нужно быть " "суперпользователем" -#: commands/publicationcmds.c:867 +#: commands/publicationcmds.c:872 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "уровень wal_level недостаточен для публикации логических изменений" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:873 #, c-format msgid "Set wal_level to \"logical\" before creating subscriptions." msgstr "Задайте для wal_level значение \"logical\" до создания подписок." -#: commands/publicationcmds.c:964 commands/publicationcmds.c:972 +#: commands/publicationcmds.c:969 commands/publicationcmds.c:977 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "параметру \"%s\" публикации \"%s\" нельзя присвоить false" -#: commands/publicationcmds.c:967 +#: commands/publicationcmds.c:972 #, c-format msgid "" "The publication contains a WHERE clause for partitioned table \"%s\", which " @@ -10433,7 +10456,7 @@ msgstr "" "Публикация содержит предложение WHERE для секционированной таблицы \"%s\", " "что не допускается, когда \"%s\" равен false." -#: commands/publicationcmds.c:975 +#: commands/publicationcmds.c:980 #, c-format msgid "" "The publication contains a column list for partitioned table \"%s\", which " @@ -10442,12 +10465,12 @@ msgstr "" "Публикация содержит список столбцов для секционированной таблицы \"%s\", что " "не допускается, когда \"%s\" равен false." -#: commands/publicationcmds.c:1298 +#: commands/publicationcmds.c:1303 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "добавить схему в публикацию \"%s\" нельзя" -#: commands/publicationcmds.c:1300 +#: commands/publicationcmds.c:1305 #, c-format msgid "" "Schemas cannot be added if any tables that specify a column list are already " @@ -10456,69 +10479,69 @@ msgstr "" "Схемы нельзя добавлять в публикацию, если в неё уже добавлены таблицы, для " "которых задан список столбцов." -#: commands/publicationcmds.c:1348 +#: commands/publicationcmds.c:1353 #, c-format msgid "must be superuser to add or set schemas" msgstr "для добавления или замены схем нужно быть суперпользователем" -#: commands/publicationcmds.c:1357 commands/publicationcmds.c:1365 +#: commands/publicationcmds.c:1362 commands/publicationcmds.c:1370 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "публикация \"%s\" определена для всех таблиц (FOR ALL TABLES)" -#: commands/publicationcmds.c:1359 +#: commands/publicationcmds.c:1364 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "В публикации вида FOR ALL TABLES нельзя добавлять или удалять таблицы." -#: commands/publicationcmds.c:1367 +#: commands/publicationcmds.c:1372 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "В публикации всех таблиц нельзя добавлять или удалять таблицы." -#: commands/publicationcmds.c:1593 commands/publicationcmds.c:1656 +#: commands/publicationcmds.c:1598 commands/publicationcmds.c:1661 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "конфликтующие или избыточные предложения WHERE для таблицы \"%s\"" -#: commands/publicationcmds.c:1600 commands/publicationcmds.c:1668 +#: commands/publicationcmds.c:1605 commands/publicationcmds.c:1673 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "конфликтующие или избыточные списки столбцов для таблицы \"%s\"" -#: commands/publicationcmds.c:1802 +#: commands/publicationcmds.c:1807 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "в ALTER PUBLICATION ... DROP не должен задаваться список столбцов" -#: commands/publicationcmds.c:1814 +#: commands/publicationcmds.c:1819 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "отношение \"%s\" не включено в публикацию" -#: commands/publicationcmds.c:1821 +#: commands/publicationcmds.c:1826 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "использовать WHERE при удалении таблицы из публикации нельзя" -#: commands/publicationcmds.c:1881 +#: commands/publicationcmds.c:1886 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "таблицы из схемы \"%s\" не являются частью публикации" -#: commands/publicationcmds.c:1924 commands/publicationcmds.c:1931 +#: commands/publicationcmds.c:1929 commands/publicationcmds.c:1936 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "нет прав для изменения владельца публикации \"%s\"" -#: commands/publicationcmds.c:1926 +#: commands/publicationcmds.c:1931 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "" "Владельцем публикации всех таблиц (FOR ALL TABLES) должен быть " "суперпользователь." -#: commands/publicationcmds.c:1933 +#: commands/publicationcmds.c:1938 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "" @@ -10711,27 +10734,27 @@ msgstr "в CREATE STATISTICS можно указать только одно о msgid "cannot define statistics for relation \"%s\"" msgstr "для отношения \"%s\" нельзя определить объект статистики" -#: commands/statscmds.c:191 +#: commands/statscmds.c:211 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "объект статистики \"%s\" уже существует, пропускается" -#: commands/statscmds.c:199 +#: commands/statscmds.c:219 #, c-format msgid "statistics object \"%s\" already exists" msgstr "объект статистики \"%s\" уже существует" -#: commands/statscmds.c:210 +#: commands/statscmds.c:230 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "в статистике не может быть больше %d столбцов" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:271 commands/statscmds.c:294 commands/statscmds.c:328 #, c-format msgid "statistics creation on system columns is not supported" msgstr "создание статистики для системных столбцов не поддерживается" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:278 commands/statscmds.c:301 #, c-format msgid "" "column \"%s\" cannot be used in statistics because its type %s has no " @@ -10740,7 +10763,7 @@ msgstr "" "столбец \"%s\" нельзя использовать в статистике, так как для его типа %s не " "определён класс операторов B-дерева по умолчанию" -#: commands/statscmds.c:325 +#: commands/statscmds.c:345 #, c-format msgid "" "expression cannot be used in multivariate statistics because its type %s has " @@ -10749,7 +10772,7 @@ msgstr "" "выражение нельзя использовать в многовариантной статистике, так как для его " "типа %s не определён класс операторов btree по умолчанию" -#: commands/statscmds.c:346 +#: commands/statscmds.c:366 #, c-format msgid "" "when building statistics on a single expression, statistics kinds may not be " @@ -10758,37 +10781,37 @@ msgstr "" "при построении статистики по единственному выражению указывать виды " "статистики нельзя" -#: commands/statscmds.c:375 +#: commands/statscmds.c:395 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "нераспознанный вид статистики \"%s\"" -#: commands/statscmds.c:404 +#: commands/statscmds.c:424 #, c-format msgid "extended statistics require at least 2 columns" msgstr "для расширенной статистики требуются минимум 2 столбца" -#: commands/statscmds.c:422 +#: commands/statscmds.c:442 #, c-format msgid "duplicate column name in statistics definition" msgstr "повторяющееся имя столбца в определении статистики" -#: commands/statscmds.c:457 +#: commands/statscmds.c:477 #, c-format msgid "duplicate expression in statistics definition" msgstr "повторяющееся выражение в определении статистики" -#: commands/statscmds.c:620 commands/tablecmds.c:8217 +#: commands/statscmds.c:640 commands/tablecmds.c:8217 #, c-format msgid "statistics target %d is too low" msgstr "ориентир статистики слишком мал (%d)" -#: commands/statscmds.c:628 commands/tablecmds.c:8225 +#: commands/statscmds.c:648 commands/tablecmds.c:8225 #, c-format msgid "lowering statistics target to %d" msgstr "ориентир статистики снижается до %d" -#: commands/statscmds.c:651 +#: commands/statscmds.c:671 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "объект статистики \"%s.%s\" не существует, пропускается" @@ -10979,7 +11002,7 @@ msgstr "" "не удалось получить список реплицируемых таблиц с сервера репликации: %s" #: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 -#: replication/pgoutput/pgoutput.c:1110 +#: replication/pgoutput/pgoutput.c:1114 #, c-format msgid "" "cannot use different column lists for table \"%s.%s\" in different " @@ -13122,8 +13145,8 @@ msgstr "собрать переходные кортежи из дочерних #: commands/trigger.c:3472 executor/nodeModifyTable.c:1543 #: executor/nodeModifyTable.c:1617 executor/nodeModifyTable.c:2384 -#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3036 -#: executor/nodeModifyTable.c:3175 +#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3027 +#: executor/nodeModifyTable.c:3166 #, c-format msgid "" "Consider using an AFTER trigger instead of a BEFORE trigger to propagate " @@ -13141,25 +13164,25 @@ msgid "could not serialize access due to concurrent update" msgstr "не удалось сериализовать доступ из-за параллельного изменения" #: commands/trigger.c:3521 executor/nodeModifyTable.c:1649 -#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2649 -#: executor/nodeModifyTable.c:3054 +#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2641 +#: executor/nodeModifyTable.c:3045 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не удалось сериализовать доступ из-за параллельного удаления" -#: commands/trigger.c:4730 +#: commands/trigger.c:4714 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "" "в рамках операции с ограничениями по безопасности нельзя вызвать отложенный " "триггер" -#: commands/trigger.c:5911 +#: commands/trigger.c:5932 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "ограничение \"%s\" не является откладываемым" -#: commands/trigger.c:5934 +#: commands/trigger.c:5955 #, c-format msgid "constraint \"%s\" does not exist" msgstr "ограничение \"%s\" не существует" @@ -13851,119 +13874,119 @@ msgstr "роль \"%s\" уже включена в роль \"%s\"" msgid "role \"%s\" is not a member of role \"%s\"" msgstr "роль \"%s\" не включена в роль \"%s\"" -#: commands/vacuum.c:140 +#: commands/vacuum.c:141 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "нераспознанный параметр ANALYZE: \"%s\"" -#: commands/vacuum.c:178 +#: commands/vacuum.c:179 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "для параметра parallel требуется значение от 0 до %d" -#: commands/vacuum.c:190 +#: commands/vacuum.c:191 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "" "число параллельных исполнителей для выполнения очистки должно быть от 0 до %d" -#: commands/vacuum.c:207 +#: commands/vacuum.c:208 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "нераспознанный параметр VACUUM: \"%s\"" -#: commands/vacuum.c:230 +#: commands/vacuum.c:231 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL нельзя выполнять в параллельном режиме" -#: commands/vacuum.c:246 +#: commands/vacuum.c:247 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "если задаётся список столбцов, необходимо указать ANALYZE" -#: commands/vacuum.c:336 +#: commands/vacuum.c:337 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s нельзя выполнить в ходе VACUUM или ANALYZE" -#: commands/vacuum.c:346 +#: commands/vacuum.c:347 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "Параметр VACUUM DISABLE_PAGE_SKIPPING нельзя использовать с FULL" -#: commands/vacuum.c:353 +#: commands/vacuum.c:354 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "VACUUM FULL работает только с PROCESS_TOAST" -#: commands/vacuum.c:596 +#: commands/vacuum.c:597 #, c-format msgid "skipping \"%s\" --- only superuser can vacuum it" msgstr "" "\"%s\" пропускается --- только суперпользователь может очистить это отношение" -#: commands/vacuum.c:600 +#: commands/vacuum.c:601 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" msgstr "" "\"%s\" пропускается --- только суперпользователь или владелец БД может " "очистить это отношение" -#: commands/vacuum.c:604 +#: commands/vacuum.c:605 #, c-format msgid "skipping \"%s\" --- only table or database owner can vacuum it" msgstr "" "\"%s\" пропускается --- только владелец базы данных или этой таблицы может " "очистить её" -#: commands/vacuum.c:619 +#: commands/vacuum.c:620 #, c-format msgid "skipping \"%s\" --- only superuser can analyze it" msgstr "" "\"%s\" пропускается --- только суперпользователь может анализировать это " "отношение" -#: commands/vacuum.c:623 +#: commands/vacuum.c:624 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can analyze it" msgstr "" "\"%s\" пропускается --- только суперпользователь или владелец БД может " "анализировать это отношение" -#: commands/vacuum.c:627 +#: commands/vacuum.c:628 #, c-format msgid "skipping \"%s\" --- only table or database owner can analyze it" msgstr "" "\"%s\" пропускается --- только владелец таблицы или БД может анализировать " "это отношение" -#: commands/vacuum.c:706 commands/vacuum.c:802 +#: commands/vacuum.c:707 commands/vacuum.c:803 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "очистка \"%s\" пропускается --- блокировка недоступна" -#: commands/vacuum.c:711 +#: commands/vacuum.c:712 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "очистка \"%s\" пропускается --- это отношение более не существует" -#: commands/vacuum.c:727 commands/vacuum.c:807 +#: commands/vacuum.c:728 commands/vacuum.c:808 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "анализ \"%s\" пропускается --- блокировка недоступна" -#: commands/vacuum.c:732 +#: commands/vacuum.c:733 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "анализ \"%s\" пропускается --- это отношение более не существует" -#: commands/vacuum.c:1051 +#: commands/vacuum.c:1052 #, c-format msgid "oldest xmin is far in the past" msgstr "самый старый xmin далеко в прошлом" -#: commands/vacuum.c:1052 +#: commands/vacuum.c:1053 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -13975,12 +13998,12 @@ msgstr "" "Возможно, вам также придётся зафиксировать или откатить старые " "подготовленные транзакции и удалить неиспользуемые слоты репликации." -#: commands/vacuum.c:1095 +#: commands/vacuum.c:1096 #, c-format msgid "oldest multixact is far in the past" msgstr "самый старый multixact далеко в прошлом" -#: commands/vacuum.c:1096 +#: commands/vacuum.c:1097 #, c-format msgid "" "Close open transactions with multixacts soon to avoid wraparound problems." @@ -13988,37 +14011,37 @@ msgstr "" "Скорее закройте открытые транзакции в мультитранзакциях, чтобы избежать " "проблемы зацикливания." -#: commands/vacuum.c:1830 +#: commands/vacuum.c:1831 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "" "есть базы данных, которые не очищались на протяжении более чем 2 миллиардов " "транзакций" -#: commands/vacuum.c:1831 +#: commands/vacuum.c:1832 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "" "Возможно, вы уже потеряли данные в результате зацикливания ID транзакций." -#: commands/vacuum.c:2006 +#: commands/vacuum.c:2013 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "" "\"%s\" пропускается --- очищать не таблицы или специальные системные таблицы " "нельзя" -#: commands/vacuum.c:2384 +#: commands/vacuum.c:2391 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "просканирован индекс \"%s\", удалено версий строк: %d" -#: commands/vacuum.c:2403 +#: commands/vacuum.c:2410 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "индекс \"%s\" теперь содержит версий строк: %.0f, в страницах: %u" -#: commands/vacuum.c:2407 +#: commands/vacuum.c:2414 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -14323,7 +14346,7 @@ msgstr "" "В таблице определён тип %s (номер столбца: %d), а в запросе предполагается " "%s." -#: executor/execExpr.c:1098 parser/parse_agg.c:861 +#: executor/execExpr.c:1098 parser/parse_agg.c:888 #, c-format msgid "window function calls cannot be nested" msgstr "вложенные вызовы оконных функций недопустимы" @@ -14518,14 +14541,14 @@ msgstr "последовательность \"%s\" изменить нельз msgid "cannot change TOAST relation \"%s\"" msgstr "TOAST-отношение \"%s\" изменить нельзя" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3149 -#: rewrite/rewriteHandler.c:4037 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3152 +#: rewrite/rewriteHandler.c:4057 #, c-format msgid "cannot insert into view \"%s\"" msgstr "вставить данные в представление \"%s\" нельзя" -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3152 -#: rewrite/rewriteHandler.c:4040 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:4060 #, c-format msgid "" "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or " @@ -14534,14 +14557,14 @@ msgstr "" "Чтобы представление допускало добавление данных, установите триггер INSTEAD " "OF INSERT или безусловное правило ON INSERT DO INSTEAD." -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3157 -#: rewrite/rewriteHandler.c:4045 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3160 +#: rewrite/rewriteHandler.c:4065 #, c-format msgid "cannot update view \"%s\"" msgstr "изменить данные в представлении \"%s\" нельзя" -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3160 -#: rewrite/rewriteHandler.c:4048 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:4068 #, c-format msgid "" "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an " @@ -14550,14 +14573,14 @@ msgstr "" "Чтобы представление допускало изменение данных, установите триггер INSTEAD " "OF UPDATE или безусловное правило ON UPDATE DO INSTEAD." -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3165 -#: rewrite/rewriteHandler.c:4053 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3168 +#: rewrite/rewriteHandler.c:4073 #, c-format msgid "cannot delete from view \"%s\"" msgstr "удалить данные из представления \"%s\" нельзя" -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3168 -#: rewrite/rewriteHandler.c:4056 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3171 +#: rewrite/rewriteHandler.c:4076 #, c-format msgid "" "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an " @@ -14974,7 +14997,7 @@ msgid "aggregate %u needs to have compatible input type and transition type" msgstr "" "агрегатная функция %u должна иметь совместимые входной и переходный типы" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:677 parser/parse_agg.c:705 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:684 parser/parse_agg.c:727 #, c-format msgid "aggregate function calls cannot be nested" msgstr "вложенные вызовы агрегатных функций недопустимы" @@ -15083,8 +15106,8 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "Возможно, имеет смысл перенацелить внешний ключ на таблицу \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3042 -#: executor/nodeModifyTable.c:3181 +#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3033 +#: executor/nodeModifyTable.c:3172 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не может подействовать на строку дважды" @@ -15098,7 +15121,7 @@ msgstr "" "Проверьте, не содержат ли строки, которые должна добавить команда, " "дублирующиеся значения, подпадающие под ограничения." -#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 +#: executor/nodeModifyTable.c:3026 executor/nodeModifyTable.c:3165 #, c-format msgid "" "tuple to be updated or deleted was already modified by an operation " @@ -15107,14 +15130,14 @@ msgstr "" "кортеж, который должен быть изменён или удалён, уже модифицирован в " "операции, вызванной текущей командой" -#: executor/nodeModifyTable.c:3044 executor/nodeModifyTable.c:3183 +#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "" "Проверьте, не может ли какой-либо целевой строке соответствовать более одной " "исходной строки." -#: executor/nodeModifyTable.c:3133 +#: executor/nodeModifyTable.c:3124 #, c-format msgid "" "tuple to be deleted was already moved to another partition due to concurrent " @@ -17817,208 +17840,218 @@ msgstr "%s нельзя применить к именованному хран msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "отношение \"%s\" в определении %s отсутствует в предложении FROM" -#: parser/parse_agg.c:208 parser/parse_oper.c:227 +#: parser/parse_agg.c:211 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "для типа %s не удалось найти оператор сортировки" -#: parser/parse_agg.c:210 +#: parser/parse_agg.c:213 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Агрегатным функциям с DISTINCT необходимо сортировать входные данные." -#: parser/parse_agg.c:268 +#: parser/parse_agg.c:271 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "у GROUPING должно быть меньше 32 аргументов" -#: parser/parse_agg.c:371 +#: parser/parse_agg.c:375 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатные функции нельзя применять в условиях JOIN" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:377 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операции группировки нельзя применять в условиях JOIN" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:387 msgid "" "aggregate functions are not allowed in FROM clause of their own query level" msgstr "" "агрегатные функции нельзя применять в предложении FROM их уровня запроса" -#: parser/parse_agg.c:385 +#: parser/parse_agg.c:389 msgid "" "grouping operations are not allowed in FROM clause of their own query level" msgstr "" "операции группировки нельзя применять в предложении FROM их уровня запроса" -#: parser/parse_agg.c:390 +#: parser/parse_agg.c:394 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатные функции нельзя применять в функциях во FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:396 msgid "grouping operations are not allowed in functions in FROM" msgstr "операции группировки нельзя применять в функциях во FROM" -#: parser/parse_agg.c:400 +#: parser/parse_agg.c:404 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатные функции нельзя применять в выражениях политик" -#: parser/parse_agg.c:402 +#: parser/parse_agg.c:406 msgid "grouping operations are not allowed in policy expressions" msgstr "операции группировки нельзя применять в выражениях политик" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:423 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатные функции нельзя применять в указании RANGE для окна" -#: parser/parse_agg.c:421 +#: parser/parse_agg.c:425 msgid "grouping operations are not allowed in window RANGE" msgstr "операции группировки нельзя применять в указании RANGE для окна" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:430 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатные функции нельзя применять в указании ROWS для окна" -#: parser/parse_agg.c:428 +#: parser/parse_agg.c:432 msgid "grouping operations are not allowed in window ROWS" msgstr "операции группировки нельзя применять в указании ROWS для окна" -#: parser/parse_agg.c:433 +#: parser/parse_agg.c:437 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатные функции нельзя применять в указании GROUPS для окна" -#: parser/parse_agg.c:435 +#: parser/parse_agg.c:439 msgid "grouping operations are not allowed in window GROUPS" msgstr "операции группировки нельзя применять в указании GROUPS для окна" -#: parser/parse_agg.c:448 +#: parser/parse_agg.c:452 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатные функции нельзя применять в условиях MERGE WHEN" -#: parser/parse_agg.c:450 +#: parser/parse_agg.c:454 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операции группировки нельзя применять в условиях MERGE WHEN" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:480 msgid "aggregate functions are not allowed in check constraints" msgstr "агрегатные функции нельзя применять в ограничениях-проверках" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:482 msgid "grouping operations are not allowed in check constraints" msgstr "операции группировки нельзя применять в ограничениях-проверках" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:489 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "агрегатные функции нельзя применять в выражениях DEFAULT" -#: parser/parse_agg.c:487 +#: parser/parse_agg.c:491 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "операции группировки нельзя применять в выражениях DEFAULT" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:496 msgid "aggregate functions are not allowed in index expressions" msgstr "агрегатные функции нельзя применять в выражениях индексов" -#: parser/parse_agg.c:494 +#: parser/parse_agg.c:498 msgid "grouping operations are not allowed in index expressions" msgstr "операции группировки нельзя применять в выражениях индексов" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:503 msgid "aggregate functions are not allowed in index predicates" msgstr "агрегатные функции нельзя применять в предикатах индексов" -#: parser/parse_agg.c:501 +#: parser/parse_agg.c:505 msgid "grouping operations are not allowed in index predicates" msgstr "операции группировки нельзя применять в предикатах индексов" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:510 msgid "aggregate functions are not allowed in statistics expressions" msgstr "агрегатные функции нельзя применять в выражениях статистики" -#: parser/parse_agg.c:508 +#: parser/parse_agg.c:512 msgid "grouping operations are not allowed in statistics expressions" msgstr "операции группировки нельзя применять в выражениях статистики" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:517 msgid "aggregate functions are not allowed in transform expressions" msgstr "агрегатные функции нельзя применять в выражениях преобразований" -#: parser/parse_agg.c:515 +#: parser/parse_agg.c:519 msgid "grouping operations are not allowed in transform expressions" msgstr "операции группировки нельзя применять в выражениях преобразований" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:524 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "агрегатные функции нельзя применять в параметрах EXECUTE" -#: parser/parse_agg.c:522 +#: parser/parse_agg.c:526 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "операции группировки нельзя применять в параметрах EXECUTE" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:531 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "агрегатные функции нельзя применять в условиях WHEN для триггеров" -#: parser/parse_agg.c:529 +#: parser/parse_agg.c:533 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "операции группировки нельзя применять в условиях WHEN для триггеров" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:538 msgid "aggregate functions are not allowed in partition bound" msgstr "агрегатные функции нельзя применять в выражении границы секции" -#: parser/parse_agg.c:536 +#: parser/parse_agg.c:540 msgid "grouping operations are not allowed in partition bound" msgstr "операции группировки нельзя применять в выражении границы секции" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:545 msgid "aggregate functions are not allowed in partition key expressions" msgstr "агрегатные функции нельзя применять в выражениях ключа секционирования" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:547 msgid "grouping operations are not allowed in partition key expressions" msgstr "" "операции группировки нельзя применять в выражениях ключа секционирования" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:553 msgid "aggregate functions are not allowed in column generation expressions" msgstr "агрегатные функции нельзя применять в выражениях генерируемых столбцов" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:555 msgid "grouping operations are not allowed in column generation expressions" msgstr "" "операции группировки нельзя применять в выражениях генерируемых столбцов" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:561 msgid "aggregate functions are not allowed in CALL arguments" msgstr "агрегатные функции нельзя применять в аргументах CALL" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:563 msgid "grouping operations are not allowed in CALL arguments" msgstr "операции группировки нельзя применять в аргументах CALL" -#: parser/parse_agg.c:565 +#: parser/parse_agg.c:569 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "агрегатные функции нельзя применять в условиях COPY FROM WHERE" -#: parser/parse_agg.c:567 +#: parser/parse_agg.c:571 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "операции группировки нельзя применять в условиях COPY FROM WHERE" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:594 parser/parse_clause.c:1836 +#: parser/parse_agg.c:598 parser/parse_clause.c:1836 #, 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:597 +#: parser/parse_agg.c:601 #, c-format msgid "grouping operations are not allowed in %s" msgstr "операции группировки нельзя применять в конструкции %s" -#: parser/parse_agg.c:698 +#: parser/parse_agg.c:697 parser/parse_agg.c:734 +#, c-format +msgid "outer-level aggregate cannot use a nested CTE" +msgstr "агрегатная функция внешнего уровня не может использовать вложенное CTE" + +#: parser/parse_agg.c:698 parser/parse_agg.c:735 +#, c-format +msgid "CTE \"%s\" is below the aggregate's semantic level." +msgstr "CTE \"%s\" находится ниже семантического уровня агрегатной функции." + +#: parser/parse_agg.c:720 #, c-format msgid "" "outer-level aggregate cannot contain a lower-level variable in its direct " @@ -18027,14 +18060,14 @@ msgstr "" "агрегатная функция внешнего уровня не может содержать в своих аргументах " "переменные нижнего уровня" -#: parser/parse_agg.c:776 +#: parser/parse_agg.c:805 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "" "вызовы агрегатных функций не могут включать вызовы функций, возвращающих " "множества" -#: parser/parse_agg.c:777 parser/parse_expr.c:1674 parser/parse_expr.c:2164 +#: parser/parse_agg.c:806 parser/parse_expr.c:1674 parser/parse_expr.c:2164 #: parser/parse_func.c:883 #, c-format msgid "" @@ -18044,107 +18077,107 @@ msgstr "" "Исправить ситуацию можно, переместив функцию, возвращающую множество, в " "элемент LATERAL FROM." -#: parser/parse_agg.c:782 +#: parser/parse_agg.c:811 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "вызовы агрегатных функций не могут включать вызовы оконных функции" -#: parser/parse_agg.c:887 +#: parser/parse_agg.c:914 msgid "window functions are not allowed in JOIN conditions" msgstr "оконные функции нельзя применять в условиях JOIN" -#: parser/parse_agg.c:894 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in functions in FROM" msgstr "оконные функции нельзя применять в функциях во FROM" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in policy expressions" msgstr "оконные функции нельзя применять в выражениях политик" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in window definitions" msgstr "оконные функции нельзя применять в определении окна" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "оконные функции нельзя применять в условиях MERGE WHEN" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:975 msgid "window functions are not allowed in check constraints" msgstr "оконные функции нельзя применять в ограничениях-проверках" -#: parser/parse_agg.c:952 +#: parser/parse_agg.c:979 msgid "window functions are not allowed in DEFAULT expressions" msgstr "оконные функции нельзя применять в выражениях DEFAULT" -#: parser/parse_agg.c:955 +#: parser/parse_agg.c:982 msgid "window functions are not allowed in index expressions" msgstr "оконные функции нельзя применять в выражениях индексов" -#: parser/parse_agg.c:958 +#: parser/parse_agg.c:985 msgid "window functions are not allowed in statistics expressions" msgstr "оконные функции нельзя применять в выражениях статистики" -#: parser/parse_agg.c:961 +#: parser/parse_agg.c:988 msgid "window functions are not allowed in index predicates" msgstr "оконные функции нельзя применять в предикатах индексов" -#: parser/parse_agg.c:964 +#: parser/parse_agg.c:991 msgid "window functions are not allowed in transform expressions" msgstr "оконные функции нельзя применять в выражениях преобразований" -#: parser/parse_agg.c:967 +#: parser/parse_agg.c:994 msgid "window functions are not allowed in EXECUTE parameters" msgstr "оконные функции нельзя применять в параметрах EXECUTE" -#: parser/parse_agg.c:970 +#: parser/parse_agg.c:997 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "оконные функции нельзя применять в условиях WHEN для триггеров" -#: parser/parse_agg.c:973 +#: parser/parse_agg.c:1000 msgid "window functions are not allowed in partition bound" msgstr "оконные функции нельзя применять в выражении границы секции" -#: parser/parse_agg.c:976 +#: parser/parse_agg.c:1003 msgid "window functions are not allowed in partition key expressions" msgstr "оконные функции нельзя применять в выражениях ключа секционирования" -#: parser/parse_agg.c:979 +#: parser/parse_agg.c:1006 msgid "window functions are not allowed in CALL arguments" msgstr "оконные функции нельзя применять в аргументах CALL" -#: parser/parse_agg.c:982 +#: parser/parse_agg.c:1009 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "оконные функции нельзя применять в условиях COPY FROM WHERE" -#: parser/parse_agg.c:985 +#: parser/parse_agg.c:1012 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:1008 parser/parse_clause.c:1845 +#: parser/parse_agg.c:1035 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "оконные функции нельзя применять в конструкции %s" -#: parser/parse_agg.c:1042 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1069 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "окно \"%s\" не существует" -#: parser/parse_agg.c:1126 +#: parser/parse_agg.c:1153 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "слишком много наборов группирования (при максимуме 4096)" -#: parser/parse_agg.c:1266 +#: parser/parse_agg.c:1293 #, c-format msgid "" "aggregate functions are not allowed in a recursive query's recursive term" msgstr "" "в рекурсивной части рекурсивного запроса агрегатные функции недопустимы" -#: parser/parse_agg.c:1459 +#: parser/parse_agg.c:1486 #, c-format msgid "" "column \"%s.%s\" must appear in the GROUP BY clause or be used in an " @@ -18153,7 +18186,7 @@ msgstr "" "столбец \"%s.%s\" должен фигурировать в предложении GROUP BY или " "использоваться в агрегатной функции" -#: parser/parse_agg.c:1462 +#: parser/parse_agg.c:1489 #, c-format msgid "" "Direct arguments of an ordered-set aggregate must use only grouped columns." @@ -18161,13 +18194,13 @@ msgstr "" "Прямые аргументы сортирующей агрегатной функции могут включать только " "группируемые столбцы." -#: parser/parse_agg.c:1467 +#: parser/parse_agg.c:1494 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "подзапрос использует негруппированный столбец \"%s.%s\" из внешнего запроса" -#: parser/parse_agg.c:1631 +#: parser/parse_agg.c:1658 #, c-format msgid "" "arguments to GROUPING must be grouping expressions of the associated query " @@ -20293,22 +20326,22 @@ msgid "TO must specify exactly one value per partitioning column" msgstr "" "в TO должно указываться ровно одно значение для секционирующего столбца" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4282 #, c-format msgid "cannot specify NULL in range bound" msgstr "указать NULL в диапазонном ограничении нельзя" -#: parser/parse_utilcmd.c:4329 +#: parser/parse_utilcmd.c:4330 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "за границей MAXVALUE могут следовать только границы MAXVALUE" -#: parser/parse_utilcmd.c:4336 +#: parser/parse_utilcmd.c:4337 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "за границей MINVALUE могут следовать только границы MINVALUE" -#: parser/parse_utilcmd.c:4379 +#: parser/parse_utilcmd.c:4380 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "указанное значение нельзя привести к типу %s столбца \"%s\"" @@ -21651,22 +21684,23 @@ msgstr "" "недетерминированные правила сортировки не поддерживаются для регулярных " "выражений" -#: replication/libpqwalreceiver/libpqwalreceiver.c:233 +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 #, c-format msgid "could not clear search path: %s" msgstr "не удалось очистить путь поиска: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:273 +#: replication/libpqwalreceiver/libpqwalreceiver.c:286 +#: replication/libpqwalreceiver/libpqwalreceiver.c:444 #, c-format msgid "invalid connection string syntax: %s" msgstr "ошибочный синтаксис строки подключения: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:299 +#: replication/libpqwalreceiver/libpqwalreceiver.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "не удалось разобрать строку подключения: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:372 +#: replication/libpqwalreceiver/libpqwalreceiver.c:385 #, c-format msgid "" "could not receive database system identifier and timeline ID from the " @@ -21675,13 +21709,13 @@ msgstr "" "не удалось получить идентификатор СУБД и код линии времени с главного " "сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:388 -#: replication/libpqwalreceiver/libpqwalreceiver.c:626 +#: replication/libpqwalreceiver/libpqwalreceiver.c:402 +#: replication/libpqwalreceiver/libpqwalreceiver.c:685 #, c-format msgid "invalid response from primary server" msgstr "неверный ответ главного сервера" -#: replication/libpqwalreceiver/libpqwalreceiver.c:389 +#: replication/libpqwalreceiver/libpqwalreceiver.c:403 #, c-format msgid "" "Could not identify system: got %d rows and %d fields, expected %d rows and " @@ -21690,86 +21724,86 @@ msgstr "" "Не удалось идентифицировать систему, получено строк: %d, полей: %d " "(ожидалось: %d и %d (или более))." -#: replication/libpqwalreceiver/libpqwalreceiver.c:469 -#: replication/libpqwalreceiver/libpqwalreceiver.c:476 -#: replication/libpqwalreceiver/libpqwalreceiver.c:506 +#: replication/libpqwalreceiver/libpqwalreceiver.c:528 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 +#: replication/libpqwalreceiver/libpqwalreceiver.c:565 #, c-format msgid "could not start WAL streaming: %s" msgstr "не удалось начать трансляцию WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:530 +#: replication/libpqwalreceiver/libpqwalreceiver.c:589 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не удалось отправить главному серверу сообщение о конце передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:553 +#: replication/libpqwalreceiver/libpqwalreceiver.c:612 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неожиданный набор данных после конца передачи" -#: replication/libpqwalreceiver/libpqwalreceiver.c:568 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ошибка при остановке потоковой операции COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:578 +#: replication/libpqwalreceiver/libpqwalreceiver.c:637 #, c-format msgid "error reading result of streaming command: %s" msgstr "ошибка при чтении результата команды передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 -#: replication/libpqwalreceiver/libpqwalreceiver.c:822 +#: replication/libpqwalreceiver/libpqwalreceiver.c:646 +#: replication/libpqwalreceiver/libpqwalreceiver.c:881 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неожиданный результат после CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:614 +#: replication/libpqwalreceiver/libpqwalreceiver.c:673 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не удалось получить файл истории линии времени с главного сервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:627 +#: replication/libpqwalreceiver/libpqwalreceiver.c:686 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Ожидался 1 кортеж с 2 полями, однако получено кортежей: %d, полей: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:785 -#: replication/libpqwalreceiver/libpqwalreceiver.c:838 -#: replication/libpqwalreceiver/libpqwalreceiver.c:845 +#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:897 +#: replication/libpqwalreceiver/libpqwalreceiver.c:904 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не удалось получить данные из потока WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:865 +#: replication/libpqwalreceiver/libpqwalreceiver.c:924 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не удалось отправить данные в поток WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:957 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1016 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не удалось создать слот репликации \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1062 #, c-format msgid "invalid query response" msgstr "неверный ответ на запрос" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1004 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1063 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Ожидалось полей: %d, получено: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1074 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1133 #, c-format msgid "the query interface requires a database connection" msgstr "для интерфейса запросов требуется подключение к БД" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1105 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1164 msgid "empty query" msgstr "пустой запрос" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1111 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1170 msgid "unexpected pipeline mode" msgstr "неожиданный режим канала" @@ -21830,13 +21864,13 @@ msgstr "для логического декодирования требует msgid "logical decoding cannot be used while in recovery" msgstr "логическое декодирование нельзя использовать в процессе восстановления" -#: replication/logical/logical.c:351 replication/logical/logical.c:505 +#: replication/logical/logical.c:351 replication/logical/logical.c:507 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "" "физический слот репликации нельзя использовать для логического декодирования" -#: replication/logical/logical.c:356 replication/logical/logical.c:510 +#: replication/logical/logical.c:356 replication/logical/logical.c:512 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "слот репликации \"%s\" создан не в этой базе данных" @@ -21849,42 +21883,42 @@ msgid "" msgstr "" "нельзя создать слот логической репликации в транзакции, осуществляющей запись" -#: replication/logical/logical.c:573 +#: replication/logical/logical.c:575 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "начинается логическое декодирование для слота \"%s\"" -#: replication/logical/logical.c:575 +#: replication/logical/logical.c:577 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Передача транзакций, фиксируемых после %X/%X, чтение WAL с %X/%X." -#: replication/logical/logical.c:723 +#: replication/logical/logical.c:725 #, 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:729 +#: replication/logical/logical.c:731 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "слот \"%s\", модуль вывода \"%s\", в обработчике %s" -#: replication/logical/logical.c:900 replication/logical/logical.c:945 -#: replication/logical/logical.c:990 replication/logical/logical.c:1036 +#: replication/logical/logical.c:902 replication/logical/logical.c:947 +#: replication/logical/logical.c:992 replication/logical/logical.c:1038 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "для логической репликации во время подготовки требуется обработчик %s" -#: replication/logical/logical.c:1268 replication/logical/logical.c:1317 -#: replication/logical/logical.c:1358 replication/logical/logical.c:1444 -#: replication/logical/logical.c:1493 +#: replication/logical/logical.c:1270 replication/logical/logical.c:1319 +#: replication/logical/logical.c:1360 replication/logical/logical.c:1446 +#: replication/logical/logical.c:1495 #, c-format msgid "logical streaming requires a %s callback" msgstr "для логической потоковой репликации требуется обработчик %s" -#: replication/logical/logical.c:1403 +#: replication/logical/logical.c:1405 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "" @@ -22011,7 +22045,7 @@ msgstr "" "репликации с ID %d" #: replication/logical/origin.c:941 replication/logical/origin.c:1131 -#: replication/slot.c:1983 +#: replication/slot.c:2014 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Увеличьте параметр max_replication_slots и повторите попытку." @@ -22240,7 +22274,7 @@ msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "" "не удалось начать копирование начального содержимого таблицы \"%s.%s\": %s" -#: replication/logical/tablesync.c:1369 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1383 replication/logical/worker.c:1635 #, c-format msgid "" "user \"%s\" cannot replicate into relation with row-level security enabled: " @@ -22249,19 +22283,14 @@ msgstr "" "пользователь \"%s\" не может реплицировать данные в отношение с включённой " "защитой на уровне строк: \"%s\"" -#: replication/logical/tablesync.c:1384 +#: replication/logical/tablesync.c:1398 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "" "при копировании таблицы не удалось начать транзакцию на сервере публикации: " "%s" -#: replication/logical/tablesync.c:1426 -#, c-format -msgid "replication origin \"%s\" already exists" -msgstr "источник репликации \"%s\" уже существует" - -#: replication/logical/tablesync.c:1439 +#: replication/logical/tablesync.c:1437 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "" @@ -22482,29 +22511,29 @@ msgstr "неверное значение proto_version" msgid "proto_version \"%s\" out of range" msgstr "значение proto_verson \"%s\" вне диапазона" -#: replication/pgoutput/pgoutput.c:349 +#: replication/pgoutput/pgoutput.c:353 #, c-format msgid "invalid publication_names syntax" msgstr "неверный синтаксис publication_names" -#: replication/pgoutput/pgoutput.c:464 +#: replication/pgoutput/pgoutput.c:468 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or lower" msgstr "" "клиент передал proto_version=%d, но мы поддерживаем только протокол %d и ниже" -#: replication/pgoutput/pgoutput.c:470 +#: replication/pgoutput/pgoutput.c:474 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or higher" msgstr "" "клиент передал proto_version=%d, но мы поддерживаем только протокол %d и выше" -#: replication/pgoutput/pgoutput.c:476 +#: replication/pgoutput/pgoutput.c:480 #, c-format msgid "publication_names parameter missing" msgstr "отсутствует параметр publication_names" -#: replication/pgoutput/pgoutput.c:489 +#: replication/pgoutput/pgoutput.c:493 #, c-format msgid "" "requested proto_version=%d does not support streaming, need %d or higher" @@ -22512,12 +22541,12 @@ msgstr "" "запрошенная версия proto_version=%d не поддерживает потоковую передачу, " "требуется версия %d или выше" -#: replication/pgoutput/pgoutput.c:494 +#: replication/pgoutput/pgoutput.c:498 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "запрошена потоковая передача, но она не поддерживается модулем вывода" -#: replication/pgoutput/pgoutput.c:511 +#: replication/pgoutput/pgoutput.c:515 #, c-format msgid "" "requested proto_version=%d does not support two-phase commit, need %d or " @@ -22526,7 +22555,7 @@ msgstr "" "запрошенная версия proto_version=%d не поддерживает двухфазную фиксацию, " "требуется версия %d или выше" -#: replication/pgoutput/pgoutput.c:516 +#: replication/pgoutput/pgoutput.c:520 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "запрошена двухфазная фиксация, но она не поддерживается модулем вывода" @@ -22575,40 +22604,40 @@ msgstr "Освободите ненужный или увеличьте пара msgid "replication slot \"%s\" does not exist" msgstr "слот репликации \"%s\" не существует" -#: replication/slot.c:547 replication/slot.c:1122 +#: replication/slot.c:547 replication/slot.c:1151 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "слот репликации \"%s\" занят процессом с PID %d" -#: replication/slot.c:783 replication/slot.c:1528 replication/slot.c:1918 +#: replication/slot.c:783 replication/slot.c:1559 replication/slot.c:1949 #, c-format msgid "could not remove directory \"%s\"" msgstr "ошибка при удалении каталога \"%s\"" -#: replication/slot.c:1157 +#: replication/slot.c:1186 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "" "слоты репликации можно использовать, только если max_replication_slots > 0" -#: replication/slot.c:1162 +#: replication/slot.c:1191 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "слоты репликации можно использовать, только если wal_level >= replica" -#: replication/slot.c:1174 +#: replication/slot.c:1203 #, c-format msgid "must be superuser or replication role to use replication slots" msgstr "" "для использования слотов репликации требуется роль репликации или права " "суперпользователя" -#: replication/slot.c:1359 +#: replication/slot.c:1390 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "завершение процесса %d для освобождения слота репликации \"%s\"" -#: replication/slot.c:1397 +#: replication/slot.c:1428 #, c-format msgid "" "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds " @@ -22617,49 +22646,49 @@ msgstr "" "слот \"%s\" аннулируется, так как его позиция restart_lsn %X/%X превышает " "max_slot_wal_keep_size" -#: replication/slot.c:1856 +#: replication/slot.c:1887 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "" "файл слота репликации \"%s\" имеет неправильную сигнатуру (%u вместо %u)" -#: replication/slot.c:1863 +#: replication/slot.c:1894 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл состояния snapbuild \"%s\" имеет неподдерживаемую версию %u" -#: replication/slot.c:1870 +#: replication/slot.c:1901 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "у файла слота репликации \"%s\" неверная длина: %u" -#: replication/slot.c:1906 +#: replication/slot.c:1937 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "" "в файле слота репликации \"%s\" неверная контрольная сумма (%u вместо %u)" -#: replication/slot.c:1940 +#: replication/slot.c:1971 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "существует слот логической репликации \"%s\", но wal_level < logical" -#: replication/slot.c:1942 +#: replication/slot.c:1973 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Смените wal_level на logical или более высокий уровень." -#: replication/slot.c:1946 +#: replication/slot.c:1977 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "существует слот физической репликации \"%s\", но wal_level < replica" -#: replication/slot.c:1948 +#: replication/slot.c:1979 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Смените wal_level на replica или более высокий уровень." -#: replication/slot.c:1982 +#: replication/slot.c:2013 #, c-format msgid "too many replication slots active before shutdown" msgstr "перед завершением активно слишком много слотов репликации" @@ -22859,7 +22888,7 @@ msgstr "не удалось записать в сегмент журнала %s msgid "cannot use %s with a logical replication slot" msgstr "использовать %s со слотом логической репликации нельзя" -#: replication/walsender.c:652 storage/smgr/md.c:1379 +#: replication/walsender.c:652 storage/smgr/md.c:1382 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "не удалось перейти к концу файла \"%s\": %m" @@ -23259,7 +23288,7 @@ msgstr "" "имя запроса WITH \"%s\" оказалось и в действии правила, и в переписываемом " "запросе" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:613 #, c-format msgid "" "INSERT...SELECT rule actions are not supported for queries having data-" @@ -23268,118 +23297,118 @@ msgstr "" "правила INSERT...SELECT не поддерживаются для запросов с операторами, " "изменяющими данные, в WITH" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:666 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "RETURNING можно определить только для одного правила" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:898 rewrite/rewriteHandler.c:937 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "в столбец \"%s\" можно вставить только значение по умолчанию" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:966 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "" "Столбец \"%s\" является столбцом идентификации со свойством GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:902 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Для переопределения укажите OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:964 rewrite/rewriteHandler.c:972 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "столбцу \"%s\" можно присвоить только значение DEFAULT" -#: rewrite/rewriteHandler.c:1104 rewrite/rewriteHandler.c:1122 +#: rewrite/rewriteHandler.c:1107 rewrite/rewriteHandler.c:1125 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "многочисленные присвоения одному столбцу \"%s\"" -#: rewrite/rewriteHandler.c:1727 rewrite/rewriteHandler.c:3182 +#: rewrite/rewriteHandler.c:1730 rewrite/rewriteHandler.c:3185 #, c-format msgid "access to non-system view \"%s\" is restricted" msgstr "доступ к несистемному представлению \"%s\" ограничен" -#: rewrite/rewriteHandler.c:2159 rewrite/rewriteHandler.c:4111 +#: rewrite/rewriteHandler.c:2162 rewrite/rewriteHandler.c:4131 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "обнаружена бесконечная рекурсия в правилах для отношения \"%s\"" -#: rewrite/rewriteHandler.c:2264 +#: rewrite/rewriteHandler.c:2267 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "обнаружена бесконечная рекурсия в политике для отношения \"%s\"" -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2597 msgid "Junk view columns are not updatable." msgstr "Утилизируемые столбцы представлений не обновляются." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2602 msgid "" "View columns that are not columns of their base relation are not updatable." msgstr "" "Столбцы представлений, не являющиеся столбцами базовых отношений, не " "обновляются." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2605 msgid "View columns that refer to system columns are not updatable." msgstr "" "Столбцы представлений, ссылающиеся на системные столбцы, не обновляются." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2608 msgid "View columns that return whole-row references are not updatable." msgstr "" "Столбцы представлений, возвращающие ссылки на всю строку, не обновляются." -#: rewrite/rewriteHandler.c:2666 +#: rewrite/rewriteHandler.c:2669 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Представления с DISTINCT не обновляются автоматически." -#: rewrite/rewriteHandler.c:2669 +#: rewrite/rewriteHandler.c:2672 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Представления с GROUP BY не обновляются автоматически." -#: rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2675 msgid "Views containing HAVING are not automatically updatable." msgstr "Представления с HAVING не обновляются автоматически." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2678 msgid "" "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "" "Представления с UNION, INTERSECT или EXCEPT не обновляются автоматически." -#: rewrite/rewriteHandler.c:2678 +#: rewrite/rewriteHandler.c:2681 msgid "Views containing WITH are not automatically updatable." msgstr "Представления с WITH не обновляются автоматически." -#: rewrite/rewriteHandler.c:2681 +#: rewrite/rewriteHandler.c:2684 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Представления с LIMIT или OFFSET не обновляются автоматически." -#: rewrite/rewriteHandler.c:2693 +#: rewrite/rewriteHandler.c:2696 msgid "Views that return aggregate functions are not automatically updatable." msgstr "" "Представления, возвращающие агрегатные функции, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2696 +#: rewrite/rewriteHandler.c:2699 msgid "Views that return window functions are not automatically updatable." msgstr "" "Представления, возвращающие оконные функции, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2699 +#: rewrite/rewriteHandler.c:2702 msgid "" "Views that return set-returning functions are not automatically updatable." msgstr "" "Представления, возвращающие функции с результатом-множеством, не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:2706 rewrite/rewriteHandler.c:2710 -#: rewrite/rewriteHandler.c:2718 +#: rewrite/rewriteHandler.c:2709 rewrite/rewriteHandler.c:2713 +#: rewrite/rewriteHandler.c:2721 msgid "" "Views that do not select from a single table or view are not automatically " "updatable." @@ -23387,27 +23416,27 @@ msgstr "" "Представления, выбирающие данные не из одной таблицы или представления, не " "обновляются автоматически." -#: rewrite/rewriteHandler.c:2721 +#: rewrite/rewriteHandler.c:2724 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Представления, содержащие TABLESAMPLE, не обновляются автоматически." -#: rewrite/rewriteHandler.c:2745 +#: rewrite/rewriteHandler.c:2748 msgid "Views that have no updatable columns are not automatically updatable." msgstr "" "Представления, не содержащие обновляемых столбцов, не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:3242 +#: rewrite/rewriteHandler.c:3245 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "вставить данные в столбец \"%s\" представления \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3250 +#: rewrite/rewriteHandler.c:3253 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "изменить данные в столбце \"%s\" представления \"%s\" нельзя" -#: rewrite/rewriteHandler.c:3738 +#: rewrite/rewriteHandler.c:3757 #, c-format msgid "" "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in " @@ -23416,7 +23445,7 @@ msgstr "" "правила DO INSTEAD NOTIFY не поддерживаются в операторах, изменяющих данные, " "в WITH" -#: rewrite/rewriteHandler.c:3749 +#: rewrite/rewriteHandler.c:3768 #, c-format msgid "" "DO INSTEAD NOTHING rules are not supported for data-modifying statements in " @@ -23425,7 +23454,7 @@ msgstr "" "правила DO INSTEAD NOTHING не поддерживаются в операторах, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3763 +#: rewrite/rewriteHandler.c:3782 #, c-format msgid "" "conditional DO INSTEAD rules are not supported for data-modifying statements " @@ -23434,13 +23463,13 @@ msgstr "" "условные правила DO INSTEAD не поддерживаются для операторов, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "" "правила DO ALSO не поддерживаются для операторов, изменяющих данные, в WITH" -#: rewrite/rewriteHandler.c:3772 +#: rewrite/rewriteHandler.c:3791 #, c-format msgid "" "multi-statement DO INSTEAD rules are not supported for data-modifying " @@ -23449,8 +23478,8 @@ msgstr "" "составные правила DO INSTEAD не поддерживаются для операторов, изменяющих " "данные, в WITH" -#: rewrite/rewriteHandler.c:4039 rewrite/rewriteHandler.c:4047 -#: rewrite/rewriteHandler.c:4055 +#: rewrite/rewriteHandler.c:4059 rewrite/rewriteHandler.c:4067 +#: rewrite/rewriteHandler.c:4075 #, c-format msgid "" "Views with conditional DO INSTEAD rules are not automatically updatable." @@ -23458,43 +23487,43 @@ msgstr "" "Представления в сочетании с правилами DO INSTEAD с условиями не обновляются " "автоматически." -#: rewrite/rewriteHandler.c:4160 +#: rewrite/rewriteHandler.c:4181 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "выполнить INSERT RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:4162 +#: rewrite/rewriteHandler.c:4183 #, c-format msgid "" "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "" "Необходимо безусловное правило ON INSERT DO INSTEAD с предложением RETURNING." -#: rewrite/rewriteHandler.c:4167 +#: rewrite/rewriteHandler.c:4188 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "выполнить UPDATE RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:4169 +#: rewrite/rewriteHandler.c:4190 #, c-format msgid "" "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "" "Необходимо безусловное правило ON UPDATE DO INSTEAD с предложением RETURNING." -#: rewrite/rewriteHandler.c:4174 +#: rewrite/rewriteHandler.c:4195 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "выполнить DELETE RETURNING для отношения \"%s\" нельзя" -#: rewrite/rewriteHandler.c:4176 +#: rewrite/rewriteHandler.c:4197 #, c-format msgid "" "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "" "Необходимо безусловное правило ON DELETE DO INSTEAD с предложением RETURNING." -#: rewrite/rewriteHandler.c:4194 +#: rewrite/rewriteHandler.c:4215 #, c-format msgid "" "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or " @@ -23503,7 +23532,7 @@ msgstr "" "INSERT c предложением ON CONFLICT нельзя использовать с таблицей, для " "которой заданы правила INSERT или UPDATE" -#: rewrite/rewriteHandler.c:4251 +#: rewrite/rewriteHandler.c:4272 #, c-format msgid "" "WITH cannot be used in a query that is rewritten by rules into multiple " @@ -23580,22 +23609,22 @@ msgid "" msgstr "" "функция, возвращающая запись, вызвана в контексте, не допускающем этот тип" -#: storage/buffer/bufmgr.c:603 storage/buffer/bufmgr.c:773 +#: storage/buffer/bufmgr.c:610 storage/buffer/bufmgr.c:780 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "обращаться к временным таблицам других сеансов нельзя" -#: storage/buffer/bufmgr.c:851 +#: storage/buffer/bufmgr.c:858 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "не удалось увеличить отношение \"%s\" до блока %u" -#: storage/buffer/bufmgr.c:938 +#: storage/buffer/bufmgr.c:945 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "неожиданные данные после EOF в блоке %u отношения %s" -#: storage/buffer/bufmgr.c:940 +#: storage/buffer/bufmgr.c:947 #, c-format msgid "" "This has been seen to occur with buggy kernels; consider updating your " @@ -23604,27 +23633,27 @@ msgstr "" "Эта ситуация может возникать из-за ошибок в ядре; возможно, вам следует " "обновить ОС." -#: storage/buffer/bufmgr.c:1039 +#: storage/buffer/bufmgr.c:1046 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "некорректная страница в блоке %u отношения %s; страница обнуляется" -#: storage/buffer/bufmgr.c:4671 +#: storage/buffer/bufmgr.c:4737 #, c-format msgid "could not write block %u of %s" msgstr "не удалось запись блок %u файла %s" -#: storage/buffer/bufmgr.c:4673 +#: storage/buffer/bufmgr.c:4739 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Множественные сбои - возможно, постоянная ошибка записи." -#: storage/buffer/bufmgr.c:4694 storage/buffer/bufmgr.c:4713 +#: storage/buffer/bufmgr.c:4760 storage/buffer/bufmgr.c:4779 #, c-format msgid "writing block %u of relation %s" msgstr "запись блока %u отношения %s" -#: storage/buffer/bufmgr.c:5017 +#: storage/buffer/bufmgr.c:5083 #, c-format msgid "snapshot too old" msgstr "снимок слишком стар" @@ -23658,7 +23687,7 @@ msgstr "" msgid "could not delete fileset \"%s\": %m" msgstr "ошибка удаления набора файлов \"%s\": %m" -#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:909 +#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:912 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "не удалось обрезать файл \"%s\": %m" @@ -24448,19 +24477,19 @@ msgstr "не удалось записать блок %u в файл \"%s\": %m" msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "не удалось записать блок %u в файл \"%s\" (записано байт: %d из %d)" -#: storage/smgr/md.c:880 +#: storage/smgr/md.c:883 #, 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:935 +#: storage/smgr/md.c:938 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "не удалось обрезать файл \"%s\" до нужного числа блоков (%u): %m" -#: storage/smgr/md.c:1344 +#: storage/smgr/md.c:1347 #, c-format msgid "" "could not open file \"%s\" (target block %u): previous segment is only %u " @@ -24469,7 +24498,7 @@ msgstr "" "не удалось открыть файл file \"%s\" (целевой блок %u): недостаточно блоков в " "предыдущем сегменте (всего %u)" -#: storage/smgr/md.c:1358 +#: storage/smgr/md.c:1361 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "не удалось открыть файл file \"%s\" (целевой блок %u): %m" @@ -25599,8 +25628,8 @@ msgstr "элемент массива null недопустим в данном msgid "cannot compare arrays of different element types" msgstr "нельзя сравнивать массивы с элементами разных типов" -#: utils/adt/arrayfuncs.c:4034 utils/adt/multirangetypes.c:2799 -#: utils/adt/multirangetypes.c:2871 utils/adt/rangetypes.c:1343 +#: utils/adt/arrayfuncs.c:4034 utils/adt/multirangetypes.c:2800 +#: utils/adt/multirangetypes.c:2872 utils/adt/rangetypes.c:1343 #: utils/adt/rangetypes.c:1407 utils/adt/rowtypes.c:1858 #, c-format msgid "could not identify a hash function for type %s" @@ -27249,12 +27278,12 @@ msgstr "Ожидалось начало диапазона." msgid "Expected comma or end of multirange." msgstr "Ожидалась запятая или конец мультидиапазона." -#: utils/adt/multirangetypes.c:976 +#: utils/adt/multirangetypes.c:977 #, c-format msgid "multiranges cannot be constructed from multidimensional arrays" msgstr "мультидиапазоны нельзя получить из массивов мультидиапазонов" -#: utils/adt/multirangetypes.c:1002 +#: utils/adt/multirangetypes.c:1003 #, c-format msgid "multirange values cannot contain null members" msgstr "мультидиапазоны не могут содержать элементы NULL" @@ -27478,35 +27507,35 @@ msgstr "запрошенный символ не подходит для код msgid "percentile value %g is not between 0 and 1" msgstr "значение перцентиля %g лежит не в диапазоне 0..1" -#: utils/adt/pg_locale.c:1231 +#: utils/adt/pg_locale.c:1232 #, c-format msgid "Apply system library package updates." msgstr "Обновите пакет с системной библиотекой." -#: utils/adt/pg_locale.c:1455 utils/adt/pg_locale.c:1703 -#: utils/adt/pg_locale.c:1982 utils/adt/pg_locale.c:2004 +#: utils/adt/pg_locale.c:1458 utils/adt/pg_locale.c:1706 +#: utils/adt/pg_locale.c:1985 utils/adt/pg_locale.c:2007 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "не удалось открыть сортировщик для локали \"%s\": %s" -#: utils/adt/pg_locale.c:1468 utils/adt/pg_locale.c:2013 +#: utils/adt/pg_locale.c:1471 utils/adt/pg_locale.c:2016 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не поддерживается в данной сборке" -#: utils/adt/pg_locale.c:1497 +#: utils/adt/pg_locale.c:1500 #, c-format msgid "could not create locale \"%s\": %m" msgstr "не удалось создать локаль \"%s\": %m" -#: utils/adt/pg_locale.c:1500 +#: utils/adt/pg_locale.c:1503 #, c-format msgid "" "The operating system could not find any locale data for the locale name " "\"%s\"." msgstr "Операционная система не может найти данные локали с именем \"%s\"." -#: utils/adt/pg_locale.c:1608 +#: utils/adt/pg_locale.c:1611 #, c-format msgid "" "collations with different collate and ctype values are not supported on this " @@ -27515,22 +27544,22 @@ msgstr "" "правила сортировки с разными значениями collate и ctype не поддерживаются на " "этой платформе" -#: utils/adt/pg_locale.c:1617 +#: utils/adt/pg_locale.c:1620 #, c-format msgid "collation provider LIBC is not supported on this platform" msgstr "провайдер правил сортировки LIBC не поддерживается на этой платформе" -#: utils/adt/pg_locale.c:1652 +#: utils/adt/pg_locale.c:1655 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "для правила сортировки \"%s\", лишённого версии, была записана версия" -#: utils/adt/pg_locale.c:1658 +#: utils/adt/pg_locale.c:1661 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "несовпадение версии для правила сортировки \"%s\"" -#: utils/adt/pg_locale.c:1660 +#: utils/adt/pg_locale.c:1663 #, c-format msgid "" "The collation in the database was created using version %s, but the " @@ -27539,7 +27568,7 @@ msgstr "" "Правило сортировки в базе данных было создано с версией %s, но операционная " "система предоставляет версию %s." -#: utils/adt/pg_locale.c:1663 +#: utils/adt/pg_locale.c:1666 #, c-format msgid "" "Rebuild all objects affected by this collation and run ALTER COLLATION %s " @@ -27549,40 +27578,40 @@ msgstr "" "ALTER COLLATION %s REFRESH VERSION либо соберите PostgreSQL с правильной " "версией библиотеки." -#: utils/adt/pg_locale.c:1734 +#: utils/adt/pg_locale.c:1737 #, c-format msgid "could not load locale \"%s\"" msgstr "не удалось загрузить локаль \"%s\"" -#: utils/adt/pg_locale.c:1759 +#: utils/adt/pg_locale.c:1762 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "" "не удалось получить версию правила сортировки для локали \"%s\" (код ошибки: " "%lu)" -#: utils/adt/pg_locale.c:1797 +#: utils/adt/pg_locale.c:1800 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "ICU не поддерживает кодировку \"%s\"" -#: utils/adt/pg_locale.c:1804 +#: utils/adt/pg_locale.c:1807 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "не удалось открыть преобразователь ICU для кодировки \"%s\": %s" -#: utils/adt/pg_locale.c:1835 utils/adt/pg_locale.c:1844 -#: utils/adt/pg_locale.c:1873 utils/adt/pg_locale.c:1883 +#: utils/adt/pg_locale.c:1838 utils/adt/pg_locale.c:1847 +#: utils/adt/pg_locale.c:1876 utils/adt/pg_locale.c:1886 #, c-format msgid "%s failed: %s" msgstr "ошибка %s: %s" -#: utils/adt/pg_locale.c:2182 +#: utils/adt/pg_locale.c:2185 #, c-format msgid "invalid multibyte character for locale" msgstr "неверный многобайтный символ для локали" -#: utils/adt/pg_locale.c:2183 +#: utils/adt/pg_locale.c:2186 #, c-format msgid "" "The server's LC_CTYPE locale is probably incompatible with the database " @@ -28531,7 +28560,7 @@ msgstr "XML-функции не поддерживаются" msgid "This functionality requires the server to be built with libxml support." msgstr "Для этой функциональности в сервере не хватает поддержки libxml." -#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "неверное имя кодировки: \"%s\"" @@ -28725,28 +28754,28 @@ msgstr "" msgid "cached plan must not change result type" msgstr "в кешированном плане не должен изменяться тип результата" -#: utils/cache/relcache.c:3755 +#: utils/cache/relcache.c:3771 #, c-format msgid "heap relfilenode value not set when in binary upgrade mode" msgstr "значение relfilenode для кучи не задано в режиме двоичного обновления" -#: utils/cache/relcache.c:3763 +#: utils/cache/relcache.c:3779 #, c-format msgid "unexpected request for new relfilenode in binary upgrade mode" msgstr "" "неожиданный запрос нового значения relfilenode в режиме двоичного обновления" -#: utils/cache/relcache.c:6476 +#: utils/cache/relcache.c:6492 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "создать файл инициализации для кеша отношений \"%s\" не удалось: %m" -#: utils/cache/relcache.c:6478 +#: utils/cache/relcache.c:6494 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Продолжаем всё равно, хотя что-то не так." -#: utils/cache/relcache.c:6800 +#: utils/cache/relcache.c:6816 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "не удалось стереть файл кеша \"%s\": %m" @@ -29426,48 +29455,48 @@ msgstr "неожиданный ID кодировки %d для наборов с msgid "unexpected encoding ID %d for WIN character sets" msgstr "неожиданный ID кодировки %d для наборов символов WIN" -#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 +#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 #, c-format msgid "conversion between %s and %s is not supported" msgstr "преобразование %s <-> %s не поддерживается" -#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 -#: utils/mb/mbutils.c:842 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 +#: utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Строка из %d байт слишком длинна для преобразования кодировки." -#: utils/mb/mbutils.c:568 +#: utils/mb/mbutils.c:569 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "неверное имя исходной кодировки: \"%s\"" -#: utils/mb/mbutils.c:573 +#: utils/mb/mbutils.c:574 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "неверное имя кодировки результата: \"%s\"" -#: utils/mb/mbutils.c:713 +#: utils/mb/mbutils.c:714 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "недопустимое байтовое значение для кодировки \"%s\": 0x%02x" -#: utils/mb/mbutils.c:877 +#: utils/mb/mbutils.c:878 #, c-format msgid "invalid Unicode code point" msgstr "неверный код Unicode" -#: utils/mb/mbutils.c:1146 +#: utils/mb/mbutils.c:1147 #, c-format msgid "bind_textdomain_codeset failed" msgstr "ошибка в bind_textdomain_codeset" -#: utils/mb/mbutils.c:1667 +#: utils/mb/mbutils.c:1668 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "неверная последовательность байт для кодировки \"%s\": %s" -#: utils/mb/mbutils.c:1708 +#: utils/mb/mbutils.c:1709 #, c-format msgid "" "character with byte sequence %s in encoding \"%s\" has no equivalent in " @@ -32451,15 +32480,15 @@ msgstr "Ошибка при создании контекста памяти \"% msgid "could not attach to dynamic shared area" msgstr "не удалось подключиться к динамической разделяемой области" -#: utils/mmgr/mcxt.c:889 utils/mmgr/mcxt.c:925 utils/mmgr/mcxt.c:963 -#: utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1120 -#: utils/mmgr/mcxt.c:1156 utils/mmgr/mcxt.c:1208 utils/mmgr/mcxt.c:1243 -#: utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:892 utils/mmgr/mcxt.c:928 utils/mmgr/mcxt.c:966 +#: utils/mmgr/mcxt.c:1004 utils/mmgr/mcxt.c:1112 utils/mmgr/mcxt.c:1143 +#: utils/mmgr/mcxt.c:1179 utils/mmgr/mcxt.c:1231 utils/mmgr/mcxt.c:1266 +#: utils/mmgr/mcxt.c:1301 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Ошибка при запросе блока размером %zu в контексте памяти \"%s\"." -#: utils/mmgr/mcxt.c:1052 +#: utils/mmgr/mcxt.c:1067 #, c-format msgid "logging memory contexts of PID %d" msgstr "вывод информации о памяти процесса с PID %d" @@ -32514,26 +32543,26 @@ msgid "could not read block %ld of temporary file: read only %zu of %zu bytes" msgstr "" "не удалось прочитать блок %ld временного файла (прочитано байт: %zu из %zu)" -#: utils/sort/sharedtuplestore.c:432 utils/sort/sharedtuplestore.c:441 -#: utils/sort/sharedtuplestore.c:464 utils/sort/sharedtuplestore.c:481 -#: utils/sort/sharedtuplestore.c:498 +#: utils/sort/sharedtuplestore.c:433 utils/sort/sharedtuplestore.c:442 +#: utils/sort/sharedtuplestore.c:465 utils/sort/sharedtuplestore.c:482 +#: utils/sort/sharedtuplestore.c:499 #, c-format msgid "could not read from shared tuplestore temporary file" msgstr "не удалось прочитать файл общего временного хранилища кортежей" -#: utils/sort/sharedtuplestore.c:487 +#: utils/sort/sharedtuplestore.c:488 #, c-format msgid "unexpected chunk in shared tuplestore temporary file" msgstr "неожиданный фрагмент в файле общего временного хранилища кортежей" -#: utils/sort/sharedtuplestore.c:572 +#: utils/sort/sharedtuplestore.c:573 #, c-format msgid "could not seek to block %u in shared tuplestore temporary file" msgstr "" "не удалось переместиться к блоку %u в файле общего временного хранилища " "кортежей" -#: utils/sort/sharedtuplestore.c:579 +#: utils/sort/sharedtuplestore.c:580 #, c-format msgid "" "could not read from shared tuplestore temporary file: read only %zu of %zu " @@ -33273,6 +33302,10 @@ msgstr "нестандартное использование спецсимво msgid "Use the escape string syntax for escapes, e.g., E'\\r\\n'." msgstr "Используйте для записи спецсимволов синтаксис спецстрок E'\\r\\n'." +#, c-format +#~ msgid "replication origin \"%s\" already exists" +#~ msgstr "источник репликации \"%s\" уже существует" + #, c-format #~ msgid "cannot create statistics on the specified relation" #~ msgstr "создать статистику для указанного отношения нельзя" diff --git a/src/backend/po/sv.po b/src/backend/po/sv.po index 1f2231b0413..775f7dcf55a 100644 --- a/src/backend/po/sv.po +++ b/src/backend/po/sv.po @@ -23,8 +23,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-09-18 03:33+0000\n" -"PO-Revision-Date: 2025-09-19 20:24+0200\n" +"POT-Creation-Date: 2026-01-30 21:37+0000\n" +"PO-Revision-Date: 2026-02-02 23:02+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -89,14 +89,14 @@ msgstr "kunde inte öppna filen \"%s\" för läsning: %m" #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 #: access/transam/twophase.c:1349 access/transam/xlog.c:3211 -#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1223 -#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 -#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1838 +#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1233 +#: access/transam/xlogrecovery.c:1325 access/transam/xlogrecovery.c:1362 +#: access/transam/xlogrecovery.c:1422 backup/basebackup.c:1838 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 #: replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 -#: replication/logical/snapbuild.c:1995 replication/slot.c:1807 -#: replication/slot.c:1848 replication/walsender.c:658 +#: replication/logical/snapbuild.c:1995 replication/slot.c:1874 +#: replication/slot.c:1915 replication/walsender.c:672 #: storage/file/buffile.c:463 storage/file/copydir.c:195 #: utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 #, c-format @@ -108,7 +108,7 @@ msgstr "kunde inte läsa fil \"%s\": %m" #: backup/basebackup.c:1842 replication/logical/origin.c:734 #: replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 #: replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 -#: replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 +#: replication/slot.c:1878 replication/slot.c:1919 replication/walsender.c:677 #: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -127,7 +127,7 @@ msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" #: replication/logical/origin.c:667 replication/logical/origin.c:806 #: replication/logical/reorderbuffer.c:5152 #: replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 -#: replication/slot.c:1698 replication/slot.c:1859 replication/walsender.c:673 +#: replication/slot.c:1763 replication/slot.c:1926 replication/walsender.c:687 #: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:742 #: storage/file/fd.c:3635 storage/file/fd.c:3741 utils/cache/relmapper.c:831 #: utils/cache/relmapper.c:968 @@ -159,15 +159,15 @@ msgstr "" #: access/transam/timeline.c:348 access/transam/twophase.c:1305 #: access/transam/xlog.c:2945 access/transam/xlog.c:3127 #: access/transam/xlog.c:3166 access/transam/xlog.c:3358 -#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4244 -#: access/transam/xlogrecovery.c:4347 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4265 +#: access/transam/xlogrecovery.c:4368 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 #: replication/logical/reorderbuffer.c:4298 #: replication/logical/reorderbuffer.c:5074 #: replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 -#: replication/slot.c:1779 replication/walsender.c:631 -#: replication/walsender.c:2726 storage/file/copydir.c:161 +#: replication/slot.c:1846 replication/walsender.c:645 +#: replication/walsender.c:2740 storage/file/copydir.c:161 #: storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 #: storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 #: utils/cache/relmapper.c:912 utils/error/elog.c:1953 @@ -179,9 +179,9 @@ msgstr "kunde inte öppna fil \"%s\": %m" #: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1753 access/transam/twophase.c:1762 -#: access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8770 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 -#: postmaster/postmaster.c:5635 postmaster/syslogger.c:1571 +#: postmaster/postmaster.c:5637 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 #: utils/cache/relmapper.c:946 #, c-format @@ -194,11 +194,11 @@ msgstr "kunde inte skriva fil \"%s\": %m" #: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 #: access/transam/timeline.c:506 access/transam/twophase.c:1774 #: access/transam/xlog.c:3051 access/transam/xlog.c:3245 -#: access/transam/xlog.c:3986 access/transam/xlog.c:8049 -#: access/transam/xlog.c:8092 backup/basebackup_server.c:207 +#: access/transam/xlog.c:3986 access/transam/xlog.c:8073 +#: access/transam/xlog.c:8116 backup/basebackup_server.c:207 #: commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 -#: replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:734 -#: storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 +#: replication/slot.c:1747 replication/slot.c:1856 storage/file/fd.c:734 +#: storage/file/fd.c:3733 storage/smgr/md.c:997 storage/smgr/md.c:1038 #: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 #, c-format msgid "could not fsync file \"%s\": %m" @@ -214,29 +214,29 @@ msgstr "kunde inte fsync:a fil \"%s\": %m" #: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1344 #: libpq/auth.c:1412 libpq/auth.c:1970 libpq/be-secure-gssapi.c:530 #: libpq/be-secure-gssapi.c:702 postmaster/bgworker.c:349 -#: postmaster/bgworker.c:931 postmaster/postmaster.c:2596 -#: postmaster/postmaster.c:4181 postmaster/postmaster.c:5560 -#: postmaster/postmaster.c:5931 -#: replication/libpqwalreceiver/libpqwalreceiver.c:300 -#: replication/logical/logical.c:206 replication/walsender.c:701 +#: postmaster/bgworker.c:931 postmaster/postmaster.c:2598 +#: postmaster/postmaster.c:4183 postmaster/postmaster.c:5562 +#: postmaster/postmaster.c:5933 +#: replication/libpqwalreceiver/libpqwalreceiver.c:313 +#: replication/logical/logical.c:206 replication/walsender.c:715 #: storage/buffer/localbuf.c:442 storage/file/fd.c:889 storage/file/fd.c:1431 #: storage/file/fd.c:1592 storage/file/fd.c:2406 storage/ipc/procarray.c:1463 #: storage/ipc/procarray.c:2292 storage/ipc/procarray.c:2299 #: storage/ipc/procarray.c:2804 storage/ipc/procarray.c:3435 #: tcop/postgres.c:3645 utils/activity/pgstat_shmem.c:503 #: utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 -#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:453 -#: utils/adt/pg_locale.c:617 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 +#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:454 +#: utils/adt/pg_locale.c:618 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 #: utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 -#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 -#: utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5204 +#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 +#: utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 utils/misc/guc.c:5204 #: utils/misc/guc.c:5220 utils/misc/guc.c:5233 utils/misc/guc.c:8804 #: utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:702 #: utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805 utils/mmgr/generation.c:266 -#: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 -#: utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 -#: utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:238 +#: utils/mmgr/mcxt.c:891 utils/mmgr/mcxt.c:927 utils/mmgr/mcxt.c:965 +#: utils/mmgr/mcxt.c:1003 utils/mmgr/mcxt.c:1111 utils/mmgr/mcxt.c:1142 +#: utils/mmgr/mcxt.c:1178 utils/mmgr/mcxt.c:1230 utils/mmgr/mcxt.c:1265 +#: utils/mmgr/mcxt.c:1300 utils/mmgr/slab.c:238 #, c-format msgid "out of memory" msgstr "slut på minne" @@ -282,7 +282,7 @@ msgstr "kunde inte hitta en \"%s\" att köra" msgid "could not change directory to \"%s\": %m" msgstr "kunde inte byta katalog till \"%s\": %m" -#: ../common/exec.c:299 access/transam/xlog.c:8395 backup/basebackup.c:1338 +#: ../common/exec.c:299 access/transam/xlog.c:8419 backup/basebackup.c:1338 #: utils/adt/misc.c:335 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -298,8 +298,8 @@ msgstr "%s() misslyckades: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:162 #: ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:868 -#: ../port/path.c:885 utils/misc/ps_status.c:208 utils/misc/ps_status.c:216 -#: utils/misc/ps_status.c:246 utils/misc/ps_status.c:254 +#: ../port/path.c:885 utils/misc/ps_status.c:210 utils/misc/ps_status.c:218 +#: utils/misc/ps_status.c:248 utils/misc/ps_status.c:256 #, c-format msgid "out of memory\n" msgstr "slut på minne\n" @@ -325,7 +325,7 @@ msgid "could not stat file \"%s\": %m" msgstr "kunde inte göra stat() på fil \"%s\": %m" #: ../common/file_utils.c:161 ../common/pgfnames.c:48 commands/tablespace.c:749 -#: commands/tablespace.c:759 postmaster/postmaster.c:1581 +#: commands/tablespace.c:759 postmaster/postmaster.c:1583 #: storage/file/fd.c:2809 storage/file/reinit.c:126 utils/adt/misc.c:235 #: utils/misc/tzparser.c:338 #, c-format @@ -339,7 +339,7 @@ msgstr "kunde inte läsa katalog \"%s\": %m" #: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 #: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 -#: replication/slot.c:721 replication/slot.c:1570 replication/slot.c:1712 +#: replication/slot.c:750 replication/slot.c:1630 replication/slot.c:1779 #: storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" @@ -877,7 +877,7 @@ msgstr "okänd parameternamnrymd \"%s\"" msgid "invalid option name \"%s\": must not contain \"=\"" msgstr "ogiltigt flaggnamn \"%s\": får inte innehålla \"=\"" -#: access/common/reloptions.c:1312 utils/misc/guc.c:13061 +#: access/common/reloptions.c:1312 utils/misc/guc.c:13072 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "tabeller deklarerade med WITH OIDS stöds inte" @@ -1071,7 +1071,7 @@ msgstr "kunde inte bestämma vilken jämförelse (collation) som skall användas #: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:672 #: catalog/heap.c:678 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:1962 commands/tablecmds.c:17798 commands/view.c:86 +#: commands/indexcmds.c:1962 commands/tablecmds.c:17808 commands/view.c:86 #: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1690 #: utils/adt/formatting.c:1812 utils/adt/formatting.c:1935 utils/adt/like.c:190 #: utils/adt/like_support.c:1025 utils/adt/varchar.c:733 @@ -1126,38 +1126,38 @@ msgstr "operatorfamilj \"%s\" för accessmetod %s saknar supportfunktion för op msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "operatorfamilj \"%s\" för accessmetod %s saknar mellan-typ-operator(er)" -#: access/heap/heapam.c:2272 +#: access/heap/heapam.c:2275 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "kan inte lägga till tupler i en parellell arbetare" -#: access/heap/heapam.c:2747 +#: access/heap/heapam.c:2750 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "kan inte radera tupler under en parallell operation" -#: access/heap/heapam.c:2793 +#: access/heap/heapam.c:2796 #, c-format msgid "attempted to delete invisible tuple" msgstr "försökte ta bort en osynlig tuple" -#: access/heap/heapam.c:3240 access/heap/heapam.c:6489 access/index/genam.c:819 +#: access/heap/heapam.c:3243 access/heap/heapam.c:6577 access/index/genam.c:819 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "kan inte uppdatera tupler under en parallell operation" -#: access/heap/heapam.c:3410 +#: access/heap/heapam.c:3413 #, c-format msgid "attempted to update invisible tuple" msgstr "försökte uppdatera en osynlig tuple" -#: access/heap/heapam.c:4896 access/heap/heapam.c:4934 -#: access/heap/heapam.c:5199 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4901 access/heap/heapam.c:4939 +#: access/heap/heapam.c:5206 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "kunde inte låsa rad i relationen \"%s\"" -#: access/heap/heapam.c:6302 commands/trigger.c:3471 +#: access/heap/heapam.c:6331 commands/trigger.c:3471 #: executor/nodeModifyTable.c:2383 executor/nodeModifyTable.c:2474 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" @@ -1181,11 +1181,11 @@ msgstr "kunde inte skriva till fil \"%s\", skrev %d av %d: %m." #: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:481 #: access/transam/xlog.c:2967 access/transam/xlog.c:3180 -#: access/transam/xlog.c:3965 access/transam/xlog.c:8729 +#: access/transam/xlog.c:3965 access/transam/xlog.c:8753 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 #: backup/basebackup_server.c:242 commands/dbcommands.c:494 -#: postmaster/postmaster.c:4608 postmaster/postmaster.c:5622 -#: replication/logical/origin.c:587 replication/slot.c:1631 +#: postmaster/postmaster.c:4610 postmaster/postmaster.c:5624 +#: replication/logical/origin.c:587 replication/slot.c:1691 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -1200,10 +1200,10 @@ msgstr "kunde inte trunkera fil \"%s\" till %u: %m" #: access/transam/timeline.c:424 access/transam/timeline.c:498 #: access/transam/xlog.c:3039 access/transam/xlog.c:3236 #: access/transam/xlog.c:3977 commands/dbcommands.c:506 -#: postmaster/postmaster.c:4618 postmaster/postmaster.c:4628 +#: postmaster/postmaster.c:4620 postmaster/postmaster.c:4630 #: replication/logical/origin.c:599 replication/logical/origin.c:641 #: replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 -#: replication/slot.c:1666 storage/file/buffile.c:537 +#: replication/slot.c:1727 storage/file/buffile.c:537 #: storage/file/copydir.c:207 utils/init/miscinit.c:1493 #: utils/init/miscinit.c:1504 utils/init/miscinit.c:1512 utils/misc/guc.c:8787 #: utils/misc/guc.c:8818 utils/misc/guc.c:10816 utils/misc/guc.c:10830 @@ -1214,10 +1214,10 @@ msgstr "kunde inte skriva till fil \"%s\": %m" #: access/heap/rewriteheap.c:1249 access/transam/twophase.c:1713 #: access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:436 -#: postmaster/postmaster.c:1157 postmaster/syslogger.c:1537 +#: postmaster/postmaster.c:1159 postmaster/syslogger.c:1537 #: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 #: replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 -#: replication/slot.c:1763 storage/file/fd.c:792 storage/file/fd.c:3260 +#: replication/slot.c:1830 storage/file/fd.c:792 storage/file/fd.c:3260 #: storage/file/fd.c:3322 storage/file/reinit.c:262 storage/ipc/dsm.c:317 #: storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 #: utils/time/snapmgr.c:1606 @@ -1457,7 +1457,7 @@ msgstr "kan inte använda index \"%s\" som håller på att indexeras om" #: access/index/indexam.c:208 catalog/objectaddress.c:1376 #: commands/indexcmds.c:2824 commands/tablecmds.c:271 commands/tablecmds.c:295 -#: commands/tablecmds.c:17484 commands/tablecmds.c:19368 +#: commands/tablecmds.c:17484 commands/tablecmds.c:19382 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" är inte ett index" @@ -1503,17 +1503,17 @@ msgstr "index \"%s\" innehåller en halvdöd intern sida" msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "Detta kan ha orsakats av en avbruten VACUUM i version 9.3 eller äldre, innan uppdatering. Vänligen REINDEX:era det." -#: access/nbtree/nbtutils.c:2690 +#: access/nbtree/nbtutils.c:2689 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "indexradstorlek %zu överstiger btree version %u maximum %zu för index \"%s\"" -#: access/nbtree/nbtutils.c:2696 +#: access/nbtree/nbtutils.c:2695 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Indexrad refererar tupel (%u,%u) i relation \"%s\"." -#: access/nbtree/nbtutils.c:2700 +#: access/nbtree/nbtutils.c:2699 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1611,13 +1611,13 @@ msgstr "Se till att konfigurationsparametern \"%s\" är satt på primär-servern msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Se till att konfigurationsparametern \"%s\" är satt." -#: access/transam/multixact.c:1022 +#: access/transam/multixact.c:1106 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "databasen tar inte emot kommandon som genererar nya MultiXactId:er för att förhinda dataförlust vid \"wraparound\" i databasen \"%s\"" -#: access/transam/multixact.c:1024 access/transam/multixact.c:1031 -#: access/transam/multixact.c:1055 access/transam/multixact.c:1064 +#: access/transam/multixact.c:1108 access/transam/multixact.c:1115 +#: access/transam/multixact.c:1139 access/transam/multixact.c:1148 #, c-format msgid "" "Execute a database-wide VACUUM in that database.\n" @@ -1626,65 +1626,70 @@ msgstr "" "Utför en databas-VACUUM i hela den databasen.\n" "Du kan också behöva commit:a eller rulla tillbaka gamla förberedda transaktioner eller slänga gamla replikeringsslottar." -#: access/transam/multixact.c:1029 +#: access/transam/multixact.c:1113 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "databasen tar inte emot kommandon som genererar nya MultiXactId:er för att förhinda dataförlust vid \"wraparound\" i databasen med OID %u" -#: access/transam/multixact.c:1050 access/transam/multixact.c:2334 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2421 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" msgstr[0] "databasen \"%s\" måste städas innan ytterligare %u MultiXactId används" msgstr[1] "databasen \"%s\" måste städas innan ytterligare %u MultiXactId:er används" -#: access/transam/multixact.c:1059 access/transam/multixact.c:2343 +#: access/transam/multixact.c:1143 access/transam/multixact.c:2430 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" msgstr[0] "databas med OID %u måste städas (vacuum) innan %u till MultiXactId används" msgstr[1] "databas med OID %u måste städas (vacuum) innan %u till MultiXactId:er används" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1207 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "multixact \"members\"-gräns överskriden" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1208 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." msgstr[0] "Detta kommando skapar en multixact med %u medlemmar, men återstående utrymmer räcker bara till %u medlem." msgstr[1] "Detta kommando skapar en multixact med %u medlemmar, men återstående utrymmer räcker bara till %u medlemmar." -#: access/transam/multixact.c:1126 +#: access/transam/multixact.c:1213 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Kör en hela-databas-VACUUM i databas med OID %u med reducerade iställningar vacuum_multixact_freeze_min_age och vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1157 +#: access/transam/multixact.c:1244 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" msgstr[0] "databas med OID %u måste städas innan %d mer multixact-medlem används" msgstr[1] "databas med OID %u måste städas innan %d fler multixact-medlemmar används" -#: access/transam/multixact.c:1162 +#: access/transam/multixact.c:1249 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Kör en hela-databas-VACUUM i den databasen med reducerade inställningar för vacuum_multixact_freeze_min_age och vacuum_multixact_freeze_table_age." -#: access/transam/multixact.c:1301 +#: access/transam/multixact.c:1388 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u finns inte längre -- troligen en wraparound" -#: access/transam/multixact.c:1307 +#: access/transam/multixact.c:1394 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u har inte skapats än -- troligen en wraparound" -#: access/transam/multixact.c:2339 access/transam/multixact.c:2348 +#: access/transam/multixact.c:1469 +#, c-format +msgid "MultiXact %u has invalid next offset" +msgstr "MultiXact %u har ett ogiltigt offset till nästa" + +#: access/transam/multixact.c:2426 access/transam/multixact.c:2435 #: access/transam/varsup.c:151 access/transam/varsup.c:158 #: access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format @@ -1695,61 +1700,66 @@ msgstr "" "För att undvika att databasen stängs ner, utför en hela databas-VACCUM i den databasen.\n" "Du kan också behöva commit:a eller rulla tillbaka gamla förberedda transaktioner eller slänga gamla replikeringsslottar." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2709 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "MultiXact-medlems wraparound-skydd är avslagen eftersom äldsta checkpoint:ade MultiXact %u inte finns på disk" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2731 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "MultiXact-medlems wraparound-skydd är nu påslagen" -#: access/transam/multixact.c:3038 +#: access/transam/multixact.c:3125 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "äldsta MultiXact %u hittas inte, tidigast MultiXact %u, skippar trunkering" -#: access/transam/multixact.c:3056 +#: access/transam/multixact.c:3143 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "kan inte trunkera upp till %u eftersom den inte finns på disk, skippar trunkering" -#: access/transam/multixact.c:3370 +#: access/transam/multixact.c:3160 +#, c-format +msgid "cannot truncate up to MultiXact %u because it has invalid offset, skipping truncation" +msgstr "kan inte trunkera upp till MultiXact %u eftersom den har ogitlig offset, skippar trunkering" + +#: access/transam/multixact.c:3498 #, c-format msgid "invalid MultiXactId: %u" msgstr "ogiltig MultiXactId: %u" -#: access/transam/parallel.c:737 access/transam/parallel.c:856 +#: access/transam/parallel.c:744 access/transam/parallel.c:863 #, c-format msgid "parallel worker failed to initialize" msgstr "parallell arbetare misslyckades med initiering" -#: access/transam/parallel.c:738 access/transam/parallel.c:857 +#: access/transam/parallel.c:745 access/transam/parallel.c:864 #, c-format msgid "More details may be available in the server log." msgstr "Fler detaljer kan finnas i serverloggen." -#: access/transam/parallel.c:918 +#: access/transam/parallel.c:925 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster avslutade under en parallell transaktion" -#: access/transam/parallel.c:1105 +#: access/transam/parallel.c:1112 #, c-format msgid "lost connection to parallel worker" msgstr "tappad kopplingen till parallell arbetare" -#: access/transam/parallel.c:1171 access/transam/parallel.c:1173 +#: access/transam/parallel.c:1178 access/transam/parallel.c:1180 msgid "parallel worker" msgstr "parallell arbetare" -#: access/transam/parallel.c:1326 +#: access/transam/parallel.c:1333 #, c-format msgid "could not map dynamic shared memory segment" msgstr "kunde inte skapa dynamiskt delat minnessegment: %m" -#: access/transam/parallel.c:1331 +#: access/transam/parallel.c:1338 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "ogiltigt magiskt nummer i dynamiskt delat minnessegment" @@ -2006,7 +2016,7 @@ msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "beräknad CRC-checksumma matchar inte värdet som är lagrat i filen \"%s\"" #: access/transam/twophase.c:1415 access/transam/xlogrecovery.c:588 -#: replication/logical/logical.c:207 replication/walsender.c:702 +#: replication/logical/logical.c:207 replication/walsender.c:716 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Misslyckades vid allokering av en WAL-läs-processor." @@ -2123,112 +2133,112 @@ msgstr "databas med OID %u måste städas (vacuum) inom %u transaktioner" msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "kan inte ha mer än 2^32-2 kommandon i en transaktion" -#: access/transam/xact.c:1644 +#: access/transam/xact.c:1654 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "maximalt antal commit:ade undertransaktioner (%d) överskridet" -#: access/transam/xact.c:2501 +#: access/transam/xact.c:2511 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "kan inte göra PREPARE på en transaktion som har arbetat med temporära objekt" -#: access/transam/xact.c:2511 +#: access/transam/xact.c:2521 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "kan inte göra PREPARE på en transaktion som har exporterade snapshots" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3479 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s kan inte köras i ett transaktionsblock" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s kan inte köras i en undertransaktion" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s kan inte köras inuti en pipeline" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 +#: access/transam/xact.c:3519 #, c-format msgid "%s cannot be executed from a function" msgstr "%s kan inte köras från en funktion" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3580 access/transam/xact.c:3895 -#: access/transam/xact.c:3974 access/transam/xact.c:4097 -#: access/transam/xact.c:4248 access/transam/xact.c:4317 -#: access/transam/xact.c:4428 +#: access/transam/xact.c:3590 access/transam/xact.c:3905 +#: access/transam/xact.c:3984 access/transam/xact.c:4107 +#: access/transam/xact.c:4258 access/transam/xact.c:4327 +#: access/transam/xact.c:4438 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s kan bara användas i transaktionsblock" -#: access/transam/xact.c:3781 +#: access/transam/xact.c:3791 #, c-format msgid "there is already a transaction in progress" msgstr "det är redan en transaktion igång" -#: access/transam/xact.c:3900 access/transam/xact.c:3979 -#: access/transam/xact.c:4102 +#: access/transam/xact.c:3910 access/transam/xact.c:3989 +#: access/transam/xact.c:4112 #, c-format msgid "there is no transaction in progress" msgstr "ingen transaktion pågår" -#: access/transam/xact.c:3990 +#: access/transam/xact.c:4000 #, c-format msgid "cannot commit during a parallel operation" msgstr "kan inte commit:a under en parallell operation" -#: access/transam/xact.c:4113 +#: access/transam/xact.c:4123 #, c-format msgid "cannot abort during a parallel operation" msgstr "can inte avbryta under en parallell operation" -#: access/transam/xact.c:4212 +#: access/transam/xact.c:4222 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "kan inte definiera sparpunkter under en parallell operation" -#: access/transam/xact.c:4299 +#: access/transam/xact.c:4309 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "kan inte frigöra en sparpunkt under en parallell operation" -#: access/transam/xact.c:4309 access/transam/xact.c:4360 -#: access/transam/xact.c:4420 access/transam/xact.c:4469 +#: access/transam/xact.c:4319 access/transam/xact.c:4370 +#: access/transam/xact.c:4430 access/transam/xact.c:4479 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "sparpunkt \"%s\" existerar inte" -#: access/transam/xact.c:4366 access/transam/xact.c:4475 +#: access/transam/xact.c:4376 access/transam/xact.c:4485 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "sparpunkt \"%s\" finns inte inom aktuell sparpunktsnivå" -#: access/transam/xact.c:4408 +#: access/transam/xact.c:4418 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "kan inte rulla tillbaka till sparpunkt under en parallell operation" -#: access/transam/xact.c:4536 +#: access/transam/xact.c:4546 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "kan inte starta subtransaktioner under en parallell operation" -#: access/transam/xact.c:4604 +#: access/transam/xact.c:4614 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "kan inte commit:a subtransaktioner undert en parallell operation" -#: access/transam/xact.c:5251 +#: access/transam/xact.c:5261 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "kan inte ha mer än 2^32-1 undertransaktioner i en transaktion" @@ -2244,7 +2254,7 @@ msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "kunde inte skriva till loggfil %s vid offset %u, längd %zu: %m" #: access/transam/xlog.c:3472 access/transam/xlogutils.c:847 -#: replication/walsender.c:2720 +#: replication/walsender.c:2734 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "efterfrågat WAL-segment %s har redan tagits bort" @@ -2530,142 +2540,142 @@ msgstr "restartpoint klar: skrev %d buffers (%.1f%%); %d WAL-fil(er) tillagda, % msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgstr "checkpoint klar: skrev %d buffers (%.1f%%); %d WAL-fil(er) tillagda, %d borttagna, %d recyclade; skriv=%ld.%03d s, synk=%ld.%03d s, totalt=%ld.%03d s; synk-filer=%d, längsta=%ld.%03d s, genomsnitt=%ld.%03d s; distans=%d kB, estimat=%d kB" -#: access/transam/xlog.c:6653 +#: access/transam/xlog.c:6663 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "samtidig write-ahead-logg-aktivitet när databassystemet stängs ner" -#: access/transam/xlog.c:7236 +#: access/transam/xlog.c:7260 #, c-format msgid "recovery restart point at %X/%X" msgstr "återställningens omstartspunkt vid %X/%X" -#: access/transam/xlog.c:7238 +#: access/transam/xlog.c:7262 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Senaste kompletta transaktionen var vid loggtid %s" -#: access/transam/xlog.c:7487 +#: access/transam/xlog.c:7511 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "återställningspunkt \"%s\" skapad vid %X/%X" -#: access/transam/xlog.c:7694 +#: access/transam/xlog.c:7718 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "online-backup avbröts, återställning kan inte fortsätta" -#: access/transam/xlog.c:7752 +#: access/transam/xlog.c:7776 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i checkpoint-post för nedstängning" -#: access/transam/xlog.c:7810 +#: access/transam/xlog.c:7834 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i checkpoint-post för online" -#: access/transam/xlog.c:7839 +#: access/transam/xlog.c:7863 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "oväntad tidslinje-ID %u (skall vara %u) i post för slutet av återställning" -#: access/transam/xlog.c:8097 +#: access/transam/xlog.c:8121 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "kunde inte fsync:a skriv-igenom-loggfil \"%s\": %m" -#: access/transam/xlog.c:8103 +#: access/transam/xlog.c:8127 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "kunde inte fdatasync:a fil \"%s\": %m" -#: access/transam/xlog.c:8198 access/transam/xlog.c:8565 +#: access/transam/xlog.c:8222 access/transam/xlog.c:8589 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "WAL-nivå inte tillräcklig för att kunna skapa en online-backup" -#: access/transam/xlog.c:8199 access/transam/xlog.c:8566 +#: access/transam/xlog.c:8223 access/transam/xlog.c:8590 #: access/transam/xlogfuncs.c:199 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "wal_level måste vara satt till \"replica\" eller \"logical\" vid serverstart." -#: access/transam/xlog.c:8204 +#: access/transam/xlog.c:8228 #, c-format msgid "backup label too long (max %d bytes)" msgstr "backup-etikett för lång (max %d byte)" -#: access/transam/xlog.c:8320 +#: access/transam/xlog.c:8344 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "WAL skapad med full_page_writes=off har återspelats sedab senaste omstartpunkten" -#: access/transam/xlog.c:8322 access/transam/xlog.c:8678 +#: access/transam/xlog.c:8346 access/transam/xlog.c:8702 #, 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 primary, and then try an online backup again." msgstr "Det betyder att backup:en som tas på standby:en är trasig och inte skall användas. Slå på full_page_writes och kör CHECKPOINT på primären och försök sedan ta en ny online-backup igen." -#: access/transam/xlog.c:8402 backup/basebackup.c:1343 utils/adt/misc.c:340 +#: access/transam/xlog.c:8426 backup/basebackup.c:1343 utils/adt/misc.c:340 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "mål för symbolisk länk \"%s\" är för lång" -#: access/transam/xlog.c:8452 backup/basebackup.c:1358 +#: access/transam/xlog.c:8476 backup/basebackup.c:1358 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:348 #, c-format msgid "tablespaces are not supported on this platform" msgstr "tabellutrymmen stöds inte på denna plattform" -#: access/transam/xlog.c:8611 access/transam/xlog.c:8624 -#: access/transam/xlogrecovery.c:1237 access/transam/xlogrecovery.c:1244 -#: access/transam/xlogrecovery.c:1303 access/transam/xlogrecovery.c:1383 -#: access/transam/xlogrecovery.c:1407 +#: access/transam/xlog.c:8635 access/transam/xlog.c:8648 +#: access/transam/xlogrecovery.c:1247 access/transam/xlogrecovery.c:1254 +#: access/transam/xlogrecovery.c:1313 access/transam/xlogrecovery.c:1393 +#: access/transam/xlogrecovery.c:1417 #, c-format msgid "invalid data in file \"%s\"" msgstr "felaktig data i fil \"%s\"" -#: access/transam/xlog.c:8628 backup/basebackup.c:1204 +#: access/transam/xlog.c:8652 backup/basebackup.c:1204 #, c-format msgid "the standby was promoted during online backup" msgstr "standby:en befordrades under online-backup" -#: access/transam/xlog.c:8629 backup/basebackup.c:1205 +#: access/transam/xlog.c:8653 backup/basebackup.c:1205 #, c-format msgid "This means that the backup being taken is corrupt and should not be used. Try taking another online backup." msgstr "Det betyder att backupen som tas är trasig och inte skall användas. Försök ta en ny online-backup." -#: access/transam/xlog.c:8676 +#: access/transam/xlog.c:8700 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "WAL skapad med full_page_writes=off återspelades under online-backup" -#: access/transam/xlog.c:8801 +#: access/transam/xlog.c:8825 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "base_backup klar, väntar på att de WAL-segment som krävs blir arkiverade" -#: access/transam/xlog.c:8815 +#: access/transam/xlog.c:8839 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "väntar fortfarande på att alla krävda WAL-segments skall bli arkiverade (%d sekunder har gått)" -#: access/transam/xlog.c:8817 +#: access/transam/xlog.c:8841 #, c-format 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 "Kontrollera att ditt archive_command kör som det skall. Du kan avbryta denna backup på ett säkert sätt men databasbackup:en kommer inte vara användbart utan att alla WAL-segment finns." -#: access/transam/xlog.c:8824 +#: access/transam/xlog.c:8848 #, c-format msgid "all required WAL segments have been archived" msgstr "alla krävda WAL-segments har arkiverats" -#: access/transam/xlog.c:8828 +#: access/transam/xlog.c:8852 #, 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-arkivering är inte påslagen; du måste se till att alla krävda WAL-segment har kopierats på annat sätt för att backup:en skall vara komplett" -#: access/transam/xlog.c:8877 +#: access/transam/xlog.c:8901 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "avbryter backup på grund av att backend:en stoppades innan pg_backup_stop anropades" @@ -3039,374 +3049,379 @@ msgstr "startar om backupåterställning med redo LSN %X/%X" msgid "could not locate a valid checkpoint record" msgstr "kunde inte hitta en giltig checkpoint-post" -#: access/transam/xlogrecovery.c:834 +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "could not find redo location %X/%08X referenced by checkpoint record at %X/%08X" +msgstr "kunde inte hitta redo-position %X/%08X refererad av checkpoint-post vid %X/%08X" + +#: access/transam/xlogrecovery.c:844 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "efterfrågad tidslinje %u är inte ett barn till denna servers historik" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:846 #, 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 "Senaste checkpoint är vid %X/%X på tidslinje %u, men i historiken för efterfrågad tidslinje så avvek servern från den tidslinjen vid %X/%X." -#: access/transam/xlogrecovery.c:850 +#: access/transam/xlogrecovery.c:860 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "efterfågan tidslinje %u innehåller inte minimal återställningspunkt %X/%X på tidslinje %u" -#: access/transam/xlogrecovery.c:878 +#: access/transam/xlogrecovery.c:888 #, c-format msgid "invalid next transaction ID" msgstr "nästa transaktions-ID ogiltig" -#: access/transam/xlogrecovery.c:883 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid redo in checkpoint record" msgstr "ogiltig redo i checkpoint-post" -#: access/transam/xlogrecovery.c:894 +#: access/transam/xlogrecovery.c:904 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "ogiltig redo-post i nedstängnings-checkpoint" -#: access/transam/xlogrecovery.c:923 +#: access/transam/xlogrecovery.c:933 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "databassystemet stängdes inte ned korrekt; automatisk återställning pågår" -#: access/transam/xlogrecovery.c:927 +#: access/transam/xlogrecovery.c:937 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "krashåterställning startar i tidslinje %u och har måltidslinje %u" -#: access/transam/xlogrecovery.c:970 +#: access/transam/xlogrecovery.c:980 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label innehåller data som inte stämmer med kontrollfil" -#: access/transam/xlogrecovery.c:971 +#: access/transam/xlogrecovery.c:981 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Det betyder att backup:en är trasig och du behöver använda en annan backup för att återställa." -#: access/transam/xlogrecovery.c:1025 +#: access/transam/xlogrecovery.c:1035 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "använda återställningskommandofil \"%s\" stöds inte" -#: access/transam/xlogrecovery.c:1090 +#: access/transam/xlogrecovery.c:1100 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "standby-läge stöd inte av enanvändarservrar" -#: access/transam/xlogrecovery.c:1107 +#: access/transam/xlogrecovery.c:1117 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "angav varken primary_conninfo eller restore_command" -#: access/transam/xlogrecovery.c:1108 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Databasservern kommer med jämna mellanrum att poll:a pg_wal-underkatalogen för att se om filer placerats där." -#: access/transam/xlogrecovery.c:1116 +#: access/transam/xlogrecovery.c:1126 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "måste ange restore_command när standby-läge inte är påslaget" -#: access/transam/xlogrecovery.c:1154 +#: access/transam/xlogrecovery.c:1164 #, c-format msgid "recovery target timeline %u does not exist" msgstr "återställningsmåltidslinje %u finns inte" -#: access/transam/xlogrecovery.c:1304 +#: access/transam/xlogrecovery.c:1314 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Parsad tidslinje-ID är %u men förväntade sig %u." -#: access/transam/xlogrecovery.c:1686 +#: access/transam/xlogrecovery.c:1696 #, c-format msgid "redo starts at %X/%X" msgstr "redo startar vid %X/%X" -#: access/transam/xlogrecovery.c:1699 +#: access/transam/xlogrecovery.c:1709 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "redo pågår, förbrukad tid: %ld.%02d s, nuvarande LSN: %X/%X" -#: access/transam/xlogrecovery.c:1791 +#: access/transam/xlogrecovery.c:1801 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "efterfrågad återställningsstoppunkt är före en konsistent återställningspunkt" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1833 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "redo gjord vid %X/%X systemanvändning: %s" -#: access/transam/xlogrecovery.c:1829 +#: access/transam/xlogrecovery.c:1839 #, c-format msgid "last completed transaction was at log time %s" msgstr "senaste kompletta transaktionen var vid loggtid %s" -#: access/transam/xlogrecovery.c:1838 +#: access/transam/xlogrecovery.c:1848 #, c-format msgid "redo is not required" msgstr "redo behövs inte" -#: access/transam/xlogrecovery.c:1849 +#: access/transam/xlogrecovery.c:1859 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "återställning avslutades innan det konfigurerade återställningsmålet nåddes" -#: access/transam/xlogrecovery.c:2024 +#: access/transam/xlogrecovery.c:2034 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "lyckades hoppa över saknad contrecord vid %X/%X, överskriven vid %s" -#: access/transam/xlogrecovery.c:2091 +#: access/transam/xlogrecovery.c:2101 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "Oväntat katalogpost \"%s\" hittades i %s" -#: access/transam/xlogrecovery.c:2093 +#: access/transam/xlogrecovery.c:2103 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Alla katalogposter i pg_tblspc/ skall vara symboliska länkar" -#: access/transam/xlogrecovery.c:2094 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." msgstr "Ta bort dessa kataloger eller sätt allow_in_place_tablespaces temporärt till ON och låt återställningen gå klart." -#: access/transam/xlogrecovery.c:2146 +#: access/transam/xlogrecovery.c:2156 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "slutförde backupåterställning vid redo-LSN %X/%X och slut-LSN %X/%X" -#: access/transam/xlogrecovery.c:2176 +#: access/transam/xlogrecovery.c:2186 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "konsistent återställningstillstånd uppnått vid %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2214 +#: access/transam/xlogrecovery.c:2224 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL-redo vid %X/%X för %s" -#: access/transam/xlogrecovery.c:2310 +#: access/transam/xlogrecovery.c:2320 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "oväntad föregående tidslinje-ID %u (nuvarande tidslinje-ID %u) i checkpoint-post" -#: access/transam/xlogrecovery.c:2319 +#: access/transam/xlogrecovery.c:2329 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "oväntad tidslinje-ID %u (efter %u) i checkpoint-post" -#: access/transam/xlogrecovery.c:2335 +#: access/transam/xlogrecovery.c:2345 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "oväntad tidslinje-ID %u i checkpoint-post, innan vi nått minimal återställningspunkt %X/%X på tidslinje %u" -#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 +#: access/transam/xlogrecovery.c:2529 access/transam/xlogrecovery.c:2805 #, c-format msgid "recovery stopping after reaching consistency" msgstr "återställning stoppad efter att ha uppnått konsistens" -#: access/transam/xlogrecovery.c:2540 +#: access/transam/xlogrecovery.c:2550 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "återställning stoppad före WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2630 +#: access/transam/xlogrecovery.c:2640 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "återställning stoppad före commit av transaktion %u, tid %s" -#: access/transam/xlogrecovery.c:2637 +#: access/transam/xlogrecovery.c:2647 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "återställning stoppad före abort av transaktion %u, tid %s" -#: access/transam/xlogrecovery.c:2690 +#: access/transam/xlogrecovery.c:2700 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "återställning stoppad vid återställningspunkt \"%s\", tid %s" -#: access/transam/xlogrecovery.c:2708 +#: access/transam/xlogrecovery.c:2718 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "återställning stoppad efter WAL-position (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2775 +#: access/transam/xlogrecovery.c:2785 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "återställning stoppad efter commit av transaktion %u, tid %s" -#: access/transam/xlogrecovery.c:2783 +#: access/transam/xlogrecovery.c:2793 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "återställning stoppad efter abort av transaktion %u, tid %s" -#: access/transam/xlogrecovery.c:2864 +#: access/transam/xlogrecovery.c:2874 #, c-format msgid "pausing at the end of recovery" msgstr "pausar vid slutet av återställning" -#: access/transam/xlogrecovery.c:2865 +#: access/transam/xlogrecovery.c:2875 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Kör pg_wal_replay_resume() för att befordra." -#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4679 +#: access/transam/xlogrecovery.c:2878 access/transam/xlogrecovery.c:4700 #, c-format msgid "recovery has paused" msgstr "återställning har pausats" -#: access/transam/xlogrecovery.c:2869 +#: access/transam/xlogrecovery.c:2879 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Kör pg_wal_replay_resume() för att fortsätta." -#: access/transam/xlogrecovery.c:3135 +#: access/transam/xlogrecovery.c:3145 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "oväntad tidslinje-ID %u i loggsegment %s, offset %u" -#: access/transam/xlogrecovery.c:3340 +#: access/transam/xlogrecovery.c:3350 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "kunde inte läsa från loggsegment %s, offset %u: %m" -#: access/transam/xlogrecovery.c:3346 +#: access/transam/xlogrecovery.c:3356 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "kunde inte läsa från loggsegment %s, offset %u, läste %d av %zu" -#: access/transam/xlogrecovery.c:3996 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "ogiltig primär checkpoint-länk i kontrollfil" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "ogiltig checkpoint-länk i \"backup_label\"-fil" -#: access/transam/xlogrecovery.c:4018 +#: access/transam/xlogrecovery.c:4039 #, c-format msgid "invalid primary checkpoint record" msgstr "ogiltig primär checkpoint-post" -#: access/transam/xlogrecovery.c:4022 +#: access/transam/xlogrecovery.c:4043 #, c-format msgid "invalid checkpoint record" msgstr "ogiltig checkpoint-post" -#: access/transam/xlogrecovery.c:4033 +#: access/transam/xlogrecovery.c:4054 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "ogiltig resurshanterar-ID i primär checkpoint-post" -#: access/transam/xlogrecovery.c:4037 +#: access/transam/xlogrecovery.c:4058 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ogiltig resurshanterar-ID i checkpoint-post" -#: access/transam/xlogrecovery.c:4050 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "ogiltig xl_info i primär checkpoint-post" -#: access/transam/xlogrecovery.c:4054 +#: access/transam/xlogrecovery.c:4075 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ogiltig xl_info i checkpoint-post" -#: access/transam/xlogrecovery.c:4065 +#: access/transam/xlogrecovery.c:4086 #, c-format msgid "invalid length of primary checkpoint record" msgstr "ogiltig längd i primär checkpoint-post" -#: access/transam/xlogrecovery.c:4069 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "ogiltig längd på checkpoint-post" -#: access/transam/xlogrecovery.c:4125 +#: access/transam/xlogrecovery.c:4146 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "ny tidslinje %u är inte ett barn till databasens systemtidslinje %u" -#: access/transam/xlogrecovery.c:4139 +#: access/transam/xlogrecovery.c:4160 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "ny tidslinje %u skapad från aktuella databasens systemtidslinje %u innan nuvarande återställningspunkt %X/%X" -#: access/transam/xlogrecovery.c:4158 +#: access/transam/xlogrecovery.c:4179 #, c-format msgid "new target timeline is %u" msgstr "ny måltidslinje är %u" -#: access/transam/xlogrecovery.c:4361 +#: access/transam/xlogrecovery.c:4382 #, c-format msgid "WAL receiver process shutdown requested" msgstr "nedstängning av WAL-mottagarprocess efterfrågad" -#: access/transam/xlogrecovery.c:4424 +#: access/transam/xlogrecovery.c:4445 #, c-format msgid "received promote request" msgstr "tog emot förfrågan om befordran" -#: access/transam/xlogrecovery.c:4437 +#: access/transam/xlogrecovery.c:4458 #, c-format msgid "promote trigger file found: %s" msgstr "triggerfil för befordring hittad: %s" -#: access/transam/xlogrecovery.c:4445 +#: access/transam/xlogrecovery.c:4466 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "kunde inte göra stat() på triggerfil för befordring \"%s\": %m" -#: access/transam/xlogrecovery.c:4670 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby är inte möjligt på grund av otillräckliga parameterinställningar" -#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698 -#: access/transam/xlogrecovery.c:4728 +#: access/transam/xlogrecovery.c:4692 access/transam/xlogrecovery.c:4719 +#: access/transam/xlogrecovery.c:4749 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d har ett lägre värde än på primärservern där värdet var %d." -#: access/transam/xlogrecovery.c:4680 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Om återställning avpausas så kommer servern stänga ner." -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Du kan då återstarta servern efter att ha gjort de nödvändiga konfigurationsändringarna." -#: access/transam/xlogrecovery.c:4692 +#: access/transam/xlogrecovery.c:4713 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "befordran är inte möjligt på grund av otillräckliga parameterinställningar" -#: access/transam/xlogrecovery.c:4702 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Starta om servern efter att ha gjort de nödvändiga konfigurationsändringarna." -#: access/transam/xlogrecovery.c:4726 +#: access/transam/xlogrecovery.c:4747 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "återställning avbruten på grund av otillräckliga parametervärden" -#: access/transam/xlogrecovery.c:4732 +#: access/transam/xlogrecovery.c:4753 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Du kan starta om servern efter att du gjort de nödvändiga konfigurationsändringarna." @@ -3606,7 +3621,7 @@ msgstr "relativ sökväg tillåts inte för backup som sparas på servern" #: backup/basebackup_server.c:102 commands/dbcommands.c:477 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1558 +#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1618 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -3828,7 +3843,7 @@ msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "kan inte använda IN SCHEMA-klausul samtidigt som GRANT/REVOKE ON SCHEMAS" #: catalog/aclchk.c:1588 catalog/catalog.c:657 catalog/objectaddress.c:1543 -#: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 +#: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:816 #: commands/sequence.c:1673 commands/tablecmds.c:7376 commands/tablecmds.c:7532 #: commands/tablecmds.c:7582 commands/tablecmds.c:7656 #: commands/tablecmds.c:7726 commands/tablecmds.c:7838 @@ -4274,7 +4289,7 @@ msgid "language with OID %u does not exist" msgstr "språk med OID %u existerar inte" #: catalog/aclchk.c:4576 catalog/aclchk.c:5365 commands/collationcmds.c:595 -#: commands/publicationcmds.c:1745 +#: commands/publicationcmds.c:1750 #, c-format msgid "schema with OID %u does not exist" msgstr "schema med OID %u existerar inte" @@ -4345,7 +4360,7 @@ msgstr "konvertering med OID %u existerar inte" msgid "extension with OID %u does not exist" msgstr "utökning med OID %u existerar inte" -#: catalog/aclchk.c:5727 commands/publicationcmds.c:1999 +#: catalog/aclchk.c:5727 commands/publicationcmds.c:2004 #, c-format msgid "publication with OID %u does not exist" msgstr "publicering med OID %u existerar inte" @@ -4452,11 +4467,12 @@ msgstr "kan inte ta bort %s eftersom andra objekt beror på den" #: catalog/dependency.c:1201 catalog/dependency.c:1208 #: catalog/dependency.c:1219 commands/tablecmds.c:1342 #: commands/tablecmds.c:14655 commands/tablespace.c:476 commands/user.c:1008 -#: commands/view.c:522 libpq/auth.c:337 replication/syncrep.c:1110 -#: storage/lmgr/deadlock.c:1151 storage/lmgr/proc.c:1421 utils/misc/guc.c:7414 -#: utils/misc/guc.c:7450 utils/misc/guc.c:7520 utils/misc/guc.c:11939 -#: utils/misc/guc.c:11973 utils/misc/guc.c:12007 utils/misc/guc.c:12050 -#: utils/misc/guc.c:12092 +#: commands/view.c:522 libpq/auth.c:337 replication/slot.c:206 +#: replication/syncrep.c:1110 storage/lmgr/deadlock.c:1151 +#: storage/lmgr/proc.c:1421 utils/misc/guc.c:7414 utils/misc/guc.c:7450 +#: utils/misc/guc.c:7520 utils/misc/guc.c:11939 utils/misc/guc.c:11973 +#: utils/misc/guc.c:12007 utils/misc/guc.c:12050 utils/misc/guc.c:12092 +#: utils/misc/guc.c:13056 utils/misc/guc.c:13058 #, c-format msgid "%s" msgstr "%s" @@ -4637,14 +4653,14 @@ msgstr "Detta skulle leda till att den genererade kolumnen beror på sitt eget v msgid "generation expression is not immutable" msgstr "genereringsuttryck är inte immutable" -#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1285 +#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "kolumn \"%s\" har typ %s men default-uttryck har typen %s" #: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 #: parser/parse_target.c:594 parser/parse_target.c:891 -#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1290 +#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Du måste skriva om eller typomvandla uttrycket." @@ -4730,7 +4746,7 @@ msgstr "relationen \"%s\" finns redan, hoppar över" msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "pg_class index OID-värde är inte satt i binärt uppgraderingsläge" -#: catalog/index.c:927 utils/cache/relcache.c:3745 +#: catalog/index.c:927 utils/cache/relcache.c:3761 #, c-format msgid "index relfilenode value not set when in binary upgrade mode" msgstr "relfilenode-värde för index är inte satt i binärt uppgraderingsläge" @@ -4740,34 +4756,34 @@ msgstr "relfilenode-värde för index är inte satt i binärt uppgraderingsläge msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY måste vara första operationen i transaktion" -#: catalog/index.c:3662 +#: catalog/index.c:3669 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "kan inte omindexera temporära tabeller som tillhör andra sessioner" -#: catalog/index.c:3673 commands/indexcmds.c:3577 +#: catalog/index.c:3680 commands/indexcmds.c:3577 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "kan inte omindexera angivet index i TOAST-tabell" -#: catalog/index.c:3689 commands/indexcmds.c:3457 commands/indexcmds.c:3601 +#: catalog/index.c:3696 commands/indexcmds.c:3457 commands/indexcmds.c:3601 #: commands/tablecmds.c:3331 #, c-format msgid "cannot move system relation \"%s\"" msgstr "kan inte flytta systemrelation \"%s\"" -#: catalog/index.c:3833 +#: catalog/index.c:3840 #, c-format msgid "index \"%s\" was reindexed" msgstr "index \"%s\" omindexerades" -#: catalog/index.c:3970 +#: catalog/index.c:3977 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "kan inte omindexera ogiltigt index \"%s.%s\" på TOAST-tabell, hoppar över" #: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5860 +#: commands/trigger.c:5881 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "referenser till andra databaser är inte implementerat: \"%s.%s.%s\"" @@ -4798,7 +4814,7 @@ msgstr "relationen \"%s.%s\" existerar inte" msgid "relation \"%s\" does not exist" msgstr "relationen \"%s\" existerar inte" -#: catalog/namespace.c:501 catalog/namespace.c:3076 commands/extension.c:1556 +#: catalog/namespace.c:501 catalog/namespace.c:3079 commands/extension.c:1556 #: commands/extension.c:1562 #, c-format msgid "no schema has been selected to create in" @@ -4824,85 +4840,85 @@ msgstr "bara temporära relationer får skapas i temporära scheman" msgid "statistics object \"%s\" does not exist" msgstr "statistikobjektet \"%s\" existerar inte" -#: catalog/namespace.c:2391 +#: catalog/namespace.c:2394 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "textsökparser \"%s\" finns inte" -#: catalog/namespace.c:2517 +#: catalog/namespace.c:2520 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "textsökkatalog \"%s\" finns inte" -#: catalog/namespace.c:2644 +#: catalog/namespace.c:2647 #, c-format msgid "text search template \"%s\" does not exist" msgstr "textsökmall \"%s\" finns inte" -#: catalog/namespace.c:2770 commands/tsearchcmds.c:1127 +#: catalog/namespace.c:2773 commands/tsearchcmds.c:1127 #: utils/cache/ts_cache.c:613 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "textsökkonfiguration \"%s\" finns inte" -#: catalog/namespace.c:2883 parser/parse_expr.c:806 parser/parse_target.c:1269 +#: catalog/namespace.c:2886 parser/parse_expr.c:806 parser/parse_target.c:1269 #, c-format msgid "cross-database references are not implemented: %s" msgstr "referenser till andra databaser är inte implementerat: %s" -#: catalog/namespace.c:2889 gram.y:18272 gram.y:18312 parser/parse_expr.c:813 +#: catalog/namespace.c:2892 gram.y:18272 gram.y:18312 parser/parse_expr.c:813 #: parser/parse_target.c:1276 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "ej korrekt kvalificerat namn (för många namn med punkt): %s" -#: catalog/namespace.c:3019 +#: catalog/namespace.c:3022 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "kan inte flytta objekt in eller ut från temporära scheman" -#: catalog/namespace.c:3025 +#: catalog/namespace.c:3028 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "kan inte flytta objekt in eller ut från TOAST-schema" -#: catalog/namespace.c:3098 commands/schemacmds.c:263 commands/schemacmds.c:343 +#: catalog/namespace.c:3101 commands/schemacmds.c:263 commands/schemacmds.c:343 #: commands/tablecmds.c:1287 #, c-format msgid "schema \"%s\" does not exist" msgstr "schema \"%s\" existerar inte" -#: catalog/namespace.c:3129 +#: catalog/namespace.c:3132 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "ej korrekt relationsnamn (för många namn med punkt): %s" -#: catalog/namespace.c:3696 +#: catalog/namespace.c:3699 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "jämförelse \"%s\" för kodning \"%s\" finns inte" -#: catalog/namespace.c:3751 +#: catalog/namespace.c:3754 #, c-format msgid "conversion \"%s\" does not exist" msgstr "konvertering \"%s\" finns inte" -#: catalog/namespace.c:4015 +#: catalog/namespace.c:4018 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "rättighet saknas för att skapa temporära tabeller i databasen \"%s\"" -#: catalog/namespace.c:4031 +#: catalog/namespace.c:4034 #, c-format msgid "cannot create temporary tables during recovery" msgstr "kan inte skapa temptabeller under återställning" -#: catalog/namespace.c:4037 +#: catalog/namespace.c:4040 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "kan inte skapa temporära tabeller under en parallell operation" -#: catalog/namespace.c:4338 commands/tablespace.c:1231 commands/variable.c:64 +#: catalog/namespace.c:4341 commands/tablespace.c:1231 commands/variable.c:64 #: tcop/postgres.c:3614 utils/misc/guc.c:12124 utils/misc/guc.c:12226 #, c-format msgid "List syntax is invalid." @@ -5933,8 +5949,8 @@ msgstr "duplicerad kolumn \"%s\" i kolumnlista för publicering" msgid "schema \"%s\" is already member of publication \"%s\"" msgstr "schemat \"%s\" är redan en medlem av publiceringen \"%s\"" -#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1391 -#: commands/publicationcmds.c:1430 commands/publicationcmds.c:1967 +#: catalog/pg_publication.c:1045 commands/publicationcmds.c:1396 +#: commands/publicationcmds.c:1435 commands/publicationcmds.c:1972 #, c-format msgid "publication \"%s\" does not exist" msgstr "publiceringen \"%s\" finns inte" @@ -6077,7 +6093,7 @@ msgstr "Misslyckades vid skapande av multirange-typ för typen \"%s\"." msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Du kan manuellt ange en multirange-typ med hjälp av attributet \"multirange_type_name\"." -#: catalog/storage.c:530 storage/buffer/bufmgr.c:1047 +#: catalog/storage.c:530 storage/buffer/bufmgr.c:1054 #, c-format msgid "invalid page in block %u of relation %s" msgstr "ogiltig sida i block %u i relation %s" @@ -6192,7 +6208,7 @@ msgstr "servern \"%s\" finns redan" msgid "language \"%s\" already exists" msgstr "språk \"%s\" finns redan" -#: commands/alter.c:97 commands/publicationcmds.c:770 +#: commands/alter.c:97 commands/publicationcmds.c:775 #, c-format msgid "publication \"%s\" already exists" msgstr "publicering \"%s\" finns redan" @@ -6320,27 +6336,27 @@ msgstr "hoppar över analys av arvsträd \"%s.%s\" --- detta arvsträd innehåll msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "hoppar över analys av arvsträd \"%s.%s\" --- detta arvsträd innehåller inga analyserbara barntabeller" -#: commands/async.c:646 +#: commands/async.c:645 #, c-format msgid "channel name cannot be empty" msgstr "kanalnamn får inte vara tomt" -#: commands/async.c:652 +#: commands/async.c:651 #, c-format msgid "channel name too long" msgstr "kanalnamn för långt" -#: commands/async.c:657 +#: commands/async.c:656 #, c-format msgid "payload string too long" msgstr "innehållssträng är för lång" -#: commands/async.c:876 +#: commands/async.c:875 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "kan inte göra PREPARE på transaktion som kört LISTEN, UNLISTEN eller NOTIFY" -#: commands/async.c:980 +#: commands/async.c:979 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "för många notifieringar i NOTIFY-kön" @@ -6451,11 +6467,11 @@ msgstr "jämförelsesattribut \"%s\" känns inte igen" #: commands/collationcmds.c:119 commands/collationcmds.c:125 #: commands/define.c:389 commands/tablecmds.c:7913 -#: replication/pgoutput/pgoutput.c:318 replication/pgoutput/pgoutput.c:341 -#: replication/pgoutput/pgoutput.c:355 replication/pgoutput/pgoutput.c:365 -#: replication/pgoutput/pgoutput.c:375 replication/pgoutput/pgoutput.c:385 -#: replication/walsender.c:1001 replication/walsender.c:1023 -#: replication/walsender.c:1033 +#: replication/pgoutput/pgoutput.c:319 replication/pgoutput/pgoutput.c:342 +#: replication/pgoutput/pgoutput.c:360 replication/pgoutput/pgoutput.c:370 +#: replication/pgoutput/pgoutput.c:380 replication/pgoutput/pgoutput.c:390 +#: replication/walsender.c:1015 replication/walsender.c:1037 +#: replication/walsender.c:1047 #, c-format msgid "conflicting or redundant options" msgstr "motstridiga eller redundanta inställningar" @@ -6621,163 +6637,175 @@ msgstr "måste vara en superuser eller ha rättigheter från rollen pg_read_serv msgid "must be superuser or have privileges of the pg_write_server_files role to COPY to a file" msgstr "måste vara superuser eller ha rättigheter från rollen pg_write_server_files för att göra COPY till en fil" -#: commands/copy.c:188 +#: commands/copy.c:175 +#, c-format +msgid "generated columns are not supported in COPY FROM WHERE conditions" +msgstr "genererade kolumner tillåts inte i COPY FROM WHERE-villkor" + +#: commands/copy.c:176 commands/tablecmds.c:12461 commands/tablecmds.c:17648 +#: commands/tablecmds.c:17727 commands/trigger.c:668 +#: rewrite/rewriteHandler.c:939 rewrite/rewriteHandler.c:974 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "Kolumnen \"%s\" är en genererad kolumn." + +#: commands/copy.c:225 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM stöds inte med radnivåsäkerhet" -#: commands/copy.c:189 +#: commands/copy.c:226 #, c-format msgid "Use INSERT statements instead." msgstr "Använd INSERT-satser istället." -#: commands/copy.c:283 +#: commands/copy.c:320 #, c-format msgid "MERGE not supported in COPY" msgstr "MERGE stöds inte i COPY" -#: commands/copy.c:376 +#: commands/copy.c:413 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "kan inte ange \"%s\" med HEADER i COPY TO" -#: commands/copy.c:385 +#: commands/copy.c:422 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "%s kräver ett booleskt värde eller \"match\"" -#: commands/copy.c:444 +#: commands/copy.c:481 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "COPY-format \"%s\" känns inte igen" -#: commands/copy.c:496 commands/copy.c:509 commands/copy.c:522 -#: commands/copy.c:541 +#: commands/copy.c:533 commands/copy.c:546 commands/copy.c:559 +#: commands/copy.c:578 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "argumentet till flaggan \"%s\" måste vara en lista med kolumnnamn" -#: commands/copy.c:553 +#: commands/copy.c:590 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "argumentet till flaggan \"%s\" måste vara ett giltigt kodningsnamn" -#: commands/copy.c:560 commands/dbcommands.c:849 commands/dbcommands.c:2270 +#: commands/copy.c:597 commands/dbcommands.c:849 commands/dbcommands.c:2270 #, c-format msgid "option \"%s\" not recognized" msgstr "flaggan \"%s\" känns inte igen" -#: commands/copy.c:572 +#: commands/copy.c:609 #, c-format msgid "cannot specify DELIMITER in BINARY mode" msgstr "kan inte ange DELIMITER i läget BINARY" -#: commands/copy.c:577 +#: commands/copy.c:614 #, c-format msgid "cannot specify NULL in BINARY mode" msgstr "kan inte ange NULL i läget BINARY" -#: commands/copy.c:599 +#: commands/copy.c:636 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "COPY-separatorn måste vara ett ensamt en-byte-tecken" -#: commands/copy.c:606 +#: commands/copy.c:643 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "COPY-separatorn kan inte vara nyradstecken eller vagnretur" -#: commands/copy.c:612 +#: commands/copy.c:649 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "null-representationen för COPY kan inte använda tecknen för nyrad eller vagnretur" -#: commands/copy.c:629 +#: commands/copy.c:666 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "COPY-separatorn kan inte vara \"%s\"" -#: commands/copy.c:635 +#: commands/copy.c:672 #, c-format msgid "cannot specify HEADER in BINARY mode" msgstr "kan inte ange HEADER i läget BINARY" -#: commands/copy.c:641 +#: commands/copy.c:678 #, c-format msgid "COPY quote available only in CSV mode" msgstr "COPY-quote kan bara användas i CSV-läge" -#: commands/copy.c:646 +#: commands/copy.c:683 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "COPY-quote måste vara ett ensamt en-byte-tecken" -#: commands/copy.c:651 +#: commands/copy.c:688 #, c-format msgid "COPY delimiter and quote must be different" msgstr "COPY-separator och quote måste vara olika" -#: commands/copy.c:657 +#: commands/copy.c:694 #, c-format msgid "COPY escape available only in CSV mode" msgstr "COPY-escape kan bara användas i CSV-läge" -#: commands/copy.c:662 +#: commands/copy.c:699 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "COPY-escape måste vara ett ensamt en-byte-tecken" -#: commands/copy.c:668 +#: commands/copy.c:705 #, c-format msgid "COPY force quote available only in CSV mode" msgstr "COPY-force-quote kan bara användas i CSV-läge" -#: commands/copy.c:672 +#: commands/copy.c:709 #, c-format msgid "COPY force quote only available using COPY TO" msgstr "COPY-force-quote kan bara användas med COPY TO" -#: commands/copy.c:678 +#: commands/copy.c:715 #, c-format msgid "COPY force not null available only in CSV mode" msgstr "COPY-force-not-null kan bara användas i CSV-läge" -#: commands/copy.c:682 +#: commands/copy.c:719 #, c-format msgid "COPY force not null only available using COPY FROM" msgstr "COPY-force-not-null kan bara används med COPY FROM" -#: commands/copy.c:688 +#: commands/copy.c:725 #, c-format msgid "COPY force null available only in CSV mode" msgstr "COPY-force-null kan bara användas i CSV-läge" -#: commands/copy.c:693 +#: commands/copy.c:730 #, c-format msgid "COPY force null only available using COPY FROM" msgstr "COPY-force-null kan bara används med COPY FROM" -#: commands/copy.c:699 +#: commands/copy.c:736 #, c-format msgid "COPY delimiter must not appear in the NULL specification" msgstr "COPY-avdelaren kan inte vara i NULL-specifikationen" -#: commands/copy.c:706 +#: commands/copy.c:743 #, c-format msgid "CSV quote character must not appear in the NULL specification" msgstr "CSV-citattecken kan inte vara i NULL-specifikationen" -#: commands/copy.c:767 +#: commands/copy.c:804 #, c-format msgid "column \"%s\" is a generated column" msgstr "kolumnen \"%s\" är en genererad kolumn" -#: commands/copy.c:769 +#: commands/copy.c:806 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Genererade kolumner kan inte användas i COPY." -#: commands/copy.c:784 commands/indexcmds.c:1833 commands/statscmds.c:243 +#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:263 #: commands/tablecmds.c:2393 commands/tablecmds.c:3049 #: commands/tablecmds.c:3558 parser/parse_relation.c:3669 #: parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 @@ -6785,7 +6813,7 @@ msgstr "Genererade kolumner kan inte användas i COPY." msgid "column \"%s\" does not exist" msgstr "kolumnen \"%s\" existerar inte" -#: commands/copy.c:791 commands/tablecmds.c:2419 commands/trigger.c:963 +#: commands/copy.c:828 commands/tablecmds.c:2419 commands/trigger.c:963 #: parser/parse_target.c:1093 parser/parse_target.c:1104 #, c-format msgid "column \"%s\" specified more than once" @@ -6866,7 +6894,7 @@ msgstr "FORCE_NOT_NULL-kolumnen \"%s\" refereras inte till av COPY" msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "FORCE_NULL-kolumnen \"%s\" refereras inte till av COPY" -#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:386 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "standardkonverteringsfunktion för kodning \"%s\" till \"%s\" finns inte" @@ -7452,7 +7480,7 @@ msgid "You must move them back to the database's default tablespace before using msgstr "Du måste flytta tillbaka dem till tabellens standard-tablespace innan du använder detta kommando." #: commands/dbcommands.c:2145 commands/dbcommands.c:2872 -#: commands/dbcommands.c:3172 commands/dbcommands.c:3286 +#: commands/dbcommands.c:3172 commands/dbcommands.c:3287 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "några värdelösa filer kan lämnas kvar i gammal databaskatalog \"%s\"" @@ -7592,7 +7620,7 @@ msgstr "jämförelse \"%s\" finns inte, hoppar över" msgid "conversion \"%s\" does not exist, skipping" msgstr "konvertering \"%s\" finns inte, hoppar över" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:675 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "statistikobjekt \"%s\" finns inte, hoppar över" @@ -8676,7 +8704,7 @@ msgstr "inkluderad kolumn stöder inte NULLS FIRST/LAST-flaggor" msgid "could not determine which collation to use for index expression" msgstr "kunde inte bestämma vilken jämförelse (collation) som skulle användas för indexuttryck" -#: commands/indexcmds.c:1969 commands/tablecmds.c:17805 commands/typecmds.c:807 +#: commands/indexcmds.c:1969 commands/tablecmds.c:17815 commands/typecmds.c:807 #: parser/parse_expr.c:2698 parser/parse_type.c:570 parser/parse_utilcmd.c:3823 #: utils/adt/misc.c:594 #, c-format @@ -8713,8 +8741,8 @@ msgstr "accessmetod \"%s\" stöder inte ASC/DESC-flaggor" msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "accessmetod \"%s\" stöder inte NULLS FIRST/LAST-flaggor" -#: commands/indexcmds.c:2151 commands/tablecmds.c:17830 -#: commands/tablecmds.c:17836 commands/typecmds.c:2302 +#: commands/indexcmds.c:2151 commands/tablecmds.c:17840 +#: commands/tablecmds.c:17846 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "datatyp %s har ingen standardoperatorklass för accessmetod \"%s\"" @@ -9128,7 +9156,7 @@ msgstr "join-uppskattningsfunktion %s måste returnera typ %s" msgid "operator attribute \"%s\" cannot be changed" msgstr "operatorattribut \"%s\" kan inte ändras" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:155 #: commands/tablecmds.c:1623 commands/tablecmds.c:2211 #: commands/tablecmds.c:3452 commands/tablecmds.c:6377 #: commands/tablecmds.c:9253 commands/tablecmds.c:17383 @@ -9230,188 +9258,188 @@ msgstr "preparerad sats \"%s\" finns inte" msgid "must be superuser to create custom procedural language" msgstr "måste vara en superuser för att skapa ett eget procedurspråk" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1222 -#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1703 +#: commands/publicationcmds.c:135 postmaster/postmaster.c:1224 +#: postmaster/postmaster.c:1323 utils/init/miscinit.c:1703 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "ogiltigt listsyntax för parameter \"%s\"" -#: commands/publicationcmds.c:149 +#: commands/publicationcmds.c:154 #, c-format msgid "unrecognized value for publication option \"%s\": \"%s\"" msgstr "okänt värde för publicerings-flagga \"%s\": \"%s\"" -#: commands/publicationcmds.c:163 +#: commands/publicationcmds.c:168 #, c-format msgid "unrecognized publication parameter: \"%s\"" msgstr "okänd publiceringsparameter: \"%s\"" -#: commands/publicationcmds.c:204 +#: commands/publicationcmds.c:209 #, c-format msgid "no schema has been selected for CURRENT_SCHEMA" msgstr "inget schema har valts som CURRENT_SCHEMA" -#: commands/publicationcmds.c:501 +#: commands/publicationcmds.c:506 msgid "System columns are not allowed." msgstr "Systemkolumner tillåts inte." -#: commands/publicationcmds.c:508 commands/publicationcmds.c:513 -#: commands/publicationcmds.c:530 +#: commands/publicationcmds.c:513 commands/publicationcmds.c:518 +#: commands/publicationcmds.c:535 msgid "User-defined operators are not allowed." msgstr "Användardefinierade operatorer tillåts inte." -#: commands/publicationcmds.c:554 +#: commands/publicationcmds.c:559 msgid "Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed." msgstr "Only kolumner, konstanter, inbyggda operatorer, inbyggda datatyper, inbyggda jämförelser och inbyggda immuterbara funktioner tillåts." -#: commands/publicationcmds.c:566 +#: commands/publicationcmds.c:571 msgid "User-defined types are not allowed." msgstr "Användadefinierade typer tillåts inte." -#: commands/publicationcmds.c:569 +#: commands/publicationcmds.c:574 msgid "User-defined or built-in mutable functions are not allowed." msgstr "Användardefinierade eller inbyggda muterbara funktioner tillåts inte." -#: commands/publicationcmds.c:572 +#: commands/publicationcmds.c:577 msgid "User-defined collations are not allowed." msgstr "Användardefinierade jämförelser (collation) tillåts inte." -#: commands/publicationcmds.c:582 +#: commands/publicationcmds.c:587 #, c-format msgid "invalid publication WHERE expression" msgstr "ogiltigt WHERE-uttryck för publicering" -#: commands/publicationcmds.c:635 +#: commands/publicationcmds.c:640 #, c-format msgid "cannot use publication WHERE clause for relation \"%s\"" msgstr "kan inte använda publicerings WHERE-klausul för relation \"%s\"" -#: commands/publicationcmds.c:637 +#: commands/publicationcmds.c:642 #, c-format msgid "WHERE clause cannot be used for a partitioned table when %s is false." msgstr "WHERE-klausul kan inte användas för en partitionerad tabell när %s är falsk." -#: commands/publicationcmds.c:708 commands/publicationcmds.c:722 +#: commands/publicationcmds.c:713 commands/publicationcmds.c:727 #, c-format msgid "cannot use column list for relation \"%s.%s\" in publication \"%s\"" msgstr "kan inte använda kolumnlista för relationen \"%s.%s\" i publiceringen \"%s\"" -#: commands/publicationcmds.c:711 +#: commands/publicationcmds.c:716 #, c-format msgid "Column lists cannot be specified in publications containing FOR TABLES IN SCHEMA elements." msgstr "Kolumnlistor kan inte anges i publiceringar som innehåller FOR TABLES IN SCHEMA." -#: commands/publicationcmds.c:725 +#: commands/publicationcmds.c:730 #, c-format msgid "Column lists cannot be specified for partitioned tables when %s is false." msgstr "Kolumnlista kan inte anges för partitionerade tabeller när %s är falsk." -#: commands/publicationcmds.c:760 +#: commands/publicationcmds.c:765 #, c-format msgid "must be superuser to create FOR ALL TABLES publication" msgstr "måste vara en superuser för att skapa en FOR ALL TABLES-publicering" -#: commands/publicationcmds.c:831 +#: commands/publicationcmds.c:836 #, c-format msgid "must be superuser to create FOR TABLES IN SCHEMA publication" msgstr "måste vara superuser för att skapa en FOR TABLES IN SCHEMA-publicering" -#: commands/publicationcmds.c:867 +#: commands/publicationcmds.c:872 #, c-format msgid "wal_level is insufficient to publish logical changes" msgstr "wal_level är otillräckligt för att publicera logiska ändringar" -#: commands/publicationcmds.c:868 +#: commands/publicationcmds.c:873 #, c-format msgid "Set wal_level to \"logical\" before creating subscriptions." msgstr "Sätt wal_level till \"logical\" innan prenumerationer skapas." -#: commands/publicationcmds.c:964 commands/publicationcmds.c:972 +#: commands/publicationcmds.c:969 commands/publicationcmds.c:977 #, c-format msgid "cannot set parameter \"%s\" to false for publication \"%s\"" msgstr "kan inte sätta parameter \"%s\" till falsk för publicering \"%s\"" -#: commands/publicationcmds.c:967 +#: commands/publicationcmds.c:972 #, c-format msgid "The publication contains a WHERE clause for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Publiceringen innehåller en WHERE-klausul för partitionerade tabellen \"%s\" som inte tillåts när \"%s\" ör falsk." -#: commands/publicationcmds.c:975 +#: commands/publicationcmds.c:980 #, c-format msgid "The publication contains a column list for partitioned table \"%s\", which is not allowed when \"%s\" is false." msgstr "Publiceringen innehåller en kolumnlista för den partitionerade tabellern \"%s\" som inte är tillåtet när \"%s\" är falsk." -#: commands/publicationcmds.c:1298 +#: commands/publicationcmds.c:1303 #, c-format msgid "cannot add schema to publication \"%s\"" msgstr "kan inte lägga till schema till publiceringen \"%s\"" -#: commands/publicationcmds.c:1300 +#: commands/publicationcmds.c:1305 #, c-format msgid "Schemas cannot be added if any tables that specify a column list are already part of the publication." msgstr "Scheman kan inte läggas till om tabeller med kolumnlistor redan är en del av publiceringen." -#: commands/publicationcmds.c:1348 +#: commands/publicationcmds.c:1353 #, c-format msgid "must be superuser to add or set schemas" msgstr "måste vara superuser för att lägga till ett sätta scheman" -#: commands/publicationcmds.c:1357 commands/publicationcmds.c:1365 +#: commands/publicationcmds.c:1362 commands/publicationcmds.c:1370 #, c-format msgid "publication \"%s\" is defined as FOR ALL TABLES" msgstr "publicering \"%s\" är definierad som FOR ALL TABLES" -#: commands/publicationcmds.c:1359 +#: commands/publicationcmds.c:1364 #, c-format msgid "Schemas cannot be added to or dropped from FOR ALL TABLES publications." msgstr "Scheman kan inte läggas till eller tas bort från FOR ALL TABLES-publiceringar." -#: commands/publicationcmds.c:1367 +#: commands/publicationcmds.c:1372 #, c-format msgid "Tables cannot be added to or dropped from FOR ALL TABLES publications." msgstr "Tabeller kan inte läggas till eller tas bort från FOR ALL TABLES-publiceringar." -#: commands/publicationcmds.c:1593 commands/publicationcmds.c:1656 +#: commands/publicationcmds.c:1598 commands/publicationcmds.c:1661 #, c-format msgid "conflicting or redundant WHERE clauses for table \"%s\"" msgstr "motstridiga eller redundanta WHERE-klausuler för tabellen \"%s\"" -#: commands/publicationcmds.c:1600 commands/publicationcmds.c:1668 +#: commands/publicationcmds.c:1605 commands/publicationcmds.c:1673 #, c-format msgid "conflicting or redundant column lists for table \"%s\"" msgstr "motstridiga eller redundanta kolumnlistor för tabellen \"%s\"" -#: commands/publicationcmds.c:1802 +#: commands/publicationcmds.c:1807 #, c-format msgid "column list must not be specified in ALTER PUBLICATION ... DROP" msgstr "kolumnlista får inte anges i ALTER PUBLICATION ... DROP" -#: commands/publicationcmds.c:1814 +#: commands/publicationcmds.c:1819 #, c-format msgid "relation \"%s\" is not part of the publication" msgstr "relation \"%s\" är inte en del av publiceringen" -#: commands/publicationcmds.c:1821 +#: commands/publicationcmds.c:1826 #, c-format msgid "cannot use a WHERE clause when removing a table from a publication" msgstr "kan inte använda en WHERE-sats när man tar bort en tabell från en publicering" -#: commands/publicationcmds.c:1881 +#: commands/publicationcmds.c:1886 #, c-format msgid "tables from schema \"%s\" are not part of the publication" msgstr "tabeller från schema \"%s\" är inte en del av publiceringen" -#: commands/publicationcmds.c:1924 commands/publicationcmds.c:1931 +#: commands/publicationcmds.c:1929 commands/publicationcmds.c:1936 #, c-format msgid "permission denied to change owner of publication \"%s\"" msgstr "rättighet saknas för att byta ägare på publicering \"%s\"" -#: commands/publicationcmds.c:1926 +#: commands/publicationcmds.c:1931 #, c-format msgid "The owner of a FOR ALL TABLES publication must be a superuser." msgstr "Ägaren av en FOR ALL TABLES-publicering måste vara en superuser." -#: commands/publicationcmds.c:1933 +#: commands/publicationcmds.c:1938 #, c-format msgid "The owner of a FOR TABLES IN SCHEMA publication must be a superuser." msgstr "Ägaren av en FOR TABLES IN SCHEMA-publicering måste vara en superuser." @@ -9587,72 +9615,72 @@ msgstr "bara en enda relation tillåts i CREATE STATISTICS" msgid "cannot define statistics for relation \"%s\"" msgstr "kan inte definiera statistik för relationen \"%s\"" -#: commands/statscmds.c:191 +#: commands/statscmds.c:211 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "statistikobjekt \"%s\" finns redan, hoppar över" -#: commands/statscmds.c:199 +#: commands/statscmds.c:219 #, c-format msgid "statistics object \"%s\" already exists" msgstr "statistikobjekt \"%s\" finns redan" -#: commands/statscmds.c:210 +#: commands/statscmds.c:230 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "kan inte ha mer än %d kolumner i statistiken" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:271 commands/statscmds.c:294 commands/statscmds.c:328 #, c-format msgid "statistics creation on system columns is not supported" msgstr "skapa statistik för systemkolumner stöds inte" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:278 commands/statscmds.c:301 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "kolumnen \"%s\" kan inte användas i statistiken då dess typ %s inte har någon standard btree-operatorklass" -#: commands/statscmds.c:325 +#: commands/statscmds.c:345 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "uttryck kan inte användas i multivariat statistik då dess type %s inte har någon default btree operatorklass" -#: commands/statscmds.c:346 +#: commands/statscmds.c:366 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "vid skapande av statistik för ett ensamt uttryck så kan inte statistiktyp anges" -#: commands/statscmds.c:375 +#: commands/statscmds.c:395 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "okänd statistiktyp \"%s\"" -#: commands/statscmds.c:404 +#: commands/statscmds.c:424 #, c-format msgid "extended statistics require at least 2 columns" msgstr "utökad statistik kräver minst två kolumner" -#: commands/statscmds.c:422 +#: commands/statscmds.c:442 #, c-format msgid "duplicate column name in statistics definition" msgstr "duplicerade kolumnnamn i statistikdefinition" -#: commands/statscmds.c:457 +#: commands/statscmds.c:477 #, c-format msgid "duplicate expression in statistics definition" msgstr "duplicerade uttryck i statistikdefinition" -#: commands/statscmds.c:620 commands/tablecmds.c:8217 +#: commands/statscmds.c:640 commands/tablecmds.c:8217 #, c-format msgid "statistics target %d is too low" msgstr "statistikmålet %d är för lågt" -#: commands/statscmds.c:628 commands/tablecmds.c:8225 +#: commands/statscmds.c:648 commands/tablecmds.c:8225 #, c-format msgid "lowering statistics target to %d" msgstr "minskar statistikmålet till %d" -#: commands/statscmds.c:651 +#: commands/statscmds.c:671 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "statistikobjekt \"%s.%s\" finns inte, hoppar över" @@ -9813,7 +9841,7 @@ msgid "could not receive list of replicated tables from the publisher: %s" msgstr "kunde inte ta emot lista med replikerade tabeller från publiceraren: %s" #: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 -#: replication/pgoutput/pgoutput.c:1098 +#: replication/pgoutput/pgoutput.c:1114 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "kunde inte ha olika kolumnlistor för tabellen \"%s.%s\" i olika publiceringar" @@ -9905,7 +9933,7 @@ msgstr "materialiserad vy \"%s\" finns inte, hoppar över" msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Använd DROP MATERIALIZED VIEW för att ta bort en materialiserad vy." -#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19411 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19425 #: parser/parse_utilcmd.c:2305 #, c-format msgid "index \"%s\" does not exist" @@ -10744,13 +10772,6 @@ msgstr "kan inte ändra kolumntyp på typad tabell" msgid "cannot specify USING when altering type of generated column" msgstr "kan inte ange USING när man ändrar typ på en genererad kolumn" -#: commands/tablecmds.c:12461 commands/tablecmds.c:17648 -#: commands/tablecmds.c:17738 commands/trigger.c:668 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "Kolumnen \"%s\" är en genererad kolumn." - #: commands/tablecmds.c:12471 #, c-format msgid "cannot alter inherited column \"%s\"" @@ -10940,12 +10961,12 @@ msgstr "kan inte ärva av en temporär tabell för en annan session" msgid "cannot inherit from a partition" msgstr "kan inte ärva från en partition" -#: commands/tablecmds.c:15234 commands/tablecmds.c:18149 +#: commands/tablecmds.c:15234 commands/tablecmds.c:18159 #, c-format msgid "circular inheritance not allowed" msgstr "cirkulärt arv är inte tillåtet" -#: commands/tablecmds.c:15235 commands/tablecmds.c:18150 +#: commands/tablecmds.c:15235 commands/tablecmds.c:18160 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" är redan ett barn till \"%s\"" @@ -11160,164 +11181,164 @@ msgstr "kolumn \"%s\" angiven i partitioneringsnyckel existerar inte" msgid "cannot use system column \"%s\" in partition key" msgstr "kan inte använda systemkolumn \"%s\" i partitioneringsnyckel" -#: commands/tablecmds.c:17647 commands/tablecmds.c:17737 +#: commands/tablecmds.c:17647 commands/tablecmds.c:17726 #, c-format msgid "cannot use generated column in partition key" msgstr "kan inte använda genererad kolumn i partitioneringsnyckel" -#: commands/tablecmds.c:17720 +#: commands/tablecmds.c:17716 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "partitioneringsnyckeluttryck kan inte innehålla systemkolumnreferenser" -#: commands/tablecmds.c:17767 +#: commands/tablecmds.c:17777 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "funktioner i partitioneringsuttryck måste vara markerade IMMUTABLE" -#: commands/tablecmds.c:17776 +#: commands/tablecmds.c:17786 #, c-format msgid "cannot use constant expression as partition key" msgstr "kan inte använda konstant uttryck som partitioneringsnyckel" -#: commands/tablecmds.c:17797 +#: commands/tablecmds.c:17807 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "kunde inte lista vilken jämförelse (collation) som skulle användas för partitionsuttryck" -#: commands/tablecmds.c:17832 +#: commands/tablecmds.c:17842 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Du måste ange en hash-operatorklass eller definiera en default hash-operatorklass för datatypen." -#: commands/tablecmds.c:17838 +#: commands/tablecmds.c:17848 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Du måste ange en btree-operatorklass eller definiera en default btree-operatorklass för datatypen." -#: commands/tablecmds.c:18089 +#: commands/tablecmds.c:18099 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" är redan en partition" -#: commands/tablecmds.c:18095 +#: commands/tablecmds.c:18105 #, c-format msgid "cannot attach a typed table as partition" msgstr "kan inte ansluta en typad tabell som partition" -#: commands/tablecmds.c:18111 +#: commands/tablecmds.c:18121 #, c-format msgid "cannot attach inheritance child as partition" msgstr "kan inte ansluta ett arvsbarn som partition" -#: commands/tablecmds.c:18125 +#: commands/tablecmds.c:18135 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "kan inte ansluta en arvsförälder som partition" -#: commands/tablecmds.c:18159 +#: commands/tablecmds.c:18169 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "kan inte ansluta en temporär relation som partition till en permanent relation \"%s\"" -#: commands/tablecmds.c:18167 +#: commands/tablecmds.c:18177 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "kan inte ansluta en permanent relation som partition till en temporär relation \"%s\"" -#: commands/tablecmds.c:18175 +#: commands/tablecmds.c:18185 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "kan inte ansluta en partition från en temporär relation som tillhör en annan session" -#: commands/tablecmds.c:18182 +#: commands/tablecmds.c:18192 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "kan inte ansluta en temporär relation tillhörande en annan session som partition" -#: commands/tablecmds.c:18202 +#: commands/tablecmds.c:18212 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "tabell \"%s\" innehåller kolumn \"%s\" som inte finns i föräldern \"%s\"" -#: commands/tablecmds.c:18205 +#: commands/tablecmds.c:18215 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Den nya partitionen får bara innehålla kolumner som finns i föräldern." -#: commands/tablecmds.c:18217 +#: commands/tablecmds.c:18227 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "trigger \"%s\" förhindrar att tabell \"%s\" blir en partition" -#: commands/tablecmds.c:18219 +#: commands/tablecmds.c:18229 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "ROW-triggrar med övergångstabeller stöds inte för partitioner." -#: commands/tablecmds.c:18398 +#: commands/tablecmds.c:18408 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "kan inte ansluta främmande tabell \"%s\" som en partition till partitionerad tabell \"%s\"" -#: commands/tablecmds.c:18401 +#: commands/tablecmds.c:18411 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Partitionerad tabell \"%s\" innehåller unika index." -#: commands/tablecmds.c:18716 +#: commands/tablecmds.c:18727 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "kan inte parallellt koppla bort en partitionerad tabell när en default-partition finns" -#: commands/tablecmds.c:18825 +#: commands/tablecmds.c:18839 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "partitionerad tabell \"%s\" togs bort parallellt" -#: commands/tablecmds.c:18831 +#: commands/tablecmds.c:18845 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "partition \"%s\" togs bort parallellt" -#: commands/tablecmds.c:19445 commands/tablecmds.c:19465 -#: commands/tablecmds.c:19485 commands/tablecmds.c:19504 -#: commands/tablecmds.c:19546 +#: commands/tablecmds.c:19459 commands/tablecmds.c:19479 +#: commands/tablecmds.c:19499 commands/tablecmds.c:19518 +#: commands/tablecmds.c:19560 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "kan inte ansluta index \"%s\" som en partition till index \"%s\"" -#: commands/tablecmds.c:19448 +#: commands/tablecmds.c:19462 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Index \"%s\" är redan ansluten till ett annat index." -#: commands/tablecmds.c:19468 +#: commands/tablecmds.c:19482 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Index \"%s\" är inte ett index för någon partition av tabell \"%s\"." -#: commands/tablecmds.c:19488 +#: commands/tablecmds.c:19502 #, c-format msgid "The index definitions do not match." msgstr "Indexdefinitionerna matchar inte." -#: commands/tablecmds.c:19507 +#: commands/tablecmds.c:19521 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "Indexet \"%s\" tillhör ett villkor på tabell \"%s\" men det finns inga villkor för indexet \"%s\"." -#: commands/tablecmds.c:19549 +#: commands/tablecmds.c:19563 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Ett annat index är redan anslutet för partition \"%s\"." -#: commands/tablecmds.c:19786 +#: commands/tablecmds.c:19800 #, c-format msgid "column data type %s does not support compression" msgstr "kolumndatatypen %s stöder inte komprimering" -#: commands/tablecmds.c:19793 +#: commands/tablecmds.c:19807 #, c-format msgid "invalid compression method \"%s\"" msgstr "ogiltig komprimeringsmetod \"%s\"" @@ -11705,8 +11726,8 @@ msgstr "kan inte samla in övergångstupler från främmande barntabeller" #: commands/trigger.c:3472 executor/nodeModifyTable.c:1543 #: executor/nodeModifyTable.c:1617 executor/nodeModifyTable.c:2384 -#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3036 -#: executor/nodeModifyTable.c:3175 +#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3027 +#: executor/nodeModifyTable.c:3166 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Överväg att använda en AFTER-trigger istället för en BEFORE-trigger för att propagera ändringar till andra rader." @@ -11720,23 +11741,23 @@ msgid "could not serialize access due to concurrent update" msgstr "kunde inte serialisera åtkomst på grund av samtidig uppdatering" #: commands/trigger.c:3521 executor/nodeModifyTable.c:1649 -#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2649 -#: executor/nodeModifyTable.c:3054 +#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2641 +#: executor/nodeModifyTable.c:3045 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "kunde inte serialisera åtkomst på grund av samtidig borttagning" -#: commands/trigger.c:4730 +#: commands/trigger.c:4714 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "kan inte trigga uppskjuten trigger i en säkerhetsbegränsad operation" -#: commands/trigger.c:5911 +#: commands/trigger.c:5932 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "integritetsvillkor \"%s\" är inte \"deferrable\"" -#: commands/trigger.c:5934 +#: commands/trigger.c:5955 #, c-format msgid "constraint \"%s\" does not exist" msgstr "integritetsvillkor \"%s\" existerar inte" @@ -12380,107 +12401,107 @@ msgstr "roll \"%s\" är redan en medlem i rollen \"%s\"" msgid "role \"%s\" is not a member of role \"%s\"" msgstr "roll \"%s\" är inte en medlem i rollen \"%s\"" -#: commands/vacuum.c:140 +#: commands/vacuum.c:141 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "okänd ANALYZE-flagga \"%s\"" -#: commands/vacuum.c:178 +#: commands/vacuum.c:179 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "parallell-flaggan kräver ett värde mellan 0 och %d" -#: commands/vacuum.c:190 +#: commands/vacuum.c:191 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "parallella arbetare för vacuum måste vara mellan 0 och %d" -#: commands/vacuum.c:207 +#: commands/vacuum.c:208 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "okänd VACUUM-flagga \"%s\"" -#: commands/vacuum.c:230 +#: commands/vacuum.c:231 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "'VACUUM FULL kan inte köras parallellt" -#: commands/vacuum.c:246 +#: commands/vacuum.c:247 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "ANALYZE-flaggan måste anges när en kolumnlista används" -#: commands/vacuum.c:336 +#: commands/vacuum.c:337 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s kan inte köras från VACUUM eller ANALYZE" -#: commands/vacuum.c:346 +#: commands/vacuum.c:347 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "VACUUM-flagga DISABLE_PAGE_SKIPPING kan inte anges med FULL" -#: commands/vacuum.c:353 +#: commands/vacuum.c:354 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "PROCESS_TOAST krävs med VACUUM FULL" -#: commands/vacuum.c:596 +#: commands/vacuum.c:597 #, c-format msgid "skipping \"%s\" --- only superuser can vacuum it" msgstr "hoppar över \"%s\" --- bara en superuser kan städa den" -#: commands/vacuum.c:600 +#: commands/vacuum.c:601 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" msgstr "hoppar över \"%s\" --- bara en superuser eller databasägaren kan städa den" -#: commands/vacuum.c:604 +#: commands/vacuum.c:605 #, c-format msgid "skipping \"%s\" --- only table or database owner can vacuum it" msgstr "hoppar över \"%s\" --- bara tabell eller databasägaren kan köra vacuum på den" -#: commands/vacuum.c:619 +#: commands/vacuum.c:620 #, c-format msgid "skipping \"%s\" --- only superuser can analyze it" msgstr "hoppar över \"%s\" --- bara superuser kan analysera den" -#: commands/vacuum.c:623 +#: commands/vacuum.c:624 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can analyze it" msgstr "hoppar över \"%s\" --- bara superuser eller databasägaren kan analysera den" -#: commands/vacuum.c:627 +#: commands/vacuum.c:628 #, c-format msgid "skipping \"%s\" --- only table or database owner can analyze it" msgstr "hoppar över \"%s\" --- bara tabell eller databasägaren kan analysera den" -#: commands/vacuum.c:706 commands/vacuum.c:802 +#: commands/vacuum.c:707 commands/vacuum.c:803 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "hoppar över vacuum av \"%s\" --- lås ej tillgängligt" -#: commands/vacuum.c:711 +#: commands/vacuum.c:712 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "hoppar över vacuum av \"%s\" --- relationen finns inte längre" -#: commands/vacuum.c:727 commands/vacuum.c:807 +#: commands/vacuum.c:728 commands/vacuum.c:808 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "hoppar över analys av \"%s\" --- lås ej tillgängligt" -#: commands/vacuum.c:732 +#: commands/vacuum.c:733 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "hoppar över analys av \"%s\" --- relationen finns inte längre" -#: commands/vacuum.c:1051 +#: commands/vacuum.c:1052 #, c-format msgid "oldest xmin is far in the past" msgstr "äldsta xmin är från lång tid tillbaka" -#: commands/vacuum.c:1052 +#: commands/vacuum.c:1053 #, c-format msgid "" "Close open transactions soon to avoid wraparound problems.\n" @@ -12489,42 +12510,42 @@ msgstr "" "Stäng öppna transaktioner för att undvika problem med wraparound.\n" "Du kan också behöva commit:a eller rulla tillbaka gamla förberedda transaktiooner alternativt slänga stillastående replikeringsslottar." -#: commands/vacuum.c:1095 +#: commands/vacuum.c:1096 #, c-format msgid "oldest multixact is far in the past" msgstr "äldsta multixact är från lång tid tillbaka" -#: commands/vacuum.c:1096 +#: commands/vacuum.c:1097 #, c-format msgid "Close open transactions with multixacts soon to avoid wraparound problems." msgstr "Stäng öppna transaktioner med multixacts snart för att undvika \"wraparound\"." -#: commands/vacuum.c:1830 +#: commands/vacuum.c:1831 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "några databaser har inte städats (vacuum) på över 2 miljarder transaktioner" -#: commands/vacuum.c:1831 +#: commands/vacuum.c:1832 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Du kan redan ha fått dataförlust på grund av transaktions-wraparound." -#: commands/vacuum.c:2006 +#: commands/vacuum.c:2013 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "hoppar över \"%s\" --- kan inte köra vacuum på icke-tabeller eller speciella systemtabeller" -#: commands/vacuum.c:2384 +#: commands/vacuum.c:2391 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "genomsökte index \"%s\" och tog bort %d radversioner" -#: commands/vacuum.c:2403 +#: commands/vacuum.c:2410 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "index \"%s\" innehåller nu %.0f radversioner i %u sidor" -#: commands/vacuum.c:2407 +#: commands/vacuum.c:2414 #, c-format msgid "" "%.0f index row versions were removed.\n" @@ -12786,7 +12807,7 @@ msgstr "Fråga levererar ett värde för en borttagen kolumn vid position %d." msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "Tabellen har typ %s vid position %d, men frågan förväntar sig %s." -#: executor/execExpr.c:1098 parser/parse_agg.c:861 +#: executor/execExpr.c:1098 parser/parse_agg.c:888 #, c-format msgid "window function calls cannot be nested" msgstr "fönsterfunktionanrop kan inte nästlas" @@ -12963,38 +12984,38 @@ msgstr "kan inte ändra sekvens \"%s\"" msgid "cannot change TOAST relation \"%s\"" msgstr "kan inte ändra TOAST-relation \"%s\"" -#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3149 -#: rewrite/rewriteHandler.c:4037 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3152 +#: rewrite/rewriteHandler.c:4057 #, c-format msgid "cannot insert into view \"%s\"" msgstr "kan inte sätta in i vy \"%s\"" -#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3152 -#: rewrite/rewriteHandler.c:4040 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:4060 #, c-format msgid "To enable inserting into the view, provide an INSTEAD OF INSERT trigger or an unconditional ON INSERT DO INSTEAD rule." msgstr "För att tillåta insättning i en vy så skapa en INSTEAD OF INSERT-trigger eller en villkorslös ON INSERT DO INSTEAD-regel." -#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3157 -#: rewrite/rewriteHandler.c:4045 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3160 +#: rewrite/rewriteHandler.c:4065 #, c-format msgid "cannot update view \"%s\"" msgstr "kan inte uppdatera vy \"%s\"" -#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3160 -#: rewrite/rewriteHandler.c:4048 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:4068 #, c-format msgid "To enable updating the view, provide an INSTEAD OF UPDATE trigger or an unconditional ON UPDATE DO INSTEAD rule." msgstr "För att tillåta uppdatering av en vy så skapa en INSTEAD OF UPDATE-trigger eller en villkorslös ON UPDATE DO INSTEAD-regel." -#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3165 -#: rewrite/rewriteHandler.c:4053 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3168 +#: rewrite/rewriteHandler.c:4073 #, c-format msgid "cannot delete from view \"%s\"" msgstr "kan inte radera från vy \"%s\"" -#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3168 -#: rewrite/rewriteHandler.c:4056 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3171 +#: rewrite/rewriteHandler.c:4076 #, c-format msgid "To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule." msgstr "För att tillåta bortagning i en vy så skapa en INSTEAD OF DELETE-trigger eller en villkorslös ON DELETE DO INSTEAD-regel." @@ -13059,7 +13080,7 @@ msgstr "kan inte låsa rader i vy \"%s\"" msgid "cannot lock rows in materialized view \"%s\"" msgstr "kan inte låsa rader i materialiserad vy \"%s\"" -#: executor/execMain.c:1215 executor/execMain.c:2732 +#: executor/execMain.c:1215 executor/execMain.c:2742 #: executor/nodeLockRows.c:136 #, c-format msgid "cannot lock rows in foreign table \"%s\"" @@ -13070,58 +13091,58 @@ msgstr "kan inte låsa rader i främmande tabell \"%s\"" msgid "cannot lock rows in relation \"%s\"" msgstr "kan inte låsa rader i relation \"%s\"" -#: executor/execMain.c:1933 +#: executor/execMain.c:1943 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "ny rad för relation \"%s\" bryter mot partitionesvillkoret" -#: executor/execMain.c:1935 executor/execMain.c:2018 executor/execMain.c:2068 -#: executor/execMain.c:2177 +#: executor/execMain.c:1945 executor/execMain.c:2028 executor/execMain.c:2078 +#: executor/execMain.c:2187 #, c-format msgid "Failing row contains %s." msgstr "Misslyckande rad innehåller %s." -#: executor/execMain.c:2015 +#: executor/execMain.c:2025 #, c-format msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "null-värde i kolumn \"%s\" i relation \"%s\" bryter mot not-null-villkoret" -#: executor/execMain.c:2066 +#: executor/execMain.c:2076 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "ny rad för relation \"%s\" bryter mot check-villkor \"%s\"" -#: executor/execMain.c:2175 +#: executor/execMain.c:2185 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "ny rad bryter mot check-villkor för vy \"%s\"" -#: executor/execMain.c:2185 +#: executor/execMain.c:2195 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "ny rad bryter mot radsäkerhetspolicy \"%s\" i tabell \"%s\"" -#: executor/execMain.c:2190 +#: executor/execMain.c:2200 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "ny rad bryter mot radsäkerhetspolicy i tabell \"%s\"" -#: executor/execMain.c:2198 +#: executor/execMain.c:2208 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "målraden bryter mot radsäkerhetspolicyen \"%s\" (USING-uttryck) i tabellen \"%s\"" -#: executor/execMain.c:2203 +#: executor/execMain.c:2213 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "målraden bryter mot radsäkerhetspolicyn (USING-uttryck) i tabellen \"%s\"" -#: executor/execMain.c:2210 +#: executor/execMain.c:2220 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "ny rad bryter mot radsäkerhetspolicy \"%s\" (USING-uttryck) i tabell \"%s\"" -#: executor/execMain.c:2215 +#: executor/execMain.c:2225 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "ny rad bryter mot radsäkerhetspolicy (USING-uttryck) i tabell \"%s\"" @@ -13347,7 +13368,7 @@ msgstr "returtyp %s stöds inte för SQL-funktioner" msgid "aggregate %u needs to have compatible input type and transition type" msgstr "aggregat %u måste ha kompatibel indatatyp och övergångstyp" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:677 parser/parse_agg.c:705 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:684 parser/parse_agg.c:727 #, c-format msgid "aggregate function calls cannot be nested" msgstr "aggregatfunktionsanrop kan inte nästlas" @@ -13433,8 +13454,8 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "Överväg att skapa den främmande nyckeln på tabellen \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3042 -#: executor/nodeModifyTable.c:3181 +#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3033 +#: executor/nodeModifyTable.c:3172 #, c-format msgid "%s command cannot affect row a second time" msgstr "%s-kommandot kan inte påverka raden en andra gång" @@ -13444,17 +13465,17 @@ msgstr "%s-kommandot kan inte påverka raden en andra gång" msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Säkerställ att inga rader föreslagna för \"insert\" inom samma kommando har upprepade villkorsvärden." -#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 +#: executor/nodeModifyTable.c:3026 executor/nodeModifyTable.c:3165 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "tupel som skall uppdateras eller raderas hade redan ändrats av en operation som triggats av aktuellt kommando" -#: executor/nodeModifyTable.c:3044 executor/nodeModifyTable.c:3183 +#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Säkerställ att inte mer än en källrad matchar någon målrad." -#: executor/nodeModifyTable.c:3133 +#: executor/nodeModifyTable.c:3124 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "tupel som skall raderas har redan flyttats till en annan partition på grund av samtidig update" @@ -13576,7 +13597,7 @@ msgstr "kan inte öppna %s-fråga som markör" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE stöds inte" -#: executor/spi.c:1720 parser/analyze.c:2910 +#: executor/spi.c:1720 parser/analyze.c:2911 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Scrollbara markörer måste vara READ ONLY." @@ -16152,7 +16173,7 @@ msgstr "%s kan inte appliceras på den nullbara sidan av en outer join" #. translator: %s is a SQL row locking clause such as FOR UPDATE #: optimizer/plan/planner.c:1374 parser/analyze.c:1763 parser/analyze.c:2019 -#: parser/analyze.c:3201 +#: parser/analyze.c:3202 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s tillåts inte med UNION/INTERSECT/EXCEPT" @@ -16224,22 +16245,22 @@ msgstr "kan inte öppna relationen \"%s\"" msgid "cannot access temporary or unlogged relations during recovery" msgstr "kan inte accessa temporära eller ologgade relationer under återställning" -#: optimizer/util/plancat.c:705 +#: optimizer/util/plancat.c:710 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "inferens av unikt index för hel rad stöds inte" -#: optimizer/util/plancat.c:722 +#: optimizer/util/plancat.c:727 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "villkor för ON CONFLICT-klausul har inget associerat index" -#: optimizer/util/plancat.c:772 +#: optimizer/util/plancat.c:777 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE stöds inte med uteslutningsvillkor" -#: optimizer/util/plancat.c:882 +#: optimizer/util/plancat.c:887 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "finns inget unik eller uteslutningsvillkor som matchar ON CONFLICT-specifikationen" @@ -16270,7 +16291,7 @@ msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO tillåts inte här" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1666 parser/analyze.c:3412 +#: parser/analyze.c:1666 parser/analyze.c:3413 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s kan inte appliceras på VÄRDEN" @@ -16323,467 +16344,477 @@ msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "variabeln \"%s\" har typ %s men uttrycket har typ %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2860 parser/analyze.c:2868 +#: parser/analyze.c:2861 parser/analyze.c:2869 #, c-format msgid "cannot specify both %s and %s" msgstr "kan inte ange både %s och %s" -#: parser/analyze.c:2888 +#: parser/analyze.c:2889 #, c-format msgid "DECLARE CURSOR must not contain data-modifying statements in WITH" msgstr "DECLARE CURSOR får inte innehålla datamodifierande satser i WITH" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2896 +#: parser/analyze.c:2897 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s stöds inte" -#: parser/analyze.c:2899 +#: parser/analyze.c:2900 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Hållbara markörer måste vara READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2907 +#: parser/analyze.c:2908 #, c-format msgid "DECLARE SCROLL CURSOR ... %s is not supported" msgstr "DECLARE SCROLL CURSOR ... %s stöds inte" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2918 +#: parser/analyze.c:2919 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s är inte giltig" -#: parser/analyze.c:2921 +#: parser/analyze.c:2922 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Okänsliga markörer måste vara READ ONLY." -#: parser/analyze.c:2987 +#: parser/analyze.c:2988 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "materialiserade vyer får inte innehålla datamodifierande satser i WITH" -#: parser/analyze.c:2997 +#: parser/analyze.c:2998 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "materialiserade vyer får inte använda temporära tabeller eller vyer" -#: parser/analyze.c:3007 +#: parser/analyze.c:3008 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "materialiserade vyer kan inte defineras med bundna parametrar" -#: parser/analyze.c:3019 +#: parser/analyze.c:3020 #, c-format msgid "materialized views cannot be unlogged" msgstr "materialiserad vyer kan inte vara ologgade" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3208 +#: parser/analyze.c:3209 #, c-format msgid "%s is not allowed with DISTINCT clause" msgstr "%s tillåts inte med DISTINCT-klausul" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3215 +#: parser/analyze.c:3216 #, c-format msgid "%s is not allowed with GROUP BY clause" msgstr "%s tillåts inte med GROUP BY-klausul" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3222 +#: parser/analyze.c:3223 #, c-format msgid "%s is not allowed with HAVING clause" msgstr "%s tillåts inte med HAVING-klausul" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3229 +#: parser/analyze.c:3230 #, c-format msgid "%s is not allowed with aggregate functions" msgstr "%s tillåts inte med aggregatfunktioner" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3236 +#: parser/analyze.c:3237 #, c-format msgid "%s is not allowed with window functions" msgstr "%s tillåts inte med fönsterfunktioner" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3243 +#: parser/analyze.c:3244 #, c-format msgid "%s is not allowed with set-returning functions in the target list" msgstr "%s tillåts inte med mängdreturnerande funktioner i mållistan" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3335 +#: parser/analyze.c:3336 #, c-format msgid "%s must specify unqualified relation names" msgstr "%s: måste ange okvalificerade relationsnamn" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3385 +#: parser/analyze.c:3386 #, c-format msgid "%s cannot be applied to a join" msgstr "%s kan inte appliceras på en join" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3394 +#: parser/analyze.c:3395 #, c-format msgid "%s cannot be applied to a function" msgstr "%s kan inte appliceras på en funktion" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3403 +#: parser/analyze.c:3404 #, c-format msgid "%s cannot be applied to a table function" msgstr "%s kan inte appliceras på tabellfunktion" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3421 +#: parser/analyze.c:3422 #, c-format msgid "%s cannot be applied to a WITH query" msgstr "%s kan inte appliceras på en WITH-fråga" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3430 +#: parser/analyze.c:3431 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s kan inte appliceras på en namngiven tupellagring" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3450 +#: parser/analyze.c:3451 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "relationen \"%s\" i %s-klausul hittades inte i FROM-klausul" -#: parser/parse_agg.c:208 parser/parse_oper.c:227 +#: parser/parse_agg.c:211 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "kunde inte hitta en ordningsoperator för typ %s" -#: parser/parse_agg.c:210 +#: parser/parse_agg.c:213 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Aggregat med DISTINCT måste kunna sortera sina indata." -#: parser/parse_agg.c:268 +#: parser/parse_agg.c:271 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING måste ha färre än 32 argument" -#: parser/parse_agg.c:371 +#: parser/parse_agg.c:375 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "aggregatfunktioner tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:377 msgid "grouping operations are not allowed in JOIN conditions" msgstr "gruppoperationer tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:387 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "aggregatfunktioner tillåts inte i FROM-klausul på sin egen frågenivå" -#: parser/parse_agg.c:385 +#: parser/parse_agg.c:389 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "gruppoperationer tillåts inte i FROM-klausul på sin egen frågenivå" -#: parser/parse_agg.c:390 +#: parser/parse_agg.c:394 msgid "aggregate functions are not allowed in functions in FROM" msgstr "aggregatfunktioner tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:396 msgid "grouping operations are not allowed in functions in FROM" msgstr "gruppoperationer tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:400 +#: parser/parse_agg.c:404 msgid "aggregate functions are not allowed in policy expressions" msgstr "aggregatfunktioner tillåts inte i policyuttryck" -#: parser/parse_agg.c:402 +#: parser/parse_agg.c:406 msgid "grouping operations are not allowed in policy expressions" msgstr "gruppoperationer tillåts inte i policyuttryck" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:423 msgid "aggregate functions are not allowed in window RANGE" msgstr "aggregatfunktioner tillåts inte i fönster-RANGE" -#: parser/parse_agg.c:421 +#: parser/parse_agg.c:425 msgid "grouping operations are not allowed in window RANGE" msgstr "grupperingsoperationer tillåts inte i fönster-RANGE" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:430 msgid "aggregate functions are not allowed in window ROWS" msgstr "aggregatfunktioner tillåts inte i fönster-RADER" -#: parser/parse_agg.c:428 +#: parser/parse_agg.c:432 msgid "grouping operations are not allowed in window ROWS" msgstr "grupperingsfunktioner tillåts inte i fönster-RADER" -#: parser/parse_agg.c:433 +#: parser/parse_agg.c:437 msgid "aggregate functions are not allowed in window GROUPS" msgstr "aggregatfunktioner tillåts inte i fönster-GROUPS" -#: parser/parse_agg.c:435 +#: parser/parse_agg.c:439 msgid "grouping operations are not allowed in window GROUPS" msgstr "grupperingsfunktioner tillåts inte i fönster-GROUPS" -#: parser/parse_agg.c:448 +#: parser/parse_agg.c:452 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "aggregatfunktioner tillåts inte i MERGE WHEN-villkor" -#: parser/parse_agg.c:450 +#: parser/parse_agg.c:454 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "gruppoperationer tillåts inte i MERGE WHEN-villkor" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:480 msgid "aggregate functions are not allowed in check constraints" msgstr "aggregatfunktioner tillåts inte i check-villkor" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:482 msgid "grouping operations are not allowed in check constraints" msgstr "gruppoperationer tillåts inte i check-villkor" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:489 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "aggregatfunktioner tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:487 +#: parser/parse_agg.c:491 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "grupperingsoperationer tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:496 msgid "aggregate functions are not allowed in index expressions" msgstr "aggregatfunktioner tillåts inte i indexuttryck" -#: parser/parse_agg.c:494 +#: parser/parse_agg.c:498 msgid "grouping operations are not allowed in index expressions" msgstr "gruppoperationer tillåts inte i indexuttryck" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:503 msgid "aggregate functions are not allowed in index predicates" msgstr "aggregatfunktionsanrop tillåts inte i indexpredikat" -#: parser/parse_agg.c:501 +#: parser/parse_agg.c:505 msgid "grouping operations are not allowed in index predicates" msgstr "gruppoperationer tillåts inte i indexpredikat" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:510 msgid "aggregate functions are not allowed in statistics expressions" msgstr "aggregatfunktioner tillåts inte i statistikuttryck" -#: parser/parse_agg.c:508 +#: parser/parse_agg.c:512 msgid "grouping operations are not allowed in statistics expressions" msgstr "gruppoperationer tillåts inte i statistikuttryck" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:517 msgid "aggregate functions are not allowed in transform expressions" msgstr "aggregatfunktioner tillåts inte i transform-uttryck" -#: parser/parse_agg.c:515 +#: parser/parse_agg.c:519 msgid "grouping operations are not allowed in transform expressions" msgstr "gruppoperationer tillåts inte i transforme-uttryck" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:524 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "aggregatfunktioner tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:522 +#: parser/parse_agg.c:526 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "gruppoperationer tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:531 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "aggregatfunktioner tillåts inte i WHEN-villkor" -#: parser/parse_agg.c:529 +#: parser/parse_agg.c:533 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "gruppoperationer tillåts inte i WHEN-villkor" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:538 msgid "aggregate functions are not allowed in partition bound" msgstr "aggregatfunktioner tillåts inte i partitionsgräns" -#: parser/parse_agg.c:536 +#: parser/parse_agg.c:540 msgid "grouping operations are not allowed in partition bound" msgstr "gruppoperationer tillåts inte i partitionsgräns" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:545 msgid "aggregate functions are not allowed in partition key expressions" msgstr "aggregatfunktioner tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:547 msgid "grouping operations are not allowed in partition key expressions" msgstr "gruppoperationer tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:553 msgid "aggregate functions are not allowed in column generation expressions" msgstr "aggregatfunktioner tillåts inte i kolumngenereringsuttryck" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:555 msgid "grouping operations are not allowed in column generation expressions" msgstr "gruppoperationer tillåts inte i kolumngenereringsuttryck" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:561 msgid "aggregate functions are not allowed in CALL arguments" msgstr "aggregatfunktioner tillåts inte i CALL-argument" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:563 msgid "grouping operations are not allowed in CALL arguments" msgstr "gruppoperationer tillåts inte i CALL-argument" -#: parser/parse_agg.c:565 +#: parser/parse_agg.c:569 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "aggregatfunktioner tillåts inte i COPY FROM WHERE-villkor" -#: parser/parse_agg.c:567 +#: parser/parse_agg.c:571 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "gruppoperationer tillåts inte i COPY FROM WHERE-villkor" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:594 parser/parse_clause.c:1836 +#: parser/parse_agg.c:598 parser/parse_clause.c:1836 #, c-format msgid "aggregate functions are not allowed in %s" msgstr "aggregatfunktioner tillåts inte i %s" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:597 +#: parser/parse_agg.c:601 #, c-format msgid "grouping operations are not allowed in %s" msgstr "gruppoperationer tillåts inte i %s" -#: parser/parse_agg.c:698 +#: parser/parse_agg.c:697 parser/parse_agg.c:734 +#, c-format +msgid "outer-level aggregate cannot use a nested CTE" +msgstr "aggregat på yttre nivå kan inte använda en nästlad CTE" + +#: parser/parse_agg.c:698 parser/parse_agg.c:735 +#, c-format +msgid "CTE \"%s\" is below the aggregate's semantic level." +msgstr "CTE \"%s\" är under aggregatets semantiska nivå." + +#: parser/parse_agg.c:720 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "yttre aggregat kan inte innehålla inre variabel i sitt direkta argument" -#: parser/parse_agg.c:776 +#: parser/parse_agg.c:805 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "aggregatfunktionsanrop kan inte innehålla mängdreturnerande funktionsanrop" -#: parser/parse_agg.c:777 parser/parse_expr.c:1674 parser/parse_expr.c:2164 +#: parser/parse_agg.c:806 parser/parse_expr.c:1674 parser/parse_expr.c:2164 #: parser/parse_func.c:883 #, c-format msgid "You might be able to move the set-returning function into a LATERAL FROM item." msgstr "Du kanske kan flytta den mängdreturnerande funktionen in i en LATERAL FROM-konstruktion." -#: parser/parse_agg.c:782 +#: parser/parse_agg.c:811 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "aggregatfunktionsanrop kan inte innehålla fönsterfunktionanrop" -#: parser/parse_agg.c:887 +#: parser/parse_agg.c:914 msgid "window functions are not allowed in JOIN conditions" msgstr "fönsterfunktioner tillåts inte i JOIN-villkor" -#: parser/parse_agg.c:894 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in functions in FROM" msgstr "fönsterfunktioner tillåts inte i funktioner i FROM" -#: parser/parse_agg.c:900 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in policy expressions" msgstr "fönsterfunktioner tillåts inte i policy-uttryck" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in window definitions" msgstr "fönsterfunktioner tillåts inte i fönsterdefinitioner" -#: parser/parse_agg.c:924 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "fönsterfunktioner tillåts inte i MERGE WHEN-villkor" -#: parser/parse_agg.c:948 +#: parser/parse_agg.c:975 msgid "window functions are not allowed in check constraints" msgstr "fönsterfunktioner tillåts inte i check-villkor" -#: parser/parse_agg.c:952 +#: parser/parse_agg.c:979 msgid "window functions are not allowed in DEFAULT expressions" msgstr "fönsterfunktioner tillåts inte i DEFAULT-uttryck" -#: parser/parse_agg.c:955 +#: parser/parse_agg.c:982 msgid "window functions are not allowed in index expressions" msgstr "fönsterfunktioner tillåts inte i indexuttryck" -#: parser/parse_agg.c:958 +#: parser/parse_agg.c:985 msgid "window functions are not allowed in statistics expressions" msgstr "fönsterfunktioner tillåts inte i statistikuttryck" -#: parser/parse_agg.c:961 +#: parser/parse_agg.c:988 msgid "window functions are not allowed in index predicates" msgstr "fönsterfunktioner tillåts inte i indexpredikat" -#: parser/parse_agg.c:964 +#: parser/parse_agg.c:991 msgid "window functions are not allowed in transform expressions" msgstr "fönsterfunktioner tillåts inte i transform-uttrycket" -#: parser/parse_agg.c:967 +#: parser/parse_agg.c:994 msgid "window functions are not allowed in EXECUTE parameters" msgstr "fönsterfunktioner tillåts inte i EXECUTE-parametrar" -#: parser/parse_agg.c:970 +#: parser/parse_agg.c:997 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "fönsterfunktioner tillåts inte i WHEN-villkor" -#: parser/parse_agg.c:973 +#: parser/parse_agg.c:1000 msgid "window functions are not allowed in partition bound" msgstr "fönsterfunktioner tillåts inte i partitiongräns" -#: parser/parse_agg.c:976 +#: parser/parse_agg.c:1003 msgid "window functions are not allowed in partition key expressions" msgstr "fönsterfunktioner tillåts inte i partitionsnyckeluttryck" -#: parser/parse_agg.c:979 +#: parser/parse_agg.c:1006 msgid "window functions are not allowed in CALL arguments" msgstr "fönsterfunktioner tillåts inte i CALL-argument" -#: parser/parse_agg.c:982 +#: parser/parse_agg.c:1009 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "fönsterfunktioner tillåts inte i COPY FROM WHERE-villkor" -#: parser/parse_agg.c:985 +#: parser/parse_agg.c:1012 msgid "window functions are not allowed in column generation expressions" msgstr "fönsterfunktioner tillåts inte i kolumngenereringsuttryck" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:1008 parser/parse_clause.c:1845 +#: parser/parse_agg.c:1035 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "fönsterfunktioner tillåts inte i %s" -#: parser/parse_agg.c:1042 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1069 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "fönster \"%s\" finns inte" -#: parser/parse_agg.c:1126 +#: parser/parse_agg.c:1153 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "för många grupperingsmängder (maximalt 4096)" -#: parser/parse_agg.c:1266 +#: parser/parse_agg.c:1293 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "aggregatfunktioner tillåts inte i en rekursiv frågas rekursiva term" -#: parser/parse_agg.c:1459 +#: parser/parse_agg.c:1486 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "kolumn \"%s.%s\" måste stå med i GROUP BY-klausulen eller användas i en aggregatfunktion" -#: parser/parse_agg.c:1462 +#: parser/parse_agg.c:1489 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Direkta argument till en sorterad-mängd-aggregat får bara använda grupperade kolumner." -#: parser/parse_agg.c:1467 +#: parser/parse_agg.c:1494 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "underfråga använder ogrupperad kolumn \"%s.%s\" från yttre fråga" -#: parser/parse_agg.c:1631 +#: parser/parse_agg.c:1658 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "argument till GROUPING måste vare grupputtryck på den tillhörande frågenivån" @@ -18611,22 +18642,22 @@ msgstr "FROM måste ge exakt ett värde per partitionerande kolumn" msgid "TO must specify exactly one value per partitioning column" msgstr "TO måste ge exakt ett värde per partitionerande kolumn" -#: parser/parse_utilcmd.c:4280 +#: parser/parse_utilcmd.c:4282 #, c-format msgid "cannot specify NULL in range bound" msgstr "kan inte ange NULL i range-gräns" -#: parser/parse_utilcmd.c:4329 +#: parser/parse_utilcmd.c:4330 #, c-format msgid "every bound following MAXVALUE must also be MAXVALUE" msgstr "varje gräns efter MAXVALUE måste också vara MAXVALUE" -#: parser/parse_utilcmd.c:4336 +#: parser/parse_utilcmd.c:4337 #, c-format msgid "every bound following MINVALUE must also be MINVALUE" msgstr "varje gräns efter MINVALUE måste också vara MINVALUE" -#: parser/parse_utilcmd.c:4379 +#: parser/parse_utilcmd.c:4380 #, c-format msgid "specified value cannot be cast to type %s for column \"%s\"" msgstr "angivet värde kan inte typomvandlas till typ %s för kolumn \"%s\"" @@ -18976,17 +19007,17 @@ msgstr "automatisk vacuum av tabell \"%s.%s.%s\"" msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "automatisk analys av tabell \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2743 +#: postmaster/autovacuum.c:2746 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "processar arbetspost för relation \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3363 +#: postmaster/autovacuum.c:3366 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "autovacuum har inte startats på grund av en felkonfigurering" -#: postmaster/autovacuum.c:3364 +#: postmaster/autovacuum.c:3367 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Slå på flaggan \"track_counts\"." @@ -19140,97 +19171,97 @@ msgstr "WAL-strömning (max_wal_senders > 0) kräver wal_level \"replica\" eller msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: ogiltiga datumtokentabeller, det behöver lagas\n" -#: postmaster/postmaster.c:1113 +#: postmaster/postmaster.c:1115 #, c-format msgid "could not create I/O completion port for child queue" msgstr "kunde inte skapa \"I/O completion port\" för barnkö" -#: postmaster/postmaster.c:1189 +#: postmaster/postmaster.c:1191 #, c-format msgid "ending log output to stderr" msgstr "avslutar loggutmatning till stderr" -#: postmaster/postmaster.c:1190 +#: postmaster/postmaster.c:1192 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "Framtida loggutmatning kommer gå till logg-destination \"%s\"." -#: postmaster/postmaster.c:1201 +#: postmaster/postmaster.c:1203 #, c-format msgid "starting %s" msgstr "startar %s" -#: postmaster/postmaster.c:1253 +#: postmaster/postmaster.c:1255 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "kunde inte skapa lyssnande uttag (socket) för \"%s\"" -#: postmaster/postmaster.c:1259 +#: postmaster/postmaster.c:1261 #, c-format msgid "could not create any TCP/IP sockets" msgstr "kunde inte skapa TCP/IP-uttag (socket)" -#: postmaster/postmaster.c:1291 +#: postmaster/postmaster.c:1293 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "DNSServiceRegister() misslyckades: felkod %ld" -#: postmaster/postmaster.c:1343 +#: postmaster/postmaster.c:1345 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "kunde inte skapa unix-domän-uttag (socket) i katalog \"%s\"" -#: postmaster/postmaster.c:1349 +#: postmaster/postmaster.c:1351 #, c-format msgid "could not create any Unix-domain sockets" msgstr "kunde inte skapa något Unix-domän-uttag (socket)" -#: postmaster/postmaster.c:1361 +#: postmaster/postmaster.c:1363 #, c-format msgid "no socket created for listening" msgstr "inget uttag (socket) skapat för lyssnande" -#: postmaster/postmaster.c:1392 +#: postmaster/postmaster.c:1394 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %s\n" msgstr "%s: kunde inte ändra rättigheter på extern PID-fil \"%s\": %s\n" -#: postmaster/postmaster.c:1396 +#: postmaster/postmaster.c:1398 #, c-format msgid "%s: could not write external PID file \"%s\": %s\n" msgstr "%s: kunde inte skriva extern PID-fil \"%s\": %s\n" -#: postmaster/postmaster.c:1423 utils/init/postinit.c:220 +#: postmaster/postmaster.c:1425 utils/init/postinit.c:220 #, c-format msgid "could not load pg_hba.conf" msgstr "kunde inte ladda pg_hba.conf" -#: postmaster/postmaster.c:1451 +#: postmaster/postmaster.c:1453 #, c-format msgid "postmaster became multithreaded during startup" msgstr "postmaster blev flertrådad under uppstart" -#: postmaster/postmaster.c:1452 postmaster/postmaster.c:5112 +#: postmaster/postmaster.c:1454 postmaster/postmaster.c:5114 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Sätt omgivningsvariabeln LC_ALL till en giltig lokal." -#: postmaster/postmaster.c:1553 +#: postmaster/postmaster.c:1555 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: kunde inte hitta min egna körbara fils sökväg" -#: postmaster/postmaster.c:1560 +#: postmaster/postmaster.c:1562 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: kunde inte hitta matchande postgres-binär" -#: postmaster/postmaster.c:1583 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1585 utils/misc/tzparser.c:340 #, c-format msgid "This may indicate an incomplete PostgreSQL installation, or that the file \"%s\" has been moved away from its proper location." msgstr "Detta tyder på en inkomplett PostgreSQL-installation alternativt att filen \"%s\" har flyttats bort från sin korrekta plats." -#: postmaster/postmaster.c:1610 +#: postmaster/postmaster.c:1612 #, c-format msgid "" "%s: could not find the database system\n" @@ -19241,477 +19272,477 @@ msgstr "" "Förväntade mig att hitta det i katalogen \"%s\",\n" "men kunde inte öppna filen \"%s\": %s\n" -#: postmaster/postmaster.c:1787 +#: postmaster/postmaster.c:1789 #, c-format msgid "select() failed in postmaster: %m" msgstr "select() misslyckades i postmaster: %m" -#: postmaster/postmaster.c:1918 +#: postmaster/postmaster.c:1920 #, c-format msgid "issuing SIGKILL to recalcitrant children" msgstr "skickar SIGKILL till motsträviga barn" -#: postmaster/postmaster.c:1939 +#: postmaster/postmaster.c:1941 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "stänger ner omedelbart då datakatalogens låsfil är ogiltig" -#: postmaster/postmaster.c:2042 postmaster/postmaster.c:2070 +#: postmaster/postmaster.c:2044 postmaster/postmaster.c:2072 #, c-format msgid "incomplete startup packet" msgstr "ofullständigt startuppaket" -#: postmaster/postmaster.c:2054 postmaster/postmaster.c:2087 +#: postmaster/postmaster.c:2056 postmaster/postmaster.c:2089 #, c-format msgid "invalid length of startup packet" msgstr "ogiltig längd på startuppaket" -#: postmaster/postmaster.c:2116 +#: postmaster/postmaster.c:2118 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "misslyckades att skicka SSL-förhandlingssvar: %m" -#: postmaster/postmaster.c:2134 +#: postmaster/postmaster.c:2136 #, c-format msgid "received unencrypted data after SSL request" msgstr "tog emot okrypterad data efter SSL-förfrågan" -#: postmaster/postmaster.c:2135 postmaster/postmaster.c:2179 +#: postmaster/postmaster.c:2137 postmaster/postmaster.c:2181 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." msgstr "Detta kan antingen vara en bug i klientens mjukvara eller bevis på ett försök att utföra en attack av typen man-in-the-middle." -#: postmaster/postmaster.c:2160 +#: postmaster/postmaster.c:2162 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "misslyckades att skicka GSSAPI-förhandlingssvar: %m" -#: postmaster/postmaster.c:2178 +#: postmaster/postmaster.c:2180 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "tog emot okrypterad data efter GSSAPI-krypteringsförfrågan" -#: postmaster/postmaster.c:2202 +#: postmaster/postmaster.c:2204 #, c-format msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "inget stöd för framändans protokoll %u.%u: servern stöder %u.0 till %u.%u" -#: postmaster/postmaster.c:2266 utils/misc/guc.c:7412 utils/misc/guc.c:7448 +#: postmaster/postmaster.c:2268 utils/misc/guc.c:7412 utils/misc/guc.c:7448 #: utils/misc/guc.c:7518 utils/misc/guc.c:9003 utils/misc/guc.c:12045 #: utils/misc/guc.c:12086 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "ogiltigt värde för parameter \"%s\": \"%s\"" -#: postmaster/postmaster.c:2269 +#: postmaster/postmaster.c:2271 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Giltiga värden är: \"false\", 0, \"true\", 1, \"database\"." -#: postmaster/postmaster.c:2314 +#: postmaster/postmaster.c:2316 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "ogiltig startpaketlayout: förväntade en terminator som sista byte" -#: postmaster/postmaster.c:2331 +#: postmaster/postmaster.c:2333 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "inget PostgreSQL-användarnamn angivet i startuppaketet" -#: postmaster/postmaster.c:2395 +#: postmaster/postmaster.c:2397 #, c-format msgid "the database system is starting up" msgstr "databassystemet startar upp" -#: postmaster/postmaster.c:2401 +#: postmaster/postmaster.c:2403 #, c-format msgid "the database system is not yet accepting connections" msgstr "databassystemet tar ännu inte emot anslutningar" -#: postmaster/postmaster.c:2402 +#: postmaster/postmaster.c:2404 #, c-format msgid "Consistent recovery state has not been yet reached." msgstr "Konsistent återställningstillstånd har ännu inte uppnåtts." -#: postmaster/postmaster.c:2406 +#: postmaster/postmaster.c:2408 #, c-format msgid "the database system is not accepting connections" msgstr "databassystemet tar inte emot anslutningar" -#: postmaster/postmaster.c:2407 +#: postmaster/postmaster.c:2409 #, c-format msgid "Hot standby mode is disabled." msgstr "Hot standby-läge är avstängt." -#: postmaster/postmaster.c:2412 +#: postmaster/postmaster.c:2414 #, c-format msgid "the database system is shutting down" msgstr "databassystemet stänger ner" -#: postmaster/postmaster.c:2417 +#: postmaster/postmaster.c:2419 #, c-format msgid "the database system is in recovery mode" msgstr "databassystemet är återställningsläge" -#: postmaster/postmaster.c:2422 storage/ipc/procarray.c:493 +#: postmaster/postmaster.c:2424 storage/ipc/procarray.c:493 #: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:359 #, c-format msgid "sorry, too many clients already" msgstr "ledsen, för många klienter" -#: postmaster/postmaster.c:2509 +#: postmaster/postmaster.c:2511 #, c-format msgid "wrong key in cancel request for process %d" msgstr "fel nyckel i avbrytbegäran för process %d" -#: postmaster/postmaster.c:2521 +#: postmaster/postmaster.c:2523 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d i avbrytbegäran matchade inte någon process" -#: postmaster/postmaster.c:2774 +#: postmaster/postmaster.c:2776 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "mottog SIGHUP, läser om konfigurationsfiler" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2798 postmaster/postmaster.c:2802 +#: postmaster/postmaster.c:2800 postmaster/postmaster.c:2804 #, c-format msgid "%s was not reloaded" msgstr "%s laddades inte om" -#: postmaster/postmaster.c:2812 +#: postmaster/postmaster.c:2814 #, c-format msgid "SSL configuration was not reloaded" msgstr "SSL-konfiguration laddades inte om" -#: postmaster/postmaster.c:2868 +#: postmaster/postmaster.c:2870 #, c-format msgid "received smart shutdown request" msgstr "tog emot förfrågan om att stänga ner smart" -#: postmaster/postmaster.c:2909 +#: postmaster/postmaster.c:2911 #, c-format msgid "received fast shutdown request" msgstr "tog emot förfrågan om att stänga ner snabbt" -#: postmaster/postmaster.c:2927 +#: postmaster/postmaster.c:2929 #, c-format msgid "aborting any active transactions" msgstr "avbryter aktiva transaktioner" -#: postmaster/postmaster.c:2951 +#: postmaster/postmaster.c:2953 #, c-format msgid "received immediate shutdown request" msgstr "mottog begäran för omedelbar nedstängning" -#: postmaster/postmaster.c:3028 +#: postmaster/postmaster.c:3030 #, c-format msgid "shutdown at recovery target" msgstr "nedstängs vid återställningsmål" -#: postmaster/postmaster.c:3046 postmaster/postmaster.c:3082 +#: postmaster/postmaster.c:3048 postmaster/postmaster.c:3084 msgid "startup process" msgstr "uppstartprocess" -#: postmaster/postmaster.c:3049 +#: postmaster/postmaster.c:3051 #, c-format msgid "aborting startup due to startup process failure" msgstr "avbryter uppstart på grund av fel i startprocessen" -#: postmaster/postmaster.c:3122 +#: postmaster/postmaster.c:3124 #, c-format msgid "database system is ready to accept connections" msgstr "databassystemet är redo att ta emot anslutningar" -#: postmaster/postmaster.c:3143 +#: postmaster/postmaster.c:3145 msgid "background writer process" msgstr "bakgrundsskrivarprocess" -#: postmaster/postmaster.c:3190 +#: postmaster/postmaster.c:3192 msgid "checkpointer process" msgstr "checkpoint-process" -#: postmaster/postmaster.c:3206 +#: postmaster/postmaster.c:3208 msgid "WAL writer process" msgstr "WAL-skrivarprocess" -#: postmaster/postmaster.c:3221 +#: postmaster/postmaster.c:3223 msgid "WAL receiver process" msgstr "WAL-mottagarprocess" -#: postmaster/postmaster.c:3236 +#: postmaster/postmaster.c:3238 msgid "autovacuum launcher process" msgstr "autovacuum-startprocess" -#: postmaster/postmaster.c:3254 +#: postmaster/postmaster.c:3256 msgid "archiver process" msgstr "arkiveringsprocess" -#: postmaster/postmaster.c:3267 +#: postmaster/postmaster.c:3269 msgid "system logger process" msgstr "system-logg-process" -#: postmaster/postmaster.c:3331 +#: postmaster/postmaster.c:3333 #, c-format msgid "background worker \"%s\"" msgstr "bakgrundsarbetare \"%s\"" -#: postmaster/postmaster.c:3410 postmaster/postmaster.c:3430 -#: postmaster/postmaster.c:3437 postmaster/postmaster.c:3455 +#: postmaster/postmaster.c:3412 postmaster/postmaster.c:3432 +#: postmaster/postmaster.c:3439 postmaster/postmaster.c:3457 msgid "server process" msgstr "serverprocess" -#: postmaster/postmaster.c:3509 +#: postmaster/postmaster.c:3511 #, c-format msgid "terminating any other active server processes" msgstr "avslutar andra aktiva serverprocesser" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3746 +#: postmaster/postmaster.c:3748 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) avslutade med felkod %d" -#: postmaster/postmaster.c:3748 postmaster/postmaster.c:3760 -#: postmaster/postmaster.c:3770 postmaster/postmaster.c:3781 +#: postmaster/postmaster.c:3750 postmaster/postmaster.c:3762 +#: postmaster/postmaster.c:3772 postmaster/postmaster.c:3783 #, c-format msgid "Failed process was running: %s" msgstr "Misslyckad process körde: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3757 +#: postmaster/postmaster.c:3759 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) terminerades av avbrott 0x%X" -#: postmaster/postmaster.c:3759 postmaster/shell_archive.c:134 +#: postmaster/postmaster.c:3761 postmaster/shell_archive.c:134 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "Se C-include-fil \"ntstatus.h\" för en beskrivning av det hexdecimala värdet." #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3767 +#: postmaster/postmaster.c:3769 #, c-format msgid "%s (PID %d) was terminated by signal %d: %s" msgstr "%s (PID %d) terminerades av signal %d: %s" #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3779 +#: postmaster/postmaster.c:3781 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) avslutade med okänd status %d" -#: postmaster/postmaster.c:3979 +#: postmaster/postmaster.c:3981 #, c-format msgid "abnormal database system shutdown" msgstr "ej normal databasnedstängning" -#: postmaster/postmaster.c:4005 +#: postmaster/postmaster.c:4007 #, c-format msgid "shutting down due to startup process failure" msgstr "stänger ner på grund av fel i startprocessen" -#: postmaster/postmaster.c:4011 +#: postmaster/postmaster.c:4013 #, c-format msgid "shutting down because restart_after_crash is off" msgstr "stänger ner då restart_after_crash är av" -#: postmaster/postmaster.c:4023 +#: postmaster/postmaster.c:4025 #, c-format msgid "all server processes terminated; reinitializing" msgstr "alla serverprocesser är avslutade; initierar på nytt" -#: postmaster/postmaster.c:4195 postmaster/postmaster.c:5524 -#: postmaster/postmaster.c:5922 +#: postmaster/postmaster.c:4197 postmaster/postmaster.c:5526 +#: postmaster/postmaster.c:5924 #, c-format msgid "could not generate random cancel key" msgstr "kunde inte skapa slumpad avbrytningsnyckel" -#: postmaster/postmaster.c:4257 +#: postmaster/postmaster.c:4259 #, c-format msgid "could not fork new process for connection: %m" msgstr "kunde inte fork():a ny process for uppkoppling: %m" -#: postmaster/postmaster.c:4299 +#: postmaster/postmaster.c:4301 msgid "could not fork new process for connection: " msgstr "kunde inte fork():a ny process for uppkoppling: " -#: postmaster/postmaster.c:4405 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "ansluting mottagen: värd=%s port=%s" -#: postmaster/postmaster.c:4410 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "ansluting mottagen: värd=%s" -#: postmaster/postmaster.c:4647 +#: postmaster/postmaster.c:4649 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "kunde inte köra serverprocess \"%s\": %m" -#: postmaster/postmaster.c:4705 +#: postmaster/postmaster.c:4707 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "kunde inte skapa fil-mapping för backend-parametrar: felkod %lu" -#: postmaster/postmaster.c:4714 +#: postmaster/postmaster.c:4716 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "kunde inte mappa minne för backend-parametrar: felkod %lu" -#: postmaster/postmaster.c:4741 +#: postmaster/postmaster.c:4743 #, c-format msgid "subprocess command line too long" msgstr "subprocessens kommando är för långt" -#: postmaster/postmaster.c:4759 +#: postmaster/postmaster.c:4761 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "Anrop till CreateProcess() misslyckades: %m (felkod %lu)" -#: postmaster/postmaster.c:4786 +#: postmaster/postmaster.c:4788 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "kunde inte avmappa vy för backend:ens parameterfil: felkod %lu" -#: postmaster/postmaster.c:4790 +#: postmaster/postmaster.c:4792 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "kunde inte stänga \"handle\" till backend:ens parameterfil: felkod %lu" -#: postmaster/postmaster.c:4812 +#: postmaster/postmaster.c:4814 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "ger upp efter för många försök att reservera delat minne" -#: postmaster/postmaster.c:4813 +#: postmaster/postmaster.c:4815 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Detta kan orsakas av ASLR eller antivirusprogram." -#: postmaster/postmaster.c:4986 +#: postmaster/postmaster.c:4988 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "SSL-konfigurering kunde inte laddas i barnprocess" -#: postmaster/postmaster.c:5111 +#: postmaster/postmaster.c:5113 #, c-format msgid "postmaster became multithreaded" msgstr "postmaster blev flertrådad" -#: postmaster/postmaster.c:5184 +#: postmaster/postmaster.c:5186 #, c-format msgid "database system is ready to accept read-only connections" msgstr "databassystemet är redo att ta emot read-only-anslutningar" -#: postmaster/postmaster.c:5448 +#: postmaster/postmaster.c:5450 #, c-format msgid "could not fork startup process: %m" msgstr "kunde inte starta startup-processen: %m" -#: postmaster/postmaster.c:5452 +#: postmaster/postmaster.c:5454 #, c-format msgid "could not fork archiver process: %m" msgstr "kunde inte fork:a arkivprocess: %m" -#: postmaster/postmaster.c:5456 +#: postmaster/postmaster.c:5458 #, c-format msgid "could not fork background writer process: %m" msgstr "kunde inte starta process för bakgrundsskrivare: %m" -#: postmaster/postmaster.c:5460 +#: postmaster/postmaster.c:5462 #, c-format msgid "could not fork checkpointer process: %m" msgstr "kunde inte fork:a bakgrundsprocess: %m" -#: postmaster/postmaster.c:5464 +#: postmaster/postmaster.c:5466 #, c-format msgid "could not fork WAL writer process: %m" msgstr "kunde inte fork:a WAL-skrivprocess: %m" -#: postmaster/postmaster.c:5468 +#: postmaster/postmaster.c:5470 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "kunde inte fork:a WAL-mottagarprocess: %m" -#: postmaster/postmaster.c:5472 +#: postmaster/postmaster.c:5474 #, c-format msgid "could not fork process: %m" msgstr "kunde inte fork:a process: %m" -#: postmaster/postmaster.c:5673 postmaster/postmaster.c:5700 +#: postmaster/postmaster.c:5675 postmaster/postmaster.c:5702 #, c-format msgid "database connection requirement not indicated during registration" msgstr "krav på databasanslutning fanns inte med vid registering" -#: postmaster/postmaster.c:5684 postmaster/postmaster.c:5711 +#: postmaster/postmaster.c:5686 postmaster/postmaster.c:5713 #, c-format msgid "invalid processing mode in background worker" msgstr "ogiltigt processläge i bakgrundsarbetare" -#: postmaster/postmaster.c:5796 +#: postmaster/postmaster.c:5798 #, c-format msgid "could not fork worker process: %m" msgstr "kunde inte starta (fork) arbetarprocess: %m" -#: postmaster/postmaster.c:5908 +#: postmaster/postmaster.c:5910 #, c-format msgid "no slot available for new worker process" msgstr "ingen slot tillgänglig för ny arbetsprocess" -#: postmaster/postmaster.c:6239 +#: postmaster/postmaster.c:6241 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "kunde inte duplicera uttag (socket) %d för att använda i backend: felkod %d" -#: postmaster/postmaster.c:6271 +#: postmaster/postmaster.c:6273 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "kunde inte skapa ärvt uttag (socket): felkod %d\n" -#: postmaster/postmaster.c:6300 +#: postmaster/postmaster.c:6302 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "kunde inte öppna bakändans variabelfil \"%s\": %s\n" -#: postmaster/postmaster.c:6307 +#: postmaster/postmaster.c:6309 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "kunde inte läsa från bakändans variabelfil \"%s\": %s\n" -#: postmaster/postmaster.c:6316 +#: postmaster/postmaster.c:6318 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "kunde inte ta bort fil \"%s\": %s\n" -#: postmaster/postmaster.c:6333 +#: postmaster/postmaster.c:6335 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "kunde inte mappa in vy för bakgrundsvariabler: felkod %lu\n" -#: postmaster/postmaster.c:6342 +#: postmaster/postmaster.c:6344 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "kunde inte avmappa vy för bakgrundsvariabler: felkod %lu\n" -#: postmaster/postmaster.c:6349 +#: postmaster/postmaster.c:6351 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "kunde inte stänga \"handle\" till backend:ens parametervariabler: felkod %lu\n" -#: postmaster/postmaster.c:6508 +#: postmaster/postmaster.c:6510 #, c-format msgid "could not read exit code for process\n" msgstr "kunde inte läsa avslutningskod för process\n" -#: postmaster/postmaster.c:6550 +#: postmaster/postmaster.c:6552 #, c-format msgid "could not post child completion status\n" msgstr "kunde inte skicka barnets avslutningsstatus\n" @@ -19815,117 +19846,118 @@ msgstr "ogiltig startposition för strömning" msgid "unterminated quoted string" msgstr "icketerminerad citerad sträng" -#: replication/libpqwalreceiver/libpqwalreceiver.c:233 +#: replication/libpqwalreceiver/libpqwalreceiver.c:246 #, c-format msgid "could not clear search path: %s" msgstr "kunde inte nollställa sökväg: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:273 +#: replication/libpqwalreceiver/libpqwalreceiver.c:286 +#: replication/libpqwalreceiver/libpqwalreceiver.c:444 #, c-format msgid "invalid connection string syntax: %s" msgstr "ogiltig anslutningssträngsyntax %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:299 +#: replication/libpqwalreceiver/libpqwalreceiver.c:312 #, c-format msgid "could not parse connection string: %s" msgstr "kunde inte parsa anslutningssträng: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:372 +#: replication/libpqwalreceiver/libpqwalreceiver.c:385 #, c-format msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "kunde inte hämta databassystemidentifierare och tidslinje-ID från primära servern: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:388 -#: replication/libpqwalreceiver/libpqwalreceiver.c:626 +#: replication/libpqwalreceiver/libpqwalreceiver.c:402 +#: replication/libpqwalreceiver/libpqwalreceiver.c:685 #, c-format msgid "invalid response from primary server" msgstr "ogiltigt svar från primär server" -#: replication/libpqwalreceiver/libpqwalreceiver.c:389 +#: replication/libpqwalreceiver/libpqwalreceiver.c:403 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Kunde inte identifiera system: fick %d rader och %d fält, förväntade %d rader och %d eller fler fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:469 -#: replication/libpqwalreceiver/libpqwalreceiver.c:476 -#: replication/libpqwalreceiver/libpqwalreceiver.c:506 +#: replication/libpqwalreceiver/libpqwalreceiver.c:528 +#: replication/libpqwalreceiver/libpqwalreceiver.c:535 +#: replication/libpqwalreceiver/libpqwalreceiver.c:565 #, c-format msgid "could not start WAL streaming: %s" msgstr "kunde inte starta WAL-strömning: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:530 +#: replication/libpqwalreceiver/libpqwalreceiver.c:589 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "kunde inte skicka meddelandet end-of-streaming till primären: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:553 +#: replication/libpqwalreceiver/libpqwalreceiver.c:612 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "oväntad resultatmängd efter end-of-streaming" -#: replication/libpqwalreceiver/libpqwalreceiver.c:568 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "fel vid nestängning av strömmande COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:578 +#: replication/libpqwalreceiver/libpqwalreceiver.c:637 #, c-format msgid "error reading result of streaming command: %s" msgstr "fel vid läsning av resultat från strömningskommando: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:587 -#: replication/libpqwalreceiver/libpqwalreceiver.c:822 +#: replication/libpqwalreceiver/libpqwalreceiver.c:646 +#: replication/libpqwalreceiver/libpqwalreceiver.c:881 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "oväntat resultat efter CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:614 +#: replication/libpqwalreceiver/libpqwalreceiver.c:673 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "kan inte ta emot fil med tidslinjehistorik från primära servern: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:627 +#: replication/libpqwalreceiver/libpqwalreceiver.c:686 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Förväntade 1 tupel med 2 fält, fick %d tupler med %d fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:785 -#: replication/libpqwalreceiver/libpqwalreceiver.c:838 -#: replication/libpqwalreceiver/libpqwalreceiver.c:845 +#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:897 +#: replication/libpqwalreceiver/libpqwalreceiver.c:904 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "kunde inte ta emot data från WAL-ström: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:865 +#: replication/libpqwalreceiver/libpqwalreceiver.c:924 #, c-format msgid "could not send data to WAL stream: %s" msgstr "kunde inte skicka data till WAL-ström: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:957 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1016 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "kunde inte skapa replikeringsslot \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1062 #, c-format msgid "invalid query response" msgstr "ogiltigt frågerespons" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1004 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1063 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Förväntade %d fält, fick %d fält." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1074 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1133 #, c-format msgid "the query interface requires a database connection" msgstr "frågeinterface:et kräver en databasanslutning" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1105 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1164 msgid "empty query" msgstr "tom fråga" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1111 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1170 msgid "unexpected pipeline mode" msgstr "oväntat pipeline-läge" @@ -19979,12 +20011,12 @@ msgstr "logisk avkodning kräver en databasanslutning" msgid "logical decoding cannot be used while in recovery" msgstr "logisk avkodning kan inte användas under återställning" -#: replication/logical/logical.c:351 replication/logical/logical.c:505 +#: replication/logical/logical.c:351 replication/logical/logical.c:507 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "kan inte använda fysisk replikeringsslot för logisk avkodning" -#: replication/logical/logical.c:356 replication/logical/logical.c:510 +#: replication/logical/logical.c:356 replication/logical/logical.c:512 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "replikeringsslot \"%s\" har inte skapats i denna databasen" @@ -19994,40 +20026,40 @@ msgstr "replikeringsslot \"%s\" har inte skapats i denna databasen" msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "kan inte skapa logisk replikeringsslot i transaktion som redan har utfört skrivningar" -#: replication/logical/logical.c:573 +#: replication/logical/logical.c:575 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "startar logisk avkodning för slot \"%s\"" -#: replication/logical/logical.c:575 +#: replication/logical/logical.c:577 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Strömmar transaktioner commit:ade efter %X/%X, läser WAL från %X/%X" -#: replication/logical/logical.c:723 +#: replication/logical/logical.c:725 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback, associated LSN %X/%X" msgstr "slot \"%s\", utdata-plugin \"%s\", i callback:en %s, associerad LSN %X/%X" -#: replication/logical/logical.c:729 +#: replication/logical/logical.c:731 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "slot \"%s\", utdata-plugin \"%s\", i callback:en %s" -#: replication/logical/logical.c:900 replication/logical/logical.c:945 -#: replication/logical/logical.c:990 replication/logical/logical.c:1036 +#: replication/logical/logical.c:902 replication/logical/logical.c:947 +#: replication/logical/logical.c:992 replication/logical/logical.c:1038 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "logisk replikering vid prepare-tillfället kräver en %s-callback" -#: replication/logical/logical.c:1268 replication/logical/logical.c:1317 -#: replication/logical/logical.c:1358 replication/logical/logical.c:1444 -#: replication/logical/logical.c:1493 +#: replication/logical/logical.c:1270 replication/logical/logical.c:1319 +#: replication/logical/logical.c:1360 replication/logical/logical.c:1446 +#: replication/logical/logical.c:1495 #, c-format msgid "logical streaming requires a %s callback" msgstr "logisk strömning kräven en %s-callback" -#: replication/logical/logical.c:1403 +#: replication/logical/logical.c:1405 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "logisk strömning vid prepare-tillfället kräver en %s-callback" @@ -20134,7 +20166,7 @@ msgid "could not find free replication state slot for replication origin with ID msgstr "kunde inte hitta ledig replikerings-state-slot för replikerings-origin med ID %d" #: replication/logical/origin.c:941 replication/logical/origin.c:1131 -#: replication/slot.c:1947 +#: replication/slot.c:2014 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Öka max_replication_slots och försök igen." @@ -20317,22 +20349,17 @@ msgstr "kunde inte hämta tabells WHERE-klausul för tabell \"%s.%s\" från publ msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "kunde inte starta initial innehållskopiering för tabell \"%s.%s\": %s" -#: replication/logical/tablesync.c:1369 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1383 replication/logical/worker.c:1635 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "användaren \"%s\" kan inte replikera in i en relation med radsäkerhet påslagen: \"%s\"" -#: replication/logical/tablesync.c:1384 +#: replication/logical/tablesync.c:1398 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "tabellkopiering kunde inte starta transaktion på publiceraren: %s" -#: replication/logical/tablesync.c:1426 -#, c-format -msgid "replication origin \"%s\" already exists" -msgstr "replikeringsurspring \"%s\" finns redan" - -#: replication/logical/tablesync.c:1439 +#: replication/logical/tablesync.c:1437 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "tabellkopiering kunde inte slutföra transaktion på publiceraren: %s" @@ -20467,173 +20494,172 @@ msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandet msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "processande av fjärrdata för replikeringskälla \"%s\" vid meddelandetyp \"%s\" för replikeringsmålrelation \"%s.%s\" kolumn \"%s\" i transaktion %u blev klart vid %X/%X" -#: replication/pgoutput/pgoutput.c:326 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "invalid proto_version" msgstr "ogiltig proto_version" -#: replication/pgoutput/pgoutput.c:331 +#: replication/pgoutput/pgoutput.c:332 #, c-format msgid "proto_version \"%s\" out of range" msgstr "proto_version \"%s\" är utanför giltigt intervall" -#: replication/pgoutput/pgoutput.c:348 +#: replication/pgoutput/pgoutput.c:353 #, c-format msgid "invalid publication_names syntax" msgstr "ogiltig publication_names-syntax" -#: replication/pgoutput/pgoutput.c:452 +#: replication/pgoutput/pgoutput.c:468 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or lower" msgstr "klienten skickade proto_version=%d men vi stöder bara protokoll %d eller lägre" -#: replication/pgoutput/pgoutput.c:458 +#: replication/pgoutput/pgoutput.c:474 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or higher" msgstr "klienten skickade proto_version=%d men vi stöder bara protokoll %d eller högre" -#: replication/pgoutput/pgoutput.c:464 +#: replication/pgoutput/pgoutput.c:480 #, c-format msgid "publication_names parameter missing" msgstr "saknar parameter publication_names" -#: replication/pgoutput/pgoutput.c:477 +#: replication/pgoutput/pgoutput.c:493 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "efterfrågade proto_version=%d stöder inte strömning, kräver %d eller högre" -#: replication/pgoutput/pgoutput.c:482 +#: replication/pgoutput/pgoutput.c:498 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "ströming begärdes men det stöds inte av utdata-plugin:en" -#: replication/pgoutput/pgoutput.c:499 +#: replication/pgoutput/pgoutput.c:515 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "efterfrågade proto_version=%d stöder inte tvåfas-commit, kräver %d eller högre" -#: replication/pgoutput/pgoutput.c:504 +#: replication/pgoutput/pgoutput.c:520 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "tvåfas-commit begärdes men det stöds inte av utdata-plugin:en" -#: replication/slot.c:205 +#: replication/slot.c:237 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "replikeringsslotnamn \"%s\" är för kort" -#: replication/slot.c:214 +#: replication/slot.c:245 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "replikeringsslotnamn \"%s\" är för långt" -#: replication/slot.c:227 +#: replication/slot.c:257 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "replikeringsslotnamn \"%s\" innehåller ogiltiga tecken" -#: replication/slot.c:229 -#, c-format +#: replication/slot.c:258 msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "Replikeringsslotnamn får bara innehålla små bokstäver, nummer och understreck." -#: replication/slot.c:283 +#: replication/slot.c:312 #, c-format msgid "replication slot \"%s\" already exists" msgstr "replikeringsslot \"%s\" finns redan" -#: replication/slot.c:293 +#: replication/slot.c:322 #, c-format msgid "all replication slots are in use" msgstr "alla replikeringsslots används" -#: replication/slot.c:294 +#: replication/slot.c:323 #, c-format msgid "Free one or increase max_replication_slots." msgstr "Frigör en eller öka max_replication_slots." -#: replication/slot.c:472 replication/slotfuncs.c:727 +#: replication/slot.c:501 replication/slotfuncs.c:727 #: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:704 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "replikeringsslot \"%s\" existerar inte" -#: replication/slot.c:518 replication/slot.c:1093 +#: replication/slot.c:547 replication/slot.c:1151 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "replikeringsslot \"%s\" är aktiv för PID %d" -#: replication/slot.c:754 replication/slot.c:1499 replication/slot.c:1882 +#: replication/slot.c:783 replication/slot.c:1559 replication/slot.c:1949 #, c-format msgid "could not remove directory \"%s\"" msgstr "kunde inte ta bort katalog \"%s\"" -#: replication/slot.c:1128 +#: replication/slot.c:1186 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "replikeringsslots kan bara användas om max_replication_slots > 0" -#: replication/slot.c:1133 +#: replication/slot.c:1191 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "replikeringsslots kan bara användas om wal_level >= replica" -#: replication/slot.c:1145 +#: replication/slot.c:1203 #, c-format msgid "must be superuser or replication role to use replication slots" msgstr "måste vara superuser eller replikeringsroll för att använda replikeringsslottar" -#: replication/slot.c:1330 +#: replication/slot.c:1390 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "avslutar process %d för att frigöra replikeringsslot \"%s\"" -#: replication/slot.c:1368 +#: replication/slot.c:1428 #, c-format msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" msgstr "invaliderar slot \"%s\" då dess restart_lsn %X/%X överskrider max_slot_wal_keep_size" -#: replication/slot.c:1820 +#: replication/slot.c:1887 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "replikeringsslotfil \"%s\" har fel magiskt nummer: %u istället för %u" -#: replication/slot.c:1827 +#: replication/slot.c:1894 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "replikeringsslotfil \"%s\" har en icke stödd version %u" -#: replication/slot.c:1834 +#: replication/slot.c:1901 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "replikeringsslotfil \"%s\" har felaktig längd %u" -#: replication/slot.c:1870 +#: replication/slot.c:1937 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "kontrollsummefel för replikeringsslot-fil \"%s\": är %u, skall vara %u" -#: replication/slot.c:1904 +#: replication/slot.c:1971 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "logisk replikeringsslot \"%s\" finns men wal_level < replica" -#: replication/slot.c:1906 +#: replication/slot.c:1973 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Ändra wal_level till logical eller högre." -#: replication/slot.c:1910 +#: replication/slot.c:1977 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "fysisk replikeringsslot \"%s\" finns men wal_level < replica" -#: replication/slot.c:1912 +#: replication/slot.c:1979 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Ändra wal_level till replica eller högre." -#: replication/slot.c:1946 +#: replication/slot.c:2013 #, c-format msgid "too many replication slots active before shutdown" msgstr "för många aktiva replikeringsslottar innan nerstängning" @@ -20798,129 +20824,129 @@ msgstr "hämtar tidslinjehistorikfil för tidslinje %u från primära servern" msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "kunde inte skriva till loggfilsegment %s på offset %u, längd %lu: %m" -#: replication/walsender.c:521 +#: replication/walsender.c:535 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "kan inte använda %s med logisk replikeringsslot" -#: replication/walsender.c:638 storage/smgr/md.c:1379 +#: replication/walsender.c:652 storage/smgr/md.c:1382 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "kunde inte söka (seek) till slutet av filen \"%s\": %m" -#: replication/walsender.c:642 +#: replication/walsender.c:656 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "kunde inte söka till början av filen \"%s\": %m" -#: replication/walsender.c:719 +#: replication/walsender.c:733 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "kan inte använda logisk replikeringsslot för fysisk replikering" -#: replication/walsender.c:785 +#: replication/walsender.c:799 #, c-format msgid "requested starting point %X/%X on timeline %u is not in this server's history" msgstr "efterfrågad startpunkt %X/%X på tidslinje %u finns inte i denna servers historik" -#: replication/walsender.c:788 +#: replication/walsender.c:802 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "Denna servers historik delade sig från tidslinje %u vid %X/%X." -#: replication/walsender.c:832 +#: replication/walsender.c:846 #, c-format msgid "requested starting point %X/%X is ahead of the WAL flush position of this server %X/%X" msgstr "efterfrågad startpunkt %X/%X är längre fram än denna servers flush:ade WAL-skrivposition %X/%X" -#: replication/walsender.c:1015 +#: replication/walsender.c:1029 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "okänt värde för CREATE_REPLICATION_SLOT-flagga \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1100 +#: replication/walsender.c:1114 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s får inte anropas i en transaktion" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1110 +#: replication/walsender.c:1124 #, c-format msgid "%s must be called inside a transaction" msgstr "%s måste anropas i en transaktion" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 +#: replication/walsender.c:1130 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s måste anropas i transaktions REPEATABLE READ-isolationsläge" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1136 #, c-format msgid "%s must be called before any query" msgstr "%s måste anropas innan någon fråga" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1142 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s får inte anropas i en undertransaktion" -#: replication/walsender.c:1271 +#: replication/walsender.c:1285 #, c-format msgid "cannot read from logical replication slot \"%s\"" msgstr "kan inte läsa från logisk replikeringsslot \"%s\"" -#: replication/walsender.c:1273 +#: replication/walsender.c:1287 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "Denna slot har invaliderats då den överskred maximal reserverad storlek." -#: replication/walsender.c:1283 +#: replication/walsender.c:1297 #, c-format msgid "terminating walsender process after promotion" msgstr "stänger ner walsender-process efter befordran" -#: replication/walsender.c:1704 +#: replication/walsender.c:1718 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "kan inte utföra nya kommandon när WAL-sändare är i stopp-läge" -#: replication/walsender.c:1739 +#: replication/walsender.c:1753 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "kan inte köra SQL-kommandon i WAL-sändare för fysisk replikering" -#: replication/walsender.c:1772 +#: replication/walsender.c:1786 #, c-format msgid "received replication command: %s" msgstr "tog emot replikeringskommando: %s" -#: replication/walsender.c:1780 tcop/fastpath.c:208 tcop/postgres.c:1083 +#: replication/walsender.c:1794 tcop/fastpath.c:208 tcop/postgres.c:1083 #: tcop/postgres.c:1441 tcop/postgres.c:1693 tcop/postgres.c:2174 #: tcop/postgres.c:2607 tcop/postgres.c:2685 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "aktuella transaktionen har avbrutits, alla kommandon ignoreras tills slutet på transaktionen" -#: replication/walsender.c:1922 replication/walsender.c:1957 +#: replication/walsender.c:1936 replication/walsender.c:1971 #, c-format msgid "unexpected EOF on standby connection" msgstr "oväntat EOF från standby-anslutning" -#: replication/walsender.c:1945 +#: replication/walsender.c:1959 #, c-format msgid "invalid standby message type \"%c\"" msgstr "ogiltigt standby-meddelandetyp \"%c\"" -#: replication/walsender.c:2034 +#: replication/walsender.c:2048 #, c-format msgid "unexpected message type \"%c\"" msgstr "oväntad meddelandetyp \"%c\"" -#: replication/walsender.c:2451 +#: replication/walsender.c:2465 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "avslutar walsender-process på grund av replikerings-timeout" @@ -21151,198 +21177,198 @@ msgstr "byta namn på en ON SELECT-regel tillåts inte" msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "WITH-frågenamn \"%s\" finns både i en regelhändelse och i frågan som skrivs om" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:613 #, c-format msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" msgstr "INSERT...SELECT-regler stöds inte för frågor som har datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:666 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "kan inte ha RETURNING-listor i multipla regler" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:898 rewrite/rewriteHandler.c:937 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "kan inte sätta in ett icke-DEFAULT-värde i kolumn \"%s\"" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:966 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Kolumn \"%s\" är en identitetskolumn definierad som GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:902 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Använd OVERRIDING SYSTEM VALUE för att överskugga." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:964 rewrite/rewriteHandler.c:972 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "kolumn \"%s\" kan bara uppdateras till DEFAULT" -#: rewrite/rewriteHandler.c:1104 rewrite/rewriteHandler.c:1122 +#: rewrite/rewriteHandler.c:1107 rewrite/rewriteHandler.c:1125 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "flera tilldelningar till samma kolumn \"%s\"" -#: rewrite/rewriteHandler.c:1727 rewrite/rewriteHandler.c:3182 +#: rewrite/rewriteHandler.c:1730 rewrite/rewriteHandler.c:3185 #, c-format msgid "access to non-system view \"%s\" is restricted" msgstr "access till icke-system vy \"%s\" är begränsad" -#: rewrite/rewriteHandler.c:2159 rewrite/rewriteHandler.c:4111 +#: rewrite/rewriteHandler.c:2162 rewrite/rewriteHandler.c:4131 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "oändlig rekursion detekterad i reglerna för relation \"%s\"" -#: rewrite/rewriteHandler.c:2264 +#: rewrite/rewriteHandler.c:2267 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "oändlig rekursion detekterad i policy för relation \"%s\"" -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2597 msgid "Junk view columns are not updatable." msgstr "Skräpkolumner i vy är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2602 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Vykolumner som inte är kolumner i dess basrelation är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2605 msgid "View columns that refer to system columns are not updatable." msgstr "Vykolumner som refererar till systemkolumner är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2608 msgid "View columns that return whole-row references are not updatable." msgstr "Vykolumner som returnerar hel-rad-referenser är inte uppdateringsbara." -#: rewrite/rewriteHandler.c:2666 +#: rewrite/rewriteHandler.c:2669 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Vyer som innehåller DISTINCT är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2669 +#: rewrite/rewriteHandler.c:2672 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Vyer som innehåller GROUP BY är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2675 msgid "Views containing HAVING are not automatically updatable." msgstr "Vyer som innehåller HAVING är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2678 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Vyer som innehåller UNION, INTERSECT eller EXCEPT är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2678 +#: rewrite/rewriteHandler.c:2681 msgid "Views containing WITH are not automatically updatable." msgstr "Vyer som innehåller WITH är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2681 +#: rewrite/rewriteHandler.c:2684 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Vyer som innehåller LIMIT eller OFFSET är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2693 +#: rewrite/rewriteHandler.c:2696 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Vyer som returnerar aggregatfunktioner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2696 +#: rewrite/rewriteHandler.c:2699 msgid "Views that return window functions are not automatically updatable." msgstr "Vyer som returnerar fönsterfunktioner uppdateras inte automatiskt." -#: rewrite/rewriteHandler.c:2699 +#: rewrite/rewriteHandler.c:2702 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Vyer som returnerar mängd-returnerande funktioner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2706 rewrite/rewriteHandler.c:2710 -#: rewrite/rewriteHandler.c:2718 +#: rewrite/rewriteHandler.c:2709 rewrite/rewriteHandler.c:2713 +#: rewrite/rewriteHandler.c:2721 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Vyer som inte läser från en ensam tabell eller vy är inte automatiskt uppdateringsbar." -#: rewrite/rewriteHandler.c:2721 +#: rewrite/rewriteHandler.c:2724 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Vyer som innehåller TABLESAMPLE är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:2745 +#: rewrite/rewriteHandler.c:2748 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Vyer som inte har några uppdateringsbara kolumner är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:3242 +#: rewrite/rewriteHandler.c:3245 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "kan inte insert:a i kolumn \"%s\" i vy \"%s\"" -#: rewrite/rewriteHandler.c:3250 +#: rewrite/rewriteHandler.c:3253 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "kan inte uppdatera kolumn \"%s\" i view \"%s\"" -#: rewrite/rewriteHandler.c:3738 +#: rewrite/rewriteHandler.c:3757 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "DO INSTEAD NOTIFY-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3749 +#: rewrite/rewriteHandler.c:3768 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "DO INSTEAD NOTHING-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3763 +#: rewrite/rewriteHandler.c:3782 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "villkorliga DO INSTEAD-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "DO ALSO-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:3772 +#: rewrite/rewriteHandler.c:3791 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "fler-satsiga DO INSTEAD-regler stöds inte för datamodifierande satser i WITH" -#: rewrite/rewriteHandler.c:4039 rewrite/rewriteHandler.c:4047 -#: rewrite/rewriteHandler.c:4055 +#: rewrite/rewriteHandler.c:4059 rewrite/rewriteHandler.c:4067 +#: rewrite/rewriteHandler.c:4075 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Vyer med villkorliga DO INSTEAD-regler är inte automatiskt uppdateringsbara." -#: rewrite/rewriteHandler.c:4160 +#: rewrite/rewriteHandler.c:4181 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "kan inte utföra INSERT RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:4162 +#: rewrite/rewriteHandler.c:4183 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Du behöver en villkorslös ON INSERT DO INSTEAD-regel med en RETURNING-klausul." -#: rewrite/rewriteHandler.c:4167 +#: rewrite/rewriteHandler.c:4188 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "kan inte utföra UPDATE RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:4169 +#: rewrite/rewriteHandler.c:4190 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Du behöver en villkorslös ON UPDATE DO INSTEAD-regel med en RETURNING-klausul." -#: rewrite/rewriteHandler.c:4174 +#: rewrite/rewriteHandler.c:4195 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "kan inte utföra DELETE RETURNING på relation \"%s\"" -#: rewrite/rewriteHandler.c:4176 +#: rewrite/rewriteHandler.c:4197 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Du behöver en villkorslös ON DELETE DO INSTEAD-regel med en RETURNING-klausul." -#: rewrite/rewriteHandler.c:4194 +#: rewrite/rewriteHandler.c:4215 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT med ON CONFLICT-klausul kan inte användas med tabell som har INSERT- eller UPDATE-regler" -#: rewrite/rewriteHandler.c:4251 +#: rewrite/rewriteHandler.c:4272 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH kan inte användas i en fråga där regler skrivit om den till flera olika frågor" @@ -21510,47 +21536,47 @@ msgstr "statistikobjekt \"%s.%s\" kunde inte beräknas för relation \"%s.%s\"" msgid "function returning record called in context that cannot accept type record" msgstr "en funktion med post som värde anropades i sammanhang där poster inte kan godtagas." -#: storage/buffer/bufmgr.c:603 storage/buffer/bufmgr.c:773 +#: storage/buffer/bufmgr.c:610 storage/buffer/bufmgr.c:780 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "får inte röra temporära tabeller som tillhör andra sessioner" -#: storage/buffer/bufmgr.c:851 +#: storage/buffer/bufmgr.c:858 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "kan inte utöka relation %s utöver %u block" -#: storage/buffer/bufmgr.c:938 +#: storage/buffer/bufmgr.c:945 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "oväntad data efter EOF i block %u för relation %s" -#: storage/buffer/bufmgr.c:940 +#: storage/buffer/bufmgr.c:947 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Detta beteende har observerats med buggiga kärnor; fundera på att uppdatera ditt system." -#: storage/buffer/bufmgr.c:1039 +#: storage/buffer/bufmgr.c:1046 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "felaktig sida i block %u för relation %s; nollställer sidan" -#: storage/buffer/bufmgr.c:4671 +#: storage/buffer/bufmgr.c:4737 #, c-format msgid "could not write block %u of %s" msgstr "kunde inte skriva block %u av %s" -#: storage/buffer/bufmgr.c:4673 +#: storage/buffer/bufmgr.c:4739 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Multipla fel --- skrivfelet kan vara permanent." -#: storage/buffer/bufmgr.c:4694 storage/buffer/bufmgr.c:4713 +#: storage/buffer/bufmgr.c:4760 storage/buffer/bufmgr.c:4779 #, c-format msgid "writing block %u of relation %s" msgstr "skriver block %u i relation %s" -#: storage/buffer/bufmgr.c:5017 +#: storage/buffer/bufmgr.c:5083 #, c-format msgid "snapshot too old" msgstr "snapshot för gammal" @@ -21580,7 +21606,7 @@ msgstr "kunde inte bestämma storlek på temporär fil \"%s\" från BufFile \"%s msgid "could not delete fileset \"%s\": %m" msgstr "kunde inte radera filmängd \"%s\": %m" -#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:909 +#: storage/file/buffile.c:941 storage/smgr/md.c:328 storage/smgr/md.c:912 #, c-format msgid "could not truncate file \"%s\": %m" msgstr "kunde inte trunkera fil \"%s\": %m" @@ -22278,22 +22304,22 @@ msgstr "kunde inte skriva block %u i fil \"%s\": %m" msgid "could not write block %u in file \"%s\": wrote only %d of %d bytes" msgstr "kunde inte skriva block %u i fil \"%s\": skrev bara %d av %d byte" -#: storage/smgr/md.c:880 +#: storage/smgr/md.c:883 #, c-format msgid "could not truncate file \"%s\" to %u blocks: it's only %u blocks now" msgstr "kunde inte trunkera fil \"%s\" till %u block: den är bara %u block nu" -#: storage/smgr/md.c:935 +#: storage/smgr/md.c:938 #, c-format msgid "could not truncate file \"%s\" to %u blocks: %m" msgstr "kunde inte trunkera fil \"%s\" till %u block: %m" -#: storage/smgr/md.c:1344 +#: storage/smgr/md.c:1347 #, c-format msgid "could not open file \"%s\" (target block %u): previous segment is only %u blocks" msgstr "kunde inte öppna fil \"%s\" (målblock %u): föregående segment är bara %u block" -#: storage/smgr/md.c:1358 +#: storage/smgr/md.c:1361 #, c-format msgid "could not open file \"%s\" (target block %u): %m" msgstr "kunde inte öppna fil \"%s\" (målblock %u): %m" @@ -25127,94 +25153,94 @@ msgstr "efterfrågat tecken är inte giltigt för kodning: %u" msgid "percentile value %g is not between 0 and 1" msgstr "percentil-värde %g är inte mellan 0 och 1" -#: utils/adt/pg_locale.c:1231 +#: utils/adt/pg_locale.c:1232 #, c-format msgid "Apply system library package updates." msgstr "Applicera paketuppdateringar för systembibliotek." -#: utils/adt/pg_locale.c:1455 utils/adt/pg_locale.c:1703 -#: utils/adt/pg_locale.c:1982 utils/adt/pg_locale.c:2004 +#: utils/adt/pg_locale.c:1458 utils/adt/pg_locale.c:1706 +#: utils/adt/pg_locale.c:1985 utils/adt/pg_locale.c:2007 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "kunde inte öppna jämförelse för lokal \"%s\": %s" -#: utils/adt/pg_locale.c:1468 utils/adt/pg_locale.c:2013 +#: utils/adt/pg_locale.c:1471 utils/adt/pg_locale.c:2016 #, c-format msgid "ICU is not supported in this build" msgstr "ICU stöds inte av detta bygge" -#: utils/adt/pg_locale.c:1497 +#: utils/adt/pg_locale.c:1500 #, c-format msgid "could not create locale \"%s\": %m" msgstr "kunde inte skapa locale \"%s\": %m" -#: utils/adt/pg_locale.c:1500 +#: utils/adt/pg_locale.c:1503 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "Operativsystemet kunde inte hitta någon lokaldata för lokalnamnet \"%s\"." -#: utils/adt/pg_locale.c:1608 +#: utils/adt/pg_locale.c:1611 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "jämförelser (collations) med olika collate- och ctype-värden stöds inte på denna plattform" -#: utils/adt/pg_locale.c:1617 +#: utils/adt/pg_locale.c:1620 #, c-format msgid "collation provider LIBC is not supported on this platform" msgstr "leverantören LIBC för jämförelse (collation) stöds inte på denna plattform" -#: utils/adt/pg_locale.c:1652 +#: utils/adt/pg_locale.c:1655 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "jämförelse (collation) \"%s\" har ingen version men en version har lagrats" -#: utils/adt/pg_locale.c:1658 +#: utils/adt/pg_locale.c:1661 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "jämförelse (collation) \"%s\" har en version som inte matchar" -#: utils/adt/pg_locale.c:1660 +#: utils/adt/pg_locale.c:1663 #, c-format msgid "The collation in the database was created using version %s, but the operating system provides version %s." msgstr "Jämförelsen (collation) i databasen har skapats med version %s men operativsystemet har version %s." -#: utils/adt/pg_locale.c:1663 +#: utils/adt/pg_locale.c:1666 #, 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 "Bygg om alla objekt som påverkas av denna jämförelse (collation) och kör ALTER COLLATION %s REFRESH VERSION eller bygg PostgreSQL med rätt bibliotekversion." -#: utils/adt/pg_locale.c:1734 +#: utils/adt/pg_locale.c:1737 #, c-format msgid "could not load locale \"%s\"" msgstr "kunde inte skapa locale \"%s\"" -#: utils/adt/pg_locale.c:1759 +#: utils/adt/pg_locale.c:1762 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "kunde inte hitta jämförelseversion (collation) för lokal \"%s\": felkod %lu" -#: utils/adt/pg_locale.c:1797 +#: utils/adt/pg_locale.c:1800 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "kodning \"%s\" stöds inte av ICU" -#: utils/adt/pg_locale.c:1804 +#: utils/adt/pg_locale.c:1807 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "kunde inte öppna ICU-konverterare för kodning \"%s\": %s" -#: utils/adt/pg_locale.c:1835 utils/adt/pg_locale.c:1844 -#: utils/adt/pg_locale.c:1873 utils/adt/pg_locale.c:1883 +#: utils/adt/pg_locale.c:1838 utils/adt/pg_locale.c:1847 +#: utils/adt/pg_locale.c:1876 utils/adt/pg_locale.c:1886 #, c-format msgid "%s failed: %s" msgstr "%s misslyckades: %s" -#: utils/adt/pg_locale.c:2182 +#: utils/adt/pg_locale.c:2185 #, c-format msgid "invalid multibyte character for locale" msgstr "ogiltigt multibyte-tecken för lokalen" -#: utils/adt/pg_locale.c:2183 +#: utils/adt/pg_locale.c:2186 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "Serverns LC_CTYPE-lokal är troligen inkompatibel med databasens teckenkodning." @@ -26092,7 +26118,7 @@ msgstr "ej stödd XML-finess" msgid "This functionality requires the server to be built with libxml support." msgstr "Denna funktionalitet kräver att servern byggts med libxml-support." -#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "ogiltigt kodningsnamn \"%s\"" @@ -26272,27 +26298,27 @@ msgstr "operatorklass \"%s\" för accessmetod %s saknar supportfunktion %d för msgid "cached plan must not change result type" msgstr "cache:ad plan får inte ändra resultattyp" -#: utils/cache/relcache.c:3755 +#: utils/cache/relcache.c:3771 #, c-format msgid "heap relfilenode value not set when in binary upgrade mode" msgstr "relfilenode-värde för heap är inte satt i binärt uppgraderingsläge" -#: utils/cache/relcache.c:3763 +#: utils/cache/relcache.c:3779 #, c-format msgid "unexpected request for new relfilenode in binary upgrade mode" msgstr "oväntad begäran av ny relfilenode i binärt uppgraderingsläge" -#: utils/cache/relcache.c:6476 +#: utils/cache/relcache.c:6492 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "kunde inte skapa initieringsfil \"%s\" för relations-cache: %m" -#: utils/cache/relcache.c:6478 +#: utils/cache/relcache.c:6494 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Fortsätter ändå, trots att något är fel." -#: utils/cache/relcache.c:6800 +#: utils/cache/relcache.c:6816 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "kunde inte ta bort cache-fil \"%s\": %m" @@ -26913,48 +26939,48 @@ msgstr "oväntat kodnings-ID %d för ISO 8859-teckenuppsättningarna" msgid "unexpected encoding ID %d for WIN character sets" msgstr "oväntat kodnings-ID %d för WIN-teckenuppsättningarna" -#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 +#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 #, c-format msgid "conversion between %s and %s is not supported" msgstr "konvertering mellan %s och %s stöds inte" -#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 -#: utils/mb/mbutils.c:842 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 +#: utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Sträng på %d byte är för lång för kodningskonvertering." -#: utils/mb/mbutils.c:568 +#: utils/mb/mbutils.c:569 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "ogiltigt källkodningsnamn \"%s\"" -#: utils/mb/mbutils.c:573 +#: utils/mb/mbutils.c:574 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "ogiltigt målkodningsnamn \"%s\"" -#: utils/mb/mbutils.c:713 +#: utils/mb/mbutils.c:714 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "ogiltigt byte-sekvens för kodning \"%s\": 0x%02x\"" -#: utils/mb/mbutils.c:877 +#: utils/mb/mbutils.c:878 #, c-format msgid "invalid Unicode code point" msgstr "ogiltig Unicode-kodpunkt" -#: utils/mb/mbutils.c:1146 +#: utils/mb/mbutils.c:1147 #, c-format msgid "bind_textdomain_codeset failed" msgstr "bind_textdomain_codeset misslyckades" -#: utils/mb/mbutils.c:1667 +#: utils/mb/mbutils.c:1668 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "ogiltigt byte-sekvens för kodning \"%s\": %s" -#: utils/mb/mbutils.c:1708 +#: utils/mb/mbutils.c:1709 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "tecken med byte-sekvens %s i kodning \"%s\" har inget motsvarande i kodning \"%s\"" @@ -29260,15 +29286,15 @@ msgstr "Misslyckades vid skapande av minneskontext \"%s\"." msgid "could not attach to dynamic shared area" msgstr "kunde inte ansluta till dynamisk delad area" -#: utils/mmgr/mcxt.c:889 utils/mmgr/mcxt.c:925 utils/mmgr/mcxt.c:963 -#: utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1120 -#: utils/mmgr/mcxt.c:1156 utils/mmgr/mcxt.c:1208 utils/mmgr/mcxt.c:1243 -#: utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:892 utils/mmgr/mcxt.c:928 utils/mmgr/mcxt.c:966 +#: utils/mmgr/mcxt.c:1004 utils/mmgr/mcxt.c:1112 utils/mmgr/mcxt.c:1143 +#: utils/mmgr/mcxt.c:1179 utils/mmgr/mcxt.c:1231 utils/mmgr/mcxt.c:1266 +#: utils/mmgr/mcxt.c:1301 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Misslyckades med förfrågan av storlek %zu i minneskontext \"%s\"." -#: utils/mmgr/mcxt.c:1052 +#: utils/mmgr/mcxt.c:1067 #, c-format msgid "logging memory contexts of PID %d" msgstr "loggar minneskontext för PID %d" diff --git a/src/backend/po/uk.po b/src/backend/po/uk.po index 1e723376069..37a404c36f6 100644 --- a/src/backend/po/uk.po +++ b/src/backend/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: 2025-03-29 11:03+0000\n" -"PO-Revision-Date: 2025-04-01 15:40\n" +"POT-Creation-Date: 2025-12-31 03:03+0000\n" +"PO-Revision-Date: 2026-01-02 12:56\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -72,15 +72,15 @@ msgstr "не вдалося відкрити файл \"%s\" для читанн #: ../common/controldata_utils.c:94 ../common/controldata_utils.c:96 #: access/transam/timeline.c:143 access/transam/timeline.c:362 -#: access/transam/twophase.c:1349 access/transam/xlog.c:3210 -#: access/transam/xlog.c:4022 access/transam/xlogrecovery.c:1223 -#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 -#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1838 +#: access/transam/twophase.c:1349 access/transam/xlog.c:3211 +#: access/transam/xlog.c:4023 access/transam/xlogrecovery.c:1233 +#: access/transam/xlogrecovery.c:1325 access/transam/xlogrecovery.c:1362 +#: access/transam/xlogrecovery.c:1422 backup/basebackup.c:1838 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 -#: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:4963 -#: replication/logical/snapbuild.c:1879 replication/logical/snapbuild.c:1921 -#: replication/logical/snapbuild.c:1948 replication/slot.c:1807 -#: replication/slot.c:1848 replication/walsender.c:658 +#: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:5094 +#: replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1968 +#: replication/logical/snapbuild.c:1995 replication/slot.c:1872 +#: replication/slot.c:1913 replication/walsender.c:672 #: storage/file/buffile.c:463 storage/file/copydir.c:195 #: utils/adt/genfile.c:197 utils/adt/misc.c:856 utils/cache/relmapper.c:816 #, c-format @@ -88,11 +88,11 @@ msgid "could not read file \"%s\": %m" msgstr "не вдалося прочитати файл \"%s\": %m" #: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 -#: access/transam/xlog.c:3215 access/transam/xlog.c:4027 +#: access/transam/xlog.c:3216 access/transam/xlog.c:4028 #: backup/basebackup.c:1842 replication/logical/origin.c:734 -#: replication/logical/origin.c:773 replication/logical/snapbuild.c:1884 -#: replication/logical/snapbuild.c:1926 replication/logical/snapbuild.c:1953 -#: replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 +#: replication/logical/origin.c:773 replication/logical/snapbuild.c:1931 +#: replication/logical/snapbuild.c:1973 replication/logical/snapbuild.c:2000 +#: replication/slot.c:1876 replication/slot.c:1917 replication/walsender.c:677 #: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" @@ -103,17 +103,17 @@ msgstr "не вдалося прочитати файл \"%s\": прочитан #: access/heap/rewriteheap.c:1178 access/heap/rewriteheap.c:1281 #: access/transam/timeline.c:392 access/transam/timeline.c:438 #: access/transam/timeline.c:512 access/transam/twophase.c:1361 -#: access/transam/twophase.c:1780 access/transam/xlog.c:3057 -#: access/transam/xlog.c:3250 access/transam/xlog.c:3255 -#: access/transam/xlog.c:3390 access/transam/xlog.c:3992 -#: access/transam/xlog.c:4738 commands/copyfrom.c:1585 commands/copyto.c:327 +#: access/transam/twophase.c:1780 access/transam/xlog.c:3058 +#: access/transam/xlog.c:3251 access/transam/xlog.c:3256 +#: access/transam/xlog.c:3391 access/transam/xlog.c:3993 +#: access/transam/xlog.c:4739 commands/copyfrom.c:1585 commands/copyto.c:327 #: libpq/be-fsstubs.c:455 libpq/be-fsstubs.c:525 #: replication/logical/origin.c:667 replication/logical/origin.c:806 -#: replication/logical/reorderbuffer.c:5021 -#: replication/logical/snapbuild.c:1788 replication/logical/snapbuild.c:1961 -#: replication/slot.c:1698 replication/slot.c:1859 replication/walsender.c:673 -#: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:745 -#: storage/file/fd.c:3638 storage/file/fd.c:3744 utils/cache/relmapper.c:831 +#: replication/logical/reorderbuffer.c:5152 +#: replication/logical/snapbuild.c:1835 replication/logical/snapbuild.c:2008 +#: replication/slot.c:1761 replication/slot.c:1924 replication/walsender.c:687 +#: storage/file/copydir.c:218 storage/file/copydir.c:223 storage/file/fd.c:742 +#: storage/file/fd.c:3635 storage/file/fd.c:3741 utils/cache/relmapper.c:831 #: utils/cache/relmapper.c:968 #, c-format msgid "could not close file \"%s\": %m" @@ -137,19 +137,19 @@ msgstr "можлива помилка у послідовності байтів #: ../common/file_utils.c:360 access/heap/rewriteheap.c:1264 #: access/transam/timeline.c:111 access/transam/timeline.c:251 #: access/transam/timeline.c:348 access/transam/twophase.c:1305 -#: access/transam/xlog.c:2944 access/transam/xlog.c:3126 -#: access/transam/xlog.c:3165 access/transam/xlog.c:3357 -#: access/transam/xlog.c:4012 access/transam/xlogrecovery.c:4244 -#: access/transam/xlogrecovery.c:4347 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:2945 access/transam/xlog.c:3127 +#: access/transam/xlog.c:3166 access/transam/xlog.c:3358 +#: access/transam/xlog.c:4013 access/transam/xlogrecovery.c:4265 +#: access/transam/xlogrecovery.c:4368 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1518 postmaster/syslogger.c:1560 -#: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3616 -#: replication/logical/reorderbuffer.c:4167 -#: replication/logical/reorderbuffer.c:4943 -#: replication/logical/snapbuild.c:1743 replication/logical/snapbuild.c:1850 -#: replication/slot.c:1779 replication/walsender.c:631 -#: replication/walsender.c:2722 storage/file/copydir.c:161 -#: storage/file/fd.c:720 storage/file/fd.c:3395 storage/file/fd.c:3625 -#: storage/file/fd.c:3715 storage/smgr/md.c:541 utils/cache/relmapper.c:795 +#: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3747 +#: replication/logical/reorderbuffer.c:4298 +#: replication/logical/reorderbuffer.c:5074 +#: replication/logical/snapbuild.c:1790 replication/logical/snapbuild.c:1897 +#: replication/slot.c:1844 replication/walsender.c:645 +#: replication/walsender.c:2740 storage/file/copydir.c:161 +#: storage/file/fd.c:717 storage/file/fd.c:3392 storage/file/fd.c:3622 +#: storage/file/fd.c:3712 storage/smgr/md.c:541 utils/cache/relmapper.c:795 #: utils/cache/relmapper.c:912 utils/error/elog.c:1953 #: utils/init/miscinit.c:1418 utils/init/miscinit.c:1552 #: utils/init/miscinit.c:1629 utils/misc/guc.c:9057 utils/misc/guc.c:9106 @@ -159,9 +159,9 @@ msgstr "не можливо відкрити файл \"%s\": %m" #: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1753 access/transam/twophase.c:1762 -#: access/transam/xlog.c:8707 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8746 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 -#: postmaster/postmaster.c:5635 postmaster/syslogger.c:1571 +#: postmaster/postmaster.c:5637 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 #: utils/cache/relmapper.c:946 #, c-format @@ -173,12 +173,12 @@ msgstr "не вдалося записати файл \"%s\": %m" #: access/heap/rewriteheap.c:960 access/heap/rewriteheap.c:1172 #: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 #: access/transam/timeline.c:506 access/transam/twophase.c:1774 -#: access/transam/xlog.c:3050 access/transam/xlog.c:3244 -#: access/transam/xlog.c:3985 access/transam/xlog.c:8010 -#: access/transam/xlog.c:8053 backup/basebackup_server.c:207 -#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1781 -#: replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:737 -#: storage/file/fd.c:3736 storage/smgr/md.c:994 storage/smgr/md.c:1035 +#: access/transam/xlog.c:3051 access/transam/xlog.c:3245 +#: access/transam/xlog.c:3986 access/transam/xlog.c:8049 +#: access/transam/xlog.c:8092 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1828 +#: replication/slot.c:1745 replication/slot.c:1854 storage/file/fd.c:734 +#: storage/file/fd.c:3733 storage/smgr/md.c:994 storage/smgr/md.c:1035 #: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8826 #, c-format msgid "could not fsync file \"%s\": %m" @@ -191,30 +191,32 @@ msgstr "не вдалося fsync файл \"%s\": %m" #: ../common/md5_common.c:155 ../common/psprintf.c:143 #: ../common/scram-common.c:247 ../common/stringinfo.c:305 ../port/path.c:828 #: ../port/path.c:866 ../port/path.c:883 access/transam/twophase.c:1414 -#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1336 -#: libpq/auth.c:1404 libpq/auth.c:1962 libpq/be-secure-gssapi.c:520 -#: postmaster/bgworker.c:349 postmaster/bgworker.c:931 -#: postmaster/postmaster.c:2596 postmaster/postmaster.c:4181 -#: postmaster/postmaster.c:5560 postmaster/postmaster.c:5931 +#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1344 +#: libpq/auth.c:1412 libpq/auth.c:1970 libpq/be-secure-gssapi.c:530 +#: libpq/be-secure-gssapi.c:702 postmaster/bgworker.c:349 +#: postmaster/bgworker.c:931 postmaster/postmaster.c:2598 +#: postmaster/postmaster.c:4183 postmaster/postmaster.c:5562 +#: postmaster/postmaster.c:5933 #: replication/libpqwalreceiver/libpqwalreceiver.c:300 -#: replication/logical/logical.c:206 replication/walsender.c:701 -#: storage/buffer/localbuf.c:442 storage/file/fd.c:892 storage/file/fd.c:1434 -#: storage/file/fd.c:1595 storage/file/fd.c:2409 storage/ipc/procarray.c:1463 +#: replication/logical/logical.c:206 replication/walsender.c:715 +#: storage/buffer/localbuf.c:442 storage/file/fd.c:889 storage/file/fd.c:1431 +#: storage/file/fd.c:1592 storage/file/fd.c:2406 storage/ipc/procarray.c:1463 #: storage/ipc/procarray.c:2292 storage/ipc/procarray.c:2299 #: storage/ipc/procarray.c:2804 storage/ipc/procarray.c:3435 -#: tcop/postgres.c:3645 utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 -#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:453 -#: utils/adt/pg_locale.c:617 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 +#: tcop/postgres.c:3645 utils/activity/pgstat_shmem.c:503 +#: utils/adt/formatting.c:1732 utils/adt/formatting.c:1854 +#: utils/adt/formatting.c:1977 utils/adt/pg_locale.c:454 +#: utils/adt/pg_locale.c:618 utils/adt/regexp.c:224 utils/fmgr/dfmgr.c:229 #: utils/hash/dynahash.c:513 utils/hash/dynahash.c:613 -#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:401 utils/mb/mbutils.c:429 -#: utils/mb/mbutils.c:814 utils/mb/mbutils.c:841 utils/misc/guc.c:5204 +#: utils/hash/dynahash.c:1116 utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 +#: utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 utils/misc/guc.c:5204 #: utils/misc/guc.c:5220 utils/misc/guc.c:5233 utils/misc/guc.c:8804 #: utils/misc/tzparser.c:476 utils/mmgr/aset.c:476 utils/mmgr/dsa.c:702 #: utils/mmgr/dsa.c:724 utils/mmgr/dsa.c:805 utils/mmgr/generation.c:266 -#: utils/mmgr/mcxt.c:888 utils/mmgr/mcxt.c:924 utils/mmgr/mcxt.c:962 -#: utils/mmgr/mcxt.c:1000 utils/mmgr/mcxt.c:1088 utils/mmgr/mcxt.c:1119 -#: utils/mmgr/mcxt.c:1155 utils/mmgr/mcxt.c:1207 utils/mmgr/mcxt.c:1242 -#: utils/mmgr/mcxt.c:1277 utils/mmgr/slab.c:238 +#: utils/mmgr/mcxt.c:891 utils/mmgr/mcxt.c:927 utils/mmgr/mcxt.c:965 +#: utils/mmgr/mcxt.c:1003 utils/mmgr/mcxt.c:1111 utils/mmgr/mcxt.c:1142 +#: utils/mmgr/mcxt.c:1178 utils/mmgr/mcxt.c:1230 utils/mmgr/mcxt.c:1265 +#: utils/mmgr/mcxt.c:1300 utils/mmgr/slab.c:238 #, c-format msgid "out of memory" msgstr "недостатньо пам'яті" @@ -260,7 +262,7 @@ msgstr "неможливо знайти \"%s\" для виконання" msgid "could not change directory to \"%s\": %m" msgstr "не вдалося змінити каталог на \"%s\": %m" -#: ../common/exec.c:299 access/transam/xlog.c:8356 backup/basebackup.c:1338 +#: ../common/exec.c:299 access/transam/xlog.c:8395 backup/basebackup.c:1338 #: utils/adt/misc.c:335 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -276,8 +278,8 @@ msgstr "%s() помилка: %m" #: ../common/fe_memutils.c:35 ../common/fe_memutils.c:75 #: ../common/fe_memutils.c:98 ../common/fe_memutils.c:162 #: ../common/psprintf.c:145 ../port/path.c:830 ../port/path.c:868 -#: ../port/path.c:885 utils/misc/ps_status.c:208 utils/misc/ps_status.c:216 -#: utils/misc/ps_status.c:246 utils/misc/ps_status.c:254 +#: ../port/path.c:885 utils/misc/ps_status.c:210 utils/misc/ps_status.c:218 +#: utils/misc/ps_status.c:248 utils/misc/ps_status.c:256 #, c-format msgid "out of memory\n" msgstr "недостатньо пам'яті\n" @@ -293,9 +295,9 @@ msgstr "неможливо дублювати нульовий покажчик #: backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 #: commands/copyfrom.c:1535 commands/copyto.c:729 commands/extension.c:3390 #: commands/tablespace.c:825 commands/tablespace.c:914 postmaster/pgarch.c:597 -#: replication/logical/snapbuild.c:1660 storage/file/copydir.c:68 -#: storage/file/copydir.c:107 storage/file/fd.c:1951 storage/file/fd.c:2037 -#: storage/file/fd.c:3243 storage/file/fd.c:3449 utils/adt/dbsize.c:92 +#: replication/logical/snapbuild.c:1707 storage/file/copydir.c:68 +#: storage/file/copydir.c:107 storage/file/fd.c:1948 storage/file/fd.c:2034 +#: storage/file/fd.c:3240 storage/file/fd.c:3446 utils/adt/dbsize.c:92 #: utils/adt/dbsize.c:244 utils/adt/dbsize.c:324 utils/adt/genfile.c:413 #: utils/adt/genfile.c:588 utils/adt/misc.c:321 guc-file.l:1061 #, c-format @@ -303,22 +305,22 @@ msgid "could not stat file \"%s\": %m" msgstr "не вдалося отримати інформацію від файлу \"%s\": %m" #: ../common/file_utils.c:161 ../common/pgfnames.c:48 commands/tablespace.c:749 -#: commands/tablespace.c:759 postmaster/postmaster.c:1581 -#: storage/file/fd.c:2812 storage/file/reinit.c:126 utils/adt/misc.c:235 +#: commands/tablespace.c:759 postmaster/postmaster.c:1583 +#: storage/file/fd.c:2809 storage/file/reinit.c:126 utils/adt/misc.c:235 #: utils/misc/tzparser.c:338 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не вдалося відкрити каталог \"%s\": %m" -#: ../common/file_utils.c:195 ../common/pgfnames.c:69 storage/file/fd.c:2824 +#: ../common/file_utils.c:195 ../common/pgfnames.c:69 storage/file/fd.c:2821 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не вдалося прочитати каталог \"%s\": %m" #: ../common/file_utils.c:378 access/transam/xlogarchive.c:426 -#: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1800 -#: replication/slot.c:721 replication/slot.c:1570 replication/slot.c:1712 -#: storage/file/fd.c:755 storage/file/fd.c:853 utils/time/snapmgr.c:1282 +#: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1847 +#: replication/slot.c:750 replication/slot.c:1628 replication/slot.c:1777 +#: storage/file/fd.c:752 storage/file/fd.c:850 utils/time/snapmgr.c:1282 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\" на \"%s\": %m" @@ -327,84 +329,84 @@ msgstr "не вдалося перейменувати файл \"%s\" на \"%s msgid "internal error" msgstr "внутрішня помилка" -#: ../common/jsonapi.c:1093 +#: ../common/jsonapi.c:1096 #, c-format msgid "Escape sequence \"\\%s\" is invalid." msgstr "Неприпустима спеціальна послідовність \"\\%s\"." -#: ../common/jsonapi.c:1096 +#: ../common/jsonapi.c:1099 #, c-format msgid "Character with value 0x%02x must be escaped." msgstr "Символ зі значенням 0x%02x повинен бути пропущений." -#: ../common/jsonapi.c:1099 +#: ../common/jsonapi.c:1102 #, c-format msgid "Expected end of input, but found \"%s\"." msgstr "Очікувався кінець введення, але знайдено \"%s\"." -#: ../common/jsonapi.c:1102 +#: ../common/jsonapi.c:1105 #, c-format msgid "Expected array element or \"]\", but found \"%s\"." msgstr "Очікувався елемент масиву або \"]\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1105 +#: ../common/jsonapi.c:1108 #, c-format msgid "Expected \",\" or \"]\", but found \"%s\"." msgstr "Очікувалось \",\" або \"]\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1108 +#: ../common/jsonapi.c:1111 #, c-format msgid "Expected \":\", but found \"%s\"." msgstr "Очікувалось \":\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1111 +#: ../common/jsonapi.c:1114 #, c-format msgid "Expected JSON value, but found \"%s\"." msgstr "Очікувалось значення JSON, але знайдено \"%s\"." -#: ../common/jsonapi.c:1114 +#: ../common/jsonapi.c:1117 msgid "The input string ended unexpectedly." msgstr "Несподіваний кінець вхідного рядка." -#: ../common/jsonapi.c:1116 +#: ../common/jsonapi.c:1119 #, c-format msgid "Expected string or \"}\", but found \"%s\"." msgstr "Очікувався рядок або \"}\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1119 +#: ../common/jsonapi.c:1122 #, c-format msgid "Expected \",\" or \"}\", but found \"%s\"." msgstr "Очікувалось \",\" або \"}\", але знайдено \"%s\"." -#: ../common/jsonapi.c:1122 +#: ../common/jsonapi.c:1125 #, c-format msgid "Expected string, but found \"%s\"." msgstr "Очікувався рядок, але знайдено \"%s\"." -#: ../common/jsonapi.c:1125 +#: ../common/jsonapi.c:1128 #, c-format msgid "Token \"%s\" is invalid." msgstr "Неприпустимий маркер \"%s\"." -#: ../common/jsonapi.c:1128 jsonpath_scan.l:495 +#: ../common/jsonapi.c:1131 jsonpath_scan.l:495 #, c-format msgid "\\u0000 cannot be converted to text." msgstr "\\u0000 не можна перетворити в текст." -#: ../common/jsonapi.c:1130 +#: ../common/jsonapi.c:1133 msgid "\"\\u\" must be followed by four hexadecimal digits." msgstr "За \"\\u\" повинні прямувати чотири шістнадцяткових числа." -#: ../common/jsonapi.c:1133 +#: ../common/jsonapi.c:1136 msgid "Unicode escape values cannot be used for code point values above 007F when the encoding is not UTF8." msgstr "Значення виходу Unicode не можна використовувати для значень кодових точок більше 007F, якщо кодування не UTF8." -#: ../common/jsonapi.c:1135 jsonpath_scan.l:516 +#: ../common/jsonapi.c:1138 jsonpath_scan.l:516 #, c-format msgid "Unicode high surrogate must not follow a high surrogate." msgstr "Старший сурогат Unicode не повинен прямувати за іншим старшим сурогатом." -#: ../common/jsonapi.c:1137 jsonpath_scan.l:527 jsonpath_scan.l:537 +#: ../common/jsonapi.c:1140 jsonpath_scan.l:527 jsonpath_scan.l:537 #: jsonpath_scan.l:579 #, c-format msgid "Unicode low surrogate must follow a high surrogate." @@ -445,7 +447,7 @@ msgstr "неприпустима назва відгалуження" msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"." msgstr "Дозволені назви відгалуження: \"main\", \"fsm\", \"vm\" або \"init\"." -#: ../common/restricted_token.c:64 libpq/auth.c:1366 libpq/auth.c:2398 +#: ../common/restricted_token.c:64 libpq/auth.c:1374 libpq/auth.c:2406 #, c-format msgid "could not load library \"%s\": error code %lu" msgstr "не вдалося завантажити бібліотеку \"%s\": код помилки %lu" @@ -524,7 +526,7 @@ msgstr "недостатньо пам'яті\n\n" msgid "could not look up effective user ID %ld: %s" msgstr "не можу знайти користувача з ефективним ID %ld: %s" -#: ../common/username.c:45 libpq/auth.c:1898 +#: ../common/username.c:45 libpq/auth.c:1906 msgid "user does not exist" msgstr "користувача не існує" @@ -703,7 +705,7 @@ msgstr "не можна прийняти значення типу %s" #: access/brin/brin_pageops.c:76 access/brin/brin_pageops.c:362 #: access/brin/brin_pageops.c:848 access/gin/ginentrypage.c:110 -#: access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2001 +#: access/gist/gist.c:1469 access/spgist/spgdoinsert.c:2001 #: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" @@ -841,57 +843,62 @@ msgstr "перевищено встановлене користувачем о msgid "RESET must not include values for parameters" msgstr "RESET не має містити значення для параметрів" -#: access/common/reloptions.c:1266 +#: access/common/reloptions.c:1267 #, c-format msgid "unrecognized parameter namespace \"%s\"" msgstr "нерозпізнаний параметр простору імен \"%s\"" -#: access/common/reloptions.c:1303 utils/misc/guc.c:13055 +#: access/common/reloptions.c:1297 commands/foreigncmds.c:86 +#, c-format +msgid "invalid option name \"%s\": must not contain \"=\"" +msgstr "неприпустиме ім'я параметра \"%s\": не може містити \"=\"" + +#: access/common/reloptions.c:1312 utils/misc/guc.c:13072 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблиці, позначені WITH OIDS, не підтримуються" -#: access/common/reloptions.c:1473 +#: access/common/reloptions.c:1482 #, c-format msgid "unrecognized parameter \"%s\"" msgstr "нерозпізнаний параметр \"%s\"" -#: access/common/reloptions.c:1585 +#: access/common/reloptions.c:1594 #, c-format msgid "parameter \"%s\" specified more than once" msgstr "параметр «%s» вказано кілька разів" -#: access/common/reloptions.c:1601 +#: access/common/reloptions.c:1610 #, c-format msgid "invalid value for boolean option \"%s\": %s" msgstr "неприпустиме значення для булевого параметра \"%s\": %s" -#: access/common/reloptions.c:1613 +#: access/common/reloptions.c:1622 #, c-format msgid "invalid value for integer option \"%s\": %s" msgstr "неприпустиме значення для цілого параметра \"%s\": %s" -#: access/common/reloptions.c:1619 access/common/reloptions.c:1639 +#: access/common/reloptions.c:1628 access/common/reloptions.c:1648 #, c-format msgid "value %s out of bounds for option \"%s\"" msgstr "значення %s поза допустимими межами для параметра \"%s\"" -#: access/common/reloptions.c:1621 +#: access/common/reloptions.c:1630 #, c-format msgid "Valid values are between \"%d\" and \"%d\"." msgstr "Припустимі значення знаходяться між \"%d\" і \"%d\"." -#: access/common/reloptions.c:1633 +#: access/common/reloptions.c:1642 #, c-format msgid "invalid value for floating point option \"%s\": %s" msgstr "неприпустиме значення для числа з плавучою точкою параметра \"%s\": %s" -#: access/common/reloptions.c:1641 +#: access/common/reloptions.c:1650 #, c-format msgid "Valid values are between \"%f\" and \"%f\"." msgstr "Припустимі значення знаходяться між \"%f\" і \"%f\"." -#: access/common/reloptions.c:1663 +#: access/common/reloptions.c:1672 #, c-format msgid "invalid value for enum option \"%s\": %s" msgstr "недійсне значення для параметра перерахування \"%s\": %s" @@ -942,12 +949,12 @@ msgstr "доступ до тимчасових індексів з інших с msgid "failed to re-find tuple within index \"%s\"" msgstr "не вдалося повторно знайти кортеж в межах індексу \"%s\"" -#: access/gin/ginscan.c:436 +#: access/gin/ginscan.c:479 #, c-format msgid "old GIN indexes do not support whole-index scans nor searches for nulls" msgstr "старі індекси GIN не підтримують сканування цілого індексу й пошуки значення null" -#: access/gin/ginscan.c:437 +#: access/gin/ginscan.c:480 #, c-format msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Щоб виправити це, зробіть REINDEX INDEX \"%s\"." @@ -995,7 +1002,7 @@ msgstr "Це викликано неповним поділом сторінки msgid "Please REINDEX it." msgstr "Будь ласка, виконайте REINDEX." -#: access/gist/gist.c:1195 +#: access/gist/gist.c:1202 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "виправлення неповного розділу в індексі \"%s\", блок %u" @@ -1040,7 +1047,7 @@ msgstr "не вдалося визначити, який параметр сор #: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:672 #: catalog/heap.c:678 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:1962 commands/tablecmds.c:17765 commands/view.c:86 +#: commands/indexcmds.c:1962 commands/tablecmds.c:17808 commands/view.c:86 #: regex/regc_pg_locale.c:243 utils/adt/formatting.c:1690 #: utils/adt/formatting.c:1812 utils/adt/formatting.c:1935 utils/adt/like.c:190 #: utils/adt/like_support.c:1025 utils/adt/varchar.c:733 @@ -1095,39 +1102,39 @@ msgstr "сімейство операторів \"%s\" з методом дос msgid "operator family \"%s\" of access method %s is missing cross-type operator(s)" msgstr "сімейство операторів \"%s\" з методом доступу %s не містить міжтипового оператора (ів)" -#: access/heap/heapam.c:2237 +#: access/heap/heapam.c:2275 #, c-format msgid "cannot insert tuples in a parallel worker" msgstr "не вдалося вставити кортежі в паралельного працівника" -#: access/heap/heapam.c:2708 +#: access/heap/heapam.c:2750 #, c-format msgid "cannot delete tuples during a parallel operation" msgstr "не вдалося видалити кортежі під час паралельної операції" -#: access/heap/heapam.c:2754 +#: access/heap/heapam.c:2796 #, c-format msgid "attempted to delete invisible tuple" msgstr "спроба видалити невидимий кортеж" -#: access/heap/heapam.c:3199 access/heap/heapam.c:6448 access/index/genam.c:819 +#: access/heap/heapam.c:3243 access/heap/heapam.c:6577 access/index/genam.c:819 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "неможливо оновити кортежі під час паралельної операції" -#: access/heap/heapam.c:3369 +#: access/heap/heapam.c:3413 #, c-format msgid "attempted to update invisible tuple" msgstr "спроба оновити невидимий кортеж" -#: access/heap/heapam.c:4855 access/heap/heapam.c:4893 -#: access/heap/heapam.c:5158 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4901 access/heap/heapam.c:4939 +#: access/heap/heapam.c:5206 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не вдалося отримати блокування у рядку стосовно \"%s\"" -#: access/heap/heapam.c:6261 commands/trigger.c:3441 -#: executor/nodeModifyTable.c:2362 executor/nodeModifyTable.c:2453 +#: access/heap/heapam.c:6331 commands/trigger.c:3471 +#: executor/nodeModifyTable.c:2383 executor/nodeModifyTable.c:2474 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" msgstr "кортеж, який повинен бути оновленим, вже змінений в операції, яка викликана поточною командою" @@ -1149,12 +1156,12 @@ msgstr "не вдалося записати до файлу \"%s\", запис #: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:481 -#: access/transam/xlog.c:2966 access/transam/xlog.c:3179 -#: access/transam/xlog.c:3964 access/transam/xlog.c:8690 +#: access/transam/xlog.c:2967 access/transam/xlog.c:3180 +#: access/transam/xlog.c:3965 access/transam/xlog.c:8729 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 #: backup/basebackup_server.c:242 commands/dbcommands.c:494 -#: postmaster/postmaster.c:4608 postmaster/postmaster.c:5622 -#: replication/logical/origin.c:587 replication/slot.c:1631 +#: postmaster/postmaster.c:4610 postmaster/postmaster.c:5624 +#: replication/logical/origin.c:587 replication/slot.c:1689 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -1167,12 +1174,12 @@ msgstr "не вдалося скоротити файл \"%s\" до потріб #: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:498 -#: access/transam/xlog.c:3038 access/transam/xlog.c:3235 -#: access/transam/xlog.c:3976 commands/dbcommands.c:506 -#: postmaster/postmaster.c:4618 postmaster/postmaster.c:4628 +#: access/transam/xlog.c:3039 access/transam/xlog.c:3236 +#: access/transam/xlog.c:3977 commands/dbcommands.c:506 +#: postmaster/postmaster.c:4620 postmaster/postmaster.c:4630 #: replication/logical/origin.c:599 replication/logical/origin.c:641 -#: replication/logical/origin.c:660 replication/logical/snapbuild.c:1757 -#: replication/slot.c:1666 storage/file/buffile.c:537 +#: replication/logical/origin.c:660 replication/logical/snapbuild.c:1804 +#: replication/slot.c:1725 storage/file/buffile.c:537 #: storage/file/copydir.c:207 utils/init/miscinit.c:1493 #: utils/init/miscinit.c:1504 utils/init/miscinit.c:1512 utils/misc/guc.c:8787 #: utils/misc/guc.c:8818 utils/misc/guc.c:10816 utils/misc/guc.c:10830 @@ -1183,11 +1190,11 @@ msgstr "неможливо записати до файлу \"%s\": %m" #: access/heap/rewriteheap.c:1249 access/transam/twophase.c:1713 #: access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:436 -#: postmaster/postmaster.c:1157 postmaster/syslogger.c:1537 -#: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4436 -#: replication/logical/snapbuild.c:1702 replication/logical/snapbuild.c:2118 -#: replication/slot.c:1763 storage/file/fd.c:795 storage/file/fd.c:3263 -#: storage/file/fd.c:3325 storage/file/reinit.c:262 storage/ipc/dsm.c:317 +#: postmaster/postmaster.c:1159 postmaster/syslogger.c:1537 +#: replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4567 +#: replication/logical/snapbuild.c:1749 replication/logical/snapbuild.c:2169 +#: replication/slot.c:1828 storage/file/fd.c:792 storage/file/fd.c:3260 +#: storage/file/fd.c:3322 storage/file/reinit.c:262 storage/ipc/dsm.c:317 #: storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 #: utils/time/snapmgr.c:1606 #, c-format @@ -1423,8 +1430,8 @@ msgid "cannot access index \"%s\" while it is being reindexed" msgstr "неможливо отримати доступ до індекса \"%s\" в процесі реіндексації" #: access/index/indexam.c:208 catalog/objectaddress.c:1376 -#: commands/indexcmds.c:2790 commands/tablecmds.c:271 commands/tablecmds.c:295 -#: commands/tablecmds.c:17451 commands/tablecmds.c:19327 +#: commands/indexcmds.c:2824 commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:17484 commands/tablecmds.c:19382 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" не є індексом" @@ -1470,17 +1477,17 @@ msgstr "індекс \"%s\" містить наполовину мертву в msgid "This can be caused by an interrupted VACUUM in version 9.3 or older, before upgrade. Please REINDEX it." msgstr "Це могло статися через переривання VACUUM у версії 9.3 або старше перед оновленням. Будь ласка, виконайте REINDEX." -#: access/nbtree/nbtutils.c:2684 +#: access/nbtree/nbtutils.c:2689 #, c-format msgid "index row size %zu exceeds btree version %u maximum %zu for index \"%s\"" msgstr "розмір рядка індексу %zu перевищує максимальний розмір для версії %u btree %zu для індексу \"%s\"" -#: access/nbtree/nbtutils.c:2690 +#: access/nbtree/nbtutils.c:2695 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Рядок індексу посилається на кортеж (%u,,%u) у відношенні \"%s\"." -#: access/nbtree/nbtutils.c:2694 +#: access/nbtree/nbtutils.c:2699 #, 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." @@ -1519,8 +1526,8 @@ msgid "\"%s\" is an index" msgstr "\"%s\" є індексом" #: access/table/table.c:54 access/table/table.c:88 access/table/table.c:117 -#: access/table/table.c:150 catalog/aclchk.c:1843 commands/tablecmds.c:14137 -#: commands/tablecmds.c:17460 +#: access/table/table.c:150 catalog/aclchk.c:1843 commands/tablecmds.c:14170 +#: commands/tablecmds.c:17493 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" це складений тип" @@ -1535,7 +1542,7 @@ msgstr "невірний tid (%u, %u) для відношення \"%s\"" msgid "%s cannot be empty." msgstr "%s не може бути пустим." -#: access/table/tableamapi.c:122 utils/misc/guc.c:12979 +#: access/table/tableamapi.c:122 utils/misc/guc.c:12985 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s занадто довгий (максимум %d символів)." @@ -1575,25 +1582,25 @@ msgstr "Переконайтесь, що в конфігурації основ msgid "Make sure the configuration parameter \"%s\" is set." msgstr "Переконайтесь, що в конфігурації встановлений параметр \"%s\"." -#: access/transam/multixact.c:1022 +#: access/transam/multixact.c:1106 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database \"%s\"" msgstr "щоб уникнути втрат даних у базі даних \"%s\", база даних не приймає команди, що створюють нові MultiXactIds" -#: access/transam/multixact.c:1024 access/transam/multixact.c:1031 -#: access/transam/multixact.c:1055 access/transam/multixact.c:1064 +#: access/transam/multixact.c:1108 access/transam/multixact.c:1115 +#: access/transam/multixact.c:1139 access/transam/multixact.c:1148 #, c-format msgid "Execute a database-wide VACUUM in that database.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "Виконати очистку (VACUUM) по всій базі даних.\n" "Можливо, вам доведеться зафіксувати, відкотити назад старі підготовані транзакції або видалити застарілі слоти реплікації." -#: access/transam/multixact.c:1029 +#: access/transam/multixact.c:1113 #, c-format msgid "database is not accepting commands that generate new MultiXactIds to avoid wraparound data loss in database with OID %u" msgstr "щоб уникнути втрат даних в базі даних з OID %u, база даних не приймає команди, що створюють нові MultiXactIds" -#: access/transam/multixact.c:1050 access/transam/multixact.c:2334 +#: access/transam/multixact.c:1134 access/transam/multixact.c:2421 #, c-format msgid "database \"%s\" must be vacuumed before %u more MultiXactId is used" msgid_plural "database \"%s\" must be vacuumed before %u more MultiXactIds are used" @@ -1602,7 +1609,7 @@ msgstr[1] "бази даних \"%s\" повинні бути очищені (va msgstr[2] "баз даних \"%s\" повинні бути очищені (vacuumed) перед тим, як більшість MultiXactIds буде використано (%u)" msgstr[3] "баз даних \"%s\" повинні бути очищені (vacuumed) перед тим, як більшість MultiXactId буде використано (%u)" -#: access/transam/multixact.c:1059 access/transam/multixact.c:2343 +#: access/transam/multixact.c:1143 access/transam/multixact.c:2430 #, c-format msgid "database with OID %u must be vacuumed before %u more MultiXactId is used" msgid_plural "database with OID %u must be vacuumed before %u more MultiXactIds are used" @@ -1611,12 +1618,12 @@ msgstr[1] "бази даних з OID %u повинні бути очищені msgstr[2] "баз даних з OID %u повинні бути очищені (vacuumed), перед тим як більшість MultiXactIds буде використано (%u)" msgstr[3] "баз даних з OID %u повинні бути очищені (vacuumed), перед тим як більшість MultiXactId буде використано (%u)" -#: access/transam/multixact.c:1120 +#: access/transam/multixact.c:1207 #, c-format msgid "multixact \"members\" limit exceeded" msgstr "перевищено ліміт членів мультитранзакції" -#: access/transam/multixact.c:1121 +#: access/transam/multixact.c:1208 #, c-format msgid "This command would create a multixact with %u members, but the remaining space is only enough for %u member." msgid_plural "This command would create a multixact with %u members, but the remaining space is only enough for %u members." @@ -1625,12 +1632,12 @@ msgstr[1] "Мультитранзакція створена цією коман msgstr[2] "Мультитранзакція створена цією командою з %u членів, але місця вистачає лише для %u членів." msgstr[3] "Мультитранзакція створена цією командою з %u членів, але місця вистачає лише для %u членів." -#: access/transam/multixact.c:1126 +#: access/transam/multixact.c:1213 #, c-format msgid "Execute a database-wide VACUUM in database with OID %u with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Виконати очистку (VACUUM) по всій базі даних з OID %u зі зменшенням значення vacuum_multixact_freeze_min_age та vacuum_multixact_freeze_table_age settings." -#: access/transam/multixact.c:1157 +#: access/transam/multixact.c:1244 #, c-format msgid "database with OID %u must be vacuumed before %d more multixact member is used" msgid_plural "database with OID %u must be vacuumed before %d more multixact members are used" @@ -1639,22 +1646,27 @@ msgstr[1] "база даних з OID %u повинна бути очищена msgstr[2] "база даних з OID %u повинна бути очищена перед використанням додаткових членів мультитранзакції (%d)" msgstr[3] "база даних з OID %u повинна бути очищена перед використанням додаткових членів мультитранзакції (%d)" -#: access/transam/multixact.c:1162 +#: access/transam/multixact.c:1249 #, c-format msgid "Execute a database-wide VACUUM in that database with reduced vacuum_multixact_freeze_min_age and vacuum_multixact_freeze_table_age settings." msgstr "Виконати очищення (VACUUM) по всій цій базі даних зі зменшенням значення vacuum_multixact_freeze_min_age та vacuum_multixact_freeze_table_age settings." -#: access/transam/multixact.c:1301 +#: access/transam/multixact.c:1388 #, c-format msgid "MultiXactId %u does no longer exist -- apparent wraparound" msgstr "MultiXactId %u припинив існування -- очевидно відбулося зациклення" -#: access/transam/multixact.c:1307 +#: access/transam/multixact.c:1394 #, c-format msgid "MultiXactId %u has not been created yet -- apparent wraparound" msgstr "MultiXactId %u ще не був створений -- очевидно відбулося зациклення" -#: access/transam/multixact.c:2339 access/transam/multixact.c:2348 +#: access/transam/multixact.c:1469 +#, c-format +msgid "MultiXact %u has invalid next offset" +msgstr "У MultiXact %u є недійсне наступне зміщення" + +#: access/transam/multixact.c:2426 access/transam/multixact.c:2435 #: access/transam/varsup.c:151 access/transam/varsup.c:158 #: access/transam/varsup.c:466 access/transam/varsup.c:473 #, c-format @@ -1663,61 +1675,61 @@ msgid "To avoid a database shutdown, execute a database-wide VACUUM in that data msgstr "Щоб уникнути вимкнення бази даних, виконайте VACUUM для всієї бази даних.\n" "Можливо, вам доведеться зафіксувати або відкотити назад старі підготовленні транзакції або видалити застарілі слоти реплікації." -#: access/transam/multixact.c:2622 +#: access/transam/multixact.c:2709 #, c-format msgid "MultiXact member wraparound protections are disabled because oldest checkpointed MultiXact %u does not exist on disk" msgstr "Захист від зациклення члену MultiXact вимкнена, оскільки найстаріша контрольна точка MultiXact %u не існує на диску" -#: access/transam/multixact.c:2644 +#: access/transam/multixact.c:2731 #, c-format msgid "MultiXact member wraparound protections are now enabled" msgstr "Захист від зациклення члену MultiXact наразі ввімкнена" -#: access/transam/multixact.c:3038 +#: access/transam/multixact.c:3125 #, c-format msgid "oldest MultiXact %u not found, earliest MultiXact %u, skipping truncation" msgstr "найстарішу MultiXact %u не знайдено, найновіша MultiXact %u, скорочення пропускається" -#: access/transam/multixact.c:3056 +#: access/transam/multixact.c:3143 #, c-format msgid "cannot truncate up to MultiXact %u because it does not exist on disk, skipping truncation" msgstr "неможливо виконати скорочення до MultiXact %u, оскільки її не існує на диску, скорочення пропускається" -#: access/transam/multixact.c:3370 +#: access/transam/multixact.c:3481 #, c-format msgid "invalid MultiXactId: %u" msgstr "неприпустимий MultiXactId: %u" -#: access/transam/parallel.c:737 access/transam/parallel.c:856 +#: access/transam/parallel.c:744 access/transam/parallel.c:863 #, c-format msgid "parallel worker failed to initialize" msgstr "не вдалося виконати ініціалізацію паралельного виконавця" -#: access/transam/parallel.c:738 access/transam/parallel.c:857 +#: access/transam/parallel.c:745 access/transam/parallel.c:864 #, c-format msgid "More details may be available in the server log." msgstr "Більше деталей можуть бути доступні в журналі серверу." -#: access/transam/parallel.c:918 +#: access/transam/parallel.c:925 #, c-format msgid "postmaster exited during a parallel transaction" msgstr "postmaster завершився під час паралельної транзакції" -#: access/transam/parallel.c:1105 +#: access/transam/parallel.c:1112 #, c-format msgid "lost connection to parallel worker" msgstr "втрачено зв'язок з паралельним виконавцем" -#: access/transam/parallel.c:1171 access/transam/parallel.c:1173 +#: access/transam/parallel.c:1178 access/transam/parallel.c:1180 msgid "parallel worker" msgstr "паралельний виконавець" -#: access/transam/parallel.c:1326 +#: access/transam/parallel.c:1333 #, c-format msgid "could not map dynamic shared memory segment" msgstr "не вдалося відобразити динамічний сегмент спільної пам'яті" -#: access/transam/parallel.c:1331 +#: access/transam/parallel.c:1338 #, c-format msgid "invalid magic number in dynamic shared memory segment" msgstr "неприпустиме магічне число в динамічному сегменті спільної пам'яті" @@ -1976,7 +1988,7 @@ msgid "calculated CRC checksum does not match value stored in file \"%s\"" msgstr "обчислена контрольна сума CRC не відповідає значенню, збереженому у файлі \"%s\"" #: access/transam/twophase.c:1415 access/transam/xlogrecovery.c:588 -#: replication/logical/logical.c:207 replication/walsender.c:702 +#: replication/logical/logical.c:207 replication/walsender.c:716 #, c-format msgid "Failed while allocating a WAL reading processor." msgstr "Не вдалося розмістити обробник журналу транзакцій." @@ -2093,265 +2105,265 @@ msgstr "база даних з OID %u повинна бути очищена (г msgid "cannot have more than 2^32-2 commands in a transaction" msgstr "в одній транзакції не може бути більше 2^32-2 команд" -#: access/transam/xact.c:1644 +#: access/transam/xact.c:1654 #, c-format msgid "maximum number of committed subtransactions (%d) exceeded" msgstr "перевищено межу числа зафіксованих підтранзакцій (%d)" -#: access/transam/xact.c:2501 +#: access/transam/xact.c:2511 #, c-format msgid "cannot PREPARE a transaction that has operated on temporary objects" msgstr "неможливо виконати PREPARE для транзакції, що здійснювалася на тимчасових об'єктах" -#: access/transam/xact.c:2511 +#: access/transam/xact.c:2521 #, c-format msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "не можна виконати PREPARE для транзакції, яка має експортовані знімки" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3479 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s неможливо запустити всередині блоку транзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3489 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s неможливо запустити всередині підтранзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3499 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s не можна використовувати в межах конвеєра" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3509 +#: access/transam/xact.c:3519 #, c-format msgid "%s cannot be executed from a function" msgstr "%s неможливо виконати з функції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3580 access/transam/xact.c:3895 -#: access/transam/xact.c:3974 access/transam/xact.c:4097 -#: access/transam/xact.c:4248 access/transam/xact.c:4317 -#: access/transam/xact.c:4428 +#: access/transam/xact.c:3590 access/transam/xact.c:3905 +#: access/transam/xact.c:3984 access/transam/xact.c:4107 +#: access/transam/xact.c:4258 access/transam/xact.c:4327 +#: access/transam/xact.c:4438 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s може використовуватися тільки в блоках транзакції" -#: access/transam/xact.c:3781 +#: access/transam/xact.c:3791 #, c-format msgid "there is already a transaction in progress" msgstr "транзакція вже виконується" -#: access/transam/xact.c:3900 access/transam/xact.c:3979 -#: access/transam/xact.c:4102 +#: access/transam/xact.c:3910 access/transam/xact.c:3989 +#: access/transam/xact.c:4112 #, c-format msgid "there is no transaction in progress" msgstr "немає незавершеної транзакції" -#: access/transam/xact.c:3990 +#: access/transam/xact.c:4000 #, c-format msgid "cannot commit during a parallel operation" msgstr "не можна фіксувати транзакції під час паралельних операцій" -#: access/transam/xact.c:4113 +#: access/transam/xact.c:4123 #, c-format msgid "cannot abort during a parallel operation" msgstr "не можна перервати під час паралельних операцій" -#: access/transam/xact.c:4212 +#: access/transam/xact.c:4222 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "не можна визначати точки збереження під час паралельних операцій" -#: access/transam/xact.c:4299 +#: access/transam/xact.c:4309 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "не можна вивільняти точки збереження під час паралельних транзакцій" -#: access/transam/xact.c:4309 access/transam/xact.c:4360 -#: access/transam/xact.c:4420 access/transam/xact.c:4469 +#: access/transam/xact.c:4319 access/transam/xact.c:4370 +#: access/transam/xact.c:4430 access/transam/xact.c:4479 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка збереження \"%s\" не існує" -#: access/transam/xact.c:4366 access/transam/xact.c:4475 +#: access/transam/xact.c:4376 access/transam/xact.c:4485 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "точка збереження \"%s\" не існує на поточному рівні збереження точок" -#: access/transam/xact.c:4408 +#: access/transam/xact.c:4418 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "не можна відкотити назад до точки збереження під час паралельних операцій" -#: access/transam/xact.c:4536 +#: access/transam/xact.c:4546 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "не можна запустити підтранзакцію під час паралельних операцій" -#: access/transam/xact.c:4604 +#: access/transam/xact.c:4614 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "не можна визначити підтранзакцію під час паралельних операцій" -#: access/transam/xact.c:5251 +#: access/transam/xact.c:5261 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одній транзакції не може бути більше 2^32-1 підтранзакцій" -#: access/transam/xlog.c:1466 +#: access/transam/xlog.c:1467 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "запит на очищення минулого кінця згенерованого WAL; запит %X/%X, поточна позиція %X/%X" -#: access/transam/xlog.c:2227 +#: access/transam/xlog.c:2228 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "не вдалося записати у файл журналу %s (зсув: %u, довжина: %zu): %m" -#: access/transam/xlog.c:3471 access/transam/xlogutils.c:847 -#: replication/walsender.c:2716 +#: access/transam/xlog.c:3472 access/transam/xlogutils.c:847 +#: replication/walsender.c:2734 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запитуваний сегмент WAL %s вже видалений" -#: access/transam/xlog.c:3756 +#: access/transam/xlog.c:3757 #, c-format msgid "could not rename file \"%s\": %m" msgstr "не вдалося перейменувати файл \"%s\": %m" -#: access/transam/xlog.c:3798 access/transam/xlog.c:3808 +#: access/transam/xlog.c:3799 access/transam/xlog.c:3809 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "необхідний каталог WAL \"%s\" не існує" -#: access/transam/xlog.c:3814 +#: access/transam/xlog.c:3815 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "створюється відсутній каталог WAL \"%s\"" -#: access/transam/xlog.c:3817 commands/dbcommands.c:3135 +#: access/transam/xlog.c:3818 commands/dbcommands.c:3135 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не вдалося створити відстуній каталог \"%s\": %m" -#: access/transam/xlog.c:3884 +#: access/transam/xlog.c:3885 #, c-format msgid "could not generate secret authorization token" msgstr "не вдалося згенерувати секретний токен для авторизації" -#: access/transam/xlog.c:4043 access/transam/xlog.c:4052 -#: access/transam/xlog.c:4076 access/transam/xlog.c:4083 -#: access/transam/xlog.c:4090 access/transam/xlog.c:4095 -#: access/transam/xlog.c:4102 access/transam/xlog.c:4109 -#: access/transam/xlog.c:4116 access/transam/xlog.c:4123 -#: access/transam/xlog.c:4130 access/transam/xlog.c:4137 -#: access/transam/xlog.c:4146 access/transam/xlog.c:4153 +#: access/transam/xlog.c:4044 access/transam/xlog.c:4053 +#: access/transam/xlog.c:4077 access/transam/xlog.c:4084 +#: access/transam/xlog.c:4091 access/transam/xlog.c:4096 +#: access/transam/xlog.c:4103 access/transam/xlog.c:4110 +#: access/transam/xlog.c:4117 access/transam/xlog.c:4124 +#: access/transam/xlog.c:4131 access/transam/xlog.c:4138 +#: access/transam/xlog.c:4147 access/transam/xlog.c:4154 #: utils/init/miscinit.c:1650 #, c-format msgid "database files are incompatible with server" msgstr "файли бази даних є несумісними з даним сервером" -#: access/transam/xlog.c:4044 +#: access/transam/xlog.c:4045 #, 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:4048 +#: access/transam/xlog.c:4049 #, 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:4053 +#: access/transam/xlog.c:4054 #, 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:4056 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4092 +#: access/transam/xlog.c:4057 access/transam/xlog.c:4081 +#: access/transam/xlog.c:4088 access/transam/xlog.c:4093 #, c-format msgid "It looks like you need to initdb." msgstr "Здається, Вам треба виконати initdb." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4068 #, c-format msgid "incorrect checksum in control file" msgstr "помилка контрольної суми у файлі pg_control" -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4078 #, 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:4084 +#: access/transam/xlog.c:4085 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Кластер бази даних було ініціалізовано з MAXALIGN %d, але сервер було скомпільовано з MAXALIGN %d." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4092 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Здається, в кластері баз даних і в програмі сервера використовуються різні формати чисел з плаваючою точкою." -#: access/transam/xlog.c:4096 +#: access/transam/xlog.c:4097 #, 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:4099 access/transam/xlog.c:4106 -#: access/transam/xlog.c:4113 access/transam/xlog.c:4120 -#: access/transam/xlog.c:4127 access/transam/xlog.c:4134 -#: access/transam/xlog.c:4141 access/transam/xlog.c:4149 -#: access/transam/xlog.c:4156 +#: access/transam/xlog.c:4100 access/transam/xlog.c:4107 +#: access/transam/xlog.c:4114 access/transam/xlog.c:4121 +#: access/transam/xlog.c:4128 access/transam/xlog.c:4135 +#: access/transam/xlog.c:4142 access/transam/xlog.c:4150 +#: access/transam/xlog.c:4157 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Здається, вам потрібно перекомпілювати сервер або виконати initdb." -#: access/transam/xlog.c:4103 +#: access/transam/xlog.c:4104 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Кластер бази даних було ініціалізовано з ELSEG_SIZE %d, але сервер було скомпільовано з ELSEG_SIZE %d." -#: access/transam/xlog.c:4110 +#: access/transam/xlog.c:4111 #, 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:4117 +#: access/transam/xlog.c:4118 #, 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:4124 +#: access/transam/xlog.c:4125 #, 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:4131 +#: access/transam/xlog.c:4132 #, 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:4138 +#: access/transam/xlog.c:4139 #, 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:4147 +#: access/transam/xlog.c:4148 #, 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:4154 +#: access/transam/xlog.c:4155 #, 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:4163 +#: access/transam/xlog.c:4164 #, 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" @@ -2360,284 +2372,284 @@ msgstr[1] "Розмір сегменту WAL повинен задаватись msgstr[2] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" msgstr[3] "Розмір сегменту WAL повинен задаватись ступенем 2 в інтервалі від 1 МБ до 1 ГБ, але в керуючому файлі вказано значення %d" -#: access/transam/xlog.c:4175 +#: access/transam/xlog.c:4176 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" має бути мінімум у 2 рази більше, ніж \"wal_segment_size\"" -#: access/transam/xlog.c:4179 +#: access/transam/xlog.c:4180 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" має бути мінімум у 2 рази більше, ніж \"wal_segment_size\"" -#: access/transam/xlog.c:4620 +#: access/transam/xlog.c:4621 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не вдалося записати початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4628 +#: access/transam/xlog.c:4629 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не вдалося скинути на диск початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4634 +#: access/transam/xlog.c:4635 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не вдалося закрити початкове завантаження випереджувального журналювання: %m" -#: access/transam/xlog.c:4852 +#: access/transam/xlog.c:4853 #, c-format msgid "WAL was generated with wal_level=minimal, cannot continue recovering" msgstr "WAL був створений з параметром wal_level=minimal, неможливо продовжити відновлення" -#: access/transam/xlog.c:4853 +#: access/transam/xlog.c:4854 #, c-format msgid "This happens if you temporarily set wal_level=minimal on the server." msgstr "Це трапляється, якщо ви тимчасово встановили параметр wal_level=minimal на сервері." -#: access/transam/xlog.c:4854 +#: access/transam/xlog.c:4855 #, c-format msgid "Use a backup taken after setting wal_level to higher than minimal." msgstr "Використовуйте резервну копію, зроблену після встановлення значення wal_level, що перевищує максимальне." -#: access/transam/xlog.c:4918 +#: access/transam/xlog.c:4919 #, c-format msgid "control file contains invalid checkpoint location" msgstr "контрольний файл містить недійсне розташування контрольної точки" -#: access/transam/xlog.c:4929 +#: access/transam/xlog.c:4930 #, c-format msgid "database system was shut down at %s" msgstr "система бази даних була вимкнена %s" -#: access/transam/xlog.c:4935 +#: access/transam/xlog.c:4936 #, c-format msgid "database system was shut down in recovery at %s" msgstr "система бази даних завершила роботу у процесі відновлення %s" -#: access/transam/xlog.c:4941 +#: access/transam/xlog.c:4942 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "завершення роботи бази даних було перервано; останній момент роботи %s" -#: access/transam/xlog.c:4947 +#: access/transam/xlog.c:4948 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "система бази даних була перервана в процесі відновлення %s" -#: access/transam/xlog.c:4949 +#: access/transam/xlog.c:4950 #, 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:4955 +#: access/transam/xlog.c:4956 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "робота системи бази даних була перервана в процесі відновлення, час в журналі %s" -#: access/transam/xlog.c:4957 +#: access/transam/xlog.c:4958 #, 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:4963 +#: access/transam/xlog.c:4964 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "робота системи бази даних була перервана; останній момент роботи %s" -#: access/transam/xlog.c:4969 +#: access/transam/xlog.c:4970 #, c-format msgid "control file contains invalid database cluster state" msgstr "контрольний файл містить недійсний стан кластеру бази даних" -#: access/transam/xlog.c:5354 +#: access/transam/xlog.c:5355 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL завершився до завершення онлайн резервного копіювання" -#: access/transam/xlog.c:5355 +#: access/transam/xlog.c:5356 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Всі журнали WAL, створені під час резервного копіювання \"на ходу\", повинні бути в наявності для відновлення." -#: access/transam/xlog.c:5358 +#: access/transam/xlog.c:5359 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL завершився до узгодженої точки відновлення" -#: access/transam/xlog.c:5406 +#: access/transam/xlog.c:5407 #, c-format msgid "selected new timeline ID: %u" msgstr "вибрано новий ID часової лінії: %u" -#: access/transam/xlog.c:5439 +#: access/transam/xlog.c:5440 #, c-format msgid "archive recovery complete" msgstr "відновлення архіву завершено" -#: access/transam/xlog.c:6069 +#: access/transam/xlog.c:6070 #, c-format msgid "shutting down" msgstr "завершення роботи" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6108 +#: access/transam/xlog.c:6109 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "початок точки перезапуску: %s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6120 +#: access/transam/xlog.c:6121 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "початок контрольної точки: %s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6180 +#: access/transam/xlog.c:6181 #, c-format msgid "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgstr "точка перезапуску завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб" -#: access/transam/xlog.c:6200 +#: access/transam/xlog.c:6201 #, c-format msgid "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d removed, %d recycled; write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, estimate=%d kB" msgstr "контрольна точка завершена: записано %d буферів (%.1f%%); %d WAL файлів додано, %d видалено, %d перероблених; запис=%ld.%03d сек, синхронізація=%ld.%03d сек, усього=%ld.%03d сек; файли синхронізації=%d, найдовший=%ld.%03d сек, середній=%ld.%03d сек; дистанція=%d кб, приблизно=%d кб" -#: access/transam/xlog.c:6642 +#: access/transam/xlog.c:6653 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "під час того вимкнення БД помічено конкурентну активність у випереджувальному журналюванні" -#: access/transam/xlog.c:7199 +#: access/transam/xlog.c:7236 #, c-format msgid "recovery restart point at %X/%X" msgstr "відновлення збереженої точки %X/%X" -#: access/transam/xlog.c:7201 +#: access/transam/xlog.c:7238 #, c-format msgid "Last completed transaction was at log time %s." msgstr "Остання завершена транзакція була в %s." -#: access/transam/xlog.c:7448 +#: access/transam/xlog.c:7487 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка відновлення \"%s\" створена в %X/%X" -#: access/transam/xlog.c:7655 +#: access/transam/xlog.c:7694 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "онлайн резервне копіювання скасовано, неможливо продовжити відновлення" -#: access/transam/xlog.c:7713 +#: access/transam/xlog.c:7752 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі контрольної точки вимкнення" -#: access/transam/xlog.c:7771 +#: access/transam/xlog.c:7810 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі контрольної точки онлайн" -#: access/transam/xlog.c:7800 +#: access/transam/xlog.c:7839 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "неочікуваний ID лінії часу %u (повинен бути %u) у записі кінця відновлення" -#: access/transam/xlog.c:8058 +#: access/transam/xlog.c:8097 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не вдалосьясинхронізувати файл наскрізного запису %s: %m" -#: access/transam/xlog.c:8064 +#: access/transam/xlog.c:8103 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не вдалося fdatasync файл \"%s\": %m" -#: access/transam/xlog.c:8159 access/transam/xlog.c:8526 +#: access/transam/xlog.c:8198 access/transam/xlog.c:8565 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "Обраний рівень WAL недостатній для резервного копіювання \"на ходу\"" -#: access/transam/xlog.c:8160 access/transam/xlog.c:8527 +#: access/transam/xlog.c:8199 access/transam/xlog.c:8566 #: access/transam/xlogfuncs.c:199 #, c-format msgid "wal_level must be set to \"replica\" or \"logical\" at server start." msgstr "встановіть wal_level \"replica\" або \"logical\" при запуску серверу." -#: access/transam/xlog.c:8165 +#: access/transam/xlog.c:8204 #, c-format msgid "backup label too long (max %d bytes)" msgstr "мітка резервного копіювання задовга (максимум %d байт)" -#: access/transam/xlog.c:8281 +#: access/transam/xlog.c:8320 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "Після останньої точки відновлення був відтворений WAL, створений в режимі full_page_writes=off" -#: access/transam/xlog.c:8283 access/transam/xlog.c:8639 +#: access/transam/xlog.c:8322 access/transam/xlog.c:8678 #, 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 primary, and then try an online backup again." msgstr "Це означає, що резервна копія, зроблена на резервному сервері пошкоджена і не повинна використовуватись. Активуйте full_page_writes і запустіть CHECKPOINT на основному сервері, а потім спробуйте ще раз створити резервну копію в Інтернеті." -#: access/transam/xlog.c:8363 backup/basebackup.c:1343 utils/adt/misc.c:340 +#: access/transam/xlog.c:8402 backup/basebackup.c:1343 utils/adt/misc.c:340 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "таргет символічного посилання \"%s\" задовгий" -#: access/transam/xlog.c:8413 backup/basebackup.c:1358 +#: access/transam/xlog.c:8452 backup/basebackup.c:1358 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:348 #, c-format msgid "tablespaces are not supported on this platform" msgstr "табличний простір не підтримується на цій платформі" -#: access/transam/xlog.c:8572 access/transam/xlog.c:8585 -#: access/transam/xlogrecovery.c:1237 access/transam/xlogrecovery.c:1244 -#: access/transam/xlogrecovery.c:1303 access/transam/xlogrecovery.c:1383 -#: access/transam/xlogrecovery.c:1407 +#: access/transam/xlog.c:8611 access/transam/xlog.c:8624 +#: access/transam/xlogrecovery.c:1247 access/transam/xlogrecovery.c:1254 +#: access/transam/xlogrecovery.c:1313 access/transam/xlogrecovery.c:1393 +#: access/transam/xlogrecovery.c:1417 #, c-format msgid "invalid data in file \"%s\"" msgstr "невірні дані у файлі \"%s\"" -#: access/transam/xlog.c:8589 backup/basebackup.c:1204 +#: access/transam/xlog.c:8628 backup/basebackup.c:1204 #, c-format msgid "the standby was promoted during online backup" msgstr "режим очікування було підвищено у процесі резервного копіювання \"на ходу\"" -#: access/transam/xlog.c:8590 backup/basebackup.c:1205 +#: access/transam/xlog.c:8629 backup/basebackup.c:1205 #, 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:8637 +#: access/transam/xlog.c:8676 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "У процесі резервного копіювання \"на ходу\" був відтворений WAL, створений в режимі full_page_writes=off" -#: access/transam/xlog.c:8762 +#: access/transam/xlog.c:8801 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "резервне копіювання виконане, очікуються необхідні сегменти WAL для архівації" -#: access/transam/xlog.c:8776 +#: access/transam/xlog.c:8815 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "все ще чекає на необхідні сегменти WAL для архівації (%d секунд пройшло)" -#: access/transam/xlog.c:8778 +#: access/transam/xlog.c:8817 #, c-format 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 "Перевірте, чи правильно виконується команда archive_command. Ви можете безпечно скасувати це резервне копіювання, але резервна копія БД буде непридатна без усіх сегментів WAL." -#: access/transam/xlog.c:8785 +#: access/transam/xlog.c:8824 #, c-format msgid "all required WAL segments have been archived" msgstr "усі необхідні сегменти WAL архівовані" -#: access/transam/xlog.c:8789 +#: access/transam/xlog.c:8828 #, 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:8838 +#: access/transam/xlog.c:8877 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "припинення резервного копіювання через завершення обслуговуючого процесу до виклику pg_backup_stop" @@ -2775,147 +2787,147 @@ msgstr "невірний зсув запису: %X/%X" msgid "contrecord is requested by %X/%X" msgstr "по зсуву %X/%X запитано продовження запису" -#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1144 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "невірна довжина запису по зсуву %X/%X: очікувалось %u, отримано %u" -#: access/transam/xlogreader.c:758 +#: access/transam/xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "немає прапора contrecord на %X/%X" -#: access/transam/xlogreader.c:771 +#: access/transam/xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неприпустима довжина contrecord %u (очікувалось %lld) на %X/%X" -#: access/transam/xlogreader.c:1142 +#: access/transam/xlogreader.c:1152 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "невірний ID менеджера ресурсів %u в %X/%X" -#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 +#: access/transam/xlogreader.c:1165 access/transam/xlogreader.c:1181 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запис з неправильним попереднім посиланням %X/%X на %X/%X" -#: access/transam/xlogreader.c:1209 +#: access/transam/xlogreader.c:1219 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "некоректна контрольна сума даних менеджера ресурсів у запису по зсуву %X/%X" -#: access/transam/xlogreader.c:1246 +#: access/transam/xlogreader.c:1256 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "невірне магічне число %04X в сегменті журналу %s, зсув %u" -#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1301 +#: access/transam/xlogreader.c:1270 access/transam/xlogreader.c:1311 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "невірні інформаційні біти %04X в сегменті журналу %s, зсув %u" -#: access/transam/xlogreader.c:1275 +#: access/transam/xlogreader.c:1285 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL файл належить іншій системі баз даних: ідентифікатор системи баз даних де міститься WAL файл - %llu, а ідентифікатор системи баз даних pg_control - %llu" -#: access/transam/xlogreader.c:1283 +#: access/transam/xlogreader.c:1293 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний розмір сегменту в заголовку сторінки" -#: access/transam/xlogreader.c:1289 +#: access/transam/xlogreader.c:1299 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Файл WAL належить іншій системі баз даних: некоректний XLOG_BLCKSZ в заголовку сторінки" -#: access/transam/xlogreader.c:1320 +#: access/transam/xlogreader.c:1330 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неочікуваний pageaddr %X/%X в сегменті журналу %s, зсув %u" -#: access/transam/xlogreader.c:1345 +#: access/transam/xlogreader.c:1355 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "порушення послідовності ID лінії часу %u (після %u) в сегменті журналу %s, зсув %u" -#: access/transam/xlogreader.c:1750 +#: access/transam/xlogreader.c:1760 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ідентифікатор блока %u out-of-order в позиції %X/%X" -#: access/transam/xlogreader.c:1774 +#: access/transam/xlogreader.c:1784 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA встановлений, але немає даних в позиції %X/%X" -#: access/transam/xlogreader.c:1781 +#: access/transam/xlogreader.c:1791 #, 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:1817 +#: access/transam/xlogreader.c:1827 #, 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:1833 +#: access/transam/xlogreader.c:1843 #, 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:1847 +#: access/transam/xlogreader.c:1857 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED встановлений, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1862 +#: access/transam/xlogreader.c:1872 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "ні BKPIMAGE_HAS_HOLE, ні BKPIMAGE_COMPRESSED не встановлені, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1878 +#: access/transam/xlogreader.c:1888 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL встановлений, але попереднє значення не задано в позиції %X/%X" -#: access/transam/xlogreader.c:1890 +#: access/transam/xlogreader.c:1900 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "невірний ідентифікатор блоку %u в позиції %X/%X" -#: access/transam/xlogreader.c:1957 +#: access/transam/xlogreader.c:1967 #, c-format msgid "record with invalid length at %X/%X" msgstr "запис з невірною довжиною на %X/%X" -#: access/transam/xlogreader.c:1982 +#: access/transam/xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не вдалося знайти блок резервної копії з ID %d у записі WAL" -#: access/transam/xlogreader.c:2066 +#: access/transam/xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "не вдалося відновити зображення %X/%X з недійсним вказаним блоком %d" -#: access/transam/xlogreader.c:2073 +#: access/transam/xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "не вдалося відновити зображення %X/%X з недійсним станом, блок %d" -#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 +#: access/transam/xlogreader.c:2110 access/transam/xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "не вдалося відновити зображення в %X/%X, стиснуте %s, не підтримується збіркою, блок %d" -#: access/transam/xlogreader.c:2126 +#: access/transam/xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "не вдалося відновити зображення %X/%X стиснуте з невідомим методом, блок %d" -#: access/transam/xlogreader.c:2134 +#: access/transam/xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не вдалося розпакувати зображення на %X/%X, блок %d" @@ -3009,374 +3021,379 @@ msgstr "перезапуск відновлення резервної копі msgid "could not locate a valid checkpoint record" msgstr "не вдалося знайти запис допустимої контрольної точки" -#: access/transam/xlogrecovery.c:834 +#: access/transam/xlogrecovery.c:821 +#, c-format +msgid "could not find redo location %X/%08X referenced by checkpoint record at %X/%08X" +msgstr "не вдалося знайти місце перезапису %X/%08X, на який посилається запис контрольної точки в %X/%08X" + +#: access/transam/xlogrecovery.c:844 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "запитувана лінія часу %u не є відгалуженням історії цього серверу" -#: access/transam/xlogrecovery.c:836 +#: access/transam/xlogrecovery.c:846 #, 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/xlogrecovery.c:850 +#: access/transam/xlogrecovery.c:860 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "запитувана лінія часу %u не містить мінімальну точку відновлення %X/%X на лінії часу %u" -#: access/transam/xlogrecovery.c:878 +#: access/transam/xlogrecovery.c:888 #, c-format msgid "invalid next transaction ID" msgstr "невірний ID наступної транзакції" -#: access/transam/xlogrecovery.c:883 +#: access/transam/xlogrecovery.c:893 #, c-format msgid "invalid redo in checkpoint record" msgstr "невірний запис REDO в контрольній точці" -#: access/transam/xlogrecovery.c:894 +#: access/transam/xlogrecovery.c:904 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "невірний запис REDO в контрольній точці вимкнення" -#: access/transam/xlogrecovery.c:923 +#: access/transam/xlogrecovery.c:933 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "робота системи бази даних не була завершена належним чином; відбувається автоматичне відновлення" -#: access/transam/xlogrecovery.c:927 +#: access/transam/xlogrecovery.c:937 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "відновлення після збою починається на лінії часу %u і має цільову лінію часу: %u" -#: access/transam/xlogrecovery.c:970 +#: access/transam/xlogrecovery.c:980 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label містить дані, які не узгоджені з файлом pg_control" -#: access/transam/xlogrecovery.c:971 +#: access/transam/xlogrecovery.c:981 #, c-format msgid "This means that the backup is corrupted and you will have to use another backup for recovery." msgstr "Це означає, що резервна копія була пошкоджена і вам доведеться використати іншу резервну копію для відновлення." -#: access/transam/xlogrecovery.c:1025 +#: access/transam/xlogrecovery.c:1035 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "використання файлу команд відновлення \"%s\" не підтримується" -#: access/transam/xlogrecovery.c:1090 +#: access/transam/xlogrecovery.c:1100 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "режим очікування не підтримується однокористувацьким сервером" -#: access/transam/xlogrecovery.c:1107 +#: access/transam/xlogrecovery.c:1117 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "не заззначено ані параметр primary_conninfo, ані параметр restore_command" -#: access/transam/xlogrecovery.c:1108 +#: access/transam/xlogrecovery.c:1118 #, c-format msgid "The database server will regularly poll the pg_wal subdirectory to check for files placed there." msgstr "Сервер бази даних буде регулярно опитувати підкатолог pg_wal і перевіряти файли, що містяться у ньому." -#: access/transam/xlogrecovery.c:1116 +#: access/transam/xlogrecovery.c:1126 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "необхідно вказати restore_command, якщо не ввімкнено режиму очікування" -#: access/transam/xlogrecovery.c:1154 +#: access/transam/xlogrecovery.c:1164 #, c-format msgid "recovery target timeline %u does not exist" msgstr "цільова лінія часу відновлення %u не існує" -#: access/transam/xlogrecovery.c:1304 +#: access/transam/xlogrecovery.c:1314 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Проаналізовано ID часової лінії %u, очіувалося %u." -#: access/transam/xlogrecovery.c:1686 +#: access/transam/xlogrecovery.c:1696 #, c-format msgid "redo starts at %X/%X" msgstr "запис REDO починається з %X/%X" -#: access/transam/xlogrecovery.c:1699 +#: access/transam/xlogrecovery.c:1709 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "запис REDO триває, минуло часу: %ld.%02d s, поточний LSN: %X/%X" -#: access/transam/xlogrecovery.c:1791 +#: access/transam/xlogrecovery.c:1801 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "запитувана точка відновлення передує узгодженій точці відновлення" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1833 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "повторно виконано через %X/%X системне використання: %s" -#: access/transam/xlogrecovery.c:1829 +#: access/transam/xlogrecovery.c:1839 #, c-format msgid "last completed transaction was at log time %s" msgstr "остання завершена транзакція була в %s" -#: access/transam/xlogrecovery.c:1838 +#: access/transam/xlogrecovery.c:1848 #, c-format msgid "redo is not required" msgstr "дані REDO не потрібні" -#: access/transam/xlogrecovery.c:1849 +#: access/transam/xlogrecovery.c:1859 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "відновлення завершилось до досягення налаштованої цілі відновлення" -#: access/transam/xlogrecovery.c:2024 +#: access/transam/xlogrecovery.c:2034 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "успішно пропущений відсутній contrecord при %X/%X, перезаписано на %s" -#: access/transam/xlogrecovery.c:2091 +#: access/transam/xlogrecovery.c:2101 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "знайдено неочікуваний запис каталогу \"%s\" в %s" -#: access/transam/xlogrecovery.c:2093 +#: access/transam/xlogrecovery.c:2103 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Всі записи каталогу в pg_tblspc/ повинні бути символічними посиланнями." -#: access/transam/xlogrecovery.c:2094 +#: access/transam/xlogrecovery.c:2104 #, c-format msgid "Remove those directories, or set allow_in_place_tablespaces to ON transiently to let recovery complete." msgstr "Видаліть ті каталоги, або тимчасово встановіть для параметра allow_in_place_tablespaces значення ON, щоб завершити відновлення." -#: access/transam/xlogrecovery.c:2146 +#: access/transam/xlogrecovery.c:2156 #, c-format msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" msgstr "завершено відновлення резервної копії з LSN повторення %X/%X і LSN закінчення %X/%X" -#: access/transam/xlogrecovery.c:2176 +#: access/transam/xlogrecovery.c:2186 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "узгоджений стан відновлення досягнутий %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2214 +#: access/transam/xlogrecovery.c:2224 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запис REDO в WAL в позиції %X/%X для %s" -#: access/transam/xlogrecovery.c:2310 +#: access/transam/xlogrecovery.c:2320 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "несподіваний ID попередньої лінії часу %u (ID теперішньої лінії часу %u) в записі контрольної точки" -#: access/transam/xlogrecovery.c:2319 +#: access/transam/xlogrecovery.c:2329 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "неочікуваний ID лінії часу %u (після %u) в записі контрольної точки" -#: access/transam/xlogrecovery.c:2335 +#: access/transam/xlogrecovery.c:2345 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "неочікуваний ID лінії часу %u в записі контрольної точки, до досягнення мінімальної точки відновлення %X/%X на лінії часу %u" -#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 +#: access/transam/xlogrecovery.c:2529 access/transam/xlogrecovery.c:2805 #, c-format msgid "recovery stopping after reaching consistency" msgstr "відновлення зупиняється після досягнення узгодженості" -#: access/transam/xlogrecovery.c:2540 +#: access/transam/xlogrecovery.c:2550 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "відновлення зупиняється перед позицією WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2630 +#: access/transam/xlogrecovery.c:2640 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "відновлення припиняється до підтвердження транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2637 +#: access/transam/xlogrecovery.c:2647 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "відновлення припиняється до скасування транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2690 +#: access/transam/xlogrecovery.c:2700 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "відновлення припиняється в точці відновлення\"%s\", час %s" -#: access/transam/xlogrecovery.c:2708 +#: access/transam/xlogrecovery.c:2718 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "відновлення припиняється пісня локації WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2775 +#: access/transam/xlogrecovery.c:2785 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "відновлення припиняється після підтвердження транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2783 +#: access/transam/xlogrecovery.c:2793 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "відновлення припиняється після скасування транзакції %u, час %s" -#: access/transam/xlogrecovery.c:2864 +#: access/transam/xlogrecovery.c:2874 #, c-format msgid "pausing at the end of recovery" msgstr "пауза в кінці відновлення" -#: access/transam/xlogrecovery.c:2865 +#: access/transam/xlogrecovery.c:2875 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Виконайте pg_wal_replay_resume() для підвищення рівня." -#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4679 +#: access/transam/xlogrecovery.c:2878 access/transam/xlogrecovery.c:4700 #, c-format msgid "recovery has paused" msgstr "відновлення зупинено" -#: access/transam/xlogrecovery.c:2869 +#: access/transam/xlogrecovery.c:2879 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Виконайте pg_wal_replay_resume(), щоб продовжити." -#: access/transam/xlogrecovery.c:3135 +#: access/transam/xlogrecovery.c:3145 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "неочіукваний ID лінії часу %u в сегменті журналу %s, зсув %u" -#: access/transam/xlogrecovery.c:3340 +#: access/transam/xlogrecovery.c:3350 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "не вдалося прочитати сегмент журналу %s, зсув %u: %m" -#: access/transam/xlogrecovery.c:3346 +#: access/transam/xlogrecovery.c:3356 #, c-format msgid "could not read from log segment %s, offset %u: read %d of %zu" msgstr "не вдалося прочитати сегмент журналу %s, зсув %u: прочитано %d з %zu" -#: access/transam/xlogrecovery.c:3996 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "невірне посилання на первинну контрольну точку в контрольному файлі" -#: access/transam/xlogrecovery.c:4000 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "невірне посилання на контрольну точку в файлі backup_label" -#: access/transam/xlogrecovery.c:4018 +#: access/transam/xlogrecovery.c:4039 #, c-format msgid "invalid primary checkpoint record" msgstr "невірний запис первинної контрольної точки" -#: access/transam/xlogrecovery.c:4022 +#: access/transam/xlogrecovery.c:4043 #, c-format msgid "invalid checkpoint record" msgstr "невірний запис контрольної точки" -#: access/transam/xlogrecovery.c:4033 +#: access/transam/xlogrecovery.c:4054 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "невірний ID менеджера ресурсів в записі первинної контрольної точки" -#: access/transam/xlogrecovery.c:4037 +#: access/transam/xlogrecovery.c:4058 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "невірний ID менеджера ресурсів в записі контрольної точки" -#: access/transam/xlogrecovery.c:4050 +#: access/transam/xlogrecovery.c:4071 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "невірний xl_info у записі первинної контрольної точки" -#: access/transam/xlogrecovery.c:4054 +#: access/transam/xlogrecovery.c:4075 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "невірний xl_info у записі контрольної точки" -#: access/transam/xlogrecovery.c:4065 +#: access/transam/xlogrecovery.c:4086 #, c-format msgid "invalid length of primary checkpoint record" msgstr "невірна довжина запису первинної контрольної очки" -#: access/transam/xlogrecovery.c:4069 +#: access/transam/xlogrecovery.c:4090 #, c-format msgid "invalid length of checkpoint record" msgstr "невірна довжина запису контрольної точки" -#: access/transam/xlogrecovery.c:4125 +#: access/transam/xlogrecovery.c:4146 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "нова лінія часу %u не є дочірньою для лінії часу системи бази даних %u" -#: access/transam/xlogrecovery.c:4139 +#: access/transam/xlogrecovery.c:4160 #, c-format msgid "new timeline %u forked off current database system timeline %u before current recovery point %X/%X" msgstr "нова лінія часу %u відгалузилась від поточної лінії часу бази даних %u до поточної точки відновлення %X/%X" -#: access/transam/xlogrecovery.c:4158 +#: access/transam/xlogrecovery.c:4179 #, c-format msgid "new target timeline is %u" msgstr "нова цільова лінія часу %u" -#: access/transam/xlogrecovery.c:4361 +#: access/transam/xlogrecovery.c:4382 #, c-format msgid "WAL receiver process shutdown requested" msgstr "Запит на вимкнення процесу приймача WAL" -#: access/transam/xlogrecovery.c:4424 +#: access/transam/xlogrecovery.c:4445 #, c-format msgid "received promote request" msgstr "отримано запит підвищення статусу" -#: access/transam/xlogrecovery.c:4437 +#: access/transam/xlogrecovery.c:4458 #, c-format msgid "promote trigger file found: %s" msgstr "знайдено файл тригера підвищення: %s" -#: access/transam/xlogrecovery.c:4445 +#: access/transam/xlogrecovery.c:4466 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "не вдалося отримати інформацію про файл тригера підвищення \"%s\": %m" -#: access/transam/xlogrecovery.c:4670 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "hot standby неможливий через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4671 access/transam/xlogrecovery.c:4698 -#: access/transam/xlogrecovery.c:4728 +#: access/transam/xlogrecovery.c:4692 access/transam/xlogrecovery.c:4719 +#: access/transam/xlogrecovery.c:4749 #, c-format msgid "%s = %d is a lower setting than on the primary server, where its value was %d." msgstr "%s = %d є нижчим параметром, ніж на основному сервері, де його значення було %d." -#: access/transam/xlogrecovery.c:4680 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Якщо відновлення не буде зупинено, сервер завершить роботу." -#: access/transam/xlogrecovery.c:4681 +#: access/transam/xlogrecovery.c:4702 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "Після здійснення необхідних змін у конфігурації, ви можете перезапустити сервер." -#: access/transam/xlogrecovery.c:4692 +#: access/transam/xlogrecovery.c:4713 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "підвищення неможливе через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4702 +#: access/transam/xlogrecovery.c:4723 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "Перезапустити сервер після здійснення необхідних змін у конфігурації." -#: access/transam/xlogrecovery.c:4726 +#: access/transam/xlogrecovery.c:4747 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "відновлення перервано через недостатнє налаштування параметрів" -#: access/transam/xlogrecovery.c:4732 +#: access/transam/xlogrecovery.c:4753 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "Ви можете перезапустити сервер, після здійснення необхідних змін у конфігурації." @@ -3580,7 +3597,7 @@ msgstr "відносний шлях не дозволений для резер #: backup/basebackup_server.c:102 commands/dbcommands.c:477 #: commands/tablespace.c:163 commands/tablespace.c:179 -#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1558 +#: commands/tablespace.c:614 commands/tablespace.c:659 replication/slot.c:1616 #: storage/file/copydir.c:47 #, c-format msgid "could not create directory \"%s\": %m" @@ -3802,29 +3819,29 @@ msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "речення IN SCHEMA не можна використати в GRANT/REVOKE ON SCHEMAS" #: catalog/aclchk.c:1588 catalog/catalog.c:657 catalog/objectaddress.c:1543 -#: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 -#: commands/sequence.c:1673 commands/tablecmds.c:7374 commands/tablecmds.c:7530 -#: commands/tablecmds.c:7580 commands/tablecmds.c:7654 -#: commands/tablecmds.c:7724 commands/tablecmds.c:7836 -#: commands/tablecmds.c:7930 commands/tablecmds.c:7989 -#: commands/tablecmds.c:8078 commands/tablecmds.c:8108 -#: commands/tablecmds.c:8236 commands/tablecmds.c:8318 -#: commands/tablecmds.c:8474 commands/tablecmds.c:8596 -#: commands/tablecmds.c:12431 commands/tablecmds.c:12623 -#: commands/tablecmds.c:12783 commands/tablecmds.c:13980 -#: commands/tablecmds.c:16550 commands/trigger.c:954 parser/analyze.c:2517 +#: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:816 +#: commands/sequence.c:1673 commands/tablecmds.c:7376 commands/tablecmds.c:7532 +#: commands/tablecmds.c:7582 commands/tablecmds.c:7656 +#: commands/tablecmds.c:7726 commands/tablecmds.c:7838 +#: commands/tablecmds.c:7932 commands/tablecmds.c:7991 +#: commands/tablecmds.c:8080 commands/tablecmds.c:8110 +#: commands/tablecmds.c:8238 commands/tablecmds.c:8320 +#: commands/tablecmds.c:8476 commands/tablecmds.c:8598 +#: commands/tablecmds.c:12441 commands/tablecmds.c:12633 +#: commands/tablecmds.c:12793 commands/tablecmds.c:14013 +#: commands/tablecmds.c:16583 commands/trigger.c:954 parser/analyze.c:2517 #: parser/parse_relation.c:725 parser/parse_target.c:1077 #: parser/parse_type.c:144 parser/parse_utilcmd.c:3465 -#: parser/parse_utilcmd.c:3501 parser/parse_utilcmd.c:3543 utils/adt/acl.c:2869 +#: parser/parse_utilcmd.c:3501 parser/parse_utilcmd.c:3543 utils/adt/acl.c:2886 #: utils/adt/ruleutils.c:2828 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "стовпець \"%s\" зв'язку \"%s\" не існує" #: catalog/aclchk.c:1851 catalog/objectaddress.c:1383 commands/sequence.c:1179 -#: commands/tablecmds.c:253 commands/tablecmds.c:17424 utils/adt/acl.c:2077 -#: utils/adt/acl.c:2107 utils/adt/acl.c:2139 utils/adt/acl.c:2171 -#: utils/adt/acl.c:2199 utils/adt/acl.c:2229 +#: commands/tablecmds.c:253 commands/tablecmds.c:17457 utils/adt/acl.c:2094 +#: utils/adt/acl.c:2124 utils/adt/acl.c:2156 utils/adt/acl.c:2188 +#: utils/adt/acl.c:2216 utils/adt/acl.c:2246 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\" не є послідовністю" @@ -4258,12 +4275,12 @@ msgstr "схема з OID %u не існує" msgid "tablespace with OID %u does not exist" msgstr "табличний простір з OID %u не існує" -#: catalog/aclchk.c:4699 catalog/aclchk.c:5526 commands/foreigncmds.c:325 +#: catalog/aclchk.c:4699 catalog/aclchk.c:5526 commands/foreigncmds.c:336 #, c-format msgid "foreign-data wrapper with OID %u does not exist" msgstr "джерело сторонніх даних з OID %u не існує" -#: catalog/aclchk.c:4761 catalog/aclchk.c:5553 commands/foreigncmds.c:462 +#: catalog/aclchk.c:4761 catalog/aclchk.c:5553 commands/foreigncmds.c:473 #, c-format msgid "foreign server with OID %u does not exist" msgstr "стороннього серверу з OID %u не усніє" @@ -4299,7 +4316,7 @@ msgstr "словник текстового пошуку з OID %u не існу msgid "text search configuration with OID %u does not exist" msgstr "конфігурація текстового пошуку %u з OID не існує" -#: catalog/aclchk.c:5580 commands/event_trigger.c:453 +#: catalog/aclchk.c:5580 commands/event_trigger.c:458 #, c-format msgid "event trigger with OID %u does not exist" msgstr "тригер подій %u з OID не існує" @@ -4324,7 +4341,7 @@ msgstr "розширення %u з OID не існує" msgid "publication with OID %u does not exist" msgstr "публікації %u з OID не існує" -#: catalog/aclchk.c:5753 commands/subscriptioncmds.c:1742 +#: catalog/aclchk.c:5753 commands/subscriptioncmds.c:1744 #, c-format msgid "subscription with OID %u does not exist" msgstr "підписки %u з OID не існує" @@ -4429,12 +4446,13 @@ msgstr "неможливо видалити %s, тому що від нього #: catalog/dependency.c:1201 catalog/dependency.c:1208 #: catalog/dependency.c:1219 commands/tablecmds.c:1342 -#: commands/tablecmds.c:14622 commands/tablespace.c:476 commands/user.c:1008 -#: commands/view.c:522 libpq/auth.c:329 replication/syncrep.c:1043 -#: storage/lmgr/deadlock.c:1151 storage/lmgr/proc.c:1421 utils/misc/guc.c:7414 -#: utils/misc/guc.c:7450 utils/misc/guc.c:7520 utils/misc/guc.c:11933 -#: utils/misc/guc.c:11967 utils/misc/guc.c:12001 utils/misc/guc.c:12044 -#: utils/misc/guc.c:12086 +#: commands/tablecmds.c:14655 commands/tablespace.c:476 commands/user.c:1008 +#: commands/view.c:522 libpq/auth.c:337 replication/slot.c:206 +#: replication/syncrep.c:1110 storage/lmgr/deadlock.c:1151 +#: storage/lmgr/proc.c:1421 utils/misc/guc.c:7414 utils/misc/guc.c:7450 +#: utils/misc/guc.c:7520 utils/misc/guc.c:11939 utils/misc/guc.c:11973 +#: utils/misc/guc.c:12007 utils/misc/guc.c:12050 utils/misc/guc.c:12092 +#: utils/misc/guc.c:13056 utils/misc/guc.c:13058 #, c-format msgid "%s" msgstr "%s" @@ -4485,7 +4503,7 @@ msgstr "Змінення системного каталогу наразі за msgid "tables can have at most %d columns" msgstr "таблиці можуть містити максимум %d стовпців" -#: catalog/heap.c:485 commands/tablecmds.c:7264 +#: catalog/heap.c:485 commands/tablecmds.c:7266 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "ім'я стовпця \"%s\" конфліктує з системним іменем стовпця" @@ -4566,8 +4584,8 @@ msgstr "не можна додати обмеження NO INHERIT до секц msgid "check constraint \"%s\" already exists" msgstr "обмеження перевірки \"%s\" вже інсує" -#: catalog/heap.c:2632 catalog/index.c:889 catalog/pg_constraint.c:689 -#: commands/tablecmds.c:8970 +#: catalog/heap.c:2632 catalog/index.c:889 catalog/pg_constraint.c:690 +#: commands/tablecmds.c:8972 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "обмеження \"%s\" відношення \"%s\" вже існує" @@ -4617,14 +4635,14 @@ msgstr "Це призведе до того, що згенерований ст msgid "generation expression is not immutable" msgstr "вираз генерації не є незмінним" -#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1285 +#: catalog/heap.c:2862 rewrite/rewriteHandler.c:1288 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "стовпець \"%s\" має тип %s, але тип виразу за замовчуванням %s" #: catalog/heap.c:2867 commands/prepare.c:334 parser/analyze.c:2741 #: parser/parse_target.c:594 parser/parse_target.c:891 -#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1290 +#: parser/parse_target.c:901 rewrite/rewriteHandler.c:1293 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Потрібно буде переписати або привести вираз." @@ -4710,7 +4728,7 @@ msgstr "ввідношення \"%s\" вже існує, пропускаємо" msgid "pg_class index OID value not set when in binary upgrade mode" msgstr "значення OID індекса в pg_class не встановлено в режимі двійкового оновлення" -#: catalog/index.c:927 utils/cache/relcache.c:3745 +#: catalog/index.c:927 utils/cache/relcache.c:3761 #, c-format msgid "index relfilenode value not set when in binary upgrade mode" msgstr "значення індексу relfilenode не встановлено в режимі двійкового оновлення" @@ -4720,34 +4738,34 @@ msgstr "значення індексу relfilenode не встановлено msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY повинен бути першою дією в транзакції" -#: catalog/index.c:3662 +#: catalog/index.c:3669 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "повторно індексувати тимчасові таблиці інших сеансів не можна" -#: catalog/index.c:3673 commands/indexcmds.c:3543 +#: catalog/index.c:3680 commands/indexcmds.c:3577 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "переіндексувати неприпустимий індекс в таблиці TOAST не можна" -#: catalog/index.c:3689 commands/indexcmds.c:3423 commands/indexcmds.c:3567 +#: catalog/index.c:3696 commands/indexcmds.c:3457 commands/indexcmds.c:3601 #: commands/tablecmds.c:3331 #, c-format msgid "cannot move system relation \"%s\"" msgstr "перемістити системне відношення \"%s\" не можна" -#: catalog/index.c:3833 +#: catalog/index.c:3840 #, c-format msgid "index \"%s\" was reindexed" msgstr "індекс \"%s\" був перебудований" -#: catalog/index.c:3970 +#: catalog/index.c:3977 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "переіндексувати неприпустимий індекс \"%s.%s\" в таблиці TOAST не можна, пропускається" #: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5830 +#: commands/trigger.c:5860 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "cross-database посилання не реалізовані: \"%s.%s.%s\"" @@ -4778,7 +4796,7 @@ msgstr "відношення \"%s.%s\" не існує" msgid "relation \"%s\" does not exist" msgstr "відношення \"%s\" не існує" -#: catalog/namespace.c:501 catalog/namespace.c:3076 commands/extension.c:1556 +#: catalog/namespace.c:501 catalog/namespace.c:3079 commands/extension.c:1556 #: commands/extension.c:1562 #, c-format msgid "no schema has been selected to create in" @@ -4804,111 +4822,111 @@ msgstr "в тимчасових схемах можуть бути створе msgid "statistics object \"%s\" does not exist" msgstr "об'єкт статистики \"%s\" не існує" -#: catalog/namespace.c:2391 +#: catalog/namespace.c:2394 #, c-format msgid "text search parser \"%s\" does not exist" msgstr "парсер текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2517 +#: catalog/namespace.c:2520 #, c-format msgid "text search dictionary \"%s\" does not exist" msgstr "словник текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2644 +#: catalog/namespace.c:2647 #, c-format msgid "text search template \"%s\" does not exist" msgstr "шаблон текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2770 commands/tsearchcmds.c:1127 +#: catalog/namespace.c:2773 commands/tsearchcmds.c:1127 #: utils/cache/ts_cache.c:613 #, c-format msgid "text search configuration \"%s\" does not exist" msgstr "конфігурація текстового пошуку \"%s\" не існує" -#: catalog/namespace.c:2883 parser/parse_expr.c:806 parser/parse_target.c:1269 +#: catalog/namespace.c:2886 parser/parse_expr.c:806 parser/parse_target.c:1269 #, c-format msgid "cross-database references are not implemented: %s" msgstr "міжбазові посилання не реалізовані: %s" -#: catalog/namespace.c:2889 parser/parse_expr.c:813 parser/parse_target.c:1276 -#: gram.y:18265 gram.y:18305 +#: catalog/namespace.c:2892 parser/parse_expr.c:813 parser/parse_target.c:1276 +#: gram.y:18272 gram.y:18312 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: catalog/namespace.c:3019 +#: catalog/namespace.c:3022 #, c-format msgid "cannot move objects into or out of temporary schemas" msgstr "не можна переміщати об'єкти в або з тимчасових схем" -#: catalog/namespace.c:3025 +#: catalog/namespace.c:3028 #, c-format msgid "cannot move objects into or out of TOAST schema" msgstr "не можна переміщати об'єкти в або з схем TOAST" -#: catalog/namespace.c:3098 commands/schemacmds.c:263 commands/schemacmds.c:343 +#: catalog/namespace.c:3101 commands/schemacmds.c:263 commands/schemacmds.c:343 #: commands/tablecmds.c:1287 #, c-format msgid "schema \"%s\" does not exist" msgstr "схема \"%s\" не існує" -#: catalog/namespace.c:3129 +#: catalog/namespace.c:3132 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неправильне ім'я зв'язку (забагато компонентів): %s" -#: catalog/namespace.c:3696 +#: catalog/namespace.c:3699 #, c-format msgid "collation \"%s\" for encoding \"%s\" does not exist" msgstr "правило сортування \"%s\" для кодування \"%s\" не існує" -#: catalog/namespace.c:3751 +#: catalog/namespace.c:3754 #, c-format msgid "conversion \"%s\" does not exist" msgstr "перетворення\"%s\" не існує" -#: catalog/namespace.c:4015 +#: catalog/namespace.c:4018 #, c-format msgid "permission denied to create temporary tables in database \"%s\"" msgstr "немає дозволу для створення тимчасових таблиць в базі даних \"%s\"" -#: catalog/namespace.c:4031 +#: catalog/namespace.c:4034 #, c-format msgid "cannot create temporary tables during recovery" msgstr "не можна створити тимчасові таблиці під час відновлення" -#: catalog/namespace.c:4037 +#: catalog/namespace.c:4040 #, c-format msgid "cannot create temporary tables during a parallel operation" msgstr "не можна створити тимчасові таблиці під час паралельної операції" -#: catalog/namespace.c:4338 commands/tablespace.c:1231 commands/variable.c:64 -#: tcop/postgres.c:3614 utils/misc/guc.c:12118 utils/misc/guc.c:12220 +#: catalog/namespace.c:4341 commands/tablespace.c:1231 commands/variable.c:64 +#: tcop/postgres.c:3614 utils/misc/guc.c:12124 utils/misc/guc.c:12226 #, c-format msgid "List syntax is invalid." msgstr "Помилка синтаксису у списку." #: catalog/objectaddress.c:1391 commands/policy.c:96 commands/policy.c:376 #: commands/tablecmds.c:247 commands/tablecmds.c:289 commands/tablecmds.c:2198 -#: commands/tablecmds.c:12559 +#: commands/tablecmds.c:12569 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" не є таблицею" #: catalog/objectaddress.c:1398 commands/tablecmds.c:259 -#: commands/tablecmds.c:17429 commands/view.c:119 +#: commands/tablecmds.c:17462 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "\"%s\" не є поданням" #: catalog/objectaddress.c:1405 commands/matview.c:186 commands/tablecmds.c:265 -#: commands/tablecmds.c:17434 +#: commands/tablecmds.c:17467 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" не є матеріалізованим поданням" #: catalog/objectaddress.c:1412 commands/tablecmds.c:283 -#: commands/tablecmds.c:17439 +#: commands/tablecmds.c:17472 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" не є сторонньою таблицею" @@ -4931,7 +4949,7 @@ msgstr "значення за замовчуванням для стовпця \ #: catalog/objectaddress.c:1638 commands/functioncmds.c:139 #: commands/tablecmds.c:275 commands/typecmds.c:274 commands/typecmds.c:3700 #: parser/parse_type.c:243 parser/parse_type.c:272 parser/parse_type.c:795 -#: utils/adt/acl.c:4434 +#: utils/adt/acl.c:4451 #, c-format msgid "type \"%s\" does not exist" msgstr "тип \"%s\" не існує" @@ -4951,8 +4969,9 @@ msgstr "функція %d (%s, %s) з %s не існує" msgid "user mapping for user \"%s\" on server \"%s\" does not exist" msgstr "відображення користувача для користувача \"%s\" на сервері \"%s\"не існує" -#: catalog/objectaddress.c:1854 commands/foreigncmds.c:430 -#: commands/foreigncmds.c:993 commands/foreigncmds.c:1356 foreign/foreign.c:701 +#: catalog/objectaddress.c:1854 commands/foreigncmds.c:441 +#: commands/foreigncmds.c:1004 commands/foreigncmds.c:1367 +#: foreign/foreign.c:701 #, c-format msgid "server \"%s\" does not exist" msgstr "сервер \"%s\" не існує" @@ -5575,17 +5594,17 @@ msgstr "правило сортування \"%s\" вже існує" msgid "collation \"%s\" for encoding \"%s\" already exists" msgstr "правило сортування \"%s \" для кодування \"%s\" вже існує" -#: catalog/pg_constraint.c:697 +#: catalog/pg_constraint.c:698 #, c-format msgid "constraint \"%s\" for domain %s already exists" msgstr "обмеження \"%s\" для домену %s вже існує" -#: catalog/pg_constraint.c:893 catalog/pg_constraint.c:986 +#: catalog/pg_constraint.c:894 catalog/pg_constraint.c:987 #, c-format msgid "constraint \"%s\" for table \"%s\" does not exist" msgstr "індексу \"%s\" для таблиці \"%s\" не існує" -#: catalog/pg_constraint.c:1086 +#: catalog/pg_constraint.c:1087 #, c-format msgid "constraint \"%s\" for domain %s does not exist" msgstr "обмеження \"%s\" для домену \"%s\" не існує" @@ -5671,7 +5690,7 @@ msgid "The partition is being detached concurrently or has an unfinished detach. msgstr "Розділ відключається одночасно або має незакінчене відключення." #: catalog/pg_inherits.c:596 commands/tablecmds.c:4551 -#: commands/tablecmds.c:15739 +#: commands/tablecmds.c:15772 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Використайте ALTER TABLE ... DETACH PARTITION ... FINALIZE щоб завершити очікувану операцію відключення." @@ -5993,17 +6012,17 @@ msgid "cannot reassign ownership of objects owned by %s because they are require msgstr "не вдалося змінити власника об'єктів, що належать ролі %s, тому що вони необхідні системі баз даних" #: catalog/pg_subscription.c:216 commands/subscriptioncmds.c:989 -#: commands/subscriptioncmds.c:1359 commands/subscriptioncmds.c:1710 +#: commands/subscriptioncmds.c:1361 commands/subscriptioncmds.c:1712 #, c-format msgid "subscription \"%s\" does not exist" msgstr "підписка \"%s\" не існує" -#: catalog/pg_subscription.c:474 +#: catalog/pg_subscription.c:499 #, c-format msgid "could not drop relation mapping for subscription \"%s\"" msgstr "не вдалося видалити зіставлення відношень для підписки \"%s\"" -#: catalog/pg_subscription.c:476 +#: catalog/pg_subscription.c:501 #, c-format msgid "Table synchronization for relation \"%s\" is in progress and is in state \"%c\"." msgstr "Синхронізація таблиць для відношення \"%s\" у процесі та знаходиться у стані \"%c\"." @@ -6011,7 +6030,7 @@ msgstr "Синхронізація таблиць для відношення \" #. translator: first %s is a SQL ALTER command and second %s is a #. SQL DROP command #. -#: catalog/pg_subscription.c:483 +#: catalog/pg_subscription.c:508 #, c-format msgid "Use %s to enable subscription if not already enabled or use %s to drop the subscription." msgstr "Використайте %s, щоб активувати підписку, якщо вона ще не активована, або використайте %s, щоб видалити підписку." @@ -6062,7 +6081,7 @@ msgstr "Помилка під час створення багатодіапаз msgid "You can manually specify a multirange type name using the \"multirange_type_name\" attribute." msgstr "Ви можете вручну вказати назву багатодіапазонного типу за допомогою атрибуту \"multirange_type_name\"." -#: catalog/storage.c:530 storage/buffer/bufmgr.c:1047 +#: catalog/storage.c:530 storage/buffer/bufmgr.c:1054 #, c-format msgid "invalid page in block %u of relation %s" msgstr "неприпустима сторінка в блоці %u відношення %s" @@ -6157,17 +6176,17 @@ msgstr "параметр \"parallel\" має мати значення SAFE, RES msgid "parameter \"%s\" must be READ_ONLY, SHAREABLE, or READ_WRITE" msgstr "параметр \"%s\" має мати значення READ_ONLY, SHAREABLE, або READ_WRITE" -#: commands/alter.c:85 commands/event_trigger.c:174 +#: commands/alter.c:85 commands/event_trigger.c:179 #, c-format msgid "event trigger \"%s\" already exists" msgstr "тригер подій \"%s\" вже існує" -#: commands/alter.c:88 commands/foreigncmds.c:593 +#: commands/alter.c:88 commands/foreigncmds.c:604 #, c-format msgid "foreign-data wrapper \"%s\" already exists" msgstr "джерело сторонніх даних \"%s\" вже існує" -#: commands/alter.c:91 commands/foreigncmds.c:884 +#: commands/alter.c:91 commands/foreigncmds.c:895 #, c-format msgid "server \"%s\" already exists" msgstr "сервер \"%s\" вже існує" @@ -6253,8 +6272,8 @@ msgstr "методу доступу \"%s\" не існує" msgid "handler function is not specified" msgstr "функція-обробник не вказана" -#: commands/amcmds.c:264 commands/event_trigger.c:183 -#: commands/foreigncmds.c:489 commands/proclang.c:80 commands/trigger.c:714 +#: commands/amcmds.c:264 commands/event_trigger.c:188 +#: commands/foreigncmds.c:500 commands/proclang.c:80 commands/trigger.c:714 #: parser/parse_clause.c:942 #, c-format msgid "function %s must return type %s" @@ -6305,27 +6324,27 @@ msgstr "пропускається аналіз дерева наслідува msgid "skipping analyze of \"%s.%s\" inheritance tree --- this inheritance tree contains no analyzable child tables" msgstr "пропускається аналіз дерева наслідування \"%s.%s\" --- це дерево наслідування не містить аналізуючих дочірніх таблиць" -#: commands/async.c:646 +#: commands/async.c:645 #, c-format msgid "channel name cannot be empty" msgstr "ім'я каналу не може бути пустим" -#: commands/async.c:652 +#: commands/async.c:651 #, c-format msgid "channel name too long" msgstr "ім'я каналу задовге" -#: commands/async.c:657 +#: commands/async.c:656 #, c-format msgid "payload string too long" msgstr "рядок навантаження задовгий" -#: commands/async.c:876 +#: commands/async.c:875 #, c-format msgid "cannot PREPARE a transaction that has executed LISTEN, UNLISTEN, or NOTIFY" msgstr "виконати PREPARE для транзакції, яка виконала LISTEN, UNLISTEN або NOTIFY неможливо" -#: commands/async.c:980 +#: commands/async.c:979 #, c-format msgid "too many notifications in the NOTIFY queue" msgstr "занадто багато сповіщень у черзі NOTIFY" @@ -6360,7 +6379,7 @@ msgstr "не можна кластеризувати тимчасові табл msgid "there is no previously clustered index for table \"%s\"" msgstr "немає попереднього кластеризованого індексу для таблиці \"%s\"" -#: commands/cluster.c:190 commands/tablecmds.c:14436 commands/tablecmds.c:16318 +#: commands/cluster.c:190 commands/tablecmds.c:14469 commands/tablecmds.c:16351 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "індекс \"%s\" для таблці \"%s\" не існує" @@ -6375,7 +6394,7 @@ msgstr "не можна кластеризувати спільний катал msgid "cannot vacuum temporary tables of other sessions" msgstr "не можна очищати тимчасові таблиці з інших сеансів" -#: commands/cluster.c:511 commands/tablecmds.c:16328 +#: commands/cluster.c:511 commands/tablecmds.c:16361 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не є індексом для таблиці \"%s\"" @@ -6433,12 +6452,12 @@ msgid "collation attribute \"%s\" not recognized" msgstr "атрибут collation \"%s\" не розпізнаний" #: commands/collationcmds.c:119 commands/collationcmds.c:125 -#: commands/define.c:389 commands/tablecmds.c:7911 -#: replication/pgoutput/pgoutput.c:318 replication/pgoutput/pgoutput.c:341 -#: replication/pgoutput/pgoutput.c:355 replication/pgoutput/pgoutput.c:365 -#: replication/pgoutput/pgoutput.c:375 replication/pgoutput/pgoutput.c:385 -#: replication/walsender.c:1001 replication/walsender.c:1023 -#: replication/walsender.c:1033 +#: commands/define.c:389 commands/tablecmds.c:7913 +#: replication/pgoutput/pgoutput.c:319 replication/pgoutput/pgoutput.c:342 +#: replication/pgoutput/pgoutput.c:356 replication/pgoutput/pgoutput.c:366 +#: replication/pgoutput/pgoutput.c:376 replication/pgoutput/pgoutput.c:386 +#: replication/walsender.c:1015 replication/walsender.c:1037 +#: replication/walsender.c:1047 #, c-format msgid "conflicting or redundant options" msgstr "конфліктуючі або надлишкові параметри" @@ -6604,163 +6623,175 @@ msgstr "для використання COPY з файлу потрібно бу msgid "must be superuser or have privileges of the pg_write_server_files role to COPY to a file" msgstr "для використання COPY до файлу потрібно бути суперкористувачем або мати права ролі pg_write_server_files" -#: commands/copy.c:188 +#: commands/copy.c:175 +#, c-format +msgid "generated columns are not supported in COPY FROM WHERE conditions" +msgstr "згенеровані стовпці не підтримуються в умовах COPY FROM WHERE" + +#: commands/copy.c:176 commands/tablecmds.c:12461 commands/tablecmds.c:17648 +#: commands/tablecmds.c:17727 commands/trigger.c:668 +#: rewrite/rewriteHandler.c:939 rewrite/rewriteHandler.c:974 +#, c-format +msgid "Column \"%s\" is a generated column." +msgstr "Стовпець \"%s\" є згенерованим стовпцем." + +#: commands/copy.c:225 #, c-format msgid "COPY FROM not supported with row-level security" msgstr "COPY FROM не підтримується із захистом на рівні рядків" -#: commands/copy.c:189 +#: commands/copy.c:226 #, c-format msgid "Use INSERT statements instead." msgstr "Використайте оператори INSERT замість цього." -#: commands/copy.c:283 +#: commands/copy.c:320 #, c-format msgid "MERGE not supported in COPY" msgstr "COPY не підтримує MERGE" -#: commands/copy.c:376 +#: commands/copy.c:413 #, c-format msgid "cannot use \"%s\" with HEADER in COPY TO" msgstr "використовувати \"%s\" з HEADER в COPY TO не можна" -#: commands/copy.c:385 +#: commands/copy.c:422 #, c-format msgid "%s requires a Boolean value or \"match\"" msgstr "%s потребує Boolean або \"відповідність\"" -#: commands/copy.c:444 +#: commands/copy.c:481 #, c-format msgid "COPY format \"%s\" not recognized" msgstr "Формат \"%s\" для COPY не розпізнано" -#: commands/copy.c:496 commands/copy.c:509 commands/copy.c:522 -#: commands/copy.c:541 +#: commands/copy.c:533 commands/copy.c:546 commands/copy.c:559 +#: commands/copy.c:578 #, c-format msgid "argument to option \"%s\" must be a list of column names" msgstr "аргументом функції \"%s\" повинен бути список імен стовпців" -#: commands/copy.c:553 +#: commands/copy.c:590 #, c-format msgid "argument to option \"%s\" must be a valid encoding name" msgstr "аргументом функції \"%s\" повинне бути припустиме ім'я коду" -#: commands/copy.c:560 commands/dbcommands.c:849 commands/dbcommands.c:2270 +#: commands/copy.c:597 commands/dbcommands.c:849 commands/dbcommands.c:2270 #, c-format msgid "option \"%s\" not recognized" msgstr "параметр \"%s\" не розпізнано" -#: commands/copy.c:572 +#: commands/copy.c:609 #, c-format msgid "cannot specify DELIMITER in BINARY mode" msgstr "неможливо визначити DELIMITER в режимі BINARY" -#: commands/copy.c:577 +#: commands/copy.c:614 #, c-format msgid "cannot specify NULL in BINARY mode" msgstr "неможливо визначити NULL в режимі BINARY" -#: commands/copy.c:599 +#: commands/copy.c:636 #, c-format msgid "COPY delimiter must be a single one-byte character" msgstr "роздільник для COPY повинен бути однобайтовим символом" -#: commands/copy.c:606 +#: commands/copy.c:643 #, c-format msgid "COPY delimiter cannot be newline or carriage return" msgstr "Роздільник для COPY не може бути символом нового рядка або повернення каретки" -#: commands/copy.c:612 +#: commands/copy.c:649 #, c-format msgid "COPY null representation cannot use newline or carriage return" msgstr "Подання NULL для COPY не може включати символ нового рядка або повернення каретки" -#: commands/copy.c:629 +#: commands/copy.c:666 #, c-format msgid "COPY delimiter cannot be \"%s\"" msgstr "роздільник COPY не може бути \"%s\"" -#: commands/copy.c:635 +#: commands/copy.c:672 #, c-format msgid "cannot specify HEADER in BINARY mode" msgstr "не можна вказати HEADER у режимі BINARY" -#: commands/copy.c:641 +#: commands/copy.c:678 #, c-format msgid "COPY quote available only in CSV mode" msgstr "лапки для COPY доустпні тільки в режимі CSV" -#: commands/copy.c:646 +#: commands/copy.c:683 #, c-format msgid "COPY quote must be a single one-byte character" msgstr "лапки для COPY повинні бути однобайтовим символом" -#: commands/copy.c:651 +#: commands/copy.c:688 #, c-format msgid "COPY delimiter and quote must be different" msgstr "роздільник і лапки для COPY повинні бути різними" -#: commands/copy.c:657 +#: commands/copy.c:694 #, c-format msgid "COPY escape available only in CSV mode" msgstr "вихід для COPY доступний тільки в режимі CSV" -#: commands/copy.c:662 +#: commands/copy.c:699 #, c-format msgid "COPY escape must be a single one-byte character" msgstr "вихід для COPY повинен бути однобайтовим символом" -#: commands/copy.c:668 +#: commands/copy.c:705 #, c-format msgid "COPY force quote available only in CSV mode" msgstr "Параметр force quote для COPY можна використати тільки в режимі CSV" -#: commands/copy.c:672 +#: commands/copy.c:709 #, c-format msgid "COPY force quote only available using COPY TO" msgstr "Параметр force quote для COPY можна використати тільки з COPY TO" -#: commands/copy.c:678 +#: commands/copy.c:715 #, c-format msgid "COPY force not null available only in CSV mode" msgstr "Параметр force not null для COPY можна використати тільки в режимі CSV" -#: commands/copy.c:682 +#: commands/copy.c:719 #, c-format msgid "COPY force not null only available using COPY FROM" msgstr "Параметр force not null для COPY можна використати тільки з COPY FROM" -#: commands/copy.c:688 +#: commands/copy.c:725 #, c-format msgid "COPY force null available only in CSV mode" msgstr "Параметр force null для COPY можна використати тільки в режимі CSV" -#: commands/copy.c:693 +#: commands/copy.c:730 #, c-format msgid "COPY force null only available using COPY FROM" msgstr "Параметр force null only для COPY можна використати тільки з COPY FROM" -#: commands/copy.c:699 +#: commands/copy.c:736 #, c-format msgid "COPY delimiter must not appear in the NULL specification" msgstr "роздільник COPY не повинен з'являтися у специфікації NULL" -#: commands/copy.c:706 +#: commands/copy.c:743 #, c-format msgid "CSV quote character must not appear in the NULL specification" msgstr "лапки CSV не повинні з'являтися у специфікації NULL" -#: commands/copy.c:767 +#: commands/copy.c:804 #, c-format msgid "column \"%s\" is a generated column" msgstr "стовпець \"%s\" є згенерованим стовпцем" -#: commands/copy.c:769 +#: commands/copy.c:806 #, c-format msgid "Generated columns cannot be used in COPY." msgstr "Згенеровані стовпці не можна використовувати в COPY." -#: commands/copy.c:784 commands/indexcmds.c:1833 commands/statscmds.c:243 +#: commands/copy.c:821 commands/indexcmds.c:1833 commands/statscmds.c:263 #: commands/tablecmds.c:2393 commands/tablecmds.c:3049 #: commands/tablecmds.c:3558 parser/parse_relation.c:3669 #: parser/parse_relation.c:3689 utils/adt/tsvector_op.c:2688 @@ -6768,7 +6799,7 @@ msgstr "Згенеровані стовпці не можна використо msgid "column \"%s\" does not exist" msgstr "стовпця \"%s\" не існує" -#: commands/copy.c:791 commands/tablecmds.c:2419 commands/trigger.c:963 +#: commands/copy.c:828 commands/tablecmds.c:2419 commands/trigger.c:963 #: parser/parse_target.c:1093 parser/parse_target.c:1104 #, c-format msgid "column \"%s\" specified more than once" @@ -6849,7 +6880,7 @@ msgstr "Стовпець FORCE_NOT_NULL \"%s\" не фігурує в COPY" msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "Стовпець FORCE_NULL \"%s\" не фігурує в COPY" -#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:386 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "функції за замовчуванням перетворення з кодування \"%s\" в \"%s\" не існує" @@ -7439,7 +7470,7 @@ msgid "You must move them back to the database's default tablespace before using msgstr "Перед тим, як виконувати цю команду, вам треба повернути їх в табличний простір за замовчуванням для цієї бази даних." #: commands/dbcommands.c:2145 commands/dbcommands.c:2872 -#: commands/dbcommands.c:3172 commands/dbcommands.c:3286 +#: commands/dbcommands.c:3172 commands/dbcommands.c:3287 #, c-format msgid "some useless files may be left behind in old database directory \"%s\"" msgstr "у старому каталозі бази даних \"%s\" могли залишитися непотрібні файли" @@ -7553,7 +7584,7 @@ msgstr "Використайте DROP AGGREGATE, щоб видалити агр #: commands/dropcmds.c:158 commands/sequence.c:475 commands/tablecmds.c:3642 #: commands/tablecmds.c:3800 commands/tablecmds.c:3852 -#: commands/tablecmds.c:16745 tcop/utility.c:1332 +#: commands/tablecmds.c:16778 tcop/utility.c:1332 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "відношення \"%s\" не існує, пропускаємо" @@ -7583,7 +7614,7 @@ msgstr "правила сортування \"%s\" не існує, пропус msgid "conversion \"%s\" does not exist, skipping" msgstr "перетворення \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:293 commands/statscmds.c:655 +#: commands/dropcmds.c:293 commands/statscmds.c:675 #, c-format msgid "statistics object \"%s\" does not exist, skipping" msgstr "об'єкту статистики \"%s\" не існує, пропускаємо" @@ -7678,7 +7709,7 @@ msgstr "правила \"%s\" для відношення \"%s\" не існує msgid "foreign-data wrapper \"%s\" does not exist, skipping" msgstr "джерела сторонніх даних \"%s\" не існує, пропускаємо" -#: commands/dropcmds.c:453 commands/foreigncmds.c:1360 +#: commands/dropcmds.c:453 commands/foreigncmds.c:1371 #, c-format msgid "server \"%s\" does not exist, skipping" msgstr "серверу \"%s\" не існує, пропускаємо" @@ -7698,69 +7729,69 @@ msgstr "сімейства операторів \"%s\" не існує для м msgid "publication \"%s\" does not exist, skipping" msgstr "публікації \"%s\" не існує, пропускаємо" -#: commands/event_trigger.c:125 +#: commands/event_trigger.c:130 #, c-format msgid "permission denied to create event trigger \"%s\"" msgstr "немає дозволу для створення тригера подій %s\"" -#: commands/event_trigger.c:127 +#: commands/event_trigger.c:132 #, c-format msgid "Must be superuser to create an event trigger." msgstr "Тільки суперкористувач може створити тригер подій." -#: commands/event_trigger.c:136 +#: commands/event_trigger.c:141 #, c-format msgid "unrecognized event name \"%s\"" msgstr "нерозпізнане ім'я подій \"%s\"" -#: commands/event_trigger.c:153 +#: commands/event_trigger.c:158 #, c-format msgid "unrecognized filter variable \"%s\"" msgstr "нерозпізнана змінна фільтру \"%s\"" -#: commands/event_trigger.c:207 +#: commands/event_trigger.c:212 #, c-format msgid "filter value \"%s\" not recognized for filter variable \"%s\"" msgstr "значення фільтру \"%s\" не розпізнано для змінної фільтру \"%s\"" #. translator: %s represents an SQL statement name -#: commands/event_trigger.c:213 commands/event_trigger.c:235 +#: commands/event_trigger.c:218 commands/event_trigger.c:240 #, c-format msgid "event triggers are not supported for %s" msgstr "для %s тригери подій не підтримуються" -#: commands/event_trigger.c:248 +#: commands/event_trigger.c:253 #, c-format msgid "filter variable \"%s\" specified more than once" msgstr "змінну фільтра \"%s\" вказано кілька разів" -#: commands/event_trigger.c:377 commands/event_trigger.c:421 -#: commands/event_trigger.c:515 +#: commands/event_trigger.c:382 commands/event_trigger.c:426 +#: commands/event_trigger.c:520 #, c-format msgid "event trigger \"%s\" does not exist" msgstr "тригеру подій \"%s\" не існує" -#: commands/event_trigger.c:483 +#: commands/event_trigger.c:488 #, c-format msgid "permission denied to change owner of event trigger \"%s\"" msgstr "немає дозволу для зміни власника тригера подій \"%s\"" -#: commands/event_trigger.c:485 +#: commands/event_trigger.c:490 #, c-format msgid "The owner of an event trigger must be a superuser." msgstr "Власником тригеру подій може бути тільки суперкористувач." -#: commands/event_trigger.c:1304 +#: commands/event_trigger.c:1437 #, c-format msgid "%s can only be called in a sql_drop event trigger function" msgstr "%s можливо викликати лише в подієвій тригерній функції sql_drop" -#: commands/event_trigger.c:1400 commands/event_trigger.c:1421 +#: commands/event_trigger.c:1533 commands/event_trigger.c:1554 #, c-format msgid "%s can only be called in a table_rewrite event trigger function" msgstr "%s можливо викликати лише в подієвій тригерній функції table_rewrite" -#: commands/event_trigger.c:1834 +#: commands/event_trigger.c:1967 #, c-format msgid "%s can only be called in an event trigger function" msgstr "%s можливо викликати тільки в подієвій тригерній функції" @@ -8053,102 +8084,102 @@ msgstr "неможливо додати схему \"%s\" до розширен msgid "file \"%s\" is too large" msgstr "файл \"%s\" занадто великий" -#: commands/foreigncmds.c:148 commands/foreigncmds.c:157 +#: commands/foreigncmds.c:159 commands/foreigncmds.c:168 #, c-format msgid "option \"%s\" not found" msgstr "параметр \"%s\" не знайдено" -#: commands/foreigncmds.c:167 +#: commands/foreigncmds.c:178 #, c-format msgid "option \"%s\" provided more than once" msgstr "параметр \"%s\" надано більше одного разу" -#: commands/foreigncmds.c:221 commands/foreigncmds.c:229 +#: commands/foreigncmds.c:232 commands/foreigncmds.c:240 #, c-format msgid "permission denied to change owner of foreign-data wrapper \"%s\"" msgstr "немає дозволу для зміни власника джерела сторонніх даних \"%s\"" -#: commands/foreigncmds.c:223 +#: commands/foreigncmds.c:234 #, c-format msgid "Must be superuser to change owner of a foreign-data wrapper." msgstr "Треба бути суперкористувачем, щоб змінити власника джерела сторонніх даних." -#: commands/foreigncmds.c:231 +#: commands/foreigncmds.c:242 #, c-format msgid "The owner of a foreign-data wrapper must be a superuser." msgstr "Власником джерела сторонніх даних може бути тільки суперкористувач." -#: commands/foreigncmds.c:291 commands/foreigncmds.c:707 foreign/foreign.c:679 +#: commands/foreigncmds.c:302 commands/foreigncmds.c:718 foreign/foreign.c:679 #, c-format msgid "foreign-data wrapper \"%s\" does not exist" msgstr "джерела сторонніх даних \"%s\" не існує" -#: commands/foreigncmds.c:580 +#: commands/foreigncmds.c:591 #, c-format msgid "permission denied to create foreign-data wrapper \"%s\"" msgstr "немає дозволу для створення джерела сторонніх даних %s\"" -#: commands/foreigncmds.c:582 +#: commands/foreigncmds.c:593 #, c-format msgid "Must be superuser to create a foreign-data wrapper." msgstr "Треба бути суперкористувачем, щоб створити джерело сторонніх даних." -#: commands/foreigncmds.c:697 +#: commands/foreigncmds.c:708 #, c-format msgid "permission denied to alter foreign-data wrapper \"%s\"" msgstr "немає дозволу на зміну джерела сторонніх даних \"%s\"" -#: commands/foreigncmds.c:699 +#: commands/foreigncmds.c:710 #, c-format msgid "Must be superuser to alter a foreign-data wrapper." msgstr "Треба бути суперкористувачем, щоб змінити джерело сторонніх даних." -#: commands/foreigncmds.c:730 +#: commands/foreigncmds.c:741 #, c-format msgid "changing the foreign-data wrapper handler can change behavior of existing foreign tables" msgstr "при зміні обробника в обгортці сторонніх даних може змінитися поведінка існуючих сторонніх таблиць" -#: commands/foreigncmds.c:745 +#: commands/foreigncmds.c:756 #, c-format msgid "changing the foreign-data wrapper validator can cause the options for dependent objects to become invalid" msgstr "при зміні функції перевірки в обгортці сторонніх даних параметри залежних об'єктів можуть стати невірними" -#: commands/foreigncmds.c:876 +#: commands/foreigncmds.c:887 #, c-format msgid "server \"%s\" already exists, skipping" msgstr "сервер \"%s\" вже існує, пропускаємо" -#: commands/foreigncmds.c:1144 +#: commands/foreigncmds.c:1155 #, c-format msgid "user mapping for \"%s\" already exists for server \"%s\", skipping" msgstr "зіставлення користувача \"%s\" для сервера \"%s\" вже існує, пропускаємо" -#: commands/foreigncmds.c:1154 +#: commands/foreigncmds.c:1165 #, c-format msgid "user mapping for \"%s\" already exists for server \"%s\"" msgstr "зіставлення користувача \"%s\" для сервера \"%s\" вже існує\"" -#: commands/foreigncmds.c:1254 commands/foreigncmds.c:1374 +#: commands/foreigncmds.c:1265 commands/foreigncmds.c:1385 #, c-format msgid "user mapping for \"%s\" does not exist for server \"%s\"" msgstr "зіставлення користувача \"%s\" не існує для сервера \"%s\"" -#: commands/foreigncmds.c:1379 +#: commands/foreigncmds.c:1390 #, c-format msgid "user mapping for \"%s\" does not exist for server \"%s\", skipping" msgstr "зіставлення користувача \"%s\" не існує для сервера \"%s\", пропускаємо" -#: commands/foreigncmds.c:1507 foreign/foreign.c:400 +#: commands/foreigncmds.c:1518 foreign/foreign.c:400 #, c-format msgid "foreign-data wrapper \"%s\" has no handler" msgstr "джерело сторонніх даних \"%s\" не має обробника" -#: commands/foreigncmds.c:1513 +#: commands/foreigncmds.c:1524 #, c-format msgid "foreign-data wrapper \"%s\" does not support IMPORT FOREIGN SCHEMA" msgstr "джерело сторонніх даних \"%s\" не підтримує IMPORT FOREIGN SCHEMA" -#: commands/foreigncmds.c:1615 +#: commands/foreigncmds.c:1626 #, c-format msgid "importing foreign table \"%s\"" msgstr "імпорт сторонньої таблиці \"%s\"" @@ -8669,7 +8700,7 @@ msgstr "включені стовпці не підтримують параме msgid "could not determine which collation to use for index expression" msgstr "не вдалося визначити, яке правило сортування використати для індексного виразу" -#: commands/indexcmds.c:1969 commands/tablecmds.c:17772 commands/typecmds.c:807 +#: commands/indexcmds.c:1969 commands/tablecmds.c:17815 commands/typecmds.c:807 #: parser/parse_expr.c:2698 parser/parse_type.c:570 parser/parse_utilcmd.c:3823 #: utils/adt/misc.c:594 #, c-format @@ -8706,8 +8737,8 @@ msgstr "метод доступу \"%s\" не підтримує парамет msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доступу \"%s\" не підтримує параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:2151 commands/tablecmds.c:17797 -#: commands/tablecmds.c:17803 commands/typecmds.c:2302 +#: commands/indexcmds.c:2151 commands/tablecmds.c:17840 +#: commands/tablecmds.c:17846 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "тип даних %s не має класу операторів за замовчуванням для методу доступу \"%s\"" @@ -8733,83 +8764,83 @@ msgstr "клас операторів \"%s\" не приймає тип дани msgid "there are multiple default operator classes for data type %s" msgstr "для типу даних %s є кілька класів операторів за замовчуванням" -#: commands/indexcmds.c:2622 +#: commands/indexcmds.c:2656 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "нерозпізнаний параметр REINDEX \"%s\"" -#: commands/indexcmds.c:2846 +#: commands/indexcmds.c:2880 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "таблиця \"%s\" не має індексів, які можна переіндексувати паралельно" -#: commands/indexcmds.c:2860 +#: commands/indexcmds.c:2894 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "таблиця \"%s\" не має індексів для переіндексування" -#: commands/indexcmds.c:2900 commands/indexcmds.c:3404 -#: commands/indexcmds.c:3532 +#: commands/indexcmds.c:2934 commands/indexcmds.c:3438 +#: commands/indexcmds.c:3566 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "не можна конкурентно переіндексувати системні каталоги" -#: commands/indexcmds.c:2923 +#: commands/indexcmds.c:2957 #, c-format msgid "can only reindex the currently open database" msgstr "переіндексувати можна тільки наразі відкриту базу даних" -#: commands/indexcmds.c:3011 +#: commands/indexcmds.c:3045 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "не можна конкурентно переіндексувати системні каталоги, пропускаємо" -#: commands/indexcmds.c:3044 +#: commands/indexcmds.c:3078 #, c-format msgid "cannot move system relations, skipping all" msgstr "не можна перемістити системні відношення, пропускаються усі" -#: commands/indexcmds.c:3090 +#: commands/indexcmds.c:3124 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "під час переіндексування секціонованої таблиці \"%s.%s\"" -#: commands/indexcmds.c:3093 +#: commands/indexcmds.c:3127 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "під час переіндексування секціонованого індексу \"%s.%s\"" -#: commands/indexcmds.c:3284 commands/indexcmds.c:4140 +#: commands/indexcmds.c:3318 commands/indexcmds.c:4182 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "таблиця \"%s.%s\" була переіндексована" -#: commands/indexcmds.c:3436 commands/indexcmds.c:3488 +#: commands/indexcmds.c:3470 commands/indexcmds.c:3522 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндексувати пошкоджений індекс \"%s.%s\" паралельно, пропускається" -#: commands/indexcmds.c:3442 +#: commands/indexcmds.c:3476 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндексувати індекс обмеження-виключення \"%s.%s\" паралельно, пропускається" -#: commands/indexcmds.c:3597 +#: commands/indexcmds.c:3631 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "неможливо переіндексувати цей тип відношень паралельон" -#: commands/indexcmds.c:3618 +#: commands/indexcmds.c:3652 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "не можна перемістити не спільне відношення до табличного простору \"%s\"" -#: commands/indexcmds.c:4121 commands/indexcmds.c:4133 +#: commands/indexcmds.c:4163 commands/indexcmds.c:4175 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "індекс \"%s.%s\" був перебудований" -#: commands/indexcmds.c:4123 commands/indexcmds.c:4142 +#: commands/indexcmds.c:4165 commands/indexcmds.c:4184 #, c-format msgid "%s." msgstr "%s." @@ -8824,7 +8855,7 @@ msgstr "блокувати відношення \"%s\" не можна" msgid "CONCURRENTLY cannot be used when the materialized view is not populated" msgstr "CONCURRENTLY не може використовуватись, коли матеріалізоване подання не наповнено" -#: commands/matview.c:199 gram.y:18002 +#: commands/matview.c:199 gram.y:18009 #, c-format msgid "%s and %s options cannot be used together" msgstr "параметри %s та %s не можуть бути використані разом" @@ -9121,11 +9152,11 @@ msgstr "функція оцінювання з'єднання %s повинна msgid "operator attribute \"%s\" cannot be changed" msgstr "атрибут оператора \"%s\" неможливо змінити" -#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:155 #: commands/tablecmds.c:1623 commands/tablecmds.c:2211 #: commands/tablecmds.c:3452 commands/tablecmds.c:6377 -#: commands/tablecmds.c:9251 commands/tablecmds.c:17350 -#: commands/tablecmds.c:17385 commands/trigger.c:328 commands/trigger.c:1378 +#: commands/tablecmds.c:9253 commands/tablecmds.c:17383 +#: commands/tablecmds.c:17418 commands/trigger.c:328 commands/trigger.c:1378 #: commands/trigger.c:1488 rewrite/rewriteDefine.c:279 #: rewrite/rewriteDefine.c:963 rewrite/rewriteRemove.c:80 #, c-format @@ -9178,7 +9209,7 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "не можна створити курсос WITH HOLD в межах операції з обмеженням по безпеці" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2642 utils/adt/xml.c:2812 +#: executor/execCurrent.c:70 utils/adt/xml.c:2636 utils/adt/xml.c:2806 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курсор \"%s\" не існує" @@ -9223,8 +9254,8 @@ msgstr "підготовлений оператор \"%s\" не існує" msgid "must be superuser to create custom procedural language" msgstr "для створення користувацької мови потрібно бути суперкористувачем" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1222 -#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1703 +#: commands/publicationcmds.c:130 postmaster/postmaster.c:1224 +#: postmaster/postmaster.c:1323 utils/init/miscinit.c:1703 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неприпустимий синтаксис списку в параметрі \"%s\"" @@ -9564,13 +9595,13 @@ msgstr "послідовність повинна бути в тій самій msgid "cannot change ownership of identity sequence" msgstr "змінити власника послідовності ідентифікації не можна" -#: commands/sequence.c:1689 commands/tablecmds.c:14127 -#: commands/tablecmds.c:16765 +#: commands/sequence.c:1689 commands/tablecmds.c:14160 +#: commands/tablecmds.c:16798 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Послідовність \"%s\" зв'язана з таблицею \"%s\"." -#: commands/statscmds.c:109 commands/statscmds.c:118 tcop/utility.c:1876 +#: commands/statscmds.c:109 commands/statscmds.c:118 #, c-format msgid "only a single relation is allowed in CREATE STATISTICS" msgstr "в CREATE STATISTICS можна вказати лише одне відношення" @@ -9580,72 +9611,72 @@ msgstr "в CREATE STATISTICS можна вказати лише одне від msgid "cannot define statistics for relation \"%s\"" msgstr "визначити статистику відношення \"%s\" не можна" -#: commands/statscmds.c:191 +#: commands/statscmds.c:211 #, c-format msgid "statistics object \"%s\" already exists, skipping" msgstr "об'єкт статистики \"%s\" вже існує, пропускається" -#: commands/statscmds.c:199 +#: commands/statscmds.c:219 #, c-format msgid "statistics object \"%s\" already exists" msgstr "об'єкт статистики \"%s\" вже існує" -#: commands/statscmds.c:210 +#: commands/statscmds.c:230 #, c-format msgid "cannot have more than %d columns in statistics" msgstr "в статистиці не може бути більше ніж %d стовпців" -#: commands/statscmds.c:251 commands/statscmds.c:274 commands/statscmds.c:308 +#: commands/statscmds.c:271 commands/statscmds.c:294 commands/statscmds.c:328 #, c-format msgid "statistics creation on system columns is not supported" msgstr "створення статистики для системних стовпців не підтримується" -#: commands/statscmds.c:258 commands/statscmds.c:281 +#: commands/statscmds.c:278 commands/statscmds.c:301 #, c-format msgid "column \"%s\" cannot be used in statistics because its type %s has no default btree operator class" msgstr "стовпець \"%s\" не можна використати в статистиці, тому що для його типу %s не визначений клас оператора (btree) за замовчуванням" -#: commands/statscmds.c:325 +#: commands/statscmds.c:345 #, c-format msgid "expression cannot be used in multivariate statistics because its type %s has no default btree operator class" msgstr "вираз не може використовуватись у багатоваріативній статистиці, тому що його тип %s немає визначеного класу оператора btree за замовчуванням" -#: commands/statscmds.c:346 +#: commands/statscmds.c:366 #, c-format msgid "when building statistics on a single expression, statistics kinds may not be specified" msgstr "при побудові статистики для одного виразу види статистики можуть не вказуватись" -#: commands/statscmds.c:375 +#: commands/statscmds.c:395 #, c-format msgid "unrecognized statistics kind \"%s\"" msgstr "нерозпізнаний вид статистики \"%s\"" -#: commands/statscmds.c:404 +#: commands/statscmds.c:424 #, c-format msgid "extended statistics require at least 2 columns" msgstr "для розширеної статистики потрібно мінімум 2 стовпці" -#: commands/statscmds.c:422 +#: commands/statscmds.c:442 #, c-format msgid "duplicate column name in statistics definition" msgstr "дублювання імені стовпця у визначенні статистики" -#: commands/statscmds.c:457 +#: commands/statscmds.c:477 #, c-format msgid "duplicate expression in statistics definition" msgstr "дублікат виразу у визначенні статистики" -#: commands/statscmds.c:620 commands/tablecmds.c:8215 +#: commands/statscmds.c:640 commands/tablecmds.c:8217 #, c-format msgid "statistics target %d is too low" msgstr "мета статистики занадто мала %d" -#: commands/statscmds.c:628 commands/tablecmds.c:8223 +#: commands/statscmds.c:648 commands/tablecmds.c:8225 #, c-format msgid "lowering statistics target to %d" msgstr "мета статистики знижується до %d" -#: commands/statscmds.c:651 +#: commands/statscmds.c:671 #, c-format msgid "statistics object \"%s.%s\" does not exist, skipping" msgstr "об'єкт статистики \"%s.%s\" не існує, пропускається" @@ -9694,7 +9725,7 @@ msgid "must be superuser to create subscriptions" msgstr "для створення підписок потрібно бути суперкористувачем" #: commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:776 -#: replication/logical/tablesync.c:1254 replication/logical/worker.c:3738 +#: replication/logical/tablesync.c:1275 replication/logical/worker.c:3745 #, c-format msgid "could not connect to the publisher: %s" msgstr "не вдалося підключитись до сервера публікації: %s" @@ -9777,69 +9808,69 @@ msgstr "щоб пропустити транзакцію потрібно бут msgid "skip WAL location (LSN %X/%X) must be greater than origin LSN %X/%X" msgstr "пропустити розташування WAL (LSN %X/%X) повинно бути більше, ніж origin LSN %X/%X" -#: commands/subscriptioncmds.c:1363 +#: commands/subscriptioncmds.c:1365 #, c-format msgid "subscription \"%s\" does not exist, skipping" msgstr "підписка \"%s\" не існує, пропускається" -#: commands/subscriptioncmds.c:1621 +#: commands/subscriptioncmds.c:1623 #, c-format msgid "dropped replication slot \"%s\" on publisher" msgstr "видалено слот реплікації \"%s\" на сервері публікації" -#: commands/subscriptioncmds.c:1630 commands/subscriptioncmds.c:1638 +#: commands/subscriptioncmds.c:1632 commands/subscriptioncmds.c:1640 #, c-format msgid "could not drop replication slot \"%s\" on publisher: %s" msgstr "не вдалося видалити слот реплікації \"%s\" на сервері публікації: %s" -#: commands/subscriptioncmds.c:1672 +#: commands/subscriptioncmds.c:1674 #, c-format msgid "permission denied to change owner of subscription \"%s\"" msgstr "немає прав на зміну власника підписки \"%s\"" -#: commands/subscriptioncmds.c:1674 +#: commands/subscriptioncmds.c:1676 #, c-format msgid "The owner of a subscription must be a superuser." msgstr "Власником підписки повинен бути суперкористувач." -#: commands/subscriptioncmds.c:1788 +#: commands/subscriptioncmds.c:1790 #, c-format msgid "could not receive list of replicated tables from the publisher: %s" msgstr "не вдалося отримати список реплікованих таблиць із сервера публікації: %s" -#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:826 -#: replication/pgoutput/pgoutput.c:1098 +#: commands/subscriptioncmds.c:1812 replication/logical/tablesync.c:847 +#: replication/pgoutput/pgoutput.c:1110 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "використовувати різні списки стовпців для таблиці \"%s.%s\" в різних публікаціях не можна" -#: commands/subscriptioncmds.c:1860 +#: commands/subscriptioncmds.c:1862 #, c-format msgid "could not connect to publisher when attempting to drop replication slot \"%s\": %s" msgstr "не вдалося з'єднатись з сервером публікації під час спроби видалити слот реплікації \"%s\": %s" #. translator: %s is an SQL ALTER command -#: commands/subscriptioncmds.c:1863 +#: commands/subscriptioncmds.c:1865 #, c-format msgid "Use %s to disable the subscription, and then use %s to disassociate it from the slot." msgstr "Використовуйте %s, щоб вимкнути підписку, а потім використайте %s, щоб від'єднати її від слоту." -#: commands/subscriptioncmds.c:1894 +#: commands/subscriptioncmds.c:1896 #, c-format msgid "publication name \"%s\" used more than once" msgstr "ім'я публікації \"%s\" використовується більше ніж один раз" -#: commands/subscriptioncmds.c:1938 +#: commands/subscriptioncmds.c:1940 #, c-format msgid "publication \"%s\" is already in subscription \"%s\"" msgstr "публікація \"%s\" вже в підписці \"%s\"" -#: commands/subscriptioncmds.c:1952 +#: commands/subscriptioncmds.c:1954 #, c-format msgid "publication \"%s\" is not in subscription \"%s\"" msgstr "публікація \"%s\" не знаходиться в підписці \"%s\"" -#: commands/subscriptioncmds.c:1963 +#: commands/subscriptioncmds.c:1965 #, c-format msgid "cannot drop all the publications from a subscription" msgstr "не можна видалити всі публікації з підписки" @@ -9900,7 +9931,7 @@ msgstr "матеріалізоване подання \"%s\" не існує, п msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Використайте DROP MATERIALIZED VIEW, щоб видалити матеріалізоване подання." -#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19370 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19425 #: parser/parse_utilcmd.c:2305 #, c-format msgid "index \"%s\" does not exist" @@ -9924,8 +9955,8 @@ msgstr "\"%s\" не є типом" msgid "Use DROP TYPE to remove a type." msgstr "Використайте DROP TYPE, щоб видалити тип." -#: commands/tablecmds.c:281 commands/tablecmds.c:13966 -#: commands/tablecmds.c:16468 +#: commands/tablecmds.c:281 commands/tablecmds.c:13999 +#: commands/tablecmds.c:16501 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "зовнішня таблиця \"%s\" не існує" @@ -9949,7 +9980,7 @@ msgstr "ON COMMIT можна використовувати лише для ти msgid "cannot create temporary table within security-restricted operation" msgstr "неможливо створити тимчасову таблицю в межах операції з обмеженням безпеки" -#: commands/tablecmds.c:782 commands/tablecmds.c:15275 +#: commands/tablecmds.c:782 commands/tablecmds.c:15308 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "відношення \"%s\" буде успадковуватись більш ніж один раз" @@ -10019,7 +10050,7 @@ msgstr "скоротити зовнішню таблицю \"%s\" не можн msgid "cannot truncate temporary tables of other sessions" msgstr "тимчасові таблиці інших сеансів не можна скоротити" -#: commands/tablecmds.c:2476 commands/tablecmds.c:15172 +#: commands/tablecmds.c:2476 commands/tablecmds.c:15205 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "успадкування від секціонованої таблиці \"%s\" не допускається" @@ -10040,12 +10071,12 @@ msgstr "успадковане відношення \"%s\" не є таблиц msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "створити тимчасове відношення як секцію постійного відношення\"%s\" не можна" -#: commands/tablecmds.c:2510 commands/tablecmds.c:15151 +#: commands/tablecmds.c:2510 commands/tablecmds.c:15184 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "тимчасове відношення \"%s\" не може успадковуватись" -#: commands/tablecmds.c:2520 commands/tablecmds.c:15159 +#: commands/tablecmds.c:2520 commands/tablecmds.c:15192 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "успадкування від тимчасового відношення іншого сеансу неможливе" @@ -10100,7 +10131,7 @@ msgid "inherited column \"%s\" has a generation conflict" msgstr "конфлікт генерування в успадкованому стовпці \"%s\"" #: commands/tablecmds.c:2731 commands/tablecmds.c:2786 -#: commands/tablecmds.c:12657 parser/parse_utilcmd.c:1297 +#: commands/tablecmds.c:12667 parser/parse_utilcmd.c:1297 #: parser/parse_utilcmd.c:1340 parser/parse_utilcmd.c:1787 #: parser/parse_utilcmd.c:1895 #, c-format @@ -10345,12 +10376,12 @@ msgstr "неможливо додати стовпець до типізован msgid "cannot add column to a partition" msgstr "неможливо додати стовпець до розділу" -#: commands/tablecmds.c:6852 commands/tablecmds.c:15402 +#: commands/tablecmds.c:6852 commands/tablecmds.c:15435 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочірня таблиця \"%s\" має інший тип для стовпця \"%s\"" -#: commands/tablecmds.c:6858 commands/tablecmds.c:15409 +#: commands/tablecmds.c:6858 commands/tablecmds.c:15442 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "дочірня таблиця \"%s\" має інше правило сортування для стовпця \"%s\"" @@ -10365,954 +10396,947 @@ msgstr "об'єднання визначення стовпця \"%s\" для н msgid "cannot recursively add identity column to table that has child tables" msgstr "неможливо додати стовпець ідентифікації в таблицю, яка має дочірні таблиці" -#: commands/tablecmds.c:7194 +#: commands/tablecmds.c:7196 #, c-format msgid "column must be added to child tables too" msgstr "стовпець також повинен бути доданий до дочірніх таблиць" -#: commands/tablecmds.c:7272 +#: commands/tablecmds.c:7274 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "стовпець \"%s\" відношення \"%s\" вже існує, пропускається" -#: commands/tablecmds.c:7279 +#: commands/tablecmds.c:7281 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "стовпець \"%s\" відношення \"%s\" вже існує" -#: commands/tablecmds.c:7345 commands/tablecmds.c:12285 +#: commands/tablecmds.c:7347 commands/tablecmds.c:12295 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "неможливо видалити обмеження тільки з секціонованої таблиці, коли існують секції" -#: commands/tablecmds.c:7346 commands/tablecmds.c:7663 -#: commands/tablecmds.c:8664 commands/tablecmds.c:12286 +#: commands/tablecmds.c:7348 commands/tablecmds.c:7665 +#: commands/tablecmds.c:8666 commands/tablecmds.c:12296 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Не вказуйте ключове слово ONLY." -#: commands/tablecmds.c:7383 commands/tablecmds.c:7589 -#: commands/tablecmds.c:7731 commands/tablecmds.c:7845 -#: commands/tablecmds.c:7939 commands/tablecmds.c:7998 -#: commands/tablecmds.c:8117 commands/tablecmds.c:8256 -#: commands/tablecmds.c:8326 commands/tablecmds.c:8482 -#: commands/tablecmds.c:12440 commands/tablecmds.c:13989 -#: commands/tablecmds.c:16559 +#: commands/tablecmds.c:7385 commands/tablecmds.c:7591 +#: commands/tablecmds.c:7733 commands/tablecmds.c:7847 +#: commands/tablecmds.c:7941 commands/tablecmds.c:8000 +#: commands/tablecmds.c:8119 commands/tablecmds.c:8258 +#: commands/tablecmds.c:8328 commands/tablecmds.c:8484 +#: commands/tablecmds.c:12450 commands/tablecmds.c:14022 +#: commands/tablecmds.c:16592 #, c-format msgid "cannot alter system column \"%s\"" msgstr "не можна змінити системний стовпець \"%s\"" -#: commands/tablecmds.c:7389 commands/tablecmds.c:7737 +#: commands/tablecmds.c:7391 commands/tablecmds.c:7739 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "стовпець \"%s\" відношення \"%s\" є стовпцем ідентифікації" -#: commands/tablecmds.c:7432 +#: commands/tablecmds.c:7434 #, c-format msgid "column \"%s\" is in a primary key" msgstr "стовпець \"%s\" входить до первинного ключа" -#: commands/tablecmds.c:7437 +#: commands/tablecmds.c:7439 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "стовпець \"%s\" в індексі, що використовується як ідентифікація репліки" -#: commands/tablecmds.c:7460 +#: commands/tablecmds.c:7462 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "стовпець \"%s\" в батьківській таблиці позначений як NOT NULL" -#: commands/tablecmds.c:7660 commands/tablecmds.c:9147 +#: commands/tablecmds.c:7662 commands/tablecmds.c:9149 #, c-format msgid "constraint must be added to child tables too" msgstr "обмеження повинно бути додано у дочірні таблиці також" -#: commands/tablecmds.c:7661 +#: commands/tablecmds.c:7663 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Стовпець \"%s\" відношення \"%s\" вже не NOT NULL." -#: commands/tablecmds.c:7739 +#: commands/tablecmds.c:7741 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "Замість цього використайте ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." -#: commands/tablecmds.c:7744 +#: commands/tablecmds.c:7746 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "стовпець \"%s\" відношення \"%s\" є згенерованим стовпцем" -#: commands/tablecmds.c:7747 +#: commands/tablecmds.c:7749 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "Замість цього використайте ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION." -#: commands/tablecmds.c:7856 +#: commands/tablecmds.c:7858 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "стовпець \"%s\" відношення \"%s\" повинен бути оголошений як NOT NULL, щоб додати ідентифікацію" -#: commands/tablecmds.c:7862 +#: commands/tablecmds.c:7864 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "стовпець \"%s\" відношення \"%s\" вже є стовпцем ідентифікації" -#: commands/tablecmds.c:7868 +#: commands/tablecmds.c:7870 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "стовпець \"%s\" відношення \"%s\" вже має значення за замовчуванням" -#: commands/tablecmds.c:7945 commands/tablecmds.c:8006 +#: commands/tablecmds.c:7947 commands/tablecmds.c:8008 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "стовпець \"%s\" відношення \"%s\" не є стовпцем ідентифікації" -#: commands/tablecmds.c:8011 +#: commands/tablecmds.c:8013 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не є стовпцем ідентифікації, пропускається" -#: commands/tablecmds.c:8064 +#: commands/tablecmds.c:8066 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION повинен бути застосований і до дочірніх таблиць" -#: commands/tablecmds.c:8086 +#: commands/tablecmds.c:8088 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "не можна видалити вираз генерації з успадкованого стовпця" -#: commands/tablecmds.c:8125 +#: commands/tablecmds.c:8127 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "стовпець \"%s\" відношення \"%s\" не є збереженим згенерованим стовпцем" -#: commands/tablecmds.c:8130 +#: commands/tablecmds.c:8132 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не є збереженим згенерованим стовпцем, пропускається" -#: commands/tablecmds.c:8203 +#: commands/tablecmds.c:8205 #, c-format msgid "cannot refer to non-index column by number" msgstr "не можна посилатись на неіндексований стовпець за номером" -#: commands/tablecmds.c:8246 +#: commands/tablecmds.c:8248 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "стовпець з номером %d відношення %s не існує" -#: commands/tablecmds.c:8265 +#: commands/tablecmds.c:8267 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "змінити статистику включеного стовпця \"%s\" індексу \"%s\" не можна" -#: commands/tablecmds.c:8270 +#: commands/tablecmds.c:8272 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "змінити статистику невираженого стовпця \"%s\" індексу \"%s\" не можна" -#: commands/tablecmds.c:8272 +#: commands/tablecmds.c:8274 #, c-format msgid "Alter statistics on table column instead." msgstr "Замість цього змініть статистику стовпця в таблиці." -#: commands/tablecmds.c:8462 +#: commands/tablecmds.c:8464 #, c-format msgid "invalid storage type \"%s\"" msgstr "неприпустимий тип сховища \"%s\"" -#: commands/tablecmds.c:8494 +#: commands/tablecmds.c:8496 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "тип даних стовпця %s може мати тільки сховище PLAIN" -#: commands/tablecmds.c:8539 +#: commands/tablecmds.c:8541 #, c-format msgid "cannot drop column from typed table" msgstr "не можна видалити стовпець з типізованої таблиці" -#: commands/tablecmds.c:8602 +#: commands/tablecmds.c:8604 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "стовпець \"%s\" відношення \"%s\" не існує, пропускається" -#: commands/tablecmds.c:8615 +#: commands/tablecmds.c:8617 #, c-format msgid "cannot drop system column \"%s\"" msgstr "не можна видалити системний стовпець \"%s\"" -#: commands/tablecmds.c:8625 +#: commands/tablecmds.c:8627 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "не можна видалити успадкований стовпець \"%s\"" -#: commands/tablecmds.c:8638 +#: commands/tablecmds.c:8640 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "не можна видалити стовпець \"%s\", тому що він є частиною ключа секції відношення \"%s\"" -#: commands/tablecmds.c:8663 +#: commands/tablecmds.c:8665 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "видалити стовпець тільки з секціонованої таблиці, коли існують секції, не можна" -#: commands/tablecmds.c:8867 +#: commands/tablecmds.c:8869 #, 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:8892 +#: commands/tablecmds.c:8894 #, 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:9229 +#: commands/tablecmds.c:9231 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "не можна використати ONLY для стороннього ключа в секціонованій таблиці \"%s\", який посилається на відношення \"%s\"" -#: commands/tablecmds.c:9235 +#: commands/tablecmds.c:9237 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "не можна додати сторонній ключ з характеристикою NOT VALID в секціоновану таблицю \"%s\", який посилається на відношення \"%s\"" -#: commands/tablecmds.c:9238 +#: commands/tablecmds.c:9240 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Ця функція ще не підтримується з секціонованими таблицями." -#: commands/tablecmds.c:9245 commands/tablecmds.c:9716 +#: commands/tablecmds.c:9247 commands/tablecmds.c:9739 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "вказане відношення \"%s\" не є таблицею" -#: commands/tablecmds.c:9268 +#: commands/tablecmds.c:9270 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "обмеження в постійних таблицях можуть посилатись лише на постійні таблиці" -#: commands/tablecmds.c:9275 +#: commands/tablecmds.c:9277 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "обмеження в нежурнальованих таблицях можуть посилатись тільки на постійні або нежурналюємі таблиці" -#: commands/tablecmds.c:9281 +#: commands/tablecmds.c:9283 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "обмеження в тимчасових таблицях можуть посилатись лише на тимчасові таблиці" -#: commands/tablecmds.c:9285 +#: commands/tablecmds.c:9287 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "обмеження в тимчасових таблицях повинні посилатись лише на тичасові таблиці поточного сеансу" -#: commands/tablecmds.c:9359 commands/tablecmds.c:9365 +#: commands/tablecmds.c:9362 commands/tablecmds.c:9368 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "неприпустима дія %s для обмеження зовнішнього ключа, який містить згеренований стовпець" -#: commands/tablecmds.c:9381 +#: commands/tablecmds.c:9384 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "число стовпців в джерелі і призначенні зовнішнього ключа не збігається" -#: commands/tablecmds.c:9488 +#: commands/tablecmds.c:9491 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "обмеження зовнішнього ключа \"%s\" не можна реалізувати" -#: commands/tablecmds.c:9490 +#: commands/tablecmds.c:9493 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Стовпці ключа \"%s\" і \"%s\" містять несумісні типи: %s і %s." -#: commands/tablecmds.c:9659 +#: commands/tablecmds.c:9668 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "стовпець \"%s\" вказаний у дії ON DELETE SET повинен бути частиною зовнішнього ключа" -#: commands/tablecmds.c:10015 commands/tablecmds.c:10453 +#: commands/tablecmds.c:10038 commands/tablecmds.c:10463 #: parser/parse_utilcmd.c:827 parser/parse_utilcmd.c:956 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "обмеження зовнішнього ключа для сторонніх таблиць не підтримуються" -#: commands/tablecmds.c:10436 +#: commands/tablecmds.c:10446 #, c-format msgid "cannot attach table \"%s\" as a partition because it is referenced by foreign key \"%s\"" msgstr "не можна підключити таблицю \"%s\" в якості секції, тому що на неї посилається сторонній ключ \"%s\"" -#: commands/tablecmds.c:11036 commands/tablecmds.c:11317 -#: commands/tablecmds.c:12242 commands/tablecmds.c:12317 +#: commands/tablecmds.c:11046 commands/tablecmds.c:11327 +#: commands/tablecmds.c:12252 commands/tablecmds.c:12327 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "обмеження \"%s\" відношення \"%s\" не існує" -#: commands/tablecmds.c:11043 +#: commands/tablecmds.c:11053 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "обмеження \"%s\" відношення \"%s\" не є обмеженням зовнішнього ключа" -#: commands/tablecmds.c:11081 +#: commands/tablecmds.c:11091 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "неможливо змінити обмеження \"%s\" відношення \"%s\"" -#: commands/tablecmds.c:11084 +#: commands/tablecmds.c:11094 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "Обмеження \"%s\" походить з обмеження \"%s\" відношення \"%s\"." -#: commands/tablecmds.c:11086 +#: commands/tablecmds.c:11096 #, c-format msgid "You may alter the constraint it derives from, instead." msgstr "Натомість ви можете змінити початкове обмеження." -#: commands/tablecmds.c:11325 +#: commands/tablecmds.c:11335 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "обмеження \"%s\" відношення \"%s\" не є зовнішнім ключем або перевіркою обмеженням " -#: commands/tablecmds.c:11403 +#: commands/tablecmds.c:11413 #, c-format msgid "constraint must be validated on child tables too" msgstr "обмеження повинно дотримуватися в дочірніх таблицях також" -#: commands/tablecmds.c:11493 +#: commands/tablecmds.c:11503 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "стовпець \"%s\", вказаний в обмеженні зовнішнього ключа, не існує" -#: commands/tablecmds.c:11499 +#: commands/tablecmds.c:11509 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "в зовнішніх ключах не можна використовувати системні стовпці" -#: commands/tablecmds.c:11503 +#: commands/tablecmds.c:11513 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "у зовнішньому ключі не може бути більш ніж %d ключів" -#: commands/tablecmds.c:11569 +#: commands/tablecmds.c:11579 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "використовувати затримуваний первинний ключ в цільовій зовнішній таблиці \"%s\" не можна" -#: commands/tablecmds.c:11586 +#: commands/tablecmds.c:11596 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "у цільовій зовнішній таблиці \"%s\" немає первинного ключа" -#: commands/tablecmds.c:11655 +#: commands/tablecmds.c:11665 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "у списку стовпців зовнішнього ключа не повинно бути повторень" -#: commands/tablecmds.c:11749 +#: commands/tablecmds.c:11759 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "використовувати затримане обмеження унікальності в цільовій зовнішній таблиці \"%s\" не можна" -#: commands/tablecmds.c:11754 +#: commands/tablecmds.c:11764 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "у цільовій зовнішній таблиці \"%s\" немає обмеження унікальності, відповідного даним ключам" -#: commands/tablecmds.c:12198 +#: commands/tablecmds.c:12208 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "видалити успадковане обмеження \"%s\" відношення \"%s\" не можна" -#: commands/tablecmds.c:12248 +#: commands/tablecmds.c:12258 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "обмеження \"%s\" відношення \"%s\" не існує, пропускається" -#: commands/tablecmds.c:12424 +#: commands/tablecmds.c:12434 #, c-format msgid "cannot alter column type of typed table" msgstr "змінити тип стовпця в типізованій таблиці не можна" -#: commands/tablecmds.c:12450 +#: commands/tablecmds.c:12460 #, c-format msgid "cannot specify USING when altering type of generated column" msgstr "не можна вказати USING під час зміни типу згенерованого стовпця" -#: commands/tablecmds.c:12451 commands/tablecmds.c:17615 -#: commands/tablecmds.c:17705 commands/trigger.c:668 -#: rewrite/rewriteHandler.c:936 rewrite/rewriteHandler.c:971 -#, c-format -msgid "Column \"%s\" is a generated column." -msgstr "Стовпець \"%s\" є згенерованим стовпцем." - -#: commands/tablecmds.c:12461 +#: commands/tablecmds.c:12471 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "змінити успадкований стовпець \"%s\" не можна" -#: commands/tablecmds.c:12470 +#: commands/tablecmds.c:12480 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "не можна змінити стовпець \"%s\", тому що він є частиною ключа секції відношення \"%s\"" -#: commands/tablecmds.c:12520 +#: commands/tablecmds.c:12530 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "результати речення USING для стовпця \"%s\" не можна автоматично наведено для типу %s" -#: commands/tablecmds.c:12523 +#: commands/tablecmds.c:12533 #, c-format msgid "You might need to add an explicit cast." msgstr "Можливо, необхідно додати явне приведення типу." -#: commands/tablecmds.c:12527 +#: commands/tablecmds.c:12537 #, 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:12531 +#: commands/tablecmds.c:12541 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Можливо, необхідно вказати \"USING %s::%s\"." -#: commands/tablecmds.c:12630 +#: commands/tablecmds.c:12640 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "не можна змінити успадкований стовпець \"%s\" відношення \"%s\"" -#: commands/tablecmds.c:12658 +#: commands/tablecmds.c:12668 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Вираз USING містить посилання на тип усього рядка таблиці." -#: commands/tablecmds.c:12669 +#: commands/tablecmds.c:12679 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "тип успадкованого стовпця \"%s\" повинен бути змінений і в дочірніх таблицях" -#: commands/tablecmds.c:12794 +#: commands/tablecmds.c:12804 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "не можна змінити тип стовпця \"%s\" двічі" -#: commands/tablecmds.c:12832 +#: commands/tablecmds.c:12842 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "вираз генерації для стовпця \"%s\" не можна автоматично привести до типу %s" -#: commands/tablecmds.c:12837 +#: commands/tablecmds.c:12847 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "значення за замовчуванням для стовпця \"%s\" не можна автоматично привести до типу %s" -#: commands/tablecmds.c:12925 +#: commands/tablecmds.c:12935 #, c-format msgid "cannot alter type of a column used by a function or procedure" msgstr "неможливо змінити тип стовпця, який використовується функцією або процедурою" -#: commands/tablecmds.c:12926 commands/tablecmds.c:12940 -#: commands/tablecmds.c:12959 commands/tablecmds.c:12977 -#: commands/tablecmds.c:13035 +#: commands/tablecmds.c:12936 commands/tablecmds.c:12950 +#: commands/tablecmds.c:12969 commands/tablecmds.c:12987 +#: commands/tablecmds.c:13045 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s залежить від стовпця \"%s\"" -#: commands/tablecmds.c:12939 +#: commands/tablecmds.c:12949 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "змінити тип стовпця, залученого в поданні або правилі, не можна" -#: commands/tablecmds.c:12958 +#: commands/tablecmds.c:12968 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "неможливо змінити тип стовпця, що використовується у визначенні тригеру" -#: commands/tablecmds.c:12976 +#: commands/tablecmds.c:12986 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "неможливо змінити тип стовпця, що використовується у визначенні політики" -#: commands/tablecmds.c:13007 +#: commands/tablecmds.c:13017 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "змінити тип стовпця, який використовується згенерованим стовпцем, не можна" -#: commands/tablecmds.c:13008 +#: commands/tablecmds.c:13018 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Стовпець \"%s\" використовується згенерованим стовпцем \"%s\"." -#: commands/tablecmds.c:13034 +#: commands/tablecmds.c:13044 #, c-format msgid "cannot alter type of a column used by a publication WHERE clause" msgstr "неможливо змінити тип стовпця, який використовується публікацією в реченні WHERE" -#: commands/tablecmds.c:14097 commands/tablecmds.c:14109 +#: commands/tablecmds.c:14130 commands/tablecmds.c:14142 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "неможливо змінити власника індексу \"%s\"" -#: commands/tablecmds.c:14099 commands/tablecmds.c:14111 +#: commands/tablecmds.c:14132 commands/tablecmds.c:14144 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "Замість цього змініть власника таблиці, що містить цей індекс." -#: commands/tablecmds.c:14125 +#: commands/tablecmds.c:14158 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "неможливо змінити власника послідовності \"%s\"" -#: commands/tablecmds.c:14139 commands/tablecmds.c:17461 -#: commands/tablecmds.c:17480 +#: commands/tablecmds.c:14172 commands/tablecmds.c:17494 +#: commands/tablecmds.c:17513 #, c-format msgid "Use ALTER TYPE instead." msgstr "Замість цього використайте ALTER TYPE." -#: commands/tablecmds.c:14148 +#: commands/tablecmds.c:14181 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "неможливо змінити власника відношення \"%s\"" -#: commands/tablecmds.c:14510 +#: commands/tablecmds.c:14543 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одній інструкції не може бути декілька підкоманд SET TABLESPACE" -#: commands/tablecmds.c:14587 +#: commands/tablecmds.c:14620 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "неможливо встановити параметри відношення \"%s\"" -#: commands/tablecmds.c:14621 commands/view.c:521 +#: commands/tablecmds.c:14654 commands/view.c:521 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION підтримується лише з автооновлюваними поданнями" -#: commands/tablecmds.c:14872 +#: commands/tablecmds.c:14905 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "у табличних просторах існують лише таблиці, індекси та матеріалізовані подання" -#: commands/tablecmds.c:14884 +#: commands/tablecmds.c:14917 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "переміщувати відношення у або з табличного простору pg_global не можна" -#: commands/tablecmds.c:14976 +#: commands/tablecmds.c:15009 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "переривання через блокування відношення \"%s.%s\" неможливе" -#: commands/tablecmds.c:14992 +#: commands/tablecmds.c:15025 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr " табличному просторі \"%s\" не знайдені відповідні відносини" -#: commands/tablecmds.c:15110 +#: commands/tablecmds.c:15143 #, c-format msgid "cannot change inheritance of typed table" msgstr "змінити успадкування типізованої таблиці не можна" -#: commands/tablecmds.c:15115 commands/tablecmds.c:15671 +#: commands/tablecmds.c:15148 commands/tablecmds.c:15704 #, c-format msgid "cannot change inheritance of a partition" msgstr "змінити успадкування секції не можна" -#: commands/tablecmds.c:15120 +#: commands/tablecmds.c:15153 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "змінити успадкування секціонованої таблиці не можна" -#: commands/tablecmds.c:15166 +#: commands/tablecmds.c:15199 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "успадкування для тимчасового відношення іншого сеансу не можливе" -#: commands/tablecmds.c:15179 +#: commands/tablecmds.c:15212 #, c-format msgid "cannot inherit from a partition" msgstr "успадкування від секції неможливе" -#: commands/tablecmds.c:15201 commands/tablecmds.c:18116 +#: commands/tablecmds.c:15234 commands/tablecmds.c:18159 #, c-format msgid "circular inheritance not allowed" msgstr "циклічне успадкування неприпустиме" -#: commands/tablecmds.c:15202 commands/tablecmds.c:18117 +#: commands/tablecmds.c:15235 commands/tablecmds.c:18160 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" вже є нащадком \"%s\"." -#: commands/tablecmds.c:15215 +#: commands/tablecmds.c:15248 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "тригер \"%s\" не дозволяє таблиці \"%s\" стати нащадком успадкування" -#: commands/tablecmds.c:15217 +#: commands/tablecmds.c:15250 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "Тригери ROW з перехідними таблицями не підтримуються в ієрархіях успадкування." -#: commands/tablecmds.c:15420 +#: commands/tablecmds.c:15453 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "стовпець \"%s\" в дочірній таблиці має бути позначений як NOT NULL" -#: commands/tablecmds.c:15429 +#: commands/tablecmds.c:15462 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "стовпець \"%s\" у дочірній таблиці повинен бути згенерованим стовпцем" -#: commands/tablecmds.c:15479 +#: commands/tablecmds.c:15512 #, c-format msgid "column \"%s\" in child table has a conflicting generation expression" msgstr "стовпець \"%s\" в дочірній таблиці містить конфліктний вираз генерування" -#: commands/tablecmds.c:15507 +#: commands/tablecmds.c:15540 #, c-format msgid "child table is missing column \"%s\"" msgstr "у дочірній таблиці не вистачає стовпця \"%s\"" -#: commands/tablecmds.c:15595 +#: commands/tablecmds.c:15628 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "дочірня таблиця \"%s\" має інше визначення перевірочного обмеження \"%s\"" -#: commands/tablecmds.c:15603 +#: commands/tablecmds.c:15636 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "обмеження \"%s\" конфліктує з неуспадкованим обмеженням дочірньої таблиці \"%s\"" -#: commands/tablecmds.c:15614 +#: commands/tablecmds.c:15647 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "обмеження \"%s\" конфліктує з NOT VALID обмеженням дочірньої таблиці \"%s\"" -#: commands/tablecmds.c:15649 +#: commands/tablecmds.c:15682 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "у дочірній таблиці не вистачає обмеження \"%s\"" -#: commands/tablecmds.c:15735 +#: commands/tablecmds.c:15768 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "розділ \"%s\" вже очікує відключення в секціонованій таблиці \"%s.%s\"" -#: commands/tablecmds.c:15764 commands/tablecmds.c:15812 +#: commands/tablecmds.c:15797 commands/tablecmds.c:15845 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "відношення \"%s\" не є секцією відношення \"%s\"" -#: commands/tablecmds.c:15818 +#: commands/tablecmds.c:15851 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "відношення \"%s\" не є предком відношення \"%s\"" -#: commands/tablecmds.c:16046 +#: commands/tablecmds.c:16079 #, c-format msgid "typed tables cannot inherit" msgstr "типізовані таблиці не можуть успадковуватись" -#: commands/tablecmds.c:16076 +#: commands/tablecmds.c:16109 #, c-format msgid "table is missing column \"%s\"" msgstr "у таблиці не вистачає стовпця \"%s\"" -#: commands/tablecmds.c:16087 +#: commands/tablecmds.c:16120 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблиця містить стовпець \"%s\", а тип потребує \"%s\"" -#: commands/tablecmds.c:16096 +#: commands/tablecmds.c:16129 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблиця \"%s\" містить стовпець \"%s\" іншого типу" -#: commands/tablecmds.c:16110 +#: commands/tablecmds.c:16143 #, c-format msgid "table has extra column \"%s\"" msgstr "таблиця містить зайвий стовпець \"%s\"" -#: commands/tablecmds.c:16162 +#: commands/tablecmds.c:16195 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - не типізована таблиця" -#: commands/tablecmds.c:16336 +#: commands/tablecmds.c:16369 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати неунікальний індекс \"%s\"" -#: commands/tablecmds.c:16342 +#: commands/tablecmds.c:16375 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати небезпосередній індекс \"%s\"" -#: commands/tablecmds.c:16348 +#: commands/tablecmds.c:16381 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати індекс з виразом \"%s\"" -#: commands/tablecmds.c:16354 +#: commands/tablecmds.c:16387 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "для ідентифікації репліки не можна використати частковий індекс \"%s\"" -#: commands/tablecmds.c:16371 +#: commands/tablecmds.c:16404 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "індекс \"%s\" не можна використати як ідентифікацію репліки, тому що стовпець %d - системний стовпець" -#: commands/tablecmds.c:16378 +#: commands/tablecmds.c:16411 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "індекс \"%s\" не можна використати як ідентифікацію репліки, тому що стовпець \"%s\" допускає Null" -#: commands/tablecmds.c:16625 +#: commands/tablecmds.c:16658 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "змінити стан журналювання таблиці \"%s\" не можна, тому що вона тимчасова" -#: commands/tablecmds.c:16649 +#: commands/tablecmds.c:16682 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "таблицю \"%s\" не можна змінити на нежурнальовану, тому що вона є частиною публікації" -#: commands/tablecmds.c:16651 +#: commands/tablecmds.c:16684 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Нежурнальовані відношення не підтримують реплікацію." -#: commands/tablecmds.c:16696 +#: commands/tablecmds.c:16729 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "не вдалося змінити таблицю \"%s\" на журнальовану, тому що вона посилається на нежурнальовану таблицю \"%s\"" -#: commands/tablecmds.c:16706 +#: commands/tablecmds.c:16739 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "не вдалося змінити таблицю \"%s\" на нежурнальовану, тому що вона посилається на журнальовану таблицю \"%s\"" -#: commands/tablecmds.c:16764 +#: commands/tablecmds.c:16797 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "перемістити послідовність з власником в іншу схему не можна" -#: commands/tablecmds.c:16869 +#: commands/tablecmds.c:16902 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "відношення \"%s\" вже існує в схемі \"%s\"" -#: commands/tablecmds.c:17294 +#: commands/tablecmds.c:17327 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" не є таблицею або матеріалізованим поданням" -#: commands/tablecmds.c:17444 +#: commands/tablecmds.c:17477 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - не складений тип" -#: commands/tablecmds.c:17472 +#: commands/tablecmds.c:17505 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "змінити схему індексу \"%s\" не можна" -#: commands/tablecmds.c:17474 commands/tablecmds.c:17486 +#: commands/tablecmds.c:17507 commands/tablecmds.c:17519 #, c-format msgid "Change the schema of the table instead." msgstr "Замість цього змініть схему таблиці." -#: commands/tablecmds.c:17478 +#: commands/tablecmds.c:17511 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "змінити схему складеного типу \"%s\" не можна" -#: commands/tablecmds.c:17484 +#: commands/tablecmds.c:17517 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "змінити схему таблиці TOAST \"%s\" не можна" -#: commands/tablecmds.c:17521 +#: commands/tablecmds.c:17554 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "нерозпізнана стратегія секціонування \"%s\"" -#: commands/tablecmds.c:17529 +#: commands/tablecmds.c:17562 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "стратегія секціонування \"по списку\" не може використовувати декілька стовпців" -#: commands/tablecmds.c:17595 +#: commands/tablecmds.c:17628 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "стовпець \"%s\", згаданий в ключі секціонування, не існує" -#: commands/tablecmds.c:17603 +#: commands/tablecmds.c:17636 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "системний стовпець \"%s\" не можна використати в ключі секціонування" -#: commands/tablecmds.c:17614 commands/tablecmds.c:17704 +#: commands/tablecmds.c:17647 commands/tablecmds.c:17726 #, c-format msgid "cannot use generated column in partition key" msgstr "використати згенерований стовпець в ключі секції, не можна" -#: commands/tablecmds.c:17687 +#: commands/tablecmds.c:17716 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "вирази ключа секціонування не можуть містити посилання на системний стовпець" -#: commands/tablecmds.c:17734 +#: commands/tablecmds.c:17777 #, c-format msgid "functions in partition key expression must be marked IMMUTABLE" msgstr "функції у виразі ключа секціонування повинні бути позначені як IMMUTABLE" -#: commands/tablecmds.c:17743 +#: commands/tablecmds.c:17786 #, c-format msgid "cannot use constant expression as partition key" msgstr "не можна використати константий вираз як ключ секціонування" -#: commands/tablecmds.c:17764 +#: commands/tablecmds.c:17807 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не вдалося визначити, яке правило сортування використати для виразу секціонування" -#: commands/tablecmds.c:17799 +#: commands/tablecmds.c:17842 #, 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:17805 +#: commands/tablecmds.c:17848 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Ви повинні вказати клас операторів (btree) або визначити клас операторів (btree) за замовчуванням для цього типу даних." -#: commands/tablecmds.c:18056 +#: commands/tablecmds.c:18099 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" вже є секцією" -#: commands/tablecmds.c:18062 +#: commands/tablecmds.c:18105 #, c-format msgid "cannot attach a typed table as partition" msgstr "неможливо підключити типізовану таблицю в якості секції" -#: commands/tablecmds.c:18078 +#: commands/tablecmds.c:18121 #, c-format msgid "cannot attach inheritance child as partition" msgstr "неможливо підключити нащадка успадкування в якості секції" -#: commands/tablecmds.c:18092 +#: commands/tablecmds.c:18135 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "неможливо підключити предка успадкування в якості секції" -#: commands/tablecmds.c:18126 +#: commands/tablecmds.c:18169 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "неможливо підкючити тимчасове відношення в якості секції постійного відношення \"%s\"" -#: commands/tablecmds.c:18134 +#: commands/tablecmds.c:18177 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "неможливо підключити постійне відношення в якості секції тимчасового відношення \"%s\"" -#: commands/tablecmds.c:18142 +#: commands/tablecmds.c:18185 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "неможливо підключити секцію до тимчасового відношення в іншому сеансі" -#: commands/tablecmds.c:18149 +#: commands/tablecmds.c:18192 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "неможливо підключити тимчасове відношення з іншого сеансу в якості секції" -#: commands/tablecmds.c:18169 +#: commands/tablecmds.c:18212 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "таблиця \"%s\" містить стовпець \"%s\", відсутній в батьківській \"%s\"" -#: commands/tablecmds.c:18172 +#: commands/tablecmds.c:18215 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Нова секція може містити лише стовпці, що є у батьківській таблиці." -#: commands/tablecmds.c:18184 +#: commands/tablecmds.c:18227 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "тригер \"%s\" не дозволяє зробити таблицю \"%s\" секцією" -#: commands/tablecmds.c:18186 +#: commands/tablecmds.c:18229 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Тригери ROW з перехідними таблицями не підтримуються для секцій." -#: commands/tablecmds.c:18365 +#: commands/tablecmds.c:18408 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "не можна підключити зовнішню таблицю \"%s\" в якості секції секціонованої таблиці \"%s\"" -#: commands/tablecmds.c:18368 +#: commands/tablecmds.c:18411 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Секціонована таблиця \"%s\" містить унікальні індекси." -#: commands/tablecmds.c:18683 +#: commands/tablecmds.c:18727 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "не можна одночасно відключити розділи, коли існує розділ за замовчуванням" -#: commands/tablecmds.c:18792 +#: commands/tablecmds.c:18839 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "секціоновану таблицю \"%s\" було видалено одночасно" -#: commands/tablecmds.c:18798 +#: commands/tablecmds.c:18845 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "розділ \"%s\" було видалено паралельно" -#: commands/tablecmds.c:19404 commands/tablecmds.c:19424 -#: commands/tablecmds.c:19444 commands/tablecmds.c:19463 -#: commands/tablecmds.c:19505 +#: commands/tablecmds.c:19459 commands/tablecmds.c:19479 +#: commands/tablecmds.c:19499 commands/tablecmds.c:19518 +#: commands/tablecmds.c:19560 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "неможливо підключити індекс \"%s\" в якості секції індексу \"%s\"" -#: commands/tablecmds.c:19407 +#: commands/tablecmds.c:19462 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Індекс \"%s\" вже підключений до іншого індексу." -#: commands/tablecmds.c:19427 +#: commands/tablecmds.c:19482 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Індекс \"%s\" не є індексом жодної секції таблиці \"%s\"." -#: commands/tablecmds.c:19447 +#: commands/tablecmds.c:19502 #, c-format msgid "The index definitions do not match." msgstr "Визначення індексів не співпадають." -#: commands/tablecmds.c:19466 +#: commands/tablecmds.c:19521 #, 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:19508 +#: commands/tablecmds.c:19563 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "До секції \"%s\" вже підключений інший індекс." -#: commands/tablecmds.c:19745 +#: commands/tablecmds.c:19800 #, c-format msgid "column data type %s does not support compression" msgstr "тип даних стовпця %s не підтримує стискання" -#: commands/tablecmds.c:19752 +#: commands/tablecmds.c:19807 #, c-format msgid "invalid compression method \"%s\"" msgstr "неприпустимий метод стискання \"%s\"" @@ -11415,8 +11439,8 @@ msgid "directory \"%s\" already in use as a tablespace" msgstr "каталог \"%s\" вже використовується в якості табличного простору" #: commands/tablespace.c:788 commands/tablespace.c:801 -#: commands/tablespace.c:836 commands/tablespace.c:926 storage/file/fd.c:3255 -#: storage/file/fd.c:3664 +#: commands/tablespace.c:836 commands/tablespace.c:926 storage/file/fd.c:3252 +#: storage/file/fd.c:3661 #, c-format msgid "could not remove directory \"%s\": %m" msgstr "не вдалося видалити каталог \"%s\": %m" @@ -11672,61 +11696,66 @@ msgstr "перейменовано тригер \"%s\" для відношенн msgid "permission denied: \"%s\" is a system trigger" msgstr "немає доступу: \"%s\" - системний тригер" -#: commands/trigger.c:2449 +#: commands/trigger.c:2451 #, c-format msgid "trigger function %u returned null value" msgstr "тригерна функція %u повернула значення null" -#: commands/trigger.c:2509 commands/trigger.c:2727 commands/trigger.c:2995 -#: commands/trigger.c:3364 +#: commands/trigger.c:2511 commands/trigger.c:2738 commands/trigger.c:3015 +#: commands/trigger.c:3394 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "Тригер BEFORE STATEMENT не може повертати значення" -#: commands/trigger.c:2585 +#: commands/trigger.c:2587 #, c-format msgid "moving row to another partition during a BEFORE FOR EACH ROW trigger is not supported" msgstr "переміщення рядка до іншої секції під час тригеру BEFORE FOR EACH ROW не підтримується" -#: commands/trigger.c:2586 +#: commands/trigger.c:2588 #, c-format msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "Перед виконанням тригера \"%s\", рядок повинен був бути в секції \"%s.%s\"." -#: commands/trigger.c:3442 executor/nodeModifyTable.c:1522 -#: executor/nodeModifyTable.c:1596 executor/nodeModifyTable.c:2363 -#: executor/nodeModifyTable.c:2454 executor/nodeModifyTable.c:3015 -#: executor/nodeModifyTable.c:3154 +#: commands/trigger.c:2617 commands/trigger.c:2884 commands/trigger.c:3236 +#, c-format +msgid "cannot collect transition tuples from child foreign tables" +msgstr "неможливо зібрати перехідні кортежі з дочірніх сторонніх таблиць" + +#: commands/trigger.c:3472 executor/nodeModifyTable.c:1543 +#: executor/nodeModifyTable.c:1617 executor/nodeModifyTable.c:2384 +#: executor/nodeModifyTable.c:2475 executor/nodeModifyTable.c:3036 +#: executor/nodeModifyTable.c:3175 #, 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:3483 executor/nodeLockRows.c:229 -#: executor/nodeLockRows.c:238 executor/nodeModifyTable.c:316 -#: executor/nodeModifyTable.c:1538 executor/nodeModifyTable.c:2380 -#: executor/nodeModifyTable.c:2604 +#: commands/trigger.c:3513 executor/nodeLockRows.c:229 +#: executor/nodeLockRows.c:238 executor/nodeModifyTable.c:337 +#: executor/nodeModifyTable.c:1559 executor/nodeModifyTable.c:2401 +#: executor/nodeModifyTable.c:2625 #, c-format msgid "could not serialize access due to concurrent update" msgstr "не вдалося серіалізувати доступ через паралельне оновлення" -#: commands/trigger.c:3491 executor/nodeModifyTable.c:1628 -#: executor/nodeModifyTable.c:2471 executor/nodeModifyTable.c:2628 -#: executor/nodeModifyTable.c:3033 +#: commands/trigger.c:3521 executor/nodeModifyTable.c:1649 +#: executor/nodeModifyTable.c:2492 executor/nodeModifyTable.c:2649 +#: executor/nodeModifyTable.c:3054 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не вдалося серіалізувати доступ через паралельне видалення" -#: commands/trigger.c:4700 +#: commands/trigger.c:4730 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "не можна виконати відкладений тригер в межах операції з обмеженням по безпеці" -#: commands/trigger.c:5881 +#: commands/trigger.c:5911 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "обмеження \"%s\" не є відкладеним" -#: commands/trigger.c:5904 +#: commands/trigger.c:5934 #, c-format msgid "constraint \"%s\" does not exist" msgstr "обмеження \"%s\" не існує" @@ -12193,7 +12222,7 @@ msgid "permission denied to create role" msgstr "немає прав для створення ролі" #: commands/user.c:287 commands/user.c:1139 commands/user.c:1146 -#: utils/adt/acl.c:5331 utils/adt/acl.c:5337 gram.y:16444 gram.y:16490 +#: utils/adt/acl.c:5348 utils/adt/acl.c:5354 gram.y:16451 gram.y:16497 #, c-format msgid "role name \"%s\" is reserved" msgstr "ім'я ролі \"%s\" зарезервовано" @@ -12264,8 +12293,8 @@ msgstr "використати спеціальну роль у DROP ROLE не #: commands/user.c:953 commands/user.c:1110 commands/variable.c:793 #: commands/variable.c:796 commands/variable.c:913 commands/variable.c:916 -#: utils/adt/acl.c:5186 utils/adt/acl.c:5234 utils/adt/acl.c:5262 -#: utils/adt/acl.c:5281 utils/init/miscinit.c:770 +#: utils/adt/acl.c:5203 utils/adt/acl.c:5251 utils/adt/acl.c:5279 +#: utils/adt/acl.c:5298 utils/init/miscinit.c:770 #, c-format msgid "role \"%s\" does not exist" msgstr "роль \"%s\" не існує" @@ -12370,149 +12399,149 @@ msgstr "роль \"%s\" вже є учасником ролі \"%s\"" msgid "role \"%s\" is not a member of role \"%s\"" msgstr "роль \"%s\" не є учасником ролі \"%s\"" -#: commands/vacuum.c:140 +#: commands/vacuum.c:141 #, c-format msgid "unrecognized ANALYZE option \"%s\"" msgstr "нерозпізнаний параметр ANALYZE \"%s\"" -#: commands/vacuum.c:178 +#: commands/vacuum.c:179 #, c-format msgid "parallel option requires a value between 0 and %d" msgstr "паралельний параметр потребує значення між 0 і %d" -#: commands/vacuum.c:190 +#: commands/vacuum.c:191 #, c-format msgid "parallel workers for vacuum must be between 0 and %d" msgstr "одночасні процеси для очищення повинні бути між 0 і %d" -#: commands/vacuum.c:207 +#: commands/vacuum.c:208 #, c-format msgid "unrecognized VACUUM option \"%s\"" msgstr "нерозпізнаний параметр VACUUM \"%s\"" -#: commands/vacuum.c:230 +#: commands/vacuum.c:231 #, c-format msgid "VACUUM FULL cannot be performed in parallel" msgstr "VACUUM FULL не можна виконати паралельно" -#: commands/vacuum.c:246 +#: commands/vacuum.c:247 #, c-format msgid "ANALYZE option must be specified when a column list is provided" msgstr "Якщо задається список стовпців, необхідно вказати параметр ANALYZE" -#: commands/vacuum.c:336 +#: commands/vacuum.c:337 #, c-format msgid "%s cannot be executed from VACUUM or ANALYZE" msgstr "%s не можна виконати під час VACUUM або ANALYZE" -#: commands/vacuum.c:346 +#: commands/vacuum.c:347 #, c-format msgid "VACUUM option DISABLE_PAGE_SKIPPING cannot be used with FULL" msgstr "Параметр VACUUM DISABLE_PAGE_SKIPPING не можна використовувати з FULL" -#: commands/vacuum.c:353 +#: commands/vacuum.c:354 #, c-format msgid "PROCESS_TOAST required with VACUUM FULL" msgstr "PROCESS_TOAST потребується з VACUUM FULL" -#: commands/vacuum.c:587 +#: commands/vacuum.c:597 #, c-format msgid "skipping \"%s\" --- only superuser can vacuum it" msgstr "\"%s\" пропускається --- лише суперкористувач може очистити" -#: commands/vacuum.c:591 +#: commands/vacuum.c:601 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can vacuum it" msgstr "пропускається \"%s\" --- лише суперкористувач або власник БД може очистити" -#: commands/vacuum.c:595 +#: commands/vacuum.c:605 #, c-format msgid "skipping \"%s\" --- only table or database owner can vacuum it" msgstr "пропускається \"%s\" --- лише власник таблиці або бази даних може очистити" -#: commands/vacuum.c:610 +#: commands/vacuum.c:620 #, c-format msgid "skipping \"%s\" --- only superuser can analyze it" msgstr "пропуск об'єкта \"%s\" --- тільки суперкористувач може його аналізувати" -#: commands/vacuum.c:614 +#: commands/vacuum.c:624 #, c-format msgid "skipping \"%s\" --- only superuser or database owner can analyze it" msgstr "пропуск об'єкта \"%s\" --- тільки суперкористувач або власник бази даних може його аналізувати" -#: commands/vacuum.c:618 +#: commands/vacuum.c:628 #, c-format msgid "skipping \"%s\" --- only table or database owner can analyze it" msgstr "пропуск об'єкта \"%s\" --- тільки власник таблиці або бази даних може його аналізувати" -#: commands/vacuum.c:697 commands/vacuum.c:793 +#: commands/vacuum.c:707 commands/vacuum.c:803 #, c-format msgid "skipping vacuum of \"%s\" --- lock not available" msgstr "очистка \"%s\" пропускається --- блокування недоступне" -#: commands/vacuum.c:702 +#: commands/vacuum.c:712 #, c-format msgid "skipping vacuum of \"%s\" --- relation no longer exists" msgstr "очистка \"%s\" пропускається --- це відношення більше не існує" -#: commands/vacuum.c:718 commands/vacuum.c:798 +#: commands/vacuum.c:728 commands/vacuum.c:808 #, c-format msgid "skipping analyze of \"%s\" --- lock not available" msgstr "пропуск аналізу об'єкта \"%s\" --- блокування недоступне" -#: commands/vacuum.c:723 +#: commands/vacuum.c:733 #, c-format msgid "skipping analyze of \"%s\" --- relation no longer exists" msgstr "пропуск аналізу об'єкта\"%s\" --- відношення більше не існує" -#: commands/vacuum.c:1042 +#: commands/vacuum.c:1052 #, c-format msgid "oldest xmin is far in the past" msgstr "найстарший xmin далеко в минулому" -#: commands/vacuum.c:1043 +#: commands/vacuum.c:1053 #, c-format msgid "Close open transactions soon to avoid wraparound problems.\n" "You might also need to commit or roll back old prepared transactions, or drop stale replication slots." msgstr "Завершіть відкриті транзакції якнайшвидше, щоб уникнути проблеми зациклення.\n" "Можливо, вам також доведеться затвердити або відкотити старі підготовленні транзакції, або видалити застарілі слоти реплікації." -#: commands/vacuum.c:1086 +#: commands/vacuum.c:1096 #, c-format msgid "oldest multixact is far in the past" msgstr "найстарший multixact далеко в минулому" -#: commands/vacuum.c:1087 +#: commands/vacuum.c:1097 #, c-format msgid "Close open transactions with multixacts soon to avoid wraparound problems." msgstr "Завершіть відкриті транзакції з multixacts якнайшвидше, щоб уникнути проблеми зациклення." -#: commands/vacuum.c:1821 +#: commands/vacuum.c:1831 #, c-format msgid "some databases have not been vacuumed in over 2 billion transactions" msgstr "деякі бази даних не очищалися протягом більш ніж 2 мільярдів транзакцій" -#: commands/vacuum.c:1822 +#: commands/vacuum.c:1832 #, c-format msgid "You might have already suffered transaction-wraparound data loss." msgstr "Можливо, ви вже втратили дані в результаті зациклення транзакцій." -#: commands/vacuum.c:1990 +#: commands/vacuum.c:2013 #, c-format msgid "skipping \"%s\" --- cannot vacuum non-tables or special system tables" msgstr "пропускається \"%s\" --- очищати не таблиці або спеціальні системні таблиці не можна" -#: commands/vacuum.c:2368 +#: commands/vacuum.c:2391 #, c-format msgid "scanned index \"%s\" to remove %d row versions" msgstr "просканований індекс \"%s\", видалено версій рядків %d" -#: commands/vacuum.c:2387 +#: commands/vacuum.c:2410 #, c-format msgid "index \"%s\" now contains %.0f row versions in %u pages" msgstr "індекс \"%s\" наразі містить %.0f версій рядків у %u сторінках" -#: commands/vacuum.c:2391 +#: commands/vacuum.c:2414 #, c-format msgid "%.0f index row versions were removed.\n" "%u index pages were newly deleted.\n" @@ -12534,13 +12563,13 @@ msgstr[3] "запущено %d паралельних виконавців оч #, c-format msgid "launched %d parallel vacuum worker for index cleanup (planned: %d)" msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d)" -msgstr[0] "запущений %d паралельний виконавець очистки для очищення індексу (заплановано: %d)" +msgstr[0] "запущено %d паралельний виконавець очистки для очищення індексу (заплановано: %d)" msgstr[1] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" msgstr[2] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" msgstr[3] "запущено %d паралельних виконавців очистки для очищення індексу (заплановано: %d)" -#: commands/variable.c:165 tcop/postgres.c:3630 utils/misc/guc.c:12168 -#: utils/misc/guc.c:12246 +#: commands/variable.c:165 tcop/postgres.c:3630 utils/misc/guc.c:12174 +#: utils/misc/guc.c:12252 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Нерозпізнане ключове слово: \"%s\"." @@ -12753,30 +12782,30 @@ msgstr "не знайдено значення для параметру %d" #: executor/execExpr.c:636 executor/execExpr.c:643 executor/execExpr.c:649 #: executor/execExprInterp.c:4074 executor/execExprInterp.c:4091 -#: executor/execExprInterp.c:4190 executor/nodeModifyTable.c:205 -#: executor/nodeModifyTable.c:216 executor/nodeModifyTable.c:233 -#: executor/nodeModifyTable.c:241 +#: executor/execExprInterp.c:4190 executor/nodeModifyTable.c:206 +#: executor/nodeModifyTable.c:225 executor/nodeModifyTable.c:242 +#: executor/nodeModifyTable.c:252 executor/nodeModifyTable.c:262 #, c-format msgid "table row type and query-specified row type do not match" msgstr "тип рядка таблиці відрізняється від типу рядка-результату запиту" -#: executor/execExpr.c:637 executor/nodeModifyTable.c:206 +#: executor/execExpr.c:637 executor/nodeModifyTable.c:207 #, c-format msgid "Query has too many columns." msgstr "Запит повертає дуже багато стовпців." -#: executor/execExpr.c:644 executor/nodeModifyTable.c:234 +#: executor/execExpr.c:644 executor/nodeModifyTable.c:226 #, c-format msgid "Query provides a value for a dropped column at ordinal position %d." msgstr "Запит надає значення для видаленого стовпця з порядковим номером %d." #: executor/execExpr.c:650 executor/execExprInterp.c:4092 -#: executor/nodeModifyTable.c:217 +#: executor/nodeModifyTable.c:253 #, c-format msgid "Table has type %s at ordinal position %d, but query expects %s." msgstr "Таблиця має тип %s у порядковому розташуванні %d, але запит очікує %s." -#: executor/execExpr.c:1098 parser/parse_agg.c:835 +#: executor/execExpr.c:1098 parser/parse_agg.c:888 #, c-format msgid "window function calls cannot be nested" msgstr "виклики віконних функцій не можуть бути вкладеними" @@ -12947,175 +12976,175 @@ msgstr "Ключ %s конфліктує з існуючим ключем %s." msgid "Key conflicts with existing key." msgstr "Ключ конфліктує з існуючим ключем." -#: executor/execMain.c:1008 +#: executor/execMain.c:1039 #, c-format msgid "cannot change sequence \"%s\"" msgstr "послідовність \"%s\" не можна змінити" -#: executor/execMain.c:1014 +#: executor/execMain.c:1045 #, c-format msgid "cannot change TOAST relation \"%s\"" msgstr "TOAST-відношення \"%s\" не можна змінити" -#: executor/execMain.c:1032 rewrite/rewriteHandler.c:3149 -#: rewrite/rewriteHandler.c:4037 +#: executor/execMain.c:1063 rewrite/rewriteHandler.c:3152 +#: rewrite/rewriteHandler.c:4057 #, c-format msgid "cannot insert into view \"%s\"" msgstr "вставити дані в подання \"%s\" не можна" -#: executor/execMain.c:1034 rewrite/rewriteHandler.c:3152 -#: rewrite/rewriteHandler.c:4040 +#: executor/execMain.c:1065 rewrite/rewriteHandler.c:3155 +#: rewrite/rewriteHandler.c:4060 #, 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:1040 rewrite/rewriteHandler.c:3157 -#: rewrite/rewriteHandler.c:4045 +#: executor/execMain.c:1071 rewrite/rewriteHandler.c:3160 +#: rewrite/rewriteHandler.c:4065 #, c-format msgid "cannot update view \"%s\"" msgstr "оновити подання \"%s\" не можна" -#: executor/execMain.c:1042 rewrite/rewriteHandler.c:3160 -#: rewrite/rewriteHandler.c:4048 +#: executor/execMain.c:1073 rewrite/rewriteHandler.c:3163 +#: rewrite/rewriteHandler.c:4068 #, 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:1048 rewrite/rewriteHandler.c:3165 -#: rewrite/rewriteHandler.c:4053 +#: executor/execMain.c:1079 rewrite/rewriteHandler.c:3168 +#: rewrite/rewriteHandler.c:4073 #, c-format msgid "cannot delete from view \"%s\"" msgstr "видалити дані з подання \"%s\" не можна" -#: executor/execMain.c:1050 rewrite/rewriteHandler.c:3168 -#: rewrite/rewriteHandler.c:4056 +#: executor/execMain.c:1081 rewrite/rewriteHandler.c:3171 +#: rewrite/rewriteHandler.c:4076 #, 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." -#: executor/execMain.c:1061 +#: executor/execMain.c:1092 #, c-format msgid "cannot change materialized view \"%s\"" msgstr "змінити матеріалізоване подання \"%s\" не можна" -#: executor/execMain.c:1073 +#: executor/execMain.c:1104 #, c-format msgid "cannot insert into foreign table \"%s\"" msgstr "вставляти дані в зовнішню таблицю \"%s\" не можна" -#: executor/execMain.c:1079 +#: executor/execMain.c:1110 #, c-format msgid "foreign table \"%s\" does not allow inserts" msgstr "зовнішня таблиця \"%s\" не допускає додавання даних" -#: executor/execMain.c:1086 +#: executor/execMain.c:1117 #, c-format msgid "cannot update foreign table \"%s\"" msgstr "оновити зовнішню таблицю \"%s\" не можна" -#: executor/execMain.c:1092 +#: executor/execMain.c:1123 #, c-format msgid "foreign table \"%s\" does not allow updates" msgstr "зовнішня таблиця \"%s\" не дозволяє оновлення" -#: executor/execMain.c:1099 +#: executor/execMain.c:1130 #, c-format msgid "cannot delete from foreign table \"%s\"" msgstr "видаляти дані з зовнішньої таблиці \"%s\" не можна" -#: executor/execMain.c:1105 +#: executor/execMain.c:1136 #, c-format msgid "foreign table \"%s\" does not allow deletes" msgstr "зовнішня таблиця \"%s\" не дозволяє видалення даних" -#: executor/execMain.c:1116 +#: executor/execMain.c:1147 #, c-format msgid "cannot change relation \"%s\"" msgstr "відношення \"%s\" не можна змінити" -#: executor/execMain.c:1143 +#: executor/execMain.c:1184 #, c-format msgid "cannot lock rows in sequence \"%s\"" msgstr "блокувати рядки в послідовності \"%s\" не можна" -#: executor/execMain.c:1150 +#: executor/execMain.c:1191 #, c-format msgid "cannot lock rows in TOAST relation \"%s\"" msgstr "блокувати рядки в TOAST-відношенні \"%s\" не можна" -#: executor/execMain.c:1157 +#: executor/execMain.c:1198 #, c-format msgid "cannot lock rows in view \"%s\"" msgstr "блокувати рядки в поданні \"%s\" не можна" -#: executor/execMain.c:1165 +#: executor/execMain.c:1206 #, c-format msgid "cannot lock rows in materialized view \"%s\"" msgstr "блокувати рядки в матеріалізованому поданні \"%s\" не можна" -#: executor/execMain.c:1174 executor/execMain.c:2691 +#: executor/execMain.c:1215 executor/execMain.c:2742 #: executor/nodeLockRows.c:136 #, c-format msgid "cannot lock rows in foreign table \"%s\"" msgstr "блокувати рядки в зовнішній таблиці \"%s\" не можна" -#: executor/execMain.c:1180 +#: executor/execMain.c:1221 #, c-format msgid "cannot lock rows in relation \"%s\"" msgstr "блокувати рядки у відношенні \"%s\" не можна" -#: executor/execMain.c:1892 +#: executor/execMain.c:1943 #, c-format msgid "new row for relation \"%s\" violates partition constraint" msgstr "новий рядок для відношення \"%s\" порушує обмеження секції" -#: executor/execMain.c:1894 executor/execMain.c:1977 executor/execMain.c:2027 -#: executor/execMain.c:2136 +#: executor/execMain.c:1945 executor/execMain.c:2028 executor/execMain.c:2078 +#: executor/execMain.c:2187 #, c-format msgid "Failing row contains %s." msgstr "Помилковий рядок містить %s." -#: executor/execMain.c:1974 +#: executor/execMain.c:2025 #, c-format msgid "null value in column \"%s\" of relation \"%s\" violates not-null constraint" msgstr "null значення в стовпці \"%s\" відношення \"%s\" порушує not-null обмеження" -#: executor/execMain.c:2025 +#: executor/execMain.c:2076 #, c-format msgid "new row for relation \"%s\" violates check constraint \"%s\"" msgstr "новий рядок для відношення \"%s\" порушує перевірне обмеження перевірку \"%s\"" -#: executor/execMain.c:2134 +#: executor/execMain.c:2185 #, c-format msgid "new row violates check option for view \"%s\"" msgstr "новий рядок порушує параметр перевірки для подання \"%s\"" -#: executor/execMain.c:2144 +#: executor/execMain.c:2195 #, c-format msgid "new row violates row-level security policy \"%s\" for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків \"%s\" для таблиці \"%s\"" -#: executor/execMain.c:2149 +#: executor/execMain.c:2200 #, c-format msgid "new row violates row-level security policy for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків для таблиці \"%s\"" -#: executor/execMain.c:2157 +#: executor/execMain.c:2208 #, c-format msgid "target row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "цільовий рядок порушує політику захисту на рівні рядків \"%s\" (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2162 +#: executor/execMain.c:2213 #, c-format msgid "target row violates row-level security policy (USING expression) for table \"%s\"" msgstr "цільовий рядок порушує політику захисту на рівні рядків (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2169 +#: executor/execMain.c:2220 #, c-format msgid "new row violates row-level security policy \"%s\" (USING expression) for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків \"%s\" (вираз USING) для таблиці \"%s\"" -#: executor/execMain.c:2174 +#: executor/execMain.c:2225 #, c-format msgid "new row violates row-level security policy (USING expression) for table \"%s\"" msgstr "новий рядок порушує політику захисту на рівні рядків (вираз USING) для таблиці \"%s\"" @@ -13145,7 +13174,7 @@ msgstr "паралельне оновлення, триває повторна msgid "concurrent delete, retrying" msgstr "паралельне видалення, триває повторна спроба" -#: executor/execReplication.c:277 parser/parse_cte.c:308 +#: executor/execReplication.c:277 parser/parse_cte.c:309 #: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:724 #: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3709 #: utils/adt/arrayfuncs.c:4264 utils/adt/arrayfuncs.c:6258 @@ -13343,7 +13372,7 @@ msgstr "для SQL функцій тип повернення %s не підтр msgid "aggregate %u needs to have compatible input type and transition type" msgstr "агрегатна функція %u повинна мати сумісні тип введення і тип переходу" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:677 parser/parse_agg.c:705 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:684 parser/parse_agg.c:727 #, c-format msgid "aggregate function calls cannot be nested" msgstr "виклики агрегатних функцій не можуть бути вкладеними" @@ -13388,64 +13417,69 @@ msgstr "RIGHT JOIN підтримується лише з умовами, які msgid "FULL JOIN is only supported with merge-joinable join conditions" msgstr "FULL JOIN підтримується лише з умовами, які допускають з'єднання злиттям" -#: executor/nodeModifyTable.c:242 +#: executor/nodeModifyTable.c:243 +#, c-format +msgid "Query provides a value for a generated column at ordinal position %d." +msgstr "Запит надає значення для згенерованого стовпця з порядковим номером %d." + +#: executor/nodeModifyTable.c:263 #, c-format msgid "Query has too few columns." msgstr "Запит повертає дуже мало стовпців." -#: executor/nodeModifyTable.c:1521 executor/nodeModifyTable.c:1595 +#: executor/nodeModifyTable.c:1542 executor/nodeModifyTable.c:1616 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "кортеж, який підлягає видаленню, вже змінений в операції, яка викликана поточною командою" -#: executor/nodeModifyTable.c:1750 +#: executor/nodeModifyTable.c:1771 #, c-format msgid "invalid ON UPDATE specification" msgstr "неприпустима специфікація ON UPDATE" -#: executor/nodeModifyTable.c:1751 +#: executor/nodeModifyTable.c:1772 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "Результуючий кортеж з'явиться в іншій секції в порівнянні з оригінальним кортежем." -#: executor/nodeModifyTable.c:2212 +#: executor/nodeModifyTable.c:2233 #, c-format msgid "cannot move tuple across partitions when a non-root ancestor of the source partition is directly referenced in a foreign key" msgstr "не можна пересувати кортеж між різними партиціями, коли не кореневий предок секції джерела безпосередньо посилається на зовнішній ключ" -#: executor/nodeModifyTable.c:2213 +#: executor/nodeModifyTable.c:2234 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "Зовнішній ключ вказує на предка \"%s\", але не на кореневого предка \"%s\"." -#: executor/nodeModifyTable.c:2216 +#: executor/nodeModifyTable.c:2237 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "Розгляньте визначення зовнішнього ключа для таблиці \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2582 executor/nodeModifyTable.c:3021 -#: executor/nodeModifyTable.c:3160 +#: executor/nodeModifyTable.c:2603 executor/nodeModifyTable.c:3042 +#: executor/nodeModifyTable.c:3181 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не може вплинути на рядок вдруге" -#: executor/nodeModifyTable.c:2584 +#: executor/nodeModifyTable.c:2605 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "Переконайтеся, що немає рядків для вставки з тією ж командою з дуплікованими обмежувальними значеннями." -#: executor/nodeModifyTable.c:3014 executor/nodeModifyTable.c:3153 +#: executor/nodeModifyTable.c:3035 executor/nodeModifyTable.c:3174 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "кортеж, який підлягає оновленню або видаленню, вже змінено операцією, викликаною поточною командою" -#: executor/nodeModifyTable.c:3023 executor/nodeModifyTable.c:3162 +#: executor/nodeModifyTable.c:3044 executor/nodeModifyTable.c:3183 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "Переконайтесь, що не більше ніж один вихідний рядок відповідає будь-якому одному цільовому рядку." -#: executor/nodeModifyTable.c:3112 +#: executor/nodeModifyTable.c:3133 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "кортеж, який підлягає видаленню, вже переміщено в іншу секцію в результаті паралельного оновлення" @@ -13460,8 +13494,8 @@ msgstr "Параметр TABLESAMPLE не може бути null" msgid "TABLESAMPLE REPEATABLE parameter cannot be null" msgstr "Параметр TABLESAMPLE REPEATABLE не може бути null" -#: executor/nodeSubplan.c:325 executor/nodeSubplan.c:351 -#: executor/nodeSubplan.c:405 executor/nodeSubplan.c:1174 +#: executor/nodeSubplan.c:306 executor/nodeSubplan.c:332 +#: executor/nodeSubplan.c:386 executor/nodeSubplan.c:1158 #, c-format msgid "more than one row returned by a subquery used as an expression" msgstr "підзапит, використаний в якості вираження, повернув більше ніж один рядок" @@ -13567,7 +13601,7 @@ msgstr "неможливо відкрити запит %s як курсор" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не підтримується" -#: executor/spi.c:1720 parser/analyze.c:2910 +#: executor/spi.c:1720 parser/analyze.c:2911 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "Курсори з прокручуванням повинні бути READ ONLY." @@ -13608,7 +13642,7 @@ msgstr "не вдалося передати кортеж у чергу в сп msgid "user mapping not found for \"%s\"" msgstr "зіставлення користувача \"%s\" не знайдено" -#: foreign/foreign.c:332 optimizer/plan/createplan.c:7123 +#: foreign/foreign.c:332 optimizer/plan/createplan.c:7125 #: optimizer/util/plancat.c:477 #, c-format msgid "access to non-system foreign table is restricted" @@ -13795,423 +13829,423 @@ msgstr "Неправильне підтвердження в останньом msgid "Garbage found at the end of client-final-message." msgstr "Сміття знайдено в кінці останнього повідомлення клієнта." -#: libpq/auth.c:275 +#: libpq/auth.c:283 #, c-format msgid "authentication failed for user \"%s\": host rejected" msgstr "користувач \"%s\" не пройшов автентифікацію: відхилений хост" -#: libpq/auth.c:278 +#: libpq/auth.c:286 #, c-format msgid "\"trust\" authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію \"trust\"" -#: libpq/auth.c:281 +#: libpq/auth.c:289 #, c-format msgid "Ident authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію Ident" -#: libpq/auth.c:284 +#: libpq/auth.c:292 #, c-format msgid "Peer authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію Peer" -#: libpq/auth.c:289 +#: libpq/auth.c:297 #, c-format msgid "password authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію за допомогою пароля" -#: libpq/auth.c:294 +#: libpq/auth.c:302 #, c-format msgid "GSSAPI authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію GSSAPI" -#: libpq/auth.c:297 +#: libpq/auth.c:305 #, c-format msgid "SSPI authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію SSPI" -#: libpq/auth.c:300 +#: libpq/auth.c:308 #, c-format msgid "PAM authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію PAM" -#: libpq/auth.c:303 +#: libpq/auth.c:311 #, c-format msgid "BSD authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію BSD" -#: libpq/auth.c:306 +#: libpq/auth.c:314 #, c-format msgid "LDAP authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію LDAP" -#: libpq/auth.c:309 +#: libpq/auth.c:317 #, c-format msgid "certificate authentication failed for user \"%s\"" msgstr "користувач \"%s\" не пройшов автентифікацію за сертифікатом" -#: libpq/auth.c:312 +#: libpq/auth.c:320 #, c-format msgid "RADIUS authentication failed for user \"%s\"" msgstr "Користувач \"%s\" не пройшов автентифікацію RADIUS" -#: libpq/auth.c:315 +#: libpq/auth.c:323 #, c-format msgid "authentication failed for user \"%s\": invalid authentication method" msgstr "користувач \"%s\" не пройшов автентифікацію: неприпустимий метод автентифікації" -#: libpq/auth.c:319 +#: libpq/auth.c:327 #, c-format msgid "Connection matched pg_hba.conf line %d: \"%s\"" msgstr "З'єднання відповідає рядку %d в pg_hba.conf: \"%s\"" -#: libpq/auth.c:362 +#: libpq/auth.c:370 #, c-format msgid "authentication identifier set more than once" msgstr "ідентифікатор автентифікації встановлено більш ніж один раз" -#: libpq/auth.c:363 +#: libpq/auth.c:371 #, c-format msgid "previous identifier: \"%s\"; new identifier: \"%s\"" msgstr "попередній ідентифікатор: \"%s\"; новий ідентифікатор: \"%s\"" -#: libpq/auth.c:372 +#: libpq/auth.c:380 #, c-format msgid "connection authenticated: identity=\"%s\" method=%s (%s:%d)" msgstr "підключення автентифіковано: ідентифікатор=\"%s\" метод=%s (%s:%d)" -#: libpq/auth.c:411 +#: libpq/auth.c:419 #, c-format msgid "client certificates can only be checked if a root certificate store is available" msgstr "сертифікати клієнтів можуть перевірятися, лише якщо доступне сховище кореневих сертифікатів" -#: libpq/auth.c:422 +#: libpq/auth.c:430 #, c-format msgid "connection requires a valid client certificate" msgstr "підключення потребує припустимий сертифікат клієнта" -#: libpq/auth.c:453 libpq/auth.c:499 +#: libpq/auth.c:461 libpq/auth.c:507 msgid "GSS encryption" msgstr "Шифрування GSS" -#: libpq/auth.c:456 libpq/auth.c:502 +#: libpq/auth.c:464 libpq/auth.c:510 msgid "SSL encryption" msgstr "Шифрування SSL" -#: libpq/auth.c:458 libpq/auth.c:504 +#: libpq/auth.c:466 libpq/auth.c:512 msgid "no encryption" msgstr "без шифрування" #. translator: last %s describes encryption state -#: libpq/auth.c:464 +#: libpq/auth.c:472 #, c-format msgid "pg_hba.conf rejects replication connection for host \"%s\", user \"%s\", %s" msgstr "pg_hba.conf відхиляє підключення реплікації для хосту \"%s\", користувача \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:471 +#: libpq/auth.c:479 #, c-format msgid "pg_hba.conf rejects connection for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "pg_hba.conf відхиляє підключення для хосту \"%s\", користувача \"%s\", бази даних \"%s\", %s" -#: libpq/auth.c:509 +#: libpq/auth.c:517 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup matches." msgstr "IP-адреса клієнта дозволяється в \"%s\", відповідає прямому перетворенню." -#: libpq/auth.c:512 +#: libpq/auth.c:520 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup not checked." msgstr "IP-адреса клієнта дозволяється в \"%s\", пряме перетворення не перевірялося." -#: libpq/auth.c:515 +#: libpq/auth.c:523 #, c-format msgid "Client IP address resolved to \"%s\", forward lookup does not match." msgstr "IP-адреса клієнта дозволяється в \"%s\", не відповідає прямому перетворенню." -#: libpq/auth.c:518 +#: libpq/auth.c:526 #, c-format msgid "Could not translate client host name \"%s\" to IP address: %s." msgstr "Перекласти ім'я клієнтського хосту \"%s\" в IP-адресу: %s, не вдалося." -#: libpq/auth.c:523 +#: libpq/auth.c:531 #, c-format msgid "Could not resolve client IP address to a host name: %s." msgstr "Отримати ім'я хосту з IP-адреси клієнта: %s, не вдалося." #. translator: last %s describes encryption state -#: libpq/auth.c:531 +#: libpq/auth.c:539 #, c-format msgid "no pg_hba.conf entry for replication connection from host \"%s\", user \"%s\", %s" msgstr "в pg_hba.conf немає запису, що дозволяє підключення для реплікації з хосту \"%s\", користувача \"%s\", %s" #. translator: last %s describes encryption state -#: libpq/auth.c:539 +#: libpq/auth.c:547 #, c-format msgid "no pg_hba.conf entry for host \"%s\", user \"%s\", database \"%s\", %s" msgstr "в pg_hba.conf немає запису для хосту \"%s\", користувача \"%s\", бази даних \"%s\", %s" -#: libpq/auth.c:712 +#: libpq/auth.c:720 #, c-format msgid "expected password response, got message type %d" msgstr "очікувалася відповід з паролем, але отримано тип повідомлення %d" -#: libpq/auth.c:733 +#: libpq/auth.c:741 #, c-format msgid "invalid password packet size" msgstr "неприпустимий розмір пакету з паролем" -#: libpq/auth.c:751 +#: libpq/auth.c:759 #, c-format msgid "empty password returned by client" msgstr "клієнт повернув пустий пароль" -#: libpq/auth.c:878 libpq/hba.c:1335 +#: libpq/auth.c:886 libpq/hba.c:1335 #, c-format msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" msgstr "Автентифікація MD5 не підтримується, коли увімкнуто режим \"db_user_namespace\"" -#: libpq/auth.c:884 +#: libpq/auth.c:892 #, c-format msgid "could not generate random MD5 salt" msgstr "не вдалося створити випадкову сіль для MD5" -#: libpq/auth.c:933 libpq/be-secure-gssapi.c:535 +#: libpq/auth.c:941 libpq/be-secure-gssapi.c:545 #, c-format msgid "could not set environment: %m" msgstr "не вдалося встановити середовище: %m" -#: libpq/auth.c:969 +#: libpq/auth.c:977 #, c-format msgid "expected GSS response, got message type %d" msgstr "очікувалася відповідь GSS, але отримано тип повідомлення %d" -#: libpq/auth.c:1029 +#: libpq/auth.c:1037 msgid "accepting GSS security context failed" msgstr "прийняти контекст безпеки GSS не вдалось" -#: libpq/auth.c:1070 +#: libpq/auth.c:1078 msgid "retrieving GSS user name failed" msgstr "отримання ім'я користувача GSS не виконано" -#: libpq/auth.c:1219 +#: libpq/auth.c:1227 msgid "could not acquire SSPI credentials" msgstr "не вдалось отримати облікові дані SSPI" -#: libpq/auth.c:1244 +#: libpq/auth.c:1252 #, c-format msgid "expected SSPI response, got message type %d" msgstr "очікувалась відповідь SSPI, але отримано тип повідомлення %d" -#: libpq/auth.c:1322 +#: libpq/auth.c:1330 msgid "could not accept SSPI security context" msgstr "прийняти контекст безпеки SSPI не вдалося" -#: libpq/auth.c:1384 +#: libpq/auth.c:1392 msgid "could not get token from SSPI security context" msgstr "не вдалося отримати маркер з контексту безпеки SSPI" -#: libpq/auth.c:1523 libpq/auth.c:1542 +#: libpq/auth.c:1531 libpq/auth.c:1550 #, c-format msgid "could not translate name" msgstr "не вдалося перекласти ім'я" -#: libpq/auth.c:1555 +#: libpq/auth.c:1563 #, c-format msgid "realm name too long" msgstr "ім'я області дуже довге" -#: libpq/auth.c:1570 +#: libpq/auth.c:1578 #, c-format msgid "translated account name too long" msgstr "ім'я перекладеного облікового запису дуже довге" -#: libpq/auth.c:1751 +#: libpq/auth.c:1759 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "не вдалося створити сокет для підключення до серверу Ident: %m" -#: libpq/auth.c:1766 +#: libpq/auth.c:1774 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "не вдалося прив'язатися до локальної адреси \"%s\": %m" -#: libpq/auth.c:1778 +#: libpq/auth.c:1786 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "не вдалося підключитися до Ident-серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1800 +#: libpq/auth.c:1808 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "не вдалося надіслати запит до Ident -серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1817 +#: libpq/auth.c:1825 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "не вдалося отримати відповідь від Ident-серверу за адресою \"%s\", порт %s: %m" -#: libpq/auth.c:1827 +#: libpq/auth.c:1835 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "неприпустимо форматована відповідь від Ident-серверу: \"%s\"" -#: libpq/auth.c:1880 +#: libpq/auth.c:1888 #, c-format msgid "peer authentication is not supported on this platform" msgstr "автентифікація peer не підтримується на цій платформі" -#: libpq/auth.c:1884 +#: libpq/auth.c:1892 #, c-format msgid "could not get peer credentials: %m" msgstr "не вдалося отримати облікові дані користувача через peer: %m" -#: libpq/auth.c:1896 +#: libpq/auth.c:1904 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "не вдалося знайти локального користувача за ідентифікатором (%ld): %s" -#: libpq/auth.c:1997 +#: libpq/auth.c:2005 #, c-format msgid "error from underlying PAM layer: %s" msgstr "помилка у нижчому шарі PAM: %s" -#: libpq/auth.c:2008 +#: libpq/auth.c:2016 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "непідтримувана розмова PAM %d/\"%s\"" -#: libpq/auth.c:2068 +#: libpq/auth.c:2076 #, c-format msgid "could not create PAM authenticator: %s" msgstr "не вдалося створити автентифікатор PAM: %s" -#: libpq/auth.c:2079 +#: libpq/auth.c:2087 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "помилка в pam_set_item(PAM_USER): %s" -#: libpq/auth.c:2111 +#: libpq/auth.c:2119 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "помилка в pam_set_item(PAM_RHOST): %s" -#: libpq/auth.c:2123 +#: libpq/auth.c:2131 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "помилка в pam_set_item(PAM_CONV): %s" -#: libpq/auth.c:2136 +#: libpq/auth.c:2144 #, c-format msgid "pam_authenticate failed: %s" msgstr "помилка в pam_authenticate: %sв" -#: libpq/auth.c:2149 +#: libpq/auth.c:2157 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "помилка в pam_acct_mgmt: %s" -#: libpq/auth.c:2160 +#: libpq/auth.c:2168 #, c-format msgid "could not release PAM authenticator: %s" msgstr "не вдалося вивільнити автентифікатор PAM: %s" -#: libpq/auth.c:2240 +#: libpq/auth.c:2248 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "не вдалося ініціалізувати протокол LDAP: код помилки %d" -#: libpq/auth.c:2277 +#: libpq/auth.c:2285 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "не вдалося отримати назву домена з ldapbasedn" -#: libpq/auth.c:2285 +#: libpq/auth.c:2293 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "Автентифікація LDAP не змогла знайти записи DNS SRV для \"%s\"" -#: libpq/auth.c:2287 +#: libpq/auth.c:2295 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Встановіть назву сервера LDAP, явно." -#: libpq/auth.c:2339 +#: libpq/auth.c:2347 #, c-format msgid "could not initialize LDAP: %s" msgstr "не вдалося ініціалізувати протокол LDAP: %s" -#: libpq/auth.c:2349 +#: libpq/auth.c:2357 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "протокол ldaps з поточною бібліотекою LDAP не підтримується" -#: libpq/auth.c:2357 +#: libpq/auth.c:2365 #, c-format msgid "could not initialize LDAP: %m" msgstr "не вдалося ініціалізувати протокол LDAP: %m" -#: libpq/auth.c:2367 +#: libpq/auth.c:2375 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "не вдалося встановити версію протоколу LDAP: %s" -#: libpq/auth.c:2407 +#: libpq/auth.c:2415 #, c-format msgid "could not load function _ldap_start_tls_sA in wldap32.dll" msgstr "не вдалося завантажити функцію _ldap_start_tls_sA in wldap32.dll" -#: libpq/auth.c:2408 +#: libpq/auth.c:2416 #, c-format msgid "LDAP over SSL is not supported on this platform." msgstr "Протокол LDAP через протокол SSL не підтримується на цій платформі." -#: libpq/auth.c:2424 +#: libpq/auth.c:2432 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "не вдалося почати сеанс протоколу LDAP TLS: %s" -#: libpq/auth.c:2495 +#: libpq/auth.c:2503 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "Сервер LDAP не вказаний, і не ldapbasedn" -#: libpq/auth.c:2502 +#: libpq/auth.c:2510 #, c-format msgid "LDAP server not specified" msgstr "LDAP-сервер не вказаний" -#: libpq/auth.c:2564 +#: libpq/auth.c:2572 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "неприпустимий символ в імені користувача для автентифікації LDAP" -#: libpq/auth.c:2581 +#: libpq/auth.c:2589 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "не вдалося виконати початкову прив'язку LDAP для ldapbinddn \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2610 +#: libpq/auth.c:2618 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "не вдалося виконати LDAP-пошук за фільтром \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2624 +#: libpq/auth.c:2632 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAP-користувач \"%s\" не існує" -#: libpq/auth.c:2625 +#: libpq/auth.c:2633 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" не повернув записів." -#: libpq/auth.c:2629 +#: libpq/auth.c:2637 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAP-користувач \"%s\" не унікальний" -#: libpq/auth.c:2630 +#: libpq/auth.c:2638 #, 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." @@ -14220,137 +14254,137 @@ msgstr[1] "LDAP-пошук за фільтром \"%s\" на сервері \"%s msgstr[2] "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" повернув %d записів." msgstr[3] "LDAP-пошук за фільтром \"%s\" на сервері \"%s\" повернув %d записів." -#: libpq/auth.c:2650 +#: libpq/auth.c:2658 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "не вдалося отримати dn для першого результату, що відповідає \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2671 +#: libpq/auth.c:2679 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "не вдалося відв'язатись після пошуку користувача \"%s\" на сервері \"%s\"" -#: libpq/auth.c:2702 +#: libpq/auth.c:2710 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "Помилка під час реєстрації в протоколі LDAP користувача \"%s\" на сервері \"%s\": %s" -#: libpq/auth.c:2734 +#: libpq/auth.c:2742 #, c-format msgid "LDAP diagnostics: %s" msgstr "Діагностика LDAP: %s" -#: libpq/auth.c:2772 +#: libpq/auth.c:2780 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "помилка автентифікації сертифіката для користувача \"%s\": сертифікат клієнта не містить імені користувача" -#: libpq/auth.c:2793 +#: libpq/auth.c:2801 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "помилка автентифікації сертифікату для користувача \"%s\": не вдалося отримати DN суб'єкта" -#: libpq/auth.c:2816 +#: libpq/auth.c:2824 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "помилка перевірки сертифікату (clientcert=verify-full) для користувача \"%s\": DN невідповідність" -#: libpq/auth.c:2821 +#: libpq/auth.c:2829 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "помилка перевірки сертифікату (clientcert=verify-full) для користувача \"%s\": CN невідповідність" -#: libpq/auth.c:2923 +#: libpq/auth.c:2931 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-сервер не вказаний" -#: libpq/auth.c:2930 +#: libpq/auth.c:2938 #, c-format msgid "RADIUS secret not specified" msgstr "Секрет RADIUS не вказаний" -#: libpq/auth.c:2944 +#: libpq/auth.c:2952 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "Автентифікація RADIUS не підтримує паролі довші ніж %d символів" -#: libpq/auth.c:3051 libpq/hba.c:1976 +#: libpq/auth.c:3059 libpq/hba.c:1976 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "не вдалося перетворити ім'я серверу RADIUS \"%s\" в адресу: %s" -#: libpq/auth.c:3065 +#: libpq/auth.c:3073 #, c-format msgid "could not generate random encryption vector" msgstr "не вдалося створити випадковий вектор шифрування" -#: libpq/auth.c:3102 +#: libpq/auth.c:3110 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "не вдалося виконати MD5 шифрування паролю: %s" -#: libpq/auth.c:3129 +#: libpq/auth.c:3137 #, c-format msgid "could not create RADIUS socket: %m" msgstr "не вдалося створити сокет RADIUS: %m" -#: libpq/auth.c:3151 +#: libpq/auth.c:3159 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "не вдалося прив'язатися до локального сокету RADIUS: %m" -#: libpq/auth.c:3161 +#: libpq/auth.c:3169 #, c-format msgid "could not send RADIUS packet: %m" msgstr "не вдалося відправити пакет RADIUS: %m" -#: libpq/auth.c:3195 libpq/auth.c:3221 +#: libpq/auth.c:3203 libpq/auth.c:3229 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "перевищено час очікування відповіді RADIUS від %s" -#: libpq/auth.c:3214 +#: libpq/auth.c:3222 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "не вдалося перевірити статус сокету RADIUS: %m" -#: libpq/auth.c:3244 +#: libpq/auth.c:3252 #, c-format msgid "could not read RADIUS response: %m" msgstr "не вдалося прочитати відповідь RADIUS: %m" -#: libpq/auth.c:3257 libpq/auth.c:3261 +#: libpq/auth.c:3265 libpq/auth.c:3269 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "Відповідь RADIUS від %s була відправлена з неправильного порту: %d" -#: libpq/auth.c:3270 +#: libpq/auth.c:3278 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "Занадто коротка відповідь RADIUS від %s: %d" -#: libpq/auth.c:3277 +#: libpq/auth.c:3285 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "У відповіді RADIUS від %s покшоджена довжина: %d (фактична довжина %d)" -#: libpq/auth.c:3285 +#: libpq/auth.c:3293 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "Прийшла відповідь RADIUS від %s на інший запит: %d (очікувалася %d)" -#: libpq/auth.c:3310 +#: libpq/auth.c:3318 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "не вдалося виконати MD5 шифрування отриманого пакету: %s" -#: libpq/auth.c:3320 +#: libpq/auth.c:3328 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "Відповідь RADIUS від %s має неправильний підпис MD5" -#: libpq/auth.c:3338 +#: libpq/auth.c:3346 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "Відповідь RADIUS від %s має неприпустимий код (%d) для користувача \"%s\"" @@ -14455,44 +14489,39 @@ msgstr "до файлу закритого ключа \"%s\" мають дост 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) або менше, якщо він належить користувачу бази даних, або u=rw,g=r (0640) або менше, якщо він належить кореню." -#: libpq/be-secure-gssapi.c:201 +#: libpq/be-secure-gssapi.c:208 msgid "GSSAPI wrap error" msgstr "помилка при згортанні GSSAPI" -#: libpq/be-secure-gssapi.c:208 +#: libpq/be-secure-gssapi.c:215 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "вихідне повідомлення GSSAPI не буде використовувати конфіденційність" -#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:622 +#: libpq/be-secure-gssapi.c:222 libpq/be-secure-gssapi.c:632 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "сервер намагався надіслати переповнений пакет GSSAPI (%zu > %zu)" -#: libpq/be-secure-gssapi.c:351 +#: libpq/be-secure-gssapi.c:358 libpq/be-secure-gssapi.c:580 #, c-format msgid "oversize GSSAPI packet sent by the client (%zu > %zu)" msgstr "переповнений пакет GSSAPI, надісланий клієнтом (%zu > %zu)" -#: libpq/be-secure-gssapi.c:389 +#: libpq/be-secure-gssapi.c:396 msgid "GSSAPI unwrap error" msgstr "помилка при розгортанні GSSAPI" -#: libpq/be-secure-gssapi.c:396 +#: libpq/be-secure-gssapi.c:403 #, c-format msgid "incoming GSSAPI message did not use confidentiality" msgstr "вхідне повідомлення GSSAPI не використовувало конфіденційність" -#: libpq/be-secure-gssapi.c:570 -#, c-format -msgid "oversize GSSAPI packet sent by the client (%zu > %d)" -msgstr "переповнений пакет GSSAPI, надісланий клієнтом (%zu > %d)" - -#: libpq/be-secure-gssapi.c:594 +#: libpq/be-secure-gssapi.c:604 msgid "could not accept GSSAPI security context" msgstr "не вдалося прийняти контекст безпеки GSSAPI" -#: libpq/be-secure-gssapi.c:689 +#: libpq/be-secure-gssapi.c:716 msgid "GSSAPI size check error" msgstr "помилка перевірки розміру GSSAPI" @@ -15561,7 +15590,7 @@ msgstr "розширений тип вузла \"%s\" вже існує" msgid "ExtensibleNodeMethods \"%s\" was not registered" msgstr "Методи розширеного вузла \"%s\" не зареєстровані" -#: nodes/makefuncs.c:150 nodes/makefuncs.c:176 statistics/extended_stats.c:2336 +#: nodes/makefuncs.c:150 nodes/makefuncs.c:176 statistics/extended_stats.c:2316 #, c-format msgid "relation \"%s\" does not have a composite type" msgstr "відношення \"%s\" не має складеного типу" @@ -15589,7 +15618,7 @@ msgstr "портал без імені з параметрами: %s" msgid "FULL JOIN is only supported with merge-joinable or hash-joinable join conditions" msgstr "FULL JOIN підтримується лише з умовами, які допускають з'єднання злиттям або хеш-з'єднанням" -#: optimizer/plan/createplan.c:7102 parser/parse_merge.c:187 +#: optimizer/plan/createplan.c:7104 parser/parse_merge.c:187 #: parser/parse_merge.c:194 #, c-format msgid "cannot execute MERGE on relation \"%s\"" @@ -15602,44 +15631,44 @@ 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:1344 parser/analyze.c:1763 parser/analyze.c:2019 -#: parser/analyze.c:3201 +#: optimizer/plan/planner.c:1374 parser/analyze.c:1763 parser/analyze.c:2019 +#: parser/analyze.c:3202 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s несумісно з UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2045 optimizer/plan/planner.c:3703 +#: optimizer/plan/planner.c:2075 optimizer/plan/planner.c:3733 #, c-format msgid "could not implement GROUP BY" msgstr "не вдалося реалізувати GROUP BY" -#: optimizer/plan/planner.c:2046 optimizer/plan/planner.c:3704 -#: optimizer/plan/planner.c:4347 optimizer/prep/prepunion.c:1045 +#: optimizer/plan/planner.c:2076 optimizer/plan/planner.c:3734 +#: optimizer/plan/planner.c:4377 optimizer/prep/prepunion.c:1045 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "Деякі типи даних підтримують лише хешування, в той час як інші підтримують тільки сортування." -#: optimizer/plan/planner.c:4346 +#: optimizer/plan/planner.c:4376 #, c-format msgid "could not implement DISTINCT" msgstr "не вдалося реалізувати DISTINCT" -#: optimizer/plan/planner.c:5467 +#: optimizer/plan/planner.c:5497 #, c-format msgid "could not implement window PARTITION BY" msgstr "не вдалося реалізувати PARTITION BY для вікна" -#: optimizer/plan/planner.c:5468 +#: optimizer/plan/planner.c:5498 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Стовпці, що розділяють вікна, повинні мати типи даних з можливістю сортування." -#: optimizer/plan/planner.c:5472 +#: optimizer/plan/planner.c:5502 #, c-format msgid "could not implement window ORDER BY" msgstr "не вдалося реалізувати ORDER BY для вікна" -#: optimizer/plan/planner.c:5473 +#: optimizer/plan/planner.c:5503 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Стовпці, що впорядковують вікна, повинні мати типи даних з можливістю сортування." @@ -15675,22 +15704,22 @@ msgstr "неможливо відкрити відношення \"%s\"" msgid "cannot access temporary or unlogged relations during recovery" msgstr "отримати доступ до тимчасових або нежурнальованих відношень під час відновлення не можна" -#: optimizer/util/plancat.c:705 +#: optimizer/util/plancat.c:710 #, c-format msgid "whole row unique index inference specifications are not supported" msgstr "вказівки з посиланням на весь рядок для вибору унікального індексу не підтримуються" -#: optimizer/util/plancat.c:722 +#: optimizer/util/plancat.c:727 #, c-format msgid "constraint in ON CONFLICT clause has no associated index" msgstr "з обмеженням в реченні ON CONFLICT не пов'язаний індекс" -#: optimizer/util/plancat.c:772 +#: optimizer/util/plancat.c:777 #, c-format msgid "ON CONFLICT DO UPDATE not supported with exclusion constraints" msgstr "ON CONFLICT DO UPDATE не підтримується з обмеженнями-винятками" -#: optimizer/util/plancat.c:882 +#: optimizer/util/plancat.c:887 #, c-format msgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "немає унікального обмеження або обмеження-виключення відповідного специфікації ON CONFLICT" @@ -15721,7 +15750,7 @@ 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:1666 parser/analyze.c:3412 +#: parser/analyze.c:1666 parser/analyze.c:3413 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s не можна застосовувати до VALUES" @@ -15776,467 +15805,477 @@ msgid "variable \"%s\" is of type %s but expression is of type %s" msgstr "змінна \"%s\" має тип %s, але вираз має тип %s" #. translator: %s is a SQL keyword -#: parser/analyze.c:2860 parser/analyze.c:2868 +#: parser/analyze.c:2861 parser/analyze.c:2869 #, c-format msgid "cannot specify both %s and %s" msgstr "не можна вказати як %s, так і %s" -#: parser/analyze.c:2888 +#: parser/analyze.c:2889 #, 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:2896 +#: parser/analyze.c:2897 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s не підтримується" -#: parser/analyze.c:2899 +#: parser/analyze.c:2900 #, c-format msgid "Holdable cursors must be READ ONLY." msgstr "Курсори, що зберігаються повинні бути READ ONLY." #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:2907 +#: parser/analyze.c:2908 #, 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:2918 +#: parser/analyze.c:2919 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s не є припустимим" -#: parser/analyze.c:2921 +#: parser/analyze.c:2922 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Нечутливі курсори повинні бути READ ONLY." -#: parser/analyze.c:2987 +#: parser/analyze.c:2988 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "в матеріалізованих поданнях не повинні використовуватись оператори, які змінюють дані в WITH" -#: parser/analyze.c:2997 +#: parser/analyze.c:2998 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "в матеріалізованих поданнях не повинні використовуватись тимчасові таблиці або подання" -#: parser/analyze.c:3007 +#: parser/analyze.c:3008 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "визначати матеріалізовані подання з зв'язаними параметрами не можна" -#: parser/analyze.c:3019 +#: parser/analyze.c:3020 #, c-format msgid "materialized views cannot be unlogged" msgstr "матеріалізовані подання не можуть бути нежурнальованими" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3208 +#: parser/analyze.c:3209 #, 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:3215 +#: parser/analyze.c:3216 #, 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:3222 +#: parser/analyze.c:3223 #, 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:3229 +#: parser/analyze.c:3230 #, 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:3236 +#: parser/analyze.c:3237 #, 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:3243 +#: parser/analyze.c:3244 #, 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:3335 +#: parser/analyze.c:3336 #, 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:3385 +#: parser/analyze.c:3386 #, c-format msgid "%s cannot be applied to a join" msgstr "%s не можна застосовувати до з'єднання" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3394 +#: parser/analyze.c:3395 #, 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:3403 +#: parser/analyze.c:3404 #, 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:3421 +#: parser/analyze.c:3422 #, 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:3430 +#: parser/analyze.c:3431 #, c-format msgid "%s cannot be applied to a named tuplestore" msgstr "%s не можна застосовувати до іменованого джерела кортежів" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3450 +#: parser/analyze.c:3451 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "відношення \"%s\" в реченні %s не знайдено в реченні FROM" -#: parser/parse_agg.c:208 parser/parse_oper.c:227 +#: parser/parse_agg.c:211 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "для типу %s не вдалося визначити оператора сортування" -#: parser/parse_agg.c:210 +#: parser/parse_agg.c:213 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Агрегатним функціям з DISTINCT необхідно сортувати їх вхідні дані." -#: parser/parse_agg.c:268 +#: parser/parse_agg.c:271 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING повинно містити меньше, ніж 32 аргумента" -#: parser/parse_agg.c:371 +#: parser/parse_agg.c:375 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатні функції не дозволяються в умовах JOIN" -#: parser/parse_agg.c:373 +#: parser/parse_agg.c:377 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операції групування не дозволяються в умовах JOIN" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:387 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "агрегатні функції не можна застосовувати в реченні FROM їх рівня запиту" -#: parser/parse_agg.c:385 +#: parser/parse_agg.c:389 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "операції групування не можна застосовувати в реченні FROM їх рівня запиту" -#: parser/parse_agg.c:390 +#: parser/parse_agg.c:394 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатні функції не можна застосовувати у функціях у FROM" -#: parser/parse_agg.c:392 +#: parser/parse_agg.c:396 msgid "grouping operations are not allowed in functions in FROM" msgstr "операції групування не можна застосовувати у функціях у FROM" -#: parser/parse_agg.c:400 +#: parser/parse_agg.c:404 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатні функції не можна застосовувати у виразах політики" -#: parser/parse_agg.c:402 +#: parser/parse_agg.c:406 msgid "grouping operations are not allowed in policy expressions" msgstr "операції групування не можна застосовувати у виразах політики" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:423 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатні функції не можна застосовувати у вікні RANGE " -#: parser/parse_agg.c:421 +#: parser/parse_agg.c:425 msgid "grouping operations are not allowed in window RANGE" msgstr "операції групування не можна застосовувати у вікні RANGE" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:430 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатні функції не можна застосовувати у вікні ROWS" -#: parser/parse_agg.c:428 +#: parser/parse_agg.c:432 msgid "grouping operations are not allowed in window ROWS" msgstr "операції групування не можна застосовувати у вікні ROWS" -#: parser/parse_agg.c:433 +#: parser/parse_agg.c:437 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатні функції не можна застосовувати у вікні GROUPS" -#: parser/parse_agg.c:435 +#: parser/parse_agg.c:439 msgid "grouping operations are not allowed in window GROUPS" msgstr "операції групування не можна застосовувати у вікні GROUPS" -#: parser/parse_agg.c:448 +#: parser/parse_agg.c:452 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатні функції не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:450 +#: parser/parse_agg.c:454 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операції групування не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:480 msgid "aggregate functions are not allowed in check constraints" msgstr "агрегатні функції не можна застосовувати в перевірці обмежень" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:482 msgid "grouping operations are not allowed in check constraints" msgstr "операції групування не можна застосовувати в перевірці обмежень" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:489 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "агрегатні функції не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:487 +#: parser/parse_agg.c:491 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "операції групування не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:496 msgid "aggregate functions are not allowed in index expressions" msgstr "агрегатні функції не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:494 +#: parser/parse_agg.c:498 msgid "grouping operations are not allowed in index expressions" msgstr "операції групування не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:503 msgid "aggregate functions are not allowed in index predicates" msgstr "агрегатні функції не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:501 +#: parser/parse_agg.c:505 msgid "grouping operations are not allowed in index predicates" msgstr "операції групування не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:510 msgid "aggregate functions are not allowed in statistics expressions" msgstr "агрегатні функції не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:508 +#: parser/parse_agg.c:512 msgid "grouping operations are not allowed in statistics expressions" msgstr "операції групування не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:517 msgid "aggregate functions are not allowed in transform expressions" msgstr "агрегатні функції не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:515 +#: parser/parse_agg.c:519 msgid "grouping operations are not allowed in transform expressions" msgstr "операції групування не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:524 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "агрегатні функції не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:522 +#: parser/parse_agg.c:526 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "операції групування не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:531 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "агрегатні функції не можна застосовувати в умовах для тригерів WHEN" -#: parser/parse_agg.c:529 +#: parser/parse_agg.c:533 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "операції групування не можна застосовувати в умовах для тригерів WHEN" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:538 msgid "aggregate functions are not allowed in partition bound" msgstr "агрегатні функції не можна застосовувати в границі секції" -#: parser/parse_agg.c:536 +#: parser/parse_agg.c:540 msgid "grouping operations are not allowed in partition bound" msgstr "операції групування не можна застосовувати в границі секції" -#: parser/parse_agg.c:541 +#: parser/parse_agg.c:545 msgid "aggregate functions are not allowed in partition key expressions" msgstr "агрегатні функції не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:543 +#: parser/parse_agg.c:547 msgid "grouping operations are not allowed in partition key expressions" msgstr "операції групування не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:549 +#: parser/parse_agg.c:553 msgid "aggregate functions are not allowed in column generation expressions" msgstr "агрегатні функції не можна застосовувати у виразах генерації стовпців" -#: parser/parse_agg.c:551 +#: parser/parse_agg.c:555 msgid "grouping operations are not allowed in column generation expressions" msgstr "операції групування не можна застосовувати у виразах генерації стовпців" -#: parser/parse_agg.c:557 +#: parser/parse_agg.c:561 msgid "aggregate functions are not allowed in CALL arguments" msgstr "агрегатні функції не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:559 +#: parser/parse_agg.c:563 msgid "grouping operations are not allowed in CALL arguments" msgstr "операції групування не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:565 +#: parser/parse_agg.c:569 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "агрегатні функції не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:567 +#: parser/parse_agg.c:571 msgid "grouping operations are not allowed in COPY FROM WHERE conditions" msgstr "операції групування не можна застосовувати в умовах COPY FROM WHERE" #. translator: %s is name of a SQL construct, eg GROUP BY -#: parser/parse_agg.c:594 parser/parse_clause.c:1836 +#: parser/parse_agg.c:598 parser/parse_clause.c:1836 #, 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:597 +#: parser/parse_agg.c:601 #, c-format msgid "grouping operations are not allowed in %s" msgstr "операції групування не можна застосовувати в %s" -#: parser/parse_agg.c:698 +#: parser/parse_agg.c:697 parser/parse_agg.c:734 +#, c-format +msgid "outer-level aggregate cannot use a nested CTE" +msgstr "агрегатна функція зовнішнього рівня не може використовувати вкладений CTE" + +#: parser/parse_agg.c:698 parser/parse_agg.c:735 +#, c-format +msgid "CTE \"%s\" is below the aggregate's semantic level." +msgstr "CTE \"%s\" знаходиться нижче семантичного рівня агрегату." + +#: parser/parse_agg.c:720 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "агрегат зовнішнього рівня не може містити змінну нижчого рівня у своїх аргументах" -#: parser/parse_agg.c:776 +#: parser/parse_agg.c:805 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "виклики агрегатної функції не можуть містити викликів функції, що повертають множину" -#: parser/parse_agg.c:777 parser/parse_expr.c:1674 parser/parse_expr.c:2164 +#: parser/parse_agg.c:806 parser/parse_expr.c:1674 parser/parse_expr.c:2164 #: parser/parse_func.c:883 #, 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:782 +#: parser/parse_agg.c:811 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "виклики агрегатних функцій не можуть містити виклики віконних функцій" -#: parser/parse_agg.c:861 +#: parser/parse_agg.c:914 msgid "window functions are not allowed in JOIN conditions" msgstr "віконні функції не можна застосовувати в умовах JOIN" -#: parser/parse_agg.c:868 +#: parser/parse_agg.c:921 msgid "window functions are not allowed in functions in FROM" msgstr "віконні функції не можна застосовувати у функціях в FROM" -#: parser/parse_agg.c:874 +#: parser/parse_agg.c:927 msgid "window functions are not allowed in policy expressions" msgstr "віконні функції не можна застосовувати у виразах політики" -#: parser/parse_agg.c:887 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in window definitions" msgstr "віконні функції не можна застосовувати у визначенні вікна" -#: parser/parse_agg.c:898 +#: parser/parse_agg.c:951 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "віконні функції не можна застосовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:922 +#: parser/parse_agg.c:975 msgid "window functions are not allowed in check constraints" msgstr "віконні функції не можна застосовувати в перевірках обмежень" -#: parser/parse_agg.c:926 +#: parser/parse_agg.c:979 msgid "window functions are not allowed in DEFAULT expressions" msgstr "віконні функції не можна застосовувати у виразах DEFAULT" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:982 msgid "window functions are not allowed in index expressions" msgstr "віконні функції не можна застосовувати у виразах індексів" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:985 msgid "window functions are not allowed in statistics expressions" msgstr "віконні функції не можна застосовувати у виразах статистики" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:988 msgid "window functions are not allowed in index predicates" msgstr "віконні функції не можна застосовувати в предикатах індексів" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:991 msgid "window functions are not allowed in transform expressions" msgstr "віконні функції не можна застосовувати у виразах перетворювання" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:994 msgid "window functions are not allowed in EXECUTE parameters" msgstr "віконні функції не можна застосовувати в параметрах EXECUTE" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:997 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "віконні функції не можна застосовувати в умовах WHEN для тригерів" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:1000 msgid "window functions are not allowed in partition bound" msgstr "віконні функції не можна застосовувати в границі секції" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:1003 msgid "window functions are not allowed in partition key expressions" msgstr "віконні функції не можна застосовувати у виразах ключа секціонування" -#: parser/parse_agg.c:953 +#: parser/parse_agg.c:1006 msgid "window functions are not allowed in CALL arguments" msgstr "віконні функції не можна застосовувати в аргументах CALL" -#: parser/parse_agg.c:956 +#: parser/parse_agg.c:1009 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "віконні функції не можна застосовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:959 +#: parser/parse_agg.c:1012 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:982 parser/parse_clause.c:1845 +#: parser/parse_agg.c:1035 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "віконні функції не можна застосовувати в %s" -#: parser/parse_agg.c:1016 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1069 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "вікно \"%s\" не існує" -#: parser/parse_agg.c:1100 +#: parser/parse_agg.c:1153 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "забагато наборів групування (максимум 4096)" -#: parser/parse_agg.c:1240 +#: parser/parse_agg.c:1293 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "агрегатні функції не дозволені у рекурсивному терміні рекурсивного запиту" -#: parser/parse_agg.c:1433 +#: parser/parse_agg.c:1486 #, c-format msgid "column \"%s.%s\" must appear in the GROUP BY clause or be used in an aggregate function" msgstr "стовпець \"%s.%s\" повинен з'являтися у реченні Група BY або використовуватися в агрегатній функції" -#: parser/parse_agg.c:1436 +#: parser/parse_agg.c:1489 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "Прямі аргументи сортувального агрегату можуть використовувати лише згруповані стовпці." -#: parser/parse_agg.c:1441 +#: parser/parse_agg.c:1494 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "вкладений запит використовує не згруповані стовпці \"%s.%s\" з зовнішнього запиту" -#: parser/parse_agg.c:1605 +#: parser/parse_agg.c:1658 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "аргументами групування мають бути вирази групування пов'язаного рівня запиту" @@ -16711,152 +16750,152 @@ msgstr "рекурсивне посилання на запит \"%s\" не по msgid "recursive reference to query \"%s\" must not appear within EXCEPT" msgstr "рекурсивне посилання на запит \"%s\" не повинне з'являтись в EXCEPT" -#: parser/parse_cte.c:133 +#: parser/parse_cte.c:134 #, c-format msgid "MERGE not supported in WITH query" msgstr "MERGE не підтримується в запиті WITH" -#: parser/parse_cte.c:143 +#: parser/parse_cte.c:144 #, c-format msgid "WITH query name \"%s\" specified more than once" msgstr "Ім’я запиту WITH \"%s\" вказано неодноразово" -#: parser/parse_cte.c:314 +#: parser/parse_cte.c:315 #, c-format msgid "could not identify an inequality operator for type %s" msgstr "не вдалося визначити оператора нерівності для типу %s" -#: parser/parse_cte.c:341 +#: parser/parse_cte.c:342 #, c-format msgid "WITH clause containing a data-modifying statement must be at the top level" msgstr "Речення WITH, яке містить оператор, що змінює дані, повинне бути на верхньому рівні" -#: parser/parse_cte.c:390 +#: parser/parse_cte.c:391 #, c-format msgid "recursive query \"%s\" column %d has type %s in non-recursive term but type %s overall" msgstr "у рекурсивному запиті \"%s\" стовпець %d має тип %s у нерекурсивній частині, але загалом тип %s" -#: parser/parse_cte.c:396 +#: parser/parse_cte.c:397 #, c-format msgid "Cast the output of the non-recursive term to the correct type." msgstr "Приведіть результат нерекурсивної частини до правильного типу." -#: parser/parse_cte.c:401 +#: parser/parse_cte.c:402 #, c-format msgid "recursive query \"%s\" column %d has collation \"%s\" in non-recursive term but collation \"%s\" overall" msgstr "у рекурсивному запиті \"%s\" стовпець %d має параметри сортування \"%s\" у нерекурсивній частині, але загалом параметри сортування \"%s\"" -#: parser/parse_cte.c:405 +#: parser/parse_cte.c:406 #, c-format msgid "Use the COLLATE clause to set the collation of the non-recursive term." msgstr "Використайте речення COLLATE, щоб встановити параметри сортування в нерекурсивній частині." -#: parser/parse_cte.c:426 +#: parser/parse_cte.c:427 #, c-format msgid "WITH query is not recursive" msgstr "Запит WITH не є рекурсивним" -#: parser/parse_cte.c:457 +#: parser/parse_cte.c:458 #, c-format msgid "with a SEARCH or CYCLE clause, the left side of the UNION must be a SELECT" msgstr "з реченням з SEARCH або CYCLE, ліва сторона UNION повинна бути SELECT" -#: parser/parse_cte.c:462 +#: parser/parse_cte.c:463 #, c-format msgid "with a SEARCH or CYCLE clause, the right side of the UNION must be a SELECT" msgstr "з реченням з SEARCH або CYCLE, права сторона UNION повинна бути SELECT" -#: parser/parse_cte.c:477 +#: parser/parse_cte.c:478 #, c-format msgid "search column \"%s\" not in WITH query column list" msgstr "пошуковий стовпець \"%s\" відсутній в списку стовпців запиту WITH" -#: parser/parse_cte.c:484 +#: parser/parse_cte.c:485 #, c-format msgid "search column \"%s\" specified more than once" msgstr "пошуковий стовпець \"%s\" вказано більше одного разу" -#: parser/parse_cte.c:493 +#: parser/parse_cte.c:494 #, c-format msgid "search sequence column name \"%s\" already used in WITH query column list" msgstr "назва послідовності пошуку \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:510 +#: parser/parse_cte.c:511 #, c-format msgid "cycle column \"%s\" not in WITH query column list" msgstr "стовпець циклу \"%s\" відсутній в списку стовпців запиту WITH" -#: parser/parse_cte.c:517 +#: parser/parse_cte.c:518 #, c-format msgid "cycle column \"%s\" specified more than once" msgstr "стовпець циклу \"%s\" вказано більше одного разу" -#: parser/parse_cte.c:526 +#: parser/parse_cte.c:527 #, c-format msgid "cycle mark column name \"%s\" already used in WITH query column list" msgstr "назва стовпця позначки циклу \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:533 +#: parser/parse_cte.c:534 #, c-format msgid "cycle path column name \"%s\" already used in WITH query column list" msgstr "назва стовпця циклу шляху \"%s\" вже використовується у списку стовпців запиту WITH" -#: parser/parse_cte.c:541 +#: parser/parse_cte.c:542 #, c-format msgid "cycle mark column name and cycle path column name are the same" msgstr "назва стовпця позначки циклу і назва стовпця циклу шляху однакові" -#: parser/parse_cte.c:551 +#: parser/parse_cte.c:552 #, c-format msgid "search sequence column name and cycle mark column name are the same" msgstr "назва стовпця послідовності пошуку і назва стовпця позначки циклу однакові" -#: parser/parse_cte.c:558 +#: parser/parse_cte.c:559 #, c-format msgid "search sequence column name and cycle path column name are the same" msgstr "назва стовпця послідовності пошуку і назва стовпця циклу шляху однакові" -#: parser/parse_cte.c:642 +#: parser/parse_cte.c:643 #, c-format msgid "WITH query \"%s\" has %d columns available but %d columns specified" msgstr "Запит WITH \"%s\" має %d доступних стовпців, але %d стовпців вказано" -#: parser/parse_cte.c:822 +#: parser/parse_cte.c:888 #, c-format msgid "mutual recursion between WITH items is not implemented" msgstr "взаємна рекурсія між елементами WITH не реалізована" -#: parser/parse_cte.c:874 +#: parser/parse_cte.c:940 #, c-format msgid "recursive query \"%s\" must not contain data-modifying statements" msgstr "рекурсивний запит \"%s\" не повинен містити оператори, які змінюють дані" -#: parser/parse_cte.c:882 +#: parser/parse_cte.c:948 #, c-format msgid "recursive query \"%s\" does not have the form non-recursive-term UNION [ALL] recursive-term" msgstr "рекурсивний запит \"%s\" не має форми (нерекурсивна частина) UNION [ALL] (рекурсивна частина)" -#: parser/parse_cte.c:917 +#: parser/parse_cte.c:983 #, c-format msgid "ORDER BY in a recursive query is not implemented" msgstr "ORDER BY в рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:923 +#: parser/parse_cte.c:989 #, c-format msgid "OFFSET in a recursive query is not implemented" msgstr "OFFSET у рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:929 +#: parser/parse_cte.c:995 #, c-format msgid "LIMIT in a recursive query is not implemented" msgstr "LIMIT у рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:935 +#: parser/parse_cte.c:1001 #, c-format msgid "FOR UPDATE/SHARE in a recursive query is not implemented" msgstr "FOR UPDATE/SHARE в рекурсивному запиті не реалізовано" -#: parser/parse_cte.c:1014 +#: parser/parse_cte.c:1080 #, c-format msgid "recursive reference to query \"%s\" must not appear more than once" msgstr "рекурсивне посилання на запит \"%s\" не повинне з'являтись неодноразово" @@ -18198,7 +18237,7 @@ msgid "column %d of the partition key has type \"%s\", but supplied value is of msgstr "стовпець %d ключа секціонування має тип \"%s\", але для нього вказано значення типу \"%s\"" #: port/pg_sema.c:209 port/pg_shmem.c:695 port/posix_sema.c:209 -#: port/sysv_sema.c:327 port/sysv_shmem.c:695 +#: port/sysv_sema.c:347 port/sysv_shmem.c:695 #, c-format msgid "could not stat data directory \"%s\": %m" msgstr "не вдалося встановити дані каталогу \"%s\": %m" @@ -18264,24 +18303,24 @@ msgstr "раніше виділений блок спільної пам'яті msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Припинити будь-які старі серверні процеси, пов'язані з каталогом даних \"%s\"." -#: port/sysv_sema.c:124 +#: port/sysv_sema.c:139 #, c-format msgid "could not create semaphores: %m" msgstr "не вдалося створити семафори: %m" -#: port/sysv_sema.c:125 +#: port/sysv_sema.c:140 #, c-format msgid "Failed system call was semget(%lu, %d, 0%o)." msgstr "Помилка системного виклику semget(%lu, %d, 0%o)." -#: port/sysv_sema.c:129 +#: port/sysv_sema.c:144 #, c-format msgid "This error does *not* mean that you have run out of disk space. It occurs when either the system limit for the maximum number of semaphore sets (SEMMNI), or the system wide maximum number of semaphores (SEMMNS), would be exceeded. You need to raise the respective kernel parameter. Alternatively, reduce PostgreSQL's consumption of semaphores by reducing its max_connections parameter.\n" "The PostgreSQL documentation contains more information about configuring your system for PostgreSQL." msgstr "Ця помилка НЕ означає, що на диску немає місця. Ймовірніше за все перевищено ліміт числа встановлених семафорів (SEMMNI), або загального числа семафорів (SEMMNS) в системі. Вам потрібно збільшити відповідний параметр ядра. Інший спосіб - зменшити споживання PostgreSQL в семафорах, зменшивши параметр max_connections.\n" "Більше інформації про налаштування вашої системи для PostgreSQL міститься в інструкції PostgreSQL." -#: port/sysv_sema.c:159 +#: port/sysv_sema.c:174 #, c-format msgid "You possibly need to raise your kernel's SEMVMX value to be at least %d. Look into the PostgreSQL documentation for details." msgstr "Можливо, вам потрібно збілшити значення SEMVMX вашого ядра, мінімум до %d. Детальніше про це написано в інструкції PostgreSQL." @@ -18421,32 +18460,32 @@ msgstr "старт процеса автовакуума зайняв забаг msgid "could not fork autovacuum worker process: %m" msgstr "не вдалося породити робочий процес автоочитски: %m" -#: postmaster/autovacuum.c:2298 +#: postmaster/autovacuum.c:2313 #, c-format msgid "autovacuum: dropping orphan temp table \"%s.%s.%s\"" msgstr "автоочистка: видалення застарілої тимчасової таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2523 +#: postmaster/autovacuum.c:2545 #, c-format msgid "automatic vacuum of table \"%s.%s.%s\"" msgstr "автоматична очистка таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2526 +#: postmaster/autovacuum.c:2548 #, c-format msgid "automatic analyze of table \"%s.%s.%s\"" msgstr "автоматичний аналіз таблиці \"%s.%s.%s\"" -#: postmaster/autovacuum.c:2719 +#: postmaster/autovacuum.c:2746 #, c-format msgid "processing work entry for relation \"%s.%s.%s\"" msgstr "обробка робочого введення для відношення \"%s.%s.%s\"" -#: postmaster/autovacuum.c:3330 +#: postmaster/autovacuum.c:3366 #, c-format msgid "autovacuum not started because of misconfiguration" msgstr "автоочистку не запущено через неправильну конфігурацію" -#: postmaster/autovacuum.c:3331 +#: postmaster/autovacuum.c:3367 #, c-format msgid "Enable the \"track_counts\" option." msgstr "Активувати параметр \"track_counts\"." @@ -18510,7 +18549,7 @@ msgstr[3] "Максимальне можливе число фонових пр msgid "Consider increasing the configuration parameter \"max_worker_processes\"." msgstr "Можливо, слід збільшити параметр конфігурації \"max_worker_processes\"." -#: postmaster/checkpointer.c:432 +#: postmaster/checkpointer.c:435 #, c-format msgid "checkpoints are occurring too frequently (%d second apart)" msgid_plural "checkpoints are occurring too frequently (%d seconds apart)" @@ -18519,17 +18558,17 @@ msgstr[1] "контрольні точки відбуваються занадт msgstr[2] "контрольні точки відбуваються занадто часто (через %d сек.)" msgstr[3] "контрольні точки відбуваються занадто часто (через %d сек.)" -#: postmaster/checkpointer.c:436 +#: postmaster/checkpointer.c:439 #, c-format msgid "Consider increasing the configuration parameter \"max_wal_size\"." msgstr "Можливо, слід збільшити параметр конфігурації \"max_wal_size\"." -#: postmaster/checkpointer.c:1060 +#: postmaster/checkpointer.c:1066 #, c-format msgid "checkpoint request failed" msgstr "збій при запиті контрольної точки" -#: postmaster/checkpointer.c:1061 +#: postmaster/checkpointer.c:1067 #, c-format msgid "Consult recent messages in the server log for details." msgstr "Для деталей, зверніться до останніх повідомлень в протоколі серверу." @@ -18604,97 +18643,97 @@ msgstr "Потокове передавання WAL (max_wal_senders > 0) вим msgid "%s: invalid datetoken tables, please fix\n" msgstr "%s: неприпустимі таблиці маркерів часу, будь-ласка виправіть\n" -#: postmaster/postmaster.c:1113 +#: postmaster/postmaster.c:1115 #, c-format msgid "could not create I/O completion port for child queue" msgstr "не вдалося створити завершений порт вводу-виводу для черги дітей" -#: postmaster/postmaster.c:1189 +#: postmaster/postmaster.c:1191 #, c-format msgid "ending log output to stderr" msgstr "завершення запису виводу Stderr" -#: postmaster/postmaster.c:1190 +#: postmaster/postmaster.c:1192 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "В майбутньому запис виведення буде записуватися в призначення \"%s\"." -#: postmaster/postmaster.c:1201 +#: postmaster/postmaster.c:1203 #, c-format msgid "starting %s" msgstr "початок %s" -#: postmaster/postmaster.c:1253 +#: postmaster/postmaster.c:1255 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "не вдалося створити сокет прослуховування для \"%s\"" -#: postmaster/postmaster.c:1259 +#: postmaster/postmaster.c:1261 #, c-format msgid "could not create any TCP/IP sockets" msgstr "не вдалося створити TCP/IP сокети" -#: postmaster/postmaster.c:1291 +#: postmaster/postmaster.c:1293 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "Помилка DNSServiceRegister(): код помилки %ld" -#: postmaster/postmaster.c:1343 +#: postmaster/postmaster.c:1345 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "не вдалося створити Unix-domain сокет в каталозі \"%s\"" -#: postmaster/postmaster.c:1349 +#: postmaster/postmaster.c:1351 #, c-format msgid "could not create any Unix-domain sockets" msgstr "не вдалося створити Unix-domain сокети" -#: postmaster/postmaster.c:1361 +#: postmaster/postmaster.c:1363 #, c-format msgid "no socket created for listening" msgstr "не створено жодного сокету для прослуховування" -#: postmaster/postmaster.c:1392 +#: postmaster/postmaster.c:1394 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %s\n" msgstr "%s: не вдалося змінити дозволи зовнішнього PID файлу \"%s\": %s\n" -#: postmaster/postmaster.c:1396 +#: postmaster/postmaster.c:1398 #, c-format msgid "%s: could not write external PID file \"%s\": %s\n" msgstr "%s: не вдалося записати зовнішній PID файл \"%s\": %s\n" -#: postmaster/postmaster.c:1423 utils/init/postinit.c:220 +#: postmaster/postmaster.c:1425 utils/init/postinit.c:220 #, c-format msgid "could not load pg_hba.conf" msgstr "не вдалося завантажити pg_hba.conf" -#: postmaster/postmaster.c:1451 +#: postmaster/postmaster.c:1453 #, c-format msgid "postmaster became multithreaded during startup" msgstr "адміністратор поштового сервера став багатопотоковим під час запуску" -#: postmaster/postmaster.c:1452 postmaster/postmaster.c:5112 +#: postmaster/postmaster.c:1454 postmaster/postmaster.c:5114 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Встановити в змінній середовища LC_ALL дійісну локаль." -#: postmaster/postmaster.c:1553 +#: postmaster/postmaster.c:1555 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: не вдалося знайти свій власний шлях для виконання" -#: postmaster/postmaster.c:1560 +#: postmaster/postmaster.c:1562 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: не вдалося знайти відповідний postgres файл, що виконується" -#: postmaster/postmaster.c:1583 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1585 utils/misc/tzparser.c:340 #, 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:1610 +#: postmaster/postmaster.c:1612 #, c-format msgid "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" @@ -18703,477 +18742,477 @@ msgstr "%s: не вдалося знайти систему бази даних\ "Очікувалося знайти її у каталозі \"%s\",\n" "але не вдалося відкрити файл \"%s\": %s\n" -#: postmaster/postmaster.c:1787 +#: postmaster/postmaster.c:1789 #, c-format msgid "select() failed in postmaster: %m" msgstr "помилка вибирати() в адміністраторі поштового сервера: %m" -#: postmaster/postmaster.c:1918 +#: postmaster/postmaster.c:1920 #, c-format msgid "issuing SIGKILL to recalcitrant children" msgstr "надсилання SIGKILL непокірливим дітям" -#: postmaster/postmaster.c:1939 +#: postmaster/postmaster.c:1941 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "виконується негайне припинення роботи через неприпустимий файл блокування каталогу даних" -#: postmaster/postmaster.c:2042 postmaster/postmaster.c:2070 +#: postmaster/postmaster.c:2044 postmaster/postmaster.c:2072 #, c-format msgid "incomplete startup packet" msgstr "неповний стартовий пакет" -#: postmaster/postmaster.c:2054 postmaster/postmaster.c:2087 +#: postmaster/postmaster.c:2056 postmaster/postmaster.c:2089 #, c-format msgid "invalid length of startup packet" msgstr "неприпустима довжина стартового пакету" -#: postmaster/postmaster.c:2116 +#: postmaster/postmaster.c:2118 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "помилка надсилання протоколу SSL в процесі відповіді зв'язування: %m" -#: postmaster/postmaster.c:2134 +#: postmaster/postmaster.c:2136 #, c-format msgid "received unencrypted data after SSL request" msgstr "отримані незашифровані дані після запиту SSL" -#: postmaster/postmaster.c:2135 postmaster/postmaster.c:2179 +#: postmaster/postmaster.c:2137 postmaster/postmaster.c:2181 #, c-format msgid "This could be either a client-software bug or evidence of an attempted man-in-the-middle attack." msgstr "Це може бути або помилкою клієнтського програмного забезпечення, або доказом спроби техносферної атаки." -#: postmaster/postmaster.c:2160 +#: postmaster/postmaster.c:2162 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "помилка надсилання GSSAPI в процесі відповіді зв'язування: %m" -#: postmaster/postmaster.c:2178 +#: postmaster/postmaster.c:2180 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "отримані незашифровані дані після запиту шифрування GSSAPI" -#: postmaster/postmaster.c:2202 +#: postmaster/postmaster.c:2204 #, 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:2266 utils/misc/guc.c:7412 utils/misc/guc.c:7448 -#: utils/misc/guc.c:7518 utils/misc/guc.c:9003 utils/misc/guc.c:12039 -#: utils/misc/guc.c:12080 +#: postmaster/postmaster.c:2268 utils/misc/guc.c:7412 utils/misc/guc.c:7448 +#: utils/misc/guc.c:7518 utils/misc/guc.c:9003 utils/misc/guc.c:12045 +#: utils/misc/guc.c:12086 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "неприпустиме значення параметру \"%s\": \"%s\"" -#: postmaster/postmaster.c:2269 +#: postmaster/postmaster.c:2271 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "Дійсні значення: \"false\", 0, \"true\", 1, \"database\"." -#: postmaster/postmaster.c:2314 +#: postmaster/postmaster.c:2316 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "неприпустима структура стартового пакету: останнім байтом очікувався термінатор" -#: postmaster/postmaster.c:2331 +#: postmaster/postmaster.c:2333 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "не вказано жодного ім'я користувача PostgreSQL у стартовому пакеті" -#: postmaster/postmaster.c:2395 +#: postmaster/postmaster.c:2397 #, c-format msgid "the database system is starting up" msgstr "система бази даних запускається" -#: postmaster/postmaster.c:2401 +#: postmaster/postmaster.c:2403 #, c-format msgid "the database system is not yet accepting connections" msgstr "система бази даних ще не приймає підключення" -#: postmaster/postmaster.c:2402 +#: postmaster/postmaster.c:2404 #, c-format msgid "Consistent recovery state has not been yet reached." msgstr "Узгодженого стану відновлення ще не досягнуто." -#: postmaster/postmaster.c:2406 +#: postmaster/postmaster.c:2408 #, c-format msgid "the database system is not accepting connections" msgstr "система бази даних не приймає підключення" -#: postmaster/postmaster.c:2407 +#: postmaster/postmaster.c:2409 #, c-format msgid "Hot standby mode is disabled." msgstr "Режим Hot standby вимкнений." -#: postmaster/postmaster.c:2412 +#: postmaster/postmaster.c:2414 #, c-format msgid "the database system is shutting down" msgstr "система бази даних завершує роботу" -#: postmaster/postmaster.c:2417 +#: postmaster/postmaster.c:2419 #, c-format msgid "the database system is in recovery mode" msgstr "система бази даних у режимі відновлення" -#: postmaster/postmaster.c:2422 storage/ipc/procarray.c:493 +#: postmaster/postmaster.c:2424 storage/ipc/procarray.c:493 #: storage/ipc/sinvaladt.c:306 storage/lmgr/proc.c:359 #, c-format msgid "sorry, too many clients already" msgstr "вибачте, вже забагато клієнтів" -#: postmaster/postmaster.c:2509 +#: postmaster/postmaster.c:2511 #, c-format msgid "wrong key in cancel request for process %d" msgstr "неправильний ключ в запиті скасування процесу %d" -#: postmaster/postmaster.c:2521 +#: postmaster/postmaster.c:2523 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d в запиті на скасування не відповідає жодному процесу" -#: postmaster/postmaster.c:2774 +#: postmaster/postmaster.c:2776 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "отримано SIGHUP, поновлення файлів конфігурацій" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2798 postmaster/postmaster.c:2802 +#: postmaster/postmaster.c:2800 postmaster/postmaster.c:2804 #, c-format msgid "%s was not reloaded" msgstr "%s не було перезавантажено" -#: postmaster/postmaster.c:2812 +#: postmaster/postmaster.c:2814 #, c-format msgid "SSL configuration was not reloaded" msgstr "Конфігурація протоколу SSL не була перезавантажена" -#: postmaster/postmaster.c:2868 +#: postmaster/postmaster.c:2870 #, c-format msgid "received smart shutdown request" msgstr "отримано smart запит на завершення роботи" -#: postmaster/postmaster.c:2909 +#: postmaster/postmaster.c:2911 #, c-format msgid "received fast shutdown request" msgstr "отримано швидкий запит на завершення роботи" -#: postmaster/postmaster.c:2927 +#: postmaster/postmaster.c:2929 #, c-format msgid "aborting any active transactions" msgstr "переривання будь-яких активних транзакцій" -#: postmaster/postmaster.c:2951 +#: postmaster/postmaster.c:2953 #, c-format msgid "received immediate shutdown request" msgstr "отримано запит на негайне завершення роботи" -#: postmaster/postmaster.c:3028 +#: postmaster/postmaster.c:3030 #, c-format msgid "shutdown at recovery target" msgstr "завершення роботи при відновленні мети" -#: postmaster/postmaster.c:3046 postmaster/postmaster.c:3082 +#: postmaster/postmaster.c:3048 postmaster/postmaster.c:3084 msgid "startup process" msgstr "стартовий процес" -#: postmaster/postmaster.c:3049 +#: postmaster/postmaster.c:3051 #, c-format msgid "aborting startup due to startup process failure" msgstr "переривання запуску через помилку в стартовому процесі" -#: postmaster/postmaster.c:3122 +#: postmaster/postmaster.c:3124 #, c-format msgid "database system is ready to accept connections" msgstr "система бази даних готова до отримання підключення" -#: postmaster/postmaster.c:3143 +#: postmaster/postmaster.c:3145 msgid "background writer process" msgstr "процес фонового запису" -#: postmaster/postmaster.c:3190 +#: postmaster/postmaster.c:3192 msgid "checkpointer process" msgstr "процес контрольних точок" -#: postmaster/postmaster.c:3206 +#: postmaster/postmaster.c:3208 msgid "WAL writer process" msgstr "Процес запису WAL" -#: postmaster/postmaster.c:3221 +#: postmaster/postmaster.c:3223 msgid "WAL receiver process" msgstr "Процес отримання WAL" -#: postmaster/postmaster.c:3236 +#: postmaster/postmaster.c:3238 msgid "autovacuum launcher process" msgstr "процес запуску автоочистки" -#: postmaster/postmaster.c:3254 +#: postmaster/postmaster.c:3256 msgid "archiver process" msgstr "процес архівації" -#: postmaster/postmaster.c:3267 +#: postmaster/postmaster.c:3269 msgid "system logger process" msgstr "процес системного журналювання" -#: postmaster/postmaster.c:3331 +#: postmaster/postmaster.c:3333 #, c-format msgid "background worker \"%s\"" msgstr "фоновий виконавець \"%s\"" -#: postmaster/postmaster.c:3410 postmaster/postmaster.c:3430 -#: postmaster/postmaster.c:3437 postmaster/postmaster.c:3455 +#: postmaster/postmaster.c:3412 postmaster/postmaster.c:3432 +#: postmaster/postmaster.c:3439 postmaster/postmaster.c:3457 msgid "server process" msgstr "процес сервера" -#: postmaster/postmaster.c:3509 +#: postmaster/postmaster.c:3511 #, 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:3746 +#: postmaster/postmaster.c:3748 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) завершився з кодом виходу %d" -#: postmaster/postmaster.c:3748 postmaster/postmaster.c:3760 -#: postmaster/postmaster.c:3770 postmaster/postmaster.c:3781 +#: postmaster/postmaster.c:3750 postmaster/postmaster.c:3762 +#: postmaster/postmaster.c:3772 postmaster/postmaster.c:3783 #, 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:3757 +#: postmaster/postmaster.c:3759 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) був перерваний винятком 0x%X" -#: postmaster/postmaster.c:3759 postmaster/shell_archive.c:134 +#: postmaster/postmaster.c:3761 postmaster/shell_archive.c:134 #, c-format msgid "See C include file \"ntstatus.h\" for a description of the hexadecimal value." msgstr "Опис цього Шістнадцяткового значення дивіться у включаємому C-файлі \"ntstatus.h\"." #. translator: %s is a noun phrase describing a child process, such as #. "server process" -#: postmaster/postmaster.c:3767 +#: postmaster/postmaster.c:3769 #, 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:3779 +#: postmaster/postmaster.c:3781 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) завершився з нерозпізнаним статусом %d" -#: postmaster/postmaster.c:3979 +#: postmaster/postmaster.c:3981 #, c-format msgid "abnormal database system shutdown" msgstr "ненормальне завершення роботи системи бази даних" -#: postmaster/postmaster.c:4005 +#: postmaster/postmaster.c:4007 #, c-format msgid "shutting down due to startup process failure" msgstr "завершення роботи через помилку в стартовому процесі" -#: postmaster/postmaster.c:4011 +#: postmaster/postmaster.c:4013 #, c-format msgid "shutting down because restart_after_crash is off" msgstr "завершення роботи, тому що restart_after_crash вимкнено" -#: postmaster/postmaster.c:4023 +#: postmaster/postmaster.c:4025 #, c-format msgid "all server processes terminated; reinitializing" msgstr "усі серверні процеси перервано; повторна ініціалізація" -#: postmaster/postmaster.c:4195 postmaster/postmaster.c:5524 -#: postmaster/postmaster.c:5922 +#: postmaster/postmaster.c:4197 postmaster/postmaster.c:5526 +#: postmaster/postmaster.c:5924 #, c-format msgid "could not generate random cancel key" msgstr "не вдалося згенерувати випадковий ключ скасування" -#: postmaster/postmaster.c:4257 +#: postmaster/postmaster.c:4259 #, c-format msgid "could not fork new process for connection: %m" msgstr "не вдалося породити нові процеси для з'єднання: %m" -#: postmaster/postmaster.c:4299 +#: postmaster/postmaster.c:4301 msgid "could not fork new process for connection: " msgstr "не вдалося породити нові процеси для з'єднання: " -#: postmaster/postmaster.c:4405 +#: postmaster/postmaster.c:4407 #, c-format msgid "connection received: host=%s port=%s" msgstr "з'єднання отримано: хост=%s порт=%s" -#: postmaster/postmaster.c:4410 +#: postmaster/postmaster.c:4412 #, c-format msgid "connection received: host=%s" msgstr "з'єднання отримано: хост=%s" -#: postmaster/postmaster.c:4647 +#: postmaster/postmaster.c:4649 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "не вдалося виконати серверні процеси \"%s\":%m" -#: postmaster/postmaster.c:4705 +#: postmaster/postmaster.c:4707 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "не вдалося створити відображення файлу параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4714 +#: postmaster/postmaster.c:4716 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "не вдалося відобразити пам'ять параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4741 +#: postmaster/postmaster.c:4743 #, c-format msgid "subprocess command line too long" msgstr "командний рядок підпроцесу занадто довгий" -#: postmaster/postmaster.c:4759 +#: postmaster/postmaster.c:4761 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "помилка виклику CreateProcess(): %m (код помилки %lu)" -#: postmaster/postmaster.c:4786 +#: postmaster/postmaster.c:4788 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "не вдалося вимкнути відображення файлу параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4790 +#: postmaster/postmaster.c:4792 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "не вдалося закрити покажчик файлу параметру внутрішнього сервера: код помилки %lu" -#: postmaster/postmaster.c:4812 +#: postmaster/postmaster.c:4814 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "кількість повторних спроб резервування спільної пам'яті досягло межі" -#: postmaster/postmaster.c:4813 +#: postmaster/postmaster.c:4815 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Це може бути викликано антивірусним програмним забезпеченням або ASLR." -#: postmaster/postmaster.c:4986 +#: postmaster/postmaster.c:4988 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "Не вдалося завантажити конфігурацію SSL в дочірній процес" -#: postmaster/postmaster.c:5111 +#: postmaster/postmaster.c:5113 #, c-format msgid "postmaster became multithreaded" msgstr "postmaster став багатопотоковим" -#: postmaster/postmaster.c:5184 +#: postmaster/postmaster.c:5186 #, c-format msgid "database system is ready to accept read-only connections" msgstr "система бази даних готова до отримання підключення лише для читання" -#: postmaster/postmaster.c:5448 +#: postmaster/postmaster.c:5450 #, c-format msgid "could not fork startup process: %m" msgstr "не вдалося породити стартовий процес: %m" -#: postmaster/postmaster.c:5452 +#: postmaster/postmaster.c:5454 #, c-format msgid "could not fork archiver process: %m" msgstr "не вдалося породити процес архіватора: %m" -#: postmaster/postmaster.c:5456 +#: postmaster/postmaster.c:5458 #, c-format msgid "could not fork background writer process: %m" msgstr "не вдалося породити фоновий процес запису: %m" -#: postmaster/postmaster.c:5460 +#: postmaster/postmaster.c:5462 #, c-format msgid "could not fork checkpointer process: %m" msgstr "не вдалося породити процес контрольних точок: %m" -#: postmaster/postmaster.c:5464 +#: postmaster/postmaster.c:5466 #, c-format msgid "could not fork WAL writer process: %m" msgstr "не вдалося породити процес запису WAL: %m" -#: postmaster/postmaster.c:5468 +#: postmaster/postmaster.c:5470 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "не вдалося породити процес отримання WAL: %m" -#: postmaster/postmaster.c:5472 +#: postmaster/postmaster.c:5474 #, c-format msgid "could not fork process: %m" msgstr "не вдалося породити процес: %m" -#: postmaster/postmaster.c:5673 postmaster/postmaster.c:5700 +#: postmaster/postmaster.c:5675 postmaster/postmaster.c:5702 #, c-format msgid "database connection requirement not indicated during registration" msgstr "під час реєстрації не вказувалося, що вимагається підключення до бази даних" -#: postmaster/postmaster.c:5684 postmaster/postmaster.c:5711 +#: postmaster/postmaster.c:5686 postmaster/postmaster.c:5713 #, c-format msgid "invalid processing mode in background worker" msgstr "неприпустимий режим обробки у фоновому записі" -#: postmaster/postmaster.c:5796 +#: postmaster/postmaster.c:5798 #, c-format msgid "could not fork worker process: %m" msgstr "не вдалося породити процес запису: %m" -#: postmaster/postmaster.c:5908 +#: postmaster/postmaster.c:5910 #, c-format msgid "no slot available for new worker process" msgstr "немає доступного слоту для нового робочого процесу" -#: postmaster/postmaster.c:6239 +#: postmaster/postmaster.c:6241 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "не вдалося продублювати сокет %d для використання: код помилки %d" -#: postmaster/postmaster.c:6271 +#: postmaster/postmaster.c:6273 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "не вдалося створити успадкований сокет: код помилки %d\n" -#: postmaster/postmaster.c:6300 +#: postmaster/postmaster.c:6302 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "не вдалося відкрити внутрішні змінні файли \"%s\": %s\n" -#: postmaster/postmaster.c:6307 +#: postmaster/postmaster.c:6309 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "не вдалося прочитати внутрішні змінні файли \"%s\": %s\n" -#: postmaster/postmaster.c:6316 +#: postmaster/postmaster.c:6318 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "не вдалося видалити файл \"%s\": %s\n" -#: postmaster/postmaster.c:6333 +#: postmaster/postmaster.c:6335 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "не вдалося відобразити файл серверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6342 +#: postmaster/postmaster.c:6344 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "не вдалося вимкнути відображення файлу серверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6349 +#: postmaster/postmaster.c:6351 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "не вдалося закрити покажчик файлу серверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6508 +#: postmaster/postmaster.c:6510 #, c-format msgid "could not read exit code for process\n" msgstr "не вдалося прочитати код завершення процесу\n" -#: postmaster/postmaster.c:6550 +#: postmaster/postmaster.c:6552 #, c-format msgid "could not post child completion status\n" msgstr "не вдалося надіслати статус завершення нащадка\n" @@ -19323,7 +19362,7 @@ msgid "error reading result of streaming command: %s" msgstr "помилка при читанні результату команди потокового передавання: %s" #: replication/libpqwalreceiver/libpqwalreceiver.c:587 -#: replication/libpqwalreceiver/libpqwalreceiver.c:825 +#: replication/libpqwalreceiver/libpqwalreceiver.c:822 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неочікуваний результат CommandComplete: %s" @@ -19338,43 +19377,43 @@ msgstr "не вдалося отримати файл історії часов msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "Очікувалося 1 кортеж з 2 поле, отримано %d кортежів з %d полями." -#: replication/libpqwalreceiver/libpqwalreceiver.c:788 -#: replication/libpqwalreceiver/libpqwalreceiver.c:841 -#: replication/libpqwalreceiver/libpqwalreceiver.c:848 +#: replication/libpqwalreceiver/libpqwalreceiver.c:785 +#: replication/libpqwalreceiver/libpqwalreceiver.c:838 +#: replication/libpqwalreceiver/libpqwalreceiver.c:845 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не вдалося отримати дані з WAL потоку: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:868 +#: replication/libpqwalreceiver/libpqwalreceiver.c:865 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не вдалося передати дані потоку WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:960 +#: replication/libpqwalreceiver/libpqwalreceiver.c:957 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не вдалося створити слот реплікації \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1006 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 #, c-format msgid "invalid query response" msgstr "неприпустима відповідь на запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1007 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1004 #, c-format msgid "Expected %d fields, got %d fields." msgstr "Очікувалося %d полів, отримано %d полі." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1077 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1074 #, c-format msgid "the query interface requires a database connection" msgstr "інтерфейс запитів вимагає підключення до бази даних" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1108 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1105 msgid "empty query" msgstr "пустий запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1114 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1111 msgid "unexpected pipeline mode" msgstr "неочікуваний режим конвеєра" @@ -19428,12 +19467,12 @@ msgstr "логічне декодування вимагає підключен msgid "logical decoding cannot be used while in recovery" msgstr "логічне декодування неможливо використовувати під час відновлення" -#: replication/logical/logical.c:351 replication/logical/logical.c:505 +#: replication/logical/logical.c:351 replication/logical/logical.c:507 #, c-format msgid "cannot use physical replication slot for logical decoding" msgstr "неможливо використовувати слот невідповідної реплікації для логічного кодування" -#: replication/logical/logical.c:356 replication/logical/logical.c:510 +#: replication/logical/logical.c:356 replication/logical/logical.c:512 #, c-format msgid "replication slot \"%s\" was not created in this database" msgstr "слот реплікації \"%s\" був створений не в цій базі даних" @@ -19443,40 +19482,40 @@ msgstr "слот реплікації \"%s\" був створений не в msgid "cannot create logical replication slot in transaction that has performed writes" msgstr "неможливо створити слот логічної реплікації у транзакції, що виконує записування" -#: replication/logical/logical.c:573 +#: replication/logical/logical.c:575 #, c-format msgid "starting logical decoding for slot \"%s\"" msgstr "початок логічного декодування для слоту \"%s\"" -#: replication/logical/logical.c:575 +#: replication/logical/logical.c:577 #, c-format msgid "Streaming transactions committing after %X/%X, reading WAL from %X/%X." msgstr "Потокове передавання транзакцій, що затверджені, після %X/%X, читання WAL з %X/%X." -#: replication/logical/logical.c:723 +#: replication/logical/logical.c:725 #, 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:729 +#: replication/logical/logical.c:731 #, c-format msgid "slot \"%s\", output plugin \"%s\", in the %s callback" msgstr "слот \"%s\", плагін виходу \"%s\", у зворотньому виклику %s" -#: replication/logical/logical.c:900 replication/logical/logical.c:945 -#: replication/logical/logical.c:990 replication/logical/logical.c:1036 +#: replication/logical/logical.c:902 replication/logical/logical.c:947 +#: replication/logical/logical.c:992 replication/logical/logical.c:1038 #, c-format msgid "logical replication at prepare time requires a %s callback" msgstr "логічна реплікація під час підготовки потребує %s зворотнього виклику" -#: replication/logical/logical.c:1268 replication/logical/logical.c:1317 -#: replication/logical/logical.c:1358 replication/logical/logical.c:1444 -#: replication/logical/logical.c:1493 +#: replication/logical/logical.c:1270 replication/logical/logical.c:1319 +#: replication/logical/logical.c:1360 replication/logical/logical.c:1446 +#: replication/logical/logical.c:1495 #, c-format msgid "logical streaming requires a %s callback" msgstr "логічне потокове передавання потребує %s зворотнього виклику" -#: replication/logical/logical.c:1403 +#: replication/logical/logical.c:1405 #, c-format msgid "logical streaming at prepare time requires a %s callback" msgstr "логічне потокове передавання під час підготовки потребує %s зворотнього виклику" @@ -19583,7 +19622,7 @@ msgid "could not find free replication state slot for replication origin with ID msgstr "не вдалося знайти вільний слот стану реплікації для джерела реплікації з ID %d" #: replication/logical/origin.c:941 replication/logical/origin.c:1131 -#: replication/slot.c:1947 +#: replication/slot.c:2012 #, c-format msgid "Increase max_replication_slots and try again." msgstr "Збільшіть max_replication_slots і спробуйте знову." @@ -19638,29 +19677,29 @@ msgstr "в цільовому відношенні логічної реплік msgid "logical replication target relation \"%s.%s\" does not exist" msgstr "цільове відношення логічної реплікації \"%s.%s\" не існує" -#: replication/logical/reorderbuffer.c:3846 +#: replication/logical/reorderbuffer.c:3977 #, c-format msgid "could not write to data file for XID %u: %m" msgstr "не вдалося записати у файл даних для XID %u: %m" -#: replication/logical/reorderbuffer.c:4192 -#: replication/logical/reorderbuffer.c:4217 +#: replication/logical/reorderbuffer.c:4323 +#: replication/logical/reorderbuffer.c:4348 #, c-format msgid "could not read from reorderbuffer spill file: %m" msgstr "не вдалося прочитати з файлу розгортання буферу пересортування: %m" -#: replication/logical/reorderbuffer.c:4196 -#: replication/logical/reorderbuffer.c:4221 +#: replication/logical/reorderbuffer.c:4327 +#: replication/logical/reorderbuffer.c:4352 #, c-format msgid "could not read from reorderbuffer spill file: read %d instead of %u bytes" msgstr "не вдалося прочитати з файлу розгортання буферу пересортування: прочитано %d замість %u байт" -#: replication/logical/reorderbuffer.c:4471 +#: replication/logical/reorderbuffer.c:4602 #, c-format msgid "could not remove file \"%s\" during removal of pg_replslot/%s/xid*: %m" msgstr "не вдалося видалити файл \"%s\" під час видалення pg_replslot/%s/xid*: %m" -#: replication/logical/reorderbuffer.c:4970 +#: replication/logical/reorderbuffer.c:5101 #, c-format msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "не вдалося прочитати з файлу \"%s\": прочитано %d замість %d байт" @@ -19679,58 +19718,58 @@ msgstr[1] "експортовано знімок логічного декоду msgstr[2] "експортовано знімок логічного декодування \"%s\" з %u ID транзакціями" msgstr[3] "експортовано знімок логічного декодування \"%s\" з %u ID транзакціями" -#: replication/logical/snapbuild.c:1383 replication/logical/snapbuild.c:1495 -#: replication/logical/snapbuild.c:2024 +#: replication/logical/snapbuild.c:1430 replication/logical/snapbuild.c:1542 +#: replication/logical/snapbuild.c:2075 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "узгодження процесу логічного кодування знайдено в точці %X/%X" -#: replication/logical/snapbuild.c:1385 +#: replication/logical/snapbuild.c:1432 #, c-format msgid "There are no running transactions." msgstr "Більше активних транзакцій немає." -#: replication/logical/snapbuild.c:1446 +#: replication/logical/snapbuild.c:1493 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "початкова стартова точка процесу логічного декодування знайдена в точці %X/%X" -#: replication/logical/snapbuild.c:1448 replication/logical/snapbuild.c:1472 +#: replication/logical/snapbuild.c:1495 replication/logical/snapbuild.c:1519 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "Очікування транзакцій (приблизно %d) старіше, ніж %u до кінця." -#: replication/logical/snapbuild.c:1470 +#: replication/logical/snapbuild.c:1517 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "початкова точка узгодження процесу логічного кодування знайдена в точці %X/%X" -#: replication/logical/snapbuild.c:1497 +#: replication/logical/snapbuild.c:1544 #, c-format msgid "There are no old transactions anymore." msgstr "Більше старих транзакцій немає." -#: replication/logical/snapbuild.c:1892 +#: replication/logical/snapbuild.c:1939 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл стану snapbuild \"%s\" має неправильне магічне число: %u замість %u" -#: replication/logical/snapbuild.c:1898 +#: replication/logical/snapbuild.c:1945 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "файл стану snapbuild \"%s\" має непідтримуючу версію: %u замість %u" -#: replication/logical/snapbuild.c:1969 +#: replication/logical/snapbuild.c:2016 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "у файлі стану snapbuild \"%s\" невідповідність контрольної суми: %u, повинно бути %u" -#: replication/logical/snapbuild.c:2026 +#: replication/logical/snapbuild.c:2077 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Логічне декодування почнеться зі збереженого знімку." -#: replication/logical/snapbuild.c:2098 +#: replication/logical/snapbuild.c:2149 #, c-format msgid "could not parse file name \"%s\"" msgstr "не вдалося аналізувати ім'я файлу \"%s\"" @@ -19740,52 +19779,47 @@ msgstr "не вдалося аналізувати ім'я файлу \"%s\"" msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has finished" msgstr "процес синхронізації таблиці при логічній реплікації для підписки \"%s\", таблиці \"%s\" закінчив обробку" -#: replication/logical/tablesync.c:429 +#: replication/logical/tablesync.c:430 #, c-format msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" буде перезавантажено, щоб можна було активувати two_phase" -#: replication/logical/tablesync.c:748 replication/logical/tablesync.c:889 +#: replication/logical/tablesync.c:769 replication/logical/tablesync.c:910 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про таблицю \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:755 +#: replication/logical/tablesync.c:776 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблиця \"%s.%s\" не знайдена на сервері публікації" -#: replication/logical/tablesync.c:812 +#: replication/logical/tablesync.c:833 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про список стовпців для таблиці \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:991 +#: replication/logical/tablesync.c:1012 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "не вдалося отримати інформацію про вираз WHERE для таблиці \"%s.%s\" з серверу публікації: %s" -#: replication/logical/tablesync.c:1136 +#: replication/logical/tablesync.c:1157 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "не вдалося почати копіювання початкового змісту таблиці \"%s.%s\": %s" -#: replication/logical/tablesync.c:1348 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1383 replication/logical/worker.c:1635 #, c-format msgid "user \"%s\" cannot replicate into relation with row-level security enabled: \"%s\"" msgstr "користувач \"%s\" не може реплікувати у відношення з увімкненим захистом на рівні рядків: \"%s\"" -#: replication/logical/tablesync.c:1363 +#: replication/logical/tablesync.c:1398 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "копії таблиці не вдалося запустити транзакцію на сервері публікації: %s" -#: replication/logical/tablesync.c:1405 -#, c-format -msgid "replication origin \"%s\" already exists" -msgstr "джерело реплікації \"%s\" вже існує" - -#: replication/logical/tablesync.c:1418 +#: replication/logical/tablesync.c:1437 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "копії таблиці не вдалося завершити транзакцію на сервері публікації: %s" @@ -19845,248 +19879,247 @@ msgstr "процес, що застосовує логічну реплікац msgid "could not read from streaming transaction's subxact file \"%s\": read only %zu of %zu bytes" msgstr "не вдалося прочитати з файлу subxact потокової транзакції \"%s\": прочитано лише %zu з %zu байтів" -#: replication/logical/worker.c:3645 +#: replication/logical/worker.c:3652 #, 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:3657 +#: replication/logical/worker.c:3664 #, 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:3675 +#: replication/logical/worker.c:3682 #, c-format msgid "logical replication table synchronization worker for subscription \"%s\", table \"%s\" has started" msgstr "просец синхронізації таблиці під час логічної реплікації для підписки \"%s\", таблиці \"%s\" запущений" -#: replication/logical/worker.c:3679 +#: replication/logical/worker.c:3686 #, c-format msgid "logical replication apply worker for subscription \"%s\" has started" msgstr "застосовуючий процес логічної реплікації для підписки \"%s\" запущений" -#: replication/logical/worker.c:3720 +#: replication/logical/worker.c:3727 #, c-format msgid "subscription has no replication slot set" msgstr "для підписки не встановлений слот реплікації" -#: replication/logical/worker.c:3856 +#: replication/logical/worker.c:3879 #, c-format msgid "subscription \"%s\" has been disabled because of an error" msgstr "підписка \"%s\" була відключена через помилку" -#: replication/logical/worker.c:3895 +#: replication/logical/worker.c:3918 #, c-format msgid "logical replication starts skipping transaction at LSN %X/%X" msgstr "логічна реплікація починає пропускати транзакцію в LSN %X/%X" -#: replication/logical/worker.c:3909 +#: replication/logical/worker.c:3932 #, c-format msgid "logical replication completed skipping transaction at LSN %X/%X" msgstr "логічна реплікація завершила пропускати транзакцію в LSN %X/%X" -#: replication/logical/worker.c:3991 +#: replication/logical/worker.c:4020 #, c-format msgid "skip-LSN of subscription \"%s\" cleared" msgstr "очищено LSN пропуску підписки \"%s\"" -#: replication/logical/worker.c:3992 +#: replication/logical/worker.c:4021 #, c-format msgid "Remote transaction's finish WAL location (LSN) %X/%X did not match skip-LSN %X/%X." msgstr "Кінцеве розташування WAL віддаленої транзакції (LSN) %X/%X не відповідає skip-LSN %X/%X." -#: replication/logical/worker.c:4018 +#: replication/logical/worker.c:4049 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\"" msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\"" -#: replication/logical/worker.c:4022 +#: replication/logical/worker.c:4053 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u" msgstr "обробка віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" у транзакції %u" -#: replication/logical/worker.c:4027 +#: replication/logical/worker.c:4058 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" in transaction %u, finished at %X/%X" msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" у транзакції %u завершено о %X/%X" -#: replication/logical/worker.c:4034 +#: replication/logical/worker.c:4065 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" in transaction %u, finished at %X/%X" msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" в транзакції %u завершено о %X/%X" -#: replication/logical/worker.c:4042 +#: replication/logical/worker.c:4073 #, c-format msgid "processing remote data for replication origin \"%s\" during message type \"%s\" for replication target relation \"%s.%s\" column \"%s\" in transaction %u, finished at %X/%X" msgstr "обробку віддалених даних для джерела реплікації \"%s\" під час повідомлення типу \"%s\" для цільового відношення реплікації \"%s.%s\" стовпчик \"%s\" у транзакції %u завершено о %X/%X" -#: replication/pgoutput/pgoutput.c:326 +#: replication/pgoutput/pgoutput.c:327 #, c-format msgid "invalid proto_version" msgstr "неприпустиме значення proto_version" -#: replication/pgoutput/pgoutput.c:331 +#: replication/pgoutput/pgoutput.c:332 #, c-format msgid "proto_version \"%s\" out of range" msgstr "значення proto_version \"%s\" за межами діапазону" -#: replication/pgoutput/pgoutput.c:348 +#: replication/pgoutput/pgoutput.c:349 #, c-format msgid "invalid publication_names syntax" msgstr "неприпустимий синтаксис publication_names" -#: replication/pgoutput/pgoutput.c:452 +#: replication/pgoutput/pgoutput.c:464 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or lower" msgstr "клієнт передав proto_version=%d, але ми підтримуємо лише протокол %d або нижче" -#: replication/pgoutput/pgoutput.c:458 +#: replication/pgoutput/pgoutput.c:470 #, c-format msgid "client sent proto_version=%d but we only support protocol %d or higher" msgstr "клієнт передав proto_version=%d, але ми підтримуємо лише протокол %d або вище" -#: replication/pgoutput/pgoutput.c:464 +#: replication/pgoutput/pgoutput.c:476 #, c-format msgid "publication_names parameter missing" msgstr "пропущено параметр publication_names" -#: replication/pgoutput/pgoutput.c:477 +#: replication/pgoutput/pgoutput.c:489 #, c-format msgid "requested proto_version=%d does not support streaming, need %d or higher" msgstr "запитувана proto_version=%d не підтримує потокову передачу, потребується %d або вища" -#: replication/pgoutput/pgoutput.c:482 +#: replication/pgoutput/pgoutput.c:494 #, c-format msgid "streaming requested, but not supported by output plugin" msgstr "запитане потокова передавача, але не підтримується плагіном виводу" -#: replication/pgoutput/pgoutput.c:499 +#: replication/pgoutput/pgoutput.c:511 #, c-format msgid "requested proto_version=%d does not support two-phase commit, need %d or higher" msgstr "запитувана proto_version=%d не підтримує двоетапне затвердження, потрібна %d або вища" -#: replication/pgoutput/pgoutput.c:504 +#: replication/pgoutput/pgoutput.c:516 #, c-format msgid "two-phase commit requested, but not supported by output plugin" msgstr "запитано двоетапне затвердження, але не підтримується плагіном виводу" -#: replication/slot.c:205 +#: replication/slot.c:237 #, c-format msgid "replication slot name \"%s\" is too short" msgstr "ім'я слоту реплікації \"%s\" занадто коротке" -#: replication/slot.c:214 +#: replication/slot.c:245 #, c-format msgid "replication slot name \"%s\" is too long" msgstr "ім'я слоту реплікації \"%s\" занадто довге" -#: replication/slot.c:227 +#: replication/slot.c:257 #, c-format msgid "replication slot name \"%s\" contains invalid character" msgstr "ім'я слоту реплікації \"%s\" містить неприпустимий символ" -#: replication/slot.c:229 -#, c-format +#: replication/slot.c:258 msgid "Replication slot names may only contain lower case letters, numbers, and the underscore character." msgstr "Імена слота реплікації можуть містити лише букви в нижньому кейсі, числа, і символ підкреслення." -#: replication/slot.c:283 +#: replication/slot.c:312 #, c-format msgid "replication slot \"%s\" already exists" msgstr "слот реплікації \"%s\" вже існує" -#: replication/slot.c:293 +#: replication/slot.c:322 #, c-format msgid "all replication slots are in use" msgstr "використовуються всі слоти реплікації" -#: replication/slot.c:294 +#: replication/slot.c:323 #, c-format msgid "Free one or increase max_replication_slots." msgstr "Звільніть непотрібні або збільшіть max_replication_slots." -#: replication/slot.c:472 replication/slotfuncs.c:727 +#: replication/slot.c:501 replication/slotfuncs.c:727 #: utils/activity/pgstat_replslot.c:55 utils/adt/genfile.c:704 #, c-format msgid "replication slot \"%s\" does not exist" msgstr "слот реплікації \"%s\" не існує" -#: replication/slot.c:518 replication/slot.c:1093 +#: replication/slot.c:547 replication/slot.c:1151 #, c-format msgid "replication slot \"%s\" is active for PID %d" msgstr "слот реплікації \"%s\" активний для PID %d" -#: replication/slot.c:754 replication/slot.c:1499 replication/slot.c:1882 +#: replication/slot.c:783 replication/slot.c:1557 replication/slot.c:1947 #, c-format msgid "could not remove directory \"%s\"" msgstr "не вдалося видалити каталог \"%s\"" -#: replication/slot.c:1128 +#: replication/slot.c:1186 #, c-format msgid "replication slots can only be used if max_replication_slots > 0" msgstr "слоти реплікації можна використовувати лише якщо max_replication_slots > 0" -#: replication/slot.c:1133 +#: replication/slot.c:1191 #, c-format msgid "replication slots can only be used if wal_level >= replica" msgstr "слоти реплікації можна використовувати лише якщо wal_level >= replica" -#: replication/slot.c:1145 +#: replication/slot.c:1203 #, c-format msgid "must be superuser or replication role to use replication slots" msgstr "має бути право суперкористувача або реплікації для використання реплікаційних слотів" -#: replication/slot.c:1330 +#: replication/slot.c:1388 #, c-format msgid "terminating process %d to release replication slot \"%s\"" msgstr "завершення процесу %d для звільнення слоту реплікації \"%s\"" -#: replication/slot.c:1368 +#: replication/slot.c:1426 #, c-format msgid "invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size" msgstr "припинення слоту \"%s\" тому, що його restart_lsn %X/%X перевищує max_slot_wal_keep_size" -#: replication/slot.c:1820 +#: replication/slot.c:1885 #, c-format msgid "replication slot file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл слоту реплікації \"%s\" має неправильне магічне число: %u замість %u" -#: replication/slot.c:1827 +#: replication/slot.c:1892 #, c-format msgid "replication slot file \"%s\" has unsupported version %u" msgstr "файл слоту реплікації \"%s\" має непідтримуючу версію %u" -#: replication/slot.c:1834 +#: replication/slot.c:1899 #, c-format msgid "replication slot file \"%s\" has corrupted length %u" msgstr "файл слоту реплікації \"%s\" має пошкоджену довжину %u" -#: replication/slot.c:1870 +#: replication/slot.c:1935 #, c-format msgid "checksum mismatch for replication slot file \"%s\": is %u, should be %u" msgstr "у файлі слоту реплікації \"%s\" невідповідність контрольної суми: %u, повинно бути %u" -#: replication/slot.c:1904 +#: replication/slot.c:1969 #, c-format msgid "logical replication slot \"%s\" exists, but wal_level < logical" msgstr "слот логічної реплікації \"%s\" існує, але wal_level < logical" -#: replication/slot.c:1906 +#: replication/slot.c:1971 #, c-format msgid "Change wal_level to be logical or higher." msgstr "Змініть wal_level на logical або вище." -#: replication/slot.c:1910 +#: replication/slot.c:1975 #, c-format msgid "physical replication slot \"%s\" exists, but wal_level < replica" msgstr "слот фізичної реплікації \"%s\" існує, але wal_level < replica" -#: replication/slot.c:1912 +#: replication/slot.c:1977 #, c-format msgid "Change wal_level to be replica or higher." msgstr "Змініть wal_level на replica або вище." -#: replication/slot.c:1946 +#: replication/slot.c:2011 #, c-format msgid "too many replication slots active before shutdown" msgstr "перед завершенням роботи активно занадто багато слотів реплікації" @@ -20141,37 +20174,37 @@ msgstr "не можна скопіювати незавершений слот msgid "Retry when the source replication slot's confirmed_flush_lsn is valid." msgstr "Повторіть, коли confirmed_flush_lsn слоту джерела реплікації є дійсним." -#: replication/syncrep.c:268 +#: replication/syncrep.c:311 #, c-format msgid "canceling the wait for synchronous replication and terminating connection due to administrator command" msgstr "скасування очікування синхронної реплікації і завершення з'єднання по команді адміністратора" -#: replication/syncrep.c:269 replication/syncrep.c:286 +#: replication/syncrep.c:312 replication/syncrep.c:329 #, c-format msgid "The transaction has already committed locally, but might not have been replicated to the standby." msgstr "Транзакція вже була затверджена локально, але можливо не була реплікована до режиму очікування." -#: replication/syncrep.c:285 +#: replication/syncrep.c:328 #, c-format msgid "canceling wait for synchronous replication due to user request" msgstr "скасування очікування синхронної реплікації по запиту користувача" -#: replication/syncrep.c:494 +#: replication/syncrep.c:537 #, c-format msgid "standby \"%s\" is now a synchronous standby with priority %u" msgstr "режим очікування \"%s\" зараз є синхронним з пріоритетом %u" -#: replication/syncrep.c:498 +#: replication/syncrep.c:541 #, c-format msgid "standby \"%s\" is now a candidate for quorum synchronous standby" msgstr "режим очікування \"%s\" зараз є кандидатом для включення в кворум синхронних" -#: replication/syncrep.c:1045 +#: replication/syncrep.c:1112 #, c-format msgid "synchronous_standby_names parser failed" msgstr "помилка при аналізуванні synchronous_standby_names" -#: replication/syncrep.c:1051 +#: replication/syncrep.c:1118 #, c-format msgid "number of synchronous standbys (%d) must be greater than zero" msgstr "кількість синхронних режимів очікування (%d) повинно бути більше нуля" @@ -20251,129 +20284,129 @@ msgstr "отримання файлу історії часової шкали msgid "could not write to log segment %s at offset %u, length %lu: %m" msgstr "не вдалося записати в сегмент журналу %s зсув %u, довжина %lu: %m" -#: replication/walsender.c:521 +#: replication/walsender.c:535 #, c-format msgid "cannot use %s with a logical replication slot" msgstr "використовувати %s зі слотом логічної реплікації не можна" -#: replication/walsender.c:638 storage/smgr/md.c:1379 +#: replication/walsender.c:652 storage/smgr/md.c:1379 #, c-format msgid "could not seek to end of file \"%s\": %m" msgstr "не вдалося досягти кінця файлу \"%s\": %m" -#: replication/walsender.c:642 +#: replication/walsender.c:656 #, c-format msgid "could not seek to beginning of file \"%s\": %m" msgstr "не вдалося знайти початок файлу \"%s\": %m" -#: replication/walsender.c:719 +#: replication/walsender.c:733 #, c-format msgid "cannot use a logical replication slot for physical replication" msgstr "використовувати логічний слот реплікації для фізичної реплікації, не можна" -#: replication/walsender.c:785 +#: replication/walsender.c:799 #, 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:788 +#: replication/walsender.c:802 #, c-format msgid "This server's history forked from timeline %u at %X/%X." msgstr "Історія цього серверу відгалузилась від часової шкали %u в позиції %X/%X." -#: replication/walsender.c:832 +#: replication/walsender.c:846 #, 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:1015 +#: replication/walsender.c:1029 #, c-format msgid "unrecognized value for CREATE_REPLICATION_SLOT option \"%s\": \"%s\"" msgstr "нерозпізнане значення для параметру CREATE_REPLICATION_SLOT \"%s\": \"%s\"" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1100 +#: replication/walsender.c:1114 #, c-format msgid "%s must not be called inside a transaction" msgstr "%s не має викликатися всередині транзакції" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1110 +#: replication/walsender.c:1124 #, c-format msgid "%s must be called inside a transaction" msgstr "%s має викликатися всередині транзакції" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1116 +#: replication/walsender.c:1130 #, c-format msgid "%s must be called in REPEATABLE READ isolation mode transaction" msgstr "%s повинен бути викликаний в режимі ізоляції REPEATABLE READ" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1122 +#: replication/walsender.c:1136 #, c-format msgid "%s must be called before any query" msgstr "%s має викликатися до будь-якого запиту" #. translator: %s is a CREATE_REPLICATION_SLOT statement -#: replication/walsender.c:1128 +#: replication/walsender.c:1142 #, c-format msgid "%s must not be called in a subtransaction" msgstr "%s не має викликатися всередині підтранзакції" -#: replication/walsender.c:1271 +#: replication/walsender.c:1285 #, c-format msgid "cannot read from logical replication slot \"%s\"" msgstr "не можна прочитати із слоту логічної реплікації \"%s\"" -#: replication/walsender.c:1273 +#: replication/walsender.c:1287 #, c-format msgid "This slot has been invalidated because it exceeded the maximum reserved size." msgstr "Цей слот визнано недійсним, тому що він перевищив максимально зарезервований розмір." -#: replication/walsender.c:1283 +#: replication/walsender.c:1297 #, c-format msgid "terminating walsender process after promotion" msgstr "завершення процесу walsender після підвищення" -#: replication/walsender.c:1704 +#: replication/walsender.c:1718 #, c-format msgid "cannot execute new commands while WAL sender is in stopping mode" msgstr "не можна виконувати нові команди, поки процес відправки WAL знаходиться в режимі зупинки" -#: replication/walsender.c:1739 +#: replication/walsender.c:1753 #, c-format msgid "cannot execute SQL commands in WAL sender for physical replication" msgstr "не можна виконувати команди SQL в процесі відправки WAL для фізичної реплікації" -#: replication/walsender.c:1772 +#: replication/walsender.c:1786 #, c-format msgid "received replication command: %s" msgstr "отримано команду реплікації: %s" -#: replication/walsender.c:1780 tcop/fastpath.c:208 tcop/postgres.c:1083 +#: replication/walsender.c:1794 tcop/fastpath.c:208 tcop/postgres.c:1083 #: tcop/postgres.c:1441 tcop/postgres.c:1693 tcop/postgres.c:2174 #: tcop/postgres.c:2607 tcop/postgres.c:2685 #, c-format msgid "current transaction is aborted, commands ignored until end of transaction block" msgstr "поточна транзакція перервана, команди до кінця блока транзакції пропускаються" -#: replication/walsender.c:1922 replication/walsender.c:1957 +#: replication/walsender.c:1936 replication/walsender.c:1971 #, c-format msgid "unexpected EOF on standby connection" msgstr "неочікуваний обрив з'єднання з резервним сервером" -#: replication/walsender.c:1945 +#: replication/walsender.c:1959 #, c-format msgid "invalid standby message type \"%c\"" msgstr "неприпустимий тип повідомлення резервного серверу \"%c\"" -#: replication/walsender.c:2034 +#: replication/walsender.c:2048 #, c-format msgid "unexpected message type \"%c\"" msgstr "неочікуваний тип повідомлення \"%c\"" -#: replication/walsender.c:2447 +#: replication/walsender.c:2465 #, c-format msgid "terminating walsender process due to replication timeout" msgstr "завершення процесу walsender через тайм-аут реплікації" @@ -20604,198 +20637,198 @@ msgstr "не допускається перейменування правил msgid "WITH query name \"%s\" appears in both a rule action and the query being rewritten" msgstr "Ім'я запиту WITH \"%s\" з'являється і в дії правила, і в переписаному запиті" -#: rewrite/rewriteHandler.c:610 +#: rewrite/rewriteHandler.c:613 #, c-format msgid "INSERT...SELECT rule actions are not supported for queries having data-modifying statements in WITH" msgstr "Дії правил INSERT...SELECT не підтримуються для запитів, які змінюють дані в операторах WITH" -#: rewrite/rewriteHandler.c:663 +#: rewrite/rewriteHandler.c:666 #, c-format msgid "cannot have RETURNING lists in multiple rules" msgstr "списки RETURNING може мати лише одне правило" -#: rewrite/rewriteHandler.c:895 rewrite/rewriteHandler.c:934 +#: rewrite/rewriteHandler.c:898 rewrite/rewriteHandler.c:937 #, c-format msgid "cannot insert a non-DEFAULT value into column \"%s\"" msgstr "вставити значення non-DEFAULT до стовпця \"%s\" не можна" -#: rewrite/rewriteHandler.c:897 rewrite/rewriteHandler.c:963 +#: rewrite/rewriteHandler.c:900 rewrite/rewriteHandler.c:966 #, c-format msgid "Column \"%s\" is an identity column defined as GENERATED ALWAYS." msgstr "Стовпець \"%s\" є ідентифікаційним стовпцем визначеним як GENERATED ALWAYS." -#: rewrite/rewriteHandler.c:899 +#: rewrite/rewriteHandler.c:902 #, c-format msgid "Use OVERRIDING SYSTEM VALUE to override." msgstr "Для зміни використайте OVERRIDING SYSTEM VALUE." -#: rewrite/rewriteHandler.c:961 rewrite/rewriteHandler.c:969 +#: rewrite/rewriteHandler.c:964 rewrite/rewriteHandler.c:972 #, c-format msgid "column \"%s\" can only be updated to DEFAULT" msgstr "стовпець \"%s\" може бути оновлено тільки до DEFAULT" -#: rewrite/rewriteHandler.c:1104 rewrite/rewriteHandler.c:1122 +#: rewrite/rewriteHandler.c:1107 rewrite/rewriteHandler.c:1125 #, c-format msgid "multiple assignments to same column \"%s\"" msgstr "кілька завдань для одного стовпця \"%s\"" -#: rewrite/rewriteHandler.c:1727 rewrite/rewriteHandler.c:3182 +#: rewrite/rewriteHandler.c:1730 rewrite/rewriteHandler.c:3185 #, c-format msgid "access to non-system view \"%s\" is restricted" msgstr "доступ до несистемного подання \"%s\" обмежено" -#: rewrite/rewriteHandler.c:2159 rewrite/rewriteHandler.c:4111 +#: rewrite/rewriteHandler.c:2162 rewrite/rewriteHandler.c:4131 #, c-format msgid "infinite recursion detected in rules for relation \"%s\"" msgstr "виявлена безкінечна рекурсія у правилах для відносин \"%s\"" -#: rewrite/rewriteHandler.c:2264 +#: rewrite/rewriteHandler.c:2267 #, c-format msgid "infinite recursion detected in policy for relation \"%s\"" msgstr "виявлена безкінечна рекурсія в політиці для зв'язка \"%s\"" -#: rewrite/rewriteHandler.c:2594 +#: rewrite/rewriteHandler.c:2597 msgid "Junk view columns are not updatable." msgstr "Утилізовані стовпці подань не оновлюються." -#: rewrite/rewriteHandler.c:2599 +#: rewrite/rewriteHandler.c:2602 msgid "View columns that are not columns of their base relation are not updatable." msgstr "Стовпці подання, які не є стовпцями базового зв'язку, не оновлюються." -#: rewrite/rewriteHandler.c:2602 +#: rewrite/rewriteHandler.c:2605 msgid "View columns that refer to system columns are not updatable." msgstr "Стовпці подання, які посилаються на системні стовпці, не оновлюються." -#: rewrite/rewriteHandler.c:2605 +#: rewrite/rewriteHandler.c:2608 msgid "View columns that return whole-row references are not updatable." msgstr "Стовпці подання, що повертають посилання на весь рядок, не оновлюються." -#: rewrite/rewriteHandler.c:2666 +#: rewrite/rewriteHandler.c:2669 msgid "Views containing DISTINCT are not automatically updatable." msgstr "Подання які містять DISTINCT не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2669 +#: rewrite/rewriteHandler.c:2672 msgid "Views containing GROUP BY are not automatically updatable." msgstr "Подання які містять GROUP BY не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2672 +#: rewrite/rewriteHandler.c:2675 msgid "Views containing HAVING are not automatically updatable." msgstr "Подання які містять HAVING не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2675 +#: rewrite/rewriteHandler.c:2678 msgid "Views containing UNION, INTERSECT, or EXCEPT are not automatically updatable." msgstr "Подання які містять UNION, INTERSECT, або EXCEPT не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2678 +#: rewrite/rewriteHandler.c:2681 msgid "Views containing WITH are not automatically updatable." msgstr "Подання які містять WITH не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2681 +#: rewrite/rewriteHandler.c:2684 msgid "Views containing LIMIT or OFFSET are not automatically updatable." msgstr "Подання які містять LIMIT або OFFSET не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2693 +#: rewrite/rewriteHandler.c:2696 msgid "Views that return aggregate functions are not automatically updatable." msgstr "Подання які повертають агрегатні функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2696 +#: rewrite/rewriteHandler.c:2699 msgid "Views that return window functions are not automatically updatable." msgstr "Подання які повертають віконні функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2699 +#: rewrite/rewriteHandler.c:2702 msgid "Views that return set-returning functions are not automatically updatable." msgstr "Подання які повертають set-returning функції не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2706 rewrite/rewriteHandler.c:2710 -#: rewrite/rewriteHandler.c:2718 +#: rewrite/rewriteHandler.c:2709 rewrite/rewriteHandler.c:2713 +#: rewrite/rewriteHandler.c:2721 msgid "Views that do not select from a single table or view are not automatically updatable." msgstr "Подання які обирають дані не з одної таблиці або подання не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2721 +#: rewrite/rewriteHandler.c:2724 msgid "Views containing TABLESAMPLE are not automatically updatable." msgstr "Подання які містять TABLESAMPLE не оновлюються автоматично." -#: rewrite/rewriteHandler.c:2745 +#: rewrite/rewriteHandler.c:2748 msgid "Views that have no updatable columns are not automatically updatable." msgstr "Подання які не мають оновлюваних стовпців не оновлюються автоматично." -#: rewrite/rewriteHandler.c:3242 +#: rewrite/rewriteHandler.c:3245 #, c-format msgid "cannot insert into column \"%s\" of view \"%s\"" msgstr "вставити дані в стовпець \"%s\" подання \"%s\" не можна" -#: rewrite/rewriteHandler.c:3250 +#: rewrite/rewriteHandler.c:3253 #, c-format msgid "cannot update column \"%s\" of view \"%s\"" msgstr "оновити дані в стовпці \"%s\" подання \"%s\" не можна" -#: rewrite/rewriteHandler.c:3738 +#: rewrite/rewriteHandler.c:3757 #, c-format msgid "DO INSTEAD NOTIFY rules are not supported for data-modifying statements in WITH" msgstr "Правила DO INSTEAD NOTIFY не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3749 +#: rewrite/rewriteHandler.c:3768 #, c-format msgid "DO INSTEAD NOTHING rules are not supported for data-modifying statements in WITH" msgstr "Правила DO INSTEAD NOTHING не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3763 +#: rewrite/rewriteHandler.c:3782 #, c-format msgid "conditional DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "умовні правила DO INSTEAD не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3767 +#: rewrite/rewriteHandler.c:3786 #, c-format msgid "DO ALSO rules are not supported for data-modifying statements in WITH" msgstr "Правила DO ALSO не підтримуються для операторів, які змінюють дані в WITH" -#: rewrite/rewriteHandler.c:3772 +#: rewrite/rewriteHandler.c:3791 #, c-format msgid "multi-statement DO INSTEAD rules are not supported for data-modifying statements in WITH" msgstr "складові правила DO INSTEAD не підтримуються операторами, які змінюють дані у WITH" -#: rewrite/rewriteHandler.c:4039 rewrite/rewriteHandler.c:4047 -#: rewrite/rewriteHandler.c:4055 +#: rewrite/rewriteHandler.c:4059 rewrite/rewriteHandler.c:4067 +#: rewrite/rewriteHandler.c:4075 #, c-format msgid "Views with conditional DO INSTEAD rules are not automatically updatable." msgstr "Подання з умовними правилами DO INSTEAD не оновлюються автоматично." -#: rewrite/rewriteHandler.c:4160 +#: rewrite/rewriteHandler.c:4181 #, c-format msgid "cannot perform INSERT RETURNING on relation \"%s\"" msgstr "виконати INSERT RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4162 +#: rewrite/rewriteHandler.c:4183 #, c-format msgid "You need an unconditional ON INSERT DO INSTEAD rule with a RETURNING clause." msgstr "Вам потрібне безумовне правило ON INSERT DO INSTEAD з реченням RETURNING." -#: rewrite/rewriteHandler.c:4167 +#: rewrite/rewriteHandler.c:4188 #, c-format msgid "cannot perform UPDATE RETURNING on relation \"%s\"" msgstr "виконати UPDATE RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4169 +#: rewrite/rewriteHandler.c:4190 #, c-format msgid "You need an unconditional ON UPDATE DO INSTEAD rule with a RETURNING clause." msgstr "Вам потрібне безумовне правило ON UPDATE DO INSTEAD з реченням RETURNING." -#: rewrite/rewriteHandler.c:4174 +#: rewrite/rewriteHandler.c:4195 #, c-format msgid "cannot perform DELETE RETURNING on relation \"%s\"" msgstr "виконати DELETE RETURNING для зв'язка \"%s\" не можна" -#: rewrite/rewriteHandler.c:4176 +#: rewrite/rewriteHandler.c:4197 #, c-format msgid "You need an unconditional ON DELETE DO INSTEAD rule with a RETURNING clause." msgstr "Вам потрібне безумовне правило ON DELETE DO INSTEAD з реченням RETURNING." -#: rewrite/rewriteHandler.c:4194 +#: rewrite/rewriteHandler.c:4215 #, c-format msgid "INSERT with ON CONFLICT clause cannot be used with table that has INSERT or UPDATE rules" msgstr "INSERT з реченням ON CONFLICT не можна використовувати з таблицею, яка має правила INSERT або UPDATE" -#: rewrite/rewriteHandler.c:4251 +#: rewrite/rewriteHandler.c:4272 #, c-format msgid "WITH cannot be used in a query that is rewritten by rules into multiple queries" msgstr "WITH не можна використовувати в запиті, який переписаний правилами в декілька запитів" @@ -20856,47 +20889,47 @@ msgstr "об'єкт статистики \"%s.%s\" не вдалося обчи msgid "function returning record called in context that cannot accept type record" msgstr "функція, що повертає набір, викликана у контексті, що не приймає тип запис" -#: storage/buffer/bufmgr.c:603 storage/buffer/bufmgr.c:773 +#: storage/buffer/bufmgr.c:610 storage/buffer/bufmgr.c:780 #, c-format msgid "cannot access temporary tables of other sessions" msgstr "доступ до тимчасових таблиць з інших сесій заблоковано" -#: storage/buffer/bufmgr.c:851 +#: storage/buffer/bufmgr.c:858 #, c-format msgid "cannot extend relation %s beyond %u blocks" msgstr "не можна розширити відношення %s понад %u блоків" -#: storage/buffer/bufmgr.c:938 +#: storage/buffer/bufmgr.c:945 #, c-format msgid "unexpected data beyond EOF in block %u of relation %s" msgstr "неочікуванні дані після EOF в блоці %u відношення %s" -#: storage/buffer/bufmgr.c:940 +#: storage/buffer/bufmgr.c:947 #, c-format msgid "This has been seen to occur with buggy kernels; consider updating your system." msgstr "Ця ситуація може виникати через помилки в ядрі; можливо, вам слід оновити вашу систему." -#: storage/buffer/bufmgr.c:1039 +#: storage/buffer/bufmgr.c:1046 #, c-format msgid "invalid page in block %u of relation %s; zeroing out page" msgstr "неприпустима сторінка в блоці %u відношення %s; сторінка обнуляється" -#: storage/buffer/bufmgr.c:4671 +#: storage/buffer/bufmgr.c:4737 #, c-format msgid "could not write block %u of %s" msgstr "неможливо записати блок %u файлу %s" -#: storage/buffer/bufmgr.c:4673 +#: storage/buffer/bufmgr.c:4739 #, c-format msgid "Multiple failures --- write error might be permanent." msgstr "Кілька неполадок --- можливо, постійна помилка запису." -#: storage/buffer/bufmgr.c:4694 storage/buffer/bufmgr.c:4713 +#: storage/buffer/bufmgr.c:4760 storage/buffer/bufmgr.c:4779 #, c-format msgid "writing block %u of relation %s" msgstr "записування блоку %u зв'язку %s" -#: storage/buffer/bufmgr.c:5017 +#: storage/buffer/bufmgr.c:5083 #, c-format msgid "snapshot too old" msgstr "знімок є застарим" @@ -20931,123 +20964,123 @@ msgstr "не вдалося видалити набір файлів \"%s\": %m" msgid "could not truncate file \"%s\": %m" msgstr "не вдалося скоротити файл \"%s\": %m" -#: storage/file/fd.c:522 storage/file/fd.c:594 storage/file/fd.c:630 +#: storage/file/fd.c:519 storage/file/fd.c:591 storage/file/fd.c:627 #, c-format msgid "could not flush dirty data: %m" msgstr "не вдалося очистити \"брудні\" дані: %m" -#: storage/file/fd.c:552 +#: storage/file/fd.c:549 #, c-format msgid "could not determine dirty data size: %m" msgstr "не вдалося визначити розмір \"брудних\" даних: %m" -#: storage/file/fd.c:604 +#: storage/file/fd.c:601 #, c-format msgid "could not munmap() while flushing data: %m" msgstr "не вдалося munmap() під час очищення даних: %m" -#: storage/file/fd.c:843 +#: storage/file/fd.c:840 #, c-format msgid "could not link file \"%s\" to \"%s\": %m" msgstr "для файлу \"%s\" не вдалося створити посилання \"%s\": %m" -#: storage/file/fd.c:967 +#: storage/file/fd.c:964 #, c-format msgid "getrlimit failed: %m" msgstr "помилка getrlimit: %m" -#: storage/file/fd.c:1057 +#: storage/file/fd.c:1054 #, c-format msgid "insufficient file descriptors available to start server process" msgstr "недостатньо доступних дескрипторів файлу для запуску серверного процесу" -#: storage/file/fd.c:1058 +#: storage/file/fd.c:1055 #, c-format msgid "System allows %d, we need at least %d." msgstr "Система дозволяє %d, потрібно щонайменше %d." -#: storage/file/fd.c:1153 storage/file/fd.c:2496 storage/file/fd.c:2606 -#: storage/file/fd.c:2757 +#: storage/file/fd.c:1150 storage/file/fd.c:2493 storage/file/fd.c:2603 +#: storage/file/fd.c:2754 #, c-format msgid "out of file descriptors: %m; release and retry" msgstr "нестача дескрипторів файлу: %m; вивільніть і спробуйте знову" -#: storage/file/fd.c:1527 +#: storage/file/fd.c:1524 #, c-format msgid "temporary file: path \"%s\", size %lu" msgstr "тимчасовий файл: шлях \"%s\", розмір %lu" -#: storage/file/fd.c:1658 +#: storage/file/fd.c:1655 #, c-format msgid "cannot create temporary directory \"%s\": %m" msgstr "неможливо створити тимчасовий каталог \"%s\": %m" -#: storage/file/fd.c:1665 +#: storage/file/fd.c:1662 #, c-format msgid "cannot create temporary subdirectory \"%s\": %m" msgstr "неможливо створити тимчасовий підкаталог \"%s\": %m" -#: storage/file/fd.c:1862 +#: storage/file/fd.c:1859 #, c-format msgid "could not create temporary file \"%s\": %m" msgstr "неможливо створити тимчасовий файл \"%s\": %m" -#: storage/file/fd.c:1898 +#: storage/file/fd.c:1895 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "неможливо відкрити тимчасовий файл \"%s\": %m" -#: storage/file/fd.c:1939 +#: storage/file/fd.c:1936 #, c-format msgid "could not unlink temporary file \"%s\": %m" msgstr "помилка видалення тимчасового файлу \"%s\": %m" -#: storage/file/fd.c:2027 +#: storage/file/fd.c:2024 #, c-format msgid "could not delete file \"%s\": %m" msgstr "не вдалося видалити файл \"%s\": %m" -#: storage/file/fd.c:2207 +#: storage/file/fd.c:2204 #, c-format msgid "temporary file size exceeds temp_file_limit (%dkB)" msgstr "розмір тимчасового файлу перевищує temp_file_limit (%d Кб)" -#: storage/file/fd.c:2472 storage/file/fd.c:2531 +#: storage/file/fd.c:2469 storage/file/fd.c:2528 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open file \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі відкрити файл \"%s\"" -#: storage/file/fd.c:2576 +#: storage/file/fd.c:2573 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to execute command \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі виконати команду \"%s\"" -#: storage/file/fd.c:2733 +#: storage/file/fd.c:2730 #, c-format msgid "exceeded maxAllocatedDescs (%d) while trying to open directory \"%s\"" msgstr "перевищено maxAllocatedDescs (%d) при спробі відкрити каталог \"%s\"" -#: storage/file/fd.c:3269 +#: storage/file/fd.c:3266 #, c-format msgid "unexpected file found in temporary-files directory: \"%s\"" msgstr "знайдено неочікуваний файл в каталозі тимчасових файлів: \"%s\"" -#: storage/file/fd.c:3387 +#: storage/file/fd.c:3384 #, c-format msgid "syncing data directory (syncfs), elapsed time: %ld.%02d s, current path: %s" msgstr "синхронізація каталогу даних (syncfs), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3401 +#: storage/file/fd.c:3398 #, c-format msgid "could not synchronize file system for file \"%s\": %m" msgstr "не вдалося синхронізувати файлову систему для файлу \"%s\": %m" -#: storage/file/fd.c:3614 +#: storage/file/fd.c:3611 #, c-format msgid "syncing data directory (pre-fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "Синхронізація каталогу даних (pre-fsync), витрачено часу: %ld.%02d с, поточний шлях: %s" -#: storage/file/fd.c:3646 +#: storage/file/fd.c:3643 #, c-format msgid "syncing data directory (fsync), elapsed time: %ld.%02d s, current path: %s" msgstr "синхронізація каталогу даних (fsync), витрачено часу: %ld.%02d с, поточний шлях: %s" @@ -21346,102 +21379,102 @@ msgstr "виявлено взаємне блокування" msgid "See server log for query details." msgstr "Подробиці запиту перегляньте в записі серверу." -#: storage/lmgr/lmgr.c:853 +#: storage/lmgr/lmgr.c:859 #, c-format msgid "while updating tuple (%u,%u) in relation \"%s\"" msgstr "при оновленні кортежу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:856 +#: storage/lmgr/lmgr.c:862 #, c-format msgid "while deleting tuple (%u,%u) in relation \"%s\"" msgstr "при видаленні кортежу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:859 +#: storage/lmgr/lmgr.c:865 #, c-format msgid "while locking tuple (%u,%u) in relation \"%s\"" msgstr "при блокуванні кортежу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:862 +#: storage/lmgr/lmgr.c:868 #, c-format msgid "while locking updated version (%u,%u) of tuple in relation \"%s\"" msgstr "при блокуванні оновленої версії (%u,%u) кортежу в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:865 +#: storage/lmgr/lmgr.c:871 #, c-format msgid "while inserting index tuple (%u,%u) in relation \"%s\"" msgstr "при вставці кортежу індексу (%u,%u) в зв'язку \"%s\"" -#: storage/lmgr/lmgr.c:868 +#: storage/lmgr/lmgr.c:874 #, c-format msgid "while checking uniqueness of tuple (%u,%u) in relation \"%s\"" msgstr "під час перевірки унікальності кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:871 +#: storage/lmgr/lmgr.c:877 #, c-format msgid "while rechecking updated tuple (%u,%u) in relation \"%s\"" msgstr "під час повторної перевірки оновленого кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:874 +#: storage/lmgr/lmgr.c:880 #, c-format msgid "while checking exclusion constraint on tuple (%u,%u) in relation \"%s\"" msgstr "під час перевірки обмеження-виключення для кортежа (%u,%u) у відношенні \"%s\"" -#: storage/lmgr/lmgr.c:1167 +#: storage/lmgr/lmgr.c:1173 #, c-format msgid "relation %u of database %u" msgstr "відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1173 +#: storage/lmgr/lmgr.c:1179 #, c-format msgid "extension of relation %u of database %u" msgstr "розширення відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1179 +#: storage/lmgr/lmgr.c:1185 #, c-format msgid "pg_database.datfrozenxid of database %u" msgstr "pg_database.datfrozenxid бази даних %u" -#: storage/lmgr/lmgr.c:1184 +#: storage/lmgr/lmgr.c:1190 #, c-format msgid "page %u of relation %u of database %u" msgstr "сторінка %u відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1191 +#: storage/lmgr/lmgr.c:1197 #, c-format msgid "tuple (%u,%u) of relation %u of database %u" msgstr "кортеж (%u,%u) відношення %u бази даних %u" -#: storage/lmgr/lmgr.c:1199 +#: storage/lmgr/lmgr.c:1205 #, c-format msgid "transaction %u" msgstr "транзакція %u" -#: storage/lmgr/lmgr.c:1204 +#: storage/lmgr/lmgr.c:1210 #, c-format msgid "virtual transaction %d/%u" msgstr "віртуальна транзакція %d/%u" -#: storage/lmgr/lmgr.c:1210 +#: storage/lmgr/lmgr.c:1216 #, c-format msgid "speculative token %u of transaction %u" msgstr "орієнтовний маркер %u транзакції %u" -#: storage/lmgr/lmgr.c:1216 +#: storage/lmgr/lmgr.c:1222 #, c-format msgid "object %u of class %u of database %u" msgstr "об’єкт %u класу %u бази даних %u" -#: storage/lmgr/lmgr.c:1224 +#: storage/lmgr/lmgr.c:1230 #, c-format msgid "user lock [%u,%u,%u]" msgstr "користувацьке блокування [%u,%u,%u]" -#: storage/lmgr/lmgr.c:1231 +#: storage/lmgr/lmgr.c:1237 #, c-format msgid "advisory lock [%u,%u,%u,%u]" msgstr "рекомендаційне блокування [%u,%u,%u,%u]" -#: storage/lmgr/lmgr.c:1239 +#: storage/lmgr/lmgr.c:1245 #, c-format msgid "unrecognized locktag type %d" msgstr "нерозпізнаний тип блокування %d" @@ -21984,12 +22017,12 @@ msgstr "відключення: час сеансу: %d:%02d:%02d.%03d кори msgid "bind message has %d result formats but query has %d columns" msgstr "повідомлення bind має %d форматів, але запит має %d стовпців" -#: tcop/pquery.c:942 tcop/pquery.c:1696 +#: tcop/pquery.c:942 tcop/pquery.c:1687 #, c-format msgid "cursor can only scan forward" msgstr "курсор може сканувати лише вперед" -#: tcop/pquery.c:943 tcop/pquery.c:1697 +#: tcop/pquery.c:943 tcop/pquery.c:1688 #, c-format msgid "Declare it with SCROLL option to enable backward scan." msgstr "Оголосити з параметром SCROLL, щоб активувати зворотню розгортку." @@ -22029,6 +22062,11 @@ msgstr "не можна виконати %s у фоновому процесі" msgid "must be superuser or have privileges of pg_checkpoint to do CHECKPOINT" msgstr "щоб виконати CHECKPOINT, потрібно бути суперкористувачем або мати права pg_checkpoint" +#: tcop/utility.c:1876 +#, c-format +msgid "CREATE STATISTICS only supports relation names in the FROM clause" +msgstr "CREATE STATISTICS підтримує тільки назви відношень в реченні FROM" + #: tsearch/dict_ispell.c:52 tsearch/dict_thesaurus.c:615 #, c-format msgid "multiple DictFile parameters" @@ -22181,7 +22219,7 @@ msgid "invalid regular expression: %s" msgstr "неприпустимий регулярний вираз: %s" #: tsearch/spell.c:984 tsearch/spell.c:1001 tsearch/spell.c:1018 -#: tsearch/spell.c:1035 tsearch/spell.c:1101 gram.y:17819 gram.y:17836 +#: tsearch/spell.c:1035 tsearch/spell.c:1101 gram.y:17826 gram.y:17843 #, c-format msgid "syntax error" msgstr "синтаксична помилка" @@ -22217,7 +22255,7 @@ msgstr "кількість псевдонімів перевищує вказа msgid "affix file contains both old-style and new-style commands" msgstr "файл affix містить команди і в старому, і в новому стилі" -#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:272 utils/adt/tsvector_op.c:1127 +#: tsearch/to_tsany.c:195 utils/adt/tsvector.c:269 utils/adt/tsvector_op.c:1127 #, c-format msgid "string is too long for tsvector (%d bytes, max %d bytes)" msgstr "рядок занадто довгий для tsvector (%d байт, максимум %d байт)" @@ -22289,37 +22327,37 @@ msgstr "Значення MaxFragments повинно бути >= 0" msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "не вдалося від'єднати файл постійної статистики \"%s\": %m" -#: utils/activity/pgstat.c:1232 +#: utils/activity/pgstat.c:1231 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "неприпустимий тип статистики: \"%s\"" -#: utils/activity/pgstat.c:1312 +#: utils/activity/pgstat.c:1311 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "не вдалося відкрити тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1426 +#: utils/activity/pgstat.c:1425 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "не вдалося записати в тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1435 +#: utils/activity/pgstat.c:1434 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "не вдалося закрити тимчасовий файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1443 +#: utils/activity/pgstat.c:1442 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "не вдалося перейменувати тимчасовий файл статистики з \"%s\" в \"%s\": %m" -#: utils/activity/pgstat.c:1492 +#: utils/activity/pgstat.c:1491 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "не вдалося відкрити файл статистики \"%s\": %m" -#: utils/activity/pgstat.c:1648 +#: utils/activity/pgstat.c:1657 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "пошкоджений файл статистики \"%s\"" @@ -22329,117 +22367,122 @@ msgstr "пошкоджений файл статистики \"%s\"" msgid "function call to dropped function" msgstr "виклик видаленої функції" +#: utils/activity/pgstat_shmem.c:504 +#, c-format +msgid "Failed while allocating entry %d/%u/%u." +msgstr "Не вдалося розмістити запис %d/%u/%u." + #: utils/activity/pgstat_xact.c:371 #, c-format msgid "resetting existing statistics for kind %s, db=%u, oid=%u" msgstr "скидання існуючої статистики для типу %s, db=%u, oid=%u" -#: utils/adt/acl.c:168 utils/adt/name.c:93 +#: utils/adt/acl.c:185 utils/adt/name.c:93 #, c-format msgid "identifier too long" msgstr "занадто довгий ідентифікатор" -#: utils/adt/acl.c:169 utils/adt/name.c:94 +#: utils/adt/acl.c:186 utils/adt/name.c:94 #, c-format msgid "Identifier must be less than %d characters." msgstr "Ідентифікатор повинен бути короче ніж %d символів." -#: utils/adt/acl.c:252 +#: utils/adt/acl.c:269 #, c-format msgid "unrecognized key word: \"%s\"" msgstr "нерозпізнане ключове слово: \"%s\"" -#: utils/adt/acl.c:253 +#: utils/adt/acl.c:270 #, c-format msgid "ACL key word must be \"group\" or \"user\"." msgstr "Ключовим словом ACL повинно бути \"group\" або \"user\"." -#: utils/adt/acl.c:258 +#: utils/adt/acl.c:275 #, c-format msgid "missing name" msgstr "пропущено ім'я" -#: utils/adt/acl.c:259 +#: utils/adt/acl.c:276 #, c-format msgid "A name must follow the \"group\" or \"user\" key word." msgstr "За ключовими словами \"group\" або \"user\" повинно йти ім'я." -#: utils/adt/acl.c:265 +#: utils/adt/acl.c:282 #, c-format msgid "missing \"=\" sign" msgstr "пропущено знак \"=\"" -#: utils/adt/acl.c:324 +#: utils/adt/acl.c:341 #, c-format msgid "invalid mode character: must be one of \"%s\"" msgstr "неприпустимий символ режиму: повинен бути один з \"%s\"" -#: utils/adt/acl.c:346 +#: utils/adt/acl.c:363 #, c-format msgid "a name must follow the \"/\" sign" msgstr "за знаком \"/\" повинно прямувати ім'я" -#: utils/adt/acl.c:354 +#: utils/adt/acl.c:371 #, c-format msgid "defaulting grantor to user ID %u" msgstr "призначив права користувач з ідентифікатором %u" -#: utils/adt/acl.c:540 +#: utils/adt/acl.c:557 #, c-format msgid "ACL array contains wrong data type" msgstr "Масив ACL містить неправильний тип даних" -#: utils/adt/acl.c:544 +#: utils/adt/acl.c:561 #, c-format msgid "ACL arrays must be one-dimensional" msgstr "Масиви ACL повинні бути одновимірними" -#: utils/adt/acl.c:548 +#: utils/adt/acl.c:565 #, c-format msgid "ACL arrays must not contain null values" msgstr "Масиви ACL не повинні містити значення null" -#: utils/adt/acl.c:572 +#: utils/adt/acl.c:589 #, c-format msgid "extra garbage at the end of the ACL specification" msgstr "зайве сміття в кінці специфікації ACL" -#: utils/adt/acl.c:1214 +#: utils/adt/acl.c:1231 #, c-format msgid "grant options cannot be granted back to your own grantor" msgstr "параметри призначення прав не можна повернути тому, хто призначив їх вам" -#: utils/adt/acl.c:1275 +#: utils/adt/acl.c:1292 #, c-format msgid "dependent privileges exist" msgstr "залежні права існують" -#: utils/adt/acl.c:1276 +#: utils/adt/acl.c:1293 #, c-format msgid "Use CASCADE to revoke them too." msgstr "Використайте CASCADE, щоб відкликати їх." -#: utils/adt/acl.c:1530 +#: utils/adt/acl.c:1547 #, c-format msgid "aclinsert is no longer supported" msgstr "aclinsert більше не підтримується" -#: utils/adt/acl.c:1540 +#: utils/adt/acl.c:1557 #, c-format msgid "aclremove is no longer supported" msgstr "aclremove більше не підтримується" -#: utils/adt/acl.c:1630 utils/adt/acl.c:1684 +#: utils/adt/acl.c:1647 utils/adt/acl.c:1701 #, c-format msgid "unrecognized privilege type: \"%s\"" msgstr "нерозпізнаний тип прав: \"%s\"" -#: utils/adt/acl.c:3469 utils/adt/regproc.c:101 utils/adt/regproc.c:277 +#: utils/adt/acl.c:3486 utils/adt/regproc.c:101 utils/adt/regproc.c:277 #, c-format msgid "function \"%s\" does not exist" msgstr "функція \"%s\" не існує" -#: utils/adt/acl.c:5008 +#: utils/adt/acl.c:5025 #, c-format msgid "must be member of role \"%s\"" msgstr "потрібно бути учасником ролі \"%s\"" @@ -22465,7 +22508,7 @@ msgstr "тип вхідних даних не є масивом" #: utils/adt/int.c:1024 utils/adt/int.c:1057 utils/adt/int.c:1071 #: utils/adt/int.c:1085 utils/adt/int.c:1116 utils/adt/int.c:1198 #: utils/adt/int.c:1262 utils/adt/int.c:1330 utils/adt/int.c:1336 -#: utils/adt/int8.c:1272 utils/adt/numeric.c:1845 utils/adt/numeric.c:4308 +#: utils/adt/int8.c:1272 utils/adt/numeric.c:1846 utils/adt/numeric.c:4309 #: utils/adt/varbit.c:1195 utils/adt/varbit.c:1596 utils/adt/varlena.c:1113 #: utils/adt/varlena.c:3391 #, c-format @@ -22810,8 +22853,8 @@ msgstr "перетворення кодування з %s в ASCII не підт #: utils/adt/int.c:185 utils/adt/jsonpath.c:182 utils/adt/mac.c:93 #: 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:99 -#: utils/adt/numeric.c:705 utils/adt/numeric.c:724 utils/adt/numeric.c:6897 -#: utils/adt/numeric.c:6921 utils/adt/numeric.c:6945 utils/adt/numeric.c:7947 +#: utils/adt/numeric.c:705 utils/adt/numeric.c:724 utils/adt/numeric.c:6898 +#: utils/adt/numeric.c:6922 utils/adt/numeric.c:6946 utils/adt/numeric.c:7948 #: utils/adt/numutils.c:158 utils/adt/numutils.c:234 utils/adt/numutils.c:318 #: 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:74 utils/adt/tid.c:76 utils/adt/tid.c:84 @@ -22832,9 +22875,9 @@ msgstr "гроші поза діапазоном" #: utils/adt/int.c:1100 utils/adt/int.c:1138 utils/adt/int.c:1166 #: utils/adt/int8.c:515 utils/adt/int8.c:573 utils/adt/int8.c:958 #: utils/adt/int8.c:1038 utils/adt/int8.c:1100 utils/adt/int8.c:1180 -#: utils/adt/numeric.c:3108 utils/adt/numeric.c:3131 utils/adt/numeric.c:3216 -#: utils/adt/numeric.c:3234 utils/adt/numeric.c:3330 utils/adt/numeric.c:8496 -#: utils/adt/numeric.c:8786 utils/adt/numeric.c:9111 utils/adt/numeric.c:10569 +#: utils/adt/numeric.c:3109 utils/adt/numeric.c:3132 utils/adt/numeric.c:3217 +#: utils/adt/numeric.c:3235 utils/adt/numeric.c:3331 utils/adt/numeric.c:8497 +#: utils/adt/numeric.c:8787 utils/adt/numeric.c:9112 utils/adt/numeric.c:10570 #: utils/adt/timestamp.c:3373 #, c-format msgid "division by zero" @@ -22882,7 +22925,7 @@ msgid "date out of range: \"%s\"" msgstr "дата поза діапазоном: \"%s\"" #: utils/adt/date.c:215 utils/adt/date.c:513 utils/adt/date.c:537 -#: utils/adt/xml.c:2258 +#: utils/adt/xml.c:2252 #, c-format msgid "date out of range" msgstr "дата поза діапазоном" @@ -22953,8 +22996,8 @@ msgstr "нерозпізнана одиниця \"%s\" для типу %s" #: utils/adt/timestamp.c:5597 utils/adt/timestamp.c:5684 #: utils/adt/timestamp.c:5725 utils/adt/timestamp.c:5729 #: utils/adt/timestamp.c:5798 utils/adt/timestamp.c:5802 -#: utils/adt/timestamp.c:5816 utils/adt/timestamp.c:5850 utils/adt/xml.c:2280 -#: utils/adt/xml.c:2287 utils/adt/xml.c:2307 utils/adt/xml.c:2314 +#: utils/adt/timestamp.c:5816 utils/adt/timestamp.c:5850 utils/adt/xml.c:2274 +#: utils/adt/xml.c:2281 utils/adt/xml.c:2301 utils/adt/xml.c:2308 #, c-format msgid "timestamp out of range" msgstr "позначка часу поза діапазоном" @@ -22971,7 +23014,7 @@ msgstr "значення поля типу time поза діапазоном: % #: utils/adt/date.c:2096 utils/adt/date.c:2630 utils/adt/float.c:1048 #: utils/adt/float.c:1124 utils/adt/int.c:634 utils/adt/int.c:681 -#: utils/adt/int.c:716 utils/adt/int8.c:414 utils/adt/numeric.c:2512 +#: utils/adt/int.c:716 utils/adt/int8.c:414 utils/adt/numeric.c:2513 #: utils/adt/timestamp.c:3444 utils/adt/timestamp.c:3475 #: utils/adt/timestamp.c:3506 #, c-format @@ -23154,34 +23197,34 @@ msgstr "\"%s\" поза діапазоном для типу double precision" #: utils/adt/float.c:1259 utils/adt/float.c:1333 utils/adt/int.c:354 #: utils/adt/int.c:892 utils/adt/int.c:914 utils/adt/int.c:928 #: utils/adt/int.c:942 utils/adt/int.c:974 utils/adt/int.c:1212 -#: utils/adt/int8.c:1293 utils/adt/numeric.c:4420 utils/adt/numeric.c:4425 +#: utils/adt/int8.c:1293 utils/adt/numeric.c:4421 utils/adt/numeric.c:4426 #, c-format msgid "smallint out of range" msgstr "двобайтове ціле поза діапазоном" -#: utils/adt/float.c:1459 utils/adt/numeric.c:3626 utils/adt/numeric.c:9525 +#: utils/adt/float.c:1459 utils/adt/numeric.c:3627 utils/adt/numeric.c:9526 #, c-format msgid "cannot take square root of a negative number" msgstr "вилучити квадратний корінь від'ємного числа не можна" -#: utils/adt/float.c:1527 utils/adt/numeric.c:3901 utils/adt/numeric.c:4013 +#: utils/adt/float.c:1527 utils/adt/numeric.c:3902 utils/adt/numeric.c:4014 #, c-format msgid "zero raised to a negative power is undefined" msgstr "нуль у від'ємному ступені дає невизначеність" -#: utils/adt/float.c:1531 utils/adt/numeric.c:3905 utils/adt/numeric.c:10421 +#: utils/adt/float.c:1531 utils/adt/numeric.c:3906 utils/adt/numeric.c:10422 #, c-format msgid "a negative number raised to a non-integer power yields a complex result" msgstr "від'ємне число у не цілому ступені дає комплексний результат" -#: utils/adt/float.c:1707 utils/adt/float.c:1740 utils/adt/numeric.c:3813 -#: utils/adt/numeric.c:10196 +#: utils/adt/float.c:1707 utils/adt/float.c:1740 utils/adt/numeric.c:3814 +#: utils/adt/numeric.c:10197 #, c-format msgid "cannot take logarithm of zero" msgstr "обчислити логарифм нуля не можна" -#: utils/adt/float.c:1711 utils/adt/float.c:1744 utils/adt/numeric.c:3751 -#: utils/adt/numeric.c:3808 utils/adt/numeric.c:10200 +#: utils/adt/float.c:1711 utils/adt/float.c:1744 utils/adt/numeric.c:3752 +#: utils/adt/numeric.c:3809 utils/adt/numeric.c:10201 #, c-format msgid "cannot take logarithm of a negative number" msgstr "обчислити логарифм від'ємного числа не можна" @@ -23200,22 +23243,22 @@ msgstr "введене значення поза діапазоном" msgid "setseed parameter %g is out of allowed range [-1,1]" msgstr "параметр setseed %g поза допустимим діапазоном [-1,1]" -#: utils/adt/float.c:4024 utils/adt/numeric.c:1785 +#: utils/adt/float.c:4024 utils/adt/numeric.c:1786 #, c-format msgid "count must be greater than zero" msgstr "лічильник повинен бути більше нуля" -#: utils/adt/float.c:4029 utils/adt/numeric.c:1796 +#: utils/adt/float.c:4029 utils/adt/numeric.c:1797 #, c-format msgid "operand, lower bound, and upper bound cannot be NaN" msgstr "операнд, нижня границя і верхня границя не можуть бути NaN" -#: utils/adt/float.c:4035 utils/adt/numeric.c:1801 +#: utils/adt/float.c:4035 utils/adt/numeric.c:1802 #, c-format msgid "lower and upper bounds must be finite" msgstr "нижня і верхня границі повинні бути скінченними" -#: utils/adt/float.c:4069 utils/adt/numeric.c:1815 +#: utils/adt/float.c:4069 utils/adt/numeric.c:1816 #, c-format msgid "lower bound cannot equal upper bound" msgstr "нижня границя не може дорівнювати верхній границі" @@ -23580,7 +23623,7 @@ msgstr "розмір кроку не може дорівнювати нулю" #: utils/adt/int8.c:1010 utils/adt/int8.c:1024 utils/adt/int8.c:1057 #: utils/adt/int8.c:1071 utils/adt/int8.c:1085 utils/adt/int8.c:1116 #: utils/adt/int8.c:1138 utils/adt/int8.c:1152 utils/adt/int8.c:1166 -#: utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4379 +#: utils/adt/int8.c:1328 utils/adt/int8.c:1363 utils/adt/numeric.c:4380 #: utils/adt/varbit.c:1676 #, c-format msgid "bigint out of range" @@ -23698,23 +23741,23 @@ msgstr "привести об'єкт jsonb до типу %s не можна" msgid "cannot cast jsonb array or object to type %s" msgstr "привести масив або об'єкт jsonb до типу %s не можна" -#: utils/adt/jsonb_util.c:752 +#: utils/adt/jsonb_util.c:749 #, c-format msgid "number of jsonb object pairs exceeds the maximum allowed (%zu)" msgstr "кількість пар об'єкта jsonb перевищує максимально дозволену (%zu)" -#: utils/adt/jsonb_util.c:793 +#: utils/adt/jsonb_util.c:790 #, c-format msgid "number of jsonb array elements exceeds the maximum allowed (%zu)" msgstr "кількість елементів масиву jsonb перевищує максимально дозволену(%zu)" -#: utils/adt/jsonb_util.c:1667 utils/adt/jsonb_util.c:1687 +#: utils/adt/jsonb_util.c:1673 utils/adt/jsonb_util.c:1693 #, c-format msgid "total size of jsonb array elements exceeds the maximum of %u bytes" msgstr "загальний розмір елементів масиву jsonb перевищує максимум (%u байт)" -#: utils/adt/jsonb_util.c:1748 utils/adt/jsonb_util.c:1783 -#: utils/adt/jsonb_util.c:1803 +#: utils/adt/jsonb_util.c:1754 utils/adt/jsonb_util.c:1789 +#: utils/adt/jsonb_util.c:1809 #, c-format msgid "total size of jsonb object elements exceeds the maximum of %u bytes" msgstr "загальний розмір елементів об'єкту jsonb перевищує максимум (%u байт)" @@ -24127,12 +24170,12 @@ msgstr "недетерміновані параметри сортування msgid "LIKE pattern must not end with escape character" msgstr "Шаблон LIKE не повинен закінчуватись символом виходу" -#: utils/adt/like_match.c:293 utils/adt/regexp.c:786 +#: utils/adt/like_match.c:293 utils/adt/regexp.c:787 #, c-format msgid "invalid escape string" msgstr "неприпустимий рядок виходу" -#: utils/adt/like_match.c:294 utils/adt/regexp.c:787 +#: utils/adt/like_match.c:294 utils/adt/regexp.c:788 #, c-format msgid "Escape string must be empty or one character." msgstr "Рядок виходу повинен бути пустим або складатися з одного символу." @@ -24403,46 +24446,46 @@ msgstr "розмір кроку не може бути NaN" msgid "step size cannot be infinity" msgstr "розмір кроку не може бути нескінченністю" -#: utils/adt/numeric.c:3566 +#: utils/adt/numeric.c:3567 #, c-format msgid "factorial of a negative number is undefined" msgstr "факторіал від'ємного числа не визначено" -#: utils/adt/numeric.c:3576 utils/adt/numeric.c:6960 utils/adt/numeric.c:7475 -#: utils/adt/numeric.c:9999 utils/adt/numeric.c:10479 utils/adt/numeric.c:10605 -#: utils/adt/numeric.c:10679 +#: utils/adt/numeric.c:3577 utils/adt/numeric.c:6961 utils/adt/numeric.c:7476 +#: utils/adt/numeric.c:10000 utils/adt/numeric.c:10480 +#: utils/adt/numeric.c:10606 utils/adt/numeric.c:10680 #, c-format msgid "value overflows numeric format" msgstr "значення переповнюють формат numeric" -#: utils/adt/numeric.c:4286 utils/adt/numeric.c:4366 utils/adt/numeric.c:4407 -#: utils/adt/numeric.c:4601 +#: utils/adt/numeric.c:4287 utils/adt/numeric.c:4367 utils/adt/numeric.c:4408 +#: utils/adt/numeric.c:4602 #, c-format msgid "cannot convert NaN to %s" msgstr "неможливо перетворити NaN на %s" -#: utils/adt/numeric.c:4290 utils/adt/numeric.c:4370 utils/adt/numeric.c:4411 -#: utils/adt/numeric.c:4605 +#: utils/adt/numeric.c:4291 utils/adt/numeric.c:4371 utils/adt/numeric.c:4412 +#: utils/adt/numeric.c:4606 #, c-format msgid "cannot convert infinity to %s" msgstr "неможливо перетворити нескінченність на %s" -#: utils/adt/numeric.c:4614 +#: utils/adt/numeric.c:4615 #, c-format msgid "pg_lsn out of range" msgstr "pg_lsn поза діапазоном" -#: utils/adt/numeric.c:7562 utils/adt/numeric.c:7608 +#: utils/adt/numeric.c:7563 utils/adt/numeric.c:7609 #, c-format msgid "numeric field overflow" msgstr "надлишок поля numeric" -#: utils/adt/numeric.c:7563 +#: utils/adt/numeric.c:7564 #, c-format msgid "A field with precision %d, scale %d must round to an absolute value less than %s%d." msgstr "Поле з точністю %d, масштабом %d повинне округлятись до абсолютного значення меньше, ніж %s%d." -#: utils/adt/numeric.c:7609 +#: utils/adt/numeric.c:7610 #, c-format msgid "A field with precision %d, scale %d cannot hold an infinite value." msgstr "Поле з точністю %d, масштабом %d не може містити нескінченне значення." @@ -24483,94 +24526,94 @@ msgstr "запитаний символ не припустимий для ко msgid "percentile value %g is not between 0 and 1" msgstr "значення процентиля %g не є між 0 і 1" -#: utils/adt/pg_locale.c:1231 +#: utils/adt/pg_locale.c:1232 #, c-format msgid "Apply system library package updates." msgstr "Застосуйте оновлення для пакету з системною бібліотекою." -#: utils/adt/pg_locale.c:1455 utils/adt/pg_locale.c:1703 -#: utils/adt/pg_locale.c:1982 utils/adt/pg_locale.c:2004 +#: utils/adt/pg_locale.c:1458 utils/adt/pg_locale.c:1706 +#: utils/adt/pg_locale.c:1985 utils/adt/pg_locale.c:2007 #, c-format msgid "could not open collator for locale \"%s\": %s" msgstr "не вдалося відкрити сортувальник для локалізації \"%s\": %s" -#: utils/adt/pg_locale.c:1468 utils/adt/pg_locale.c:2013 +#: utils/adt/pg_locale.c:1471 utils/adt/pg_locale.c:2016 #, c-format msgid "ICU is not supported in this build" msgstr "ICU не підтримується в цій збірці" -#: utils/adt/pg_locale.c:1497 +#: utils/adt/pg_locale.c:1500 #, c-format msgid "could not create locale \"%s\": %m" msgstr "не вдалося створити локалізацію \"%s\": %m" -#: utils/adt/pg_locale.c:1500 +#: utils/adt/pg_locale.c:1503 #, c-format msgid "The operating system could not find any locale data for the locale name \"%s\"." msgstr "Операційній системі не вдалося знайти дані локалізації з іменем \"%s\"." -#: utils/adt/pg_locale.c:1608 +#: utils/adt/pg_locale.c:1611 #, c-format msgid "collations with different collate and ctype values are not supported on this platform" msgstr "параметри сортування з різними значеннями collate і ctype не підтримуються на цій платформі" -#: utils/adt/pg_locale.c:1617 +#: utils/adt/pg_locale.c:1620 #, c-format msgid "collation provider LIBC is not supported on this platform" msgstr "провайдер параметрів сортування LIBC не підтримується на цій платформі" -#: utils/adt/pg_locale.c:1652 +#: utils/adt/pg_locale.c:1655 #, c-format msgid "collation \"%s\" has no actual version, but a version was recorded" msgstr "для параметру сортування \"%s\" який не має фактичної версії, була вказана версія" -#: utils/adt/pg_locale.c:1658 +#: utils/adt/pg_locale.c:1661 #, c-format msgid "collation \"%s\" has version mismatch" msgstr "невідповідність версій для параметру сортування \"%s\"" -#: utils/adt/pg_locale.c:1660 +#: utils/adt/pg_locale.c:1663 #, 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:1663 +#: utils/adt/pg_locale.c:1666 #, 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:1734 +#: utils/adt/pg_locale.c:1737 #, c-format msgid "could not load locale \"%s\"" msgstr "не вдалося завантажити локаль \"%s\"" -#: utils/adt/pg_locale.c:1759 +#: utils/adt/pg_locale.c:1762 #, c-format msgid "could not get collation version for locale \"%s\": error code %lu" msgstr "не вдалося отримати версію параметрів сортування для локалізації \"%s\": код помилки %lu" -#: utils/adt/pg_locale.c:1797 +#: utils/adt/pg_locale.c:1800 #, c-format msgid "encoding \"%s\" not supported by ICU" msgstr "ICU не підтримує кодування \"%s\"" -#: utils/adt/pg_locale.c:1804 +#: utils/adt/pg_locale.c:1807 #, c-format msgid "could not open ICU converter for encoding \"%s\": %s" msgstr "не вдалося відкрити перетворювач ICU для кодування \"%s\": %s" -#: utils/adt/pg_locale.c:1835 utils/adt/pg_locale.c:1844 -#: utils/adt/pg_locale.c:1873 utils/adt/pg_locale.c:1883 +#: utils/adt/pg_locale.c:1838 utils/adt/pg_locale.c:1847 +#: utils/adt/pg_locale.c:1876 utils/adt/pg_locale.c:1886 #, c-format msgid "%s failed: %s" msgstr "%s помилка: %s" -#: utils/adt/pg_locale.c:2182 +#: utils/adt/pg_locale.c:2185 #, c-format msgid "invalid multibyte character for locale" msgstr "неприпустимий мультибайтний символ для локалізації" -#: utils/adt/pg_locale.c:2183 +#: utils/adt/pg_locale.c:2186 #, c-format msgid "The server's LC_CTYPE locale is probably incompatible with the database encoding." msgstr "Параметр локалізації серверу LC_CTYPE, можливо, несумісний з кодуванням бази даних." @@ -24690,7 +24733,7 @@ msgstr "Занадто багато ком." msgid "Junk after right parenthesis or bracket." msgstr "Сміття після правої дужки." -#: utils/adt/regexp.c:290 utils/adt/regexp.c:1983 utils/adt/varlena.c:4528 +#: utils/adt/regexp.c:290 utils/adt/regexp.c:2052 utils/adt/varlena.c:4528 #, c-format msgid "regular expression failed: %s" msgstr "помилка в регулярному виразі: %s" @@ -24705,33 +24748,33 @@ msgstr "неприпустимий параметр регулярного ви msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "Якщо ви хочете використовувати regexp_replace() з початковим параметром, приведіть тип четвертого аргумента до цілого числа." -#: utils/adt/regexp.c:702 utils/adt/regexp.c:711 utils/adt/regexp.c:1068 -#: utils/adt/regexp.c:1132 utils/adt/regexp.c:1141 utils/adt/regexp.c:1150 -#: utils/adt/regexp.c:1159 utils/adt/regexp.c:1839 utils/adt/regexp.c:1848 -#: utils/adt/regexp.c:1857 utils/misc/guc.c:11928 utils/misc/guc.c:11962 +#: utils/adt/regexp.c:702 utils/adt/regexp.c:711 utils/adt/regexp.c:1137 +#: utils/adt/regexp.c:1201 utils/adt/regexp.c:1210 utils/adt/regexp.c:1219 +#: utils/adt/regexp.c:1228 utils/adt/regexp.c:1908 utils/adt/regexp.c:1917 +#: utils/adt/regexp.c:1926 utils/misc/guc.c:11934 utils/misc/guc.c:11968 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неприпустиме значення для параметра \"%s\": %d" -#: utils/adt/regexp.c:922 +#: utils/adt/regexp.c:934 #, c-format msgid "SQL regular expression may not contain more than two escape-double-quote separators" msgstr "Регулярний вираз SQL не може містити більше двох роздільників escape-double-quote" #. translator: %s is a SQL function name -#: utils/adt/regexp.c:1079 utils/adt/regexp.c:1170 utils/adt/regexp.c:1257 -#: utils/adt/regexp.c:1296 utils/adt/regexp.c:1684 utils/adt/regexp.c:1739 -#: utils/adt/regexp.c:1868 +#: utils/adt/regexp.c:1148 utils/adt/regexp.c:1239 utils/adt/regexp.c:1326 +#: utils/adt/regexp.c:1365 utils/adt/regexp.c:1753 utils/adt/regexp.c:1808 +#: utils/adt/regexp.c:1937 #, c-format msgid "%s does not support the \"global\" option" msgstr "%s не підтримує параметр \"global\"" -#: utils/adt/regexp.c:1298 +#: utils/adt/regexp.c:1367 #, c-format msgid "Use the regexp_matches function instead." msgstr "Використайте функцію regexp_matches замість." -#: utils/adt/regexp.c:1486 +#: utils/adt/regexp.c:1555 #, c-format msgid "too many regular expression matches" msgstr "занадто багато відповідностей для регулярного виразу" @@ -24757,7 +24800,7 @@ msgid "Use NONE to denote the missing argument of a unary operator." msgstr "Щоб позначити пропущений аргумент унарного оператору, використайте NONE." #: utils/adt/regproc.c:715 utils/adt/regproc.c:756 utils/adt/regproc.c:2055 -#: utils/adt/ruleutils.c:10059 utils/adt/ruleutils.c:10228 +#: utils/adt/ruleutils.c:10069 utils/adt/ruleutils.c:10238 #, c-format msgid "too many arguments" msgstr "занадто багато аргументів" @@ -24963,7 +25006,7 @@ msgstr "TIMESTAMP(%d)%s точність не повинна бути від'є msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "TIMESTAMP(%d)%s точність зменшена до дозволеного максимуму, %d" -#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12952 +#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12958 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "позначка часу поза діапазоном: \"%s\"" @@ -25156,12 +25199,12 @@ msgstr "масив значимості не повинен містити null" msgid "weight out of range" msgstr "значимість поза діапазоном" -#: utils/adt/tsvector.c:215 +#: utils/adt/tsvector.c:212 #, c-format msgid "word is too long (%ld bytes, max %ld bytes)" msgstr "слово занадто довге (%ld байт, при максимумі %ld)" -#: utils/adt/tsvector.c:222 +#: utils/adt/tsvector.c:219 #, c-format msgid "string is too long for tsvector (%ld bytes, max %ld bytes)" msgstr "рядок занадто довгий для tsvector (%ld байт, при максимумі %ld)" @@ -25463,7 +25506,7 @@ msgstr "XML-функції не підтримуються" msgid "This functionality requires the server to be built with libxml support." msgstr "Ця функціональність потребує, щоб сервер був побудований з підтримкою libxml." -#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:628 #, c-format msgid "invalid encoding name \"%s\"" msgstr "неприпустиме ім’я кодування \"%s\"" @@ -25518,96 +25561,96 @@ msgstr "не вдалося встановити обробник XML-помил 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 несумісна з файлами-заголовками libxml2, з котрими був зібраний PostgreSQL." -#: utils/adt/xml.c:1984 +#: utils/adt/xml.c:1978 msgid "Invalid character value." msgstr "Неприпустиме значення символу." -#: utils/adt/xml.c:1987 +#: utils/adt/xml.c:1981 msgid "Space required." msgstr "Потребується пробіл." -#: utils/adt/xml.c:1990 +#: utils/adt/xml.c:1984 msgid "standalone accepts only 'yes' or 'no'." msgstr "значеннями атрибуту standalone можуть бути лише 'yes' або 'no'." -#: utils/adt/xml.c:1993 +#: utils/adt/xml.c:1987 msgid "Malformed declaration: missing version." msgstr "Неправильне оголошення: пропущена версія." -#: utils/adt/xml.c:1996 +#: utils/adt/xml.c:1990 msgid "Missing encoding in text declaration." msgstr "В оголошенні пропущене кодування." -#: utils/adt/xml.c:1999 +#: utils/adt/xml.c:1993 msgid "Parsing XML declaration: '?>' expected." msgstr "Аналіз XML-оголошення: '?>' очікується." -#: utils/adt/xml.c:2002 +#: utils/adt/xml.c:1996 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Нерозпізнаний код помилки libxml: %d." -#: utils/adt/xml.c:2259 +#: utils/adt/xml.c:2253 #, c-format msgid "XML does not support infinite date values." msgstr "XML не підтримує безкінечні значення в датах." -#: utils/adt/xml.c:2281 utils/adt/xml.c:2308 +#: utils/adt/xml.c:2275 utils/adt/xml.c:2302 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML не підтримує безкінченні значення в позначках часу." -#: utils/adt/xml.c:2724 +#: utils/adt/xml.c:2718 #, c-format msgid "invalid query" msgstr "неприпустимий запит" -#: utils/adt/xml.c:2816 +#: utils/adt/xml.c:2810 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "portal \"%s\" не повертає кортежі" -#: utils/adt/xml.c:4068 +#: utils/adt/xml.c:4062 #, c-format msgid "invalid array for XML namespace mapping" msgstr "неприпустимий масив з зіставленням простіру імен XML" -#: utils/adt/xml.c:4069 +#: utils/adt/xml.c:4063 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "Масив повинен бути двовимірним і містити 2 елемента по другій вісі." -#: utils/adt/xml.c:4093 +#: utils/adt/xml.c:4087 #, c-format msgid "empty XPath expression" msgstr "пустий вираз XPath" -#: utils/adt/xml.c:4145 +#: utils/adt/xml.c:4139 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ні ім'я простіру імен ні URI не можуть бути null" -#: utils/adt/xml.c:4152 +#: utils/adt/xml.c:4146 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "не вдалося зареєструвати простір імен XML з ім'ям \"%s\" і URI \"%s\"" -#: utils/adt/xml.c:4509 +#: utils/adt/xml.c:4503 #, c-format msgid "DEFAULT namespace is not supported" msgstr "Простір імен DEFAULT не підтримується" -#: utils/adt/xml.c:4538 +#: utils/adt/xml.c:4532 #, c-format msgid "row path filter must not be empty string" msgstr "шлях фільтруючих рядків не повинен бути пустим" -#: utils/adt/xml.c:4572 +#: utils/adt/xml.c:4566 #, c-format msgid "column path filter must not be empty string" msgstr "шлях фільтруючого стовпця не повинен бути пустим" -#: utils/adt/xml.c:4719 +#: utils/adt/xml.c:4713 #, c-format msgid "more than one value returned by column XPath expression" msgstr "вираз XPath, який відбирає стовпець, повернув більше одного значення" @@ -25643,27 +25686,27 @@ msgstr "в класі операторів \"%s\" методу доступу %s msgid "cached plan must not change result type" msgstr "в кешованому плані не повинен змінюватись тип результату" -#: utils/cache/relcache.c:3755 +#: utils/cache/relcache.c:3771 #, c-format msgid "heap relfilenode value not set when in binary upgrade mode" msgstr "значення relfilenode динамічної пам'яті не встановлено в режимі двійкового оновлення" -#: utils/cache/relcache.c:3763 +#: utils/cache/relcache.c:3779 #, c-format msgid "unexpected request for new relfilenode in binary upgrade mode" msgstr "неочікуваний запит на новий relfilenode в режимі двійкового оновлення" -#: utils/cache/relcache.c:6476 +#: utils/cache/relcache.c:6492 #, c-format msgid "could not create relation-cache initialization file \"%s\": %m" msgstr "не вдалося створити файл ініціалізації для кешу відношень \"%s\": %m" -#: utils/cache/relcache.c:6478 +#: utils/cache/relcache.c:6494 #, c-format msgid "Continuing anyway, but there's something wrong." msgstr "Продовжуємо усе одно, але щось не так." -#: utils/cache/relcache.c:6800 +#: utils/cache/relcache.c:6816 #, c-format msgid "could not remove cache file \"%s\": %m" msgstr "не вдалося видалити файл кешу \"%s\": %m" @@ -26284,48 +26327,48 @@ msgstr "неочікуваний ідентифікатор кодування % msgid "unexpected encoding ID %d for WIN character sets" msgstr "неочікуваний ідентифікатор кодування %d для наборів символів WIN" -#: utils/mb/mbutils.c:297 utils/mb/mbutils.c:900 +#: utils/mb/mbutils.c:298 utils/mb/mbutils.c:901 #, c-format msgid "conversion between %s and %s is not supported" msgstr "перетворення між %s і %s не підтримується" -#: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 -#: utils/mb/mbutils.c:842 +#: utils/mb/mbutils.c:403 utils/mb/mbutils.c:431 utils/mb/mbutils.c:816 +#: utils/mb/mbutils.c:843 #, c-format msgid "String of %d bytes is too long for encoding conversion." msgstr "Рядок з %d байт занадто довгий для перетворення кодування." -#: utils/mb/mbutils.c:568 +#: utils/mb/mbutils.c:569 #, c-format msgid "invalid source encoding name \"%s\"" msgstr "неприпустиме ім’я вихідного кодування \"%s\"" -#: utils/mb/mbutils.c:573 +#: utils/mb/mbutils.c:574 #, c-format msgid "invalid destination encoding name \"%s\"" msgstr "неприпустиме ім’я кодування результату \"%s\"" -#: utils/mb/mbutils.c:713 +#: utils/mb/mbutils.c:714 #, c-format msgid "invalid byte value for encoding \"%s\": 0x%02x" msgstr "неприпустиме значення байту для кодування \"%s\": 0x%02x" -#: utils/mb/mbutils.c:877 +#: utils/mb/mbutils.c:878 #, c-format msgid "invalid Unicode code point" msgstr "неприпустима кодова точка Unicode" -#: utils/mb/mbutils.c:1146 +#: utils/mb/mbutils.c:1147 #, c-format msgid "bind_textdomain_codeset failed" msgstr "помилка в bind_textdomain_codeset" -#: utils/mb/mbutils.c:1667 +#: utils/mb/mbutils.c:1668 #, c-format msgid "invalid byte sequence for encoding \"%s\": %s" msgstr "неприпустима послідовність байтів для кодування \"%s\": %s" -#: utils/mb/mbutils.c:1700 +#: utils/mb/mbutils.c:1709 #, c-format msgid "character with byte sequence %s in encoding \"%s\" has no equivalent in encoding \"%s\"" msgstr "символ з послідовністю байтів %s в кодуванні \"%s\" не має еквіваленту в кодуванні \"%s\"" @@ -28364,7 +28407,7 @@ msgid "parameter \"%s\" cannot be changed now" msgstr "параметр \"%s\" не може бути змінений зараз" #: utils/misc/guc.c:7746 utils/misc/guc.c:7808 utils/misc/guc.c:8962 -#: utils/misc/guc.c:11864 +#: utils/misc/guc.c:11870 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "немає прав для встановлення параметру \"%s\"" @@ -28449,77 +28492,77 @@ msgstr "параметр \"%s\" не вдалося встановити" msgid "could not parse setting for parameter \"%s\"" msgstr "не вдалося аналізувати налаштування параметру \"%s\"" -#: utils/misc/guc.c:11996 +#: utils/misc/guc.c:12002 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "неприпустиме значення для параметра \"%s\": %g" -#: utils/misc/guc.c:12309 +#: utils/misc/guc.c:12315 #, c-format msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." msgstr "параметр \"temp_buffers\" не можна змінити після того, як тимчасові таблиці отримали доступ в сеансі." -#: utils/misc/guc.c:12321 +#: utils/misc/guc.c:12327 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour не підтримується даною збіркою" -#: utils/misc/guc.c:12334 +#: utils/misc/guc.c:12340 #, c-format msgid "SSL is not supported by this build" msgstr "SSL не підтримується даною збіркою" -#: utils/misc/guc.c:12346 +#: utils/misc/guc.c:12352 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "Не можна ввімкнути параметр, коли \"log_statement_stats\" дорівнює true." -#: utils/misc/guc.c:12358 +#: utils/misc/guc.c:12364 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "Не можна ввімкнути \"log_statement_stats\", коли \"log_parser_stats\", \"log_planner_stats\", або \"log_executor_stats\" дорівнюють true." -#: utils/misc/guc.c:12588 +#: utils/misc/guc.c:12594 #, c-format msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "значення effective_io_concurrency повинне дорівнювати 0 (нулю) на платформах, де відсутній posix_fadvise()." -#: utils/misc/guc.c:12601 +#: utils/misc/guc.c:12607 #, c-format msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "maintenance_io_concurrency повинне бути встановлене на 0, на платформах які не мають posix_fadvise()." -#: utils/misc/guc.c:12615 +#: utils/misc/guc.c:12621 #, c-format msgid "huge_page_size must be 0 on this platform." msgstr "huge_page_size повинен бути 0 на цій платформі." -#: utils/misc/guc.c:12627 +#: utils/misc/guc.c:12633 #, c-format msgid "client_connection_check_interval must be set to 0 on this platform." msgstr "client_connection_check_interval має бути встановлений в 0 на цій платформі." -#: utils/misc/guc.c:12739 +#: utils/misc/guc.c:12745 #, c-format msgid "invalid character" msgstr "неприпустимий символ" -#: utils/misc/guc.c:12799 +#: utils/misc/guc.c:12805 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline не є допустимим числом." -#: utils/misc/guc.c:12839 +#: utils/misc/guc.c:12845 #, c-format msgid "multiple recovery targets specified" msgstr "вказано декілька цілей відновлення" -#: utils/misc/guc.c:12840 +#: utils/misc/guc.c:12846 #, 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 "Максимум один із recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid може бути встановлений." -#: utils/misc/guc.c:12848 +#: utils/misc/guc.c:12854 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Єдиним дозволеним значенням є \"immediate\"." @@ -28630,15 +28673,15 @@ msgstr "Помилка під час створення контексту па msgid "could not attach to dynamic shared area" msgstr "не вдалося підключитись до динамічно-спільної області" -#: utils/mmgr/mcxt.c:889 utils/mmgr/mcxt.c:925 utils/mmgr/mcxt.c:963 -#: utils/mmgr/mcxt.c:1001 utils/mmgr/mcxt.c:1089 utils/mmgr/mcxt.c:1120 -#: utils/mmgr/mcxt.c:1156 utils/mmgr/mcxt.c:1208 utils/mmgr/mcxt.c:1243 -#: utils/mmgr/mcxt.c:1278 +#: utils/mmgr/mcxt.c:892 utils/mmgr/mcxt.c:928 utils/mmgr/mcxt.c:966 +#: utils/mmgr/mcxt.c:1004 utils/mmgr/mcxt.c:1112 utils/mmgr/mcxt.c:1143 +#: utils/mmgr/mcxt.c:1179 utils/mmgr/mcxt.c:1231 utils/mmgr/mcxt.c:1266 +#: utils/mmgr/mcxt.c:1301 #, c-format msgid "Failed on request of size %zu in memory context \"%s\"." msgstr "Помилка в запиті розміру %zu в контексті пам'яті \"%s\"." -#: utils/mmgr/mcxt.c:1052 +#: utils/mmgr/mcxt.c:1067 #, c-format msgid "logging memory contexts of PID %d" msgstr "журналювання контекстів пам'яті PID %d" @@ -28989,179 +29032,184 @@ msgstr "конфліктуючі або надлишкові оголошенн msgid "unrecognized column option \"%s\"" msgstr "нерозпізнаний параметр стовпця \"%s\"" -#: gram.y:14091 +#: gram.y:13870 +#, c-format +msgid "option name \"%s\" cannot be used in XMLTABLE" +msgstr "ім'я параметру \"%s\" не може використовуватись в XMLTABLE" + +#: gram.y:14098 #, c-format msgid "precision for type float must be at least 1 bit" msgstr "точність для типу float повинна бути мінімум 1 біт" -#: gram.y:14100 +#: gram.y:14107 #, c-format msgid "precision for type float must be less than 54 bits" msgstr "точність для типу float повинна бути меньше 54 біт" -#: gram.y:14603 +#: gram.y:14610 #, c-format msgid "wrong number of parameters on left side of OVERLAPS expression" msgstr "неправильна кількість параметрів у лівій частині виразу OVERLAPS" -#: gram.y:14608 +#: gram.y:14615 #, c-format msgid "wrong number of parameters on right side of OVERLAPS expression" msgstr "неправильна кількість параметрів у правій частині виразу OVERLAPS" -#: gram.y:14785 +#: gram.y:14792 #, c-format msgid "UNIQUE predicate is not yet implemented" msgstr "Предикат UNIQUE ще не реалізований" -#: gram.y:15163 +#: gram.y:15170 #, c-format msgid "cannot use multiple ORDER BY clauses with WITHIN GROUP" msgstr "використовувати речення ORDER BY з WITHIN GROUP неодноразово, не можна" -#: gram.y:15168 +#: gram.y:15175 #, c-format msgid "cannot use DISTINCT with WITHIN GROUP" msgstr "використовувати DISTINCT з WITHIN GROUP не можна" -#: gram.y:15173 +#: gram.y:15180 #, c-format msgid "cannot use VARIADIC with WITHIN GROUP" msgstr "використовувати VARIADIC з WITHIN GROUP не можна" -#: gram.y:15710 gram.y:15734 +#: gram.y:15717 gram.y:15741 #, c-format msgid "frame start cannot be UNBOUNDED FOLLOWING" msgstr "початком рамки не може бути UNBOUNDED FOLLOWING" -#: gram.y:15715 +#: gram.y:15722 #, c-format msgid "frame starting from following row cannot end with current row" msgstr "рамка, яка починається з наступного рядка не можна закінчуватись поточним рядком" -#: gram.y:15739 +#: gram.y:15746 #, c-format msgid "frame end cannot be UNBOUNDED PRECEDING" msgstr "кінцем рамки не може бути UNBOUNDED PRECEDING" -#: gram.y:15745 +#: gram.y:15752 #, c-format msgid "frame starting from current row cannot have preceding rows" msgstr "рамка, яка починається з поточного рядка не може мати попередніх рядків" -#: gram.y:15752 +#: gram.y:15759 #, c-format msgid "frame starting from following row cannot have preceding rows" msgstr "рамка, яка починається з наступного рядка не може мати попередніх рядків" -#: gram.y:16377 +#: gram.y:16384 #, c-format msgid "type modifier cannot have parameter name" msgstr "тип modifier не може мати ім'я параметра" -#: gram.y:16383 +#: gram.y:16390 #, c-format msgid "type modifier cannot have ORDER BY" msgstr "тип modifier не може мати ORDER BY" -#: gram.y:16451 gram.y:16458 gram.y:16465 +#: gram.y:16458 gram.y:16465 gram.y:16472 #, c-format msgid "%s cannot be used as a role name here" msgstr "%s не можна використовувати тут як ім'я ролі" -#: gram.y:16555 gram.y:17990 +#: gram.y:16562 gram.y:17997 #, c-format msgid "WITH TIES cannot be specified without ORDER BY clause" msgstr "WITH TIES не можна задати без оператора ORDER BY" -#: gram.y:17669 gram.y:17856 +#: gram.y:17676 gram.y:17863 msgid "improper use of \"*\"" msgstr "неправильне використання \"*\"" -#: gram.y:17920 +#: gram.y:17927 #, 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 повинна мати один агрегатний аргумент VARIADIC того ж типу даних" -#: gram.y:17957 +#: gram.y:17964 #, c-format msgid "multiple ORDER BY clauses not allowed" msgstr "кілька речень ORDER BY не допускається" -#: gram.y:17968 +#: gram.y:17975 #, c-format msgid "multiple OFFSET clauses not allowed" msgstr "кілька речень OFFSET не допускається" -#: gram.y:17977 +#: gram.y:17984 #, c-format msgid "multiple LIMIT clauses not allowed" msgstr "кілька речень LIMIT не допускається" -#: gram.y:17986 +#: gram.y:17993 #, c-format msgid "multiple limit options not allowed" msgstr "використання декількох параметрів обмеження не дозволяється" -#: gram.y:18013 +#: gram.y:18020 #, c-format msgid "multiple WITH clauses not allowed" msgstr "кілька речень WITH не допускається" -#: gram.y:18206 +#: gram.y:18213 #, c-format msgid "OUT and INOUT arguments aren't allowed in TABLE functions" msgstr "В табличних функціях аргументи OUT і INOUT не дозволяються" -#: gram.y:18339 +#: gram.y:18346 #, c-format msgid "multiple COLLATE clauses not allowed" msgstr "кілька речень COLLATE не допускається" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18377 gram.y:18390 +#: gram.y:18384 gram.y:18397 #, c-format msgid "%s constraints cannot be marked DEFERRABLE" msgstr "обмеження %s не можуть бути позначені DEFERRABLE" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18403 +#: gram.y:18410 #, c-format msgid "%s constraints cannot be marked NOT VALID" msgstr "обмеження %s не можуть бути позначені NOT VALID" #. translator: %s is CHECK, UNIQUE, or similar -#: gram.y:18416 +#: gram.y:18423 #, c-format msgid "%s constraints cannot be marked NO INHERIT" msgstr "обмеження %s не можуть бути позначені NO INHERIT" -#: gram.y:18440 +#: gram.y:18447 #, c-format msgid "invalid publication object list" msgstr "неприпустимий список об'єктів публікації" -#: gram.y:18441 +#: gram.y:18448 #, c-format msgid "One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name." msgstr "Одну з TABLE або TABLES IN SCHEMA необхідно вказати перед назвою автономної таблиці або схеми." -#: gram.y:18457 +#: gram.y:18464 #, c-format msgid "invalid table name" msgstr "неприпустиме ім'я таблиці" -#: gram.y:18478 +#: gram.y:18485 #, c-format msgid "WHERE clause not allowed for schema" msgstr "Речення WHERE не допускається для схеми" -#: gram.y:18485 +#: gram.y:18492 #, c-format msgid "column specification not allowed for schema" msgstr "специфікація стовпця не дозволена для схеми" -#: gram.y:18499 +#: gram.y:18506 #, c-format msgid "invalid schema name" msgstr "неприпустиме ім'я схеми" diff --git a/src/bin/initdb/po/es.po b/src/bin/initdb/po/es.po index b001c948bdf..d42fbd7e9f7 100644 --- a/src/bin/initdb/po/es.po +++ b/src/bin/initdb/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: initdb (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:08+0000\n" +"POT-Creation-Date: 2026-02-06 21:19+0000\n" "PO-Revision-Date: 2023-05-24 19:23+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_amcheck/po/es.po b/src/bin/pg_amcheck/po/es.po index a75d8dc576d..5256a140286 100644 --- a/src/bin/pg_amcheck/po/es.po +++ b/src/bin/pg_amcheck/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_amcheck (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:09+0000\n" +"POT-Creation-Date: 2026-02-06 21:20+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_archivecleanup/po/es.po b/src/bin/pg_archivecleanup/po/es.po index 76ccc056746..a8e58da5962 100644 --- a/src/bin/pg_archivecleanup/po/es.po +++ b/src/bin/pg_archivecleanup/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_archivecleanup (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:09+0000\n" +"POT-Creation-Date: 2026-02-06 21:21+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_basebackup/po/es.po b/src/bin/pg_basebackup/po/es.po index a5470e68aff..629cd9e76a5 100644 --- a/src/bin/pg_basebackup/po/es.po +++ b/src/bin/pg_basebackup/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_basebackup (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:07+0000\n" +"POT-Creation-Date: 2026-02-06 21:18+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_basebackup/po/ru.po b/src/bin/pg_basebackup/po/ru.po index efb4d790b29..97e76243bd1 100644 --- a/src/bin/pg_basebackup/po/ru.po +++ b/src/bin/pg_basebackup/po/ru.po @@ -1,7 +1,7 @@ # Russian message translation file for pg_basebackup # Copyright (C) 2012-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Alexander Lakhin msgid "" msgstr "" "Project-Id-Version: pg_basebackup (PostgreSQL current)\n" diff --git a/src/bin/pg_checksums/po/es.po b/src/bin/pg_checksums/po/es.po index d82c8a94791..c3026382fd3 100644 --- a/src/bin/pg_checksums/po/es.po +++ b/src/bin/pg_checksums/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_checksums (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:11+0000\n" +"POT-Creation-Date: 2026-02-06 21:22+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: pgsql-es-ayuda \n" diff --git a/src/bin/pg_config/po/es.po b/src/bin/pg_config/po/es.po index 047601b7823..7a7f4f94f5c 100644 --- a/src/bin/pg_config/po/es.po +++ b/src/bin/pg_config/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_config (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:06+0000\n" +"POT-Creation-Date: 2026-02-06 21:17+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_controldata/po/es.po b/src/bin/pg_controldata/po/es.po index 3da2d11d225..d4127f0a557 100644 --- a/src/bin/pg_controldata/po/es.po +++ b/src/bin/pg_controldata/po/es.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_controldata (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:10+0000\n" +"POT-Creation-Date: 2026-02-06 21:21+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_ctl/po/es.po b/src/bin/pg_ctl/po/es.po index 284874a292f..a973d45b17f 100644 --- a/src/bin/pg_ctl/po/es.po +++ b/src/bin/pg_ctl/po/es.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_ctl (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:07+0000\n" +"POT-Creation-Date: 2026-02-06 21:18+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_dump/po/es.po b/src/bin/pg_dump/po/es.po index 2842998c32c..9b72453d0ec 100644 --- a/src/bin/pg_dump/po/es.po +++ b/src/bin/pg_dump/po/es.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_dump (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:09+0000\n" +"POT-Creation-Date: 2026-02-06 21:20+0000\n" "PO-Revision-Date: 2023-05-08 11:16+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_dump/po/ru.po b/src/bin/pg_dump/po/ru.po index 3f5ac089c23..f8453c19b98 100644 --- a/src/bin/pg_dump/po/ru.po +++ b/src/bin/pg_dump/po/ru.po @@ -5,7 +5,7 @@ # Oleg Bartunov , 2004. # Sergey Burladyan , 2012. # Dmitriy Olshevskiy , 2014. -# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Alexander Lakhin msgid "" msgstr "" "Project-Id-Version: pg_dump (PostgreSQL current)\n" diff --git a/src/bin/pg_dump/po/uk.po b/src/bin/pg_dump/po/uk.po index 136f9bcdac1..bb2a3635f6c 100644 --- a/src/bin/pg_dump/po/uk.po +++ b/src/bin/pg_dump/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: 2025-03-29 11:12+0000\n" -"PO-Revision-Date: 2025-04-01 13:47\n" +"POT-Creation-Date: 2025-12-31 03:12+0000\n" +"PO-Revision-Date: 2025-12-31 16:25\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -127,227 +127,227 @@ msgstr "неприпустиме значення \"%s\" для параметр msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" -#: common.c:134 +#: common.c:135 #, c-format msgid "reading extensions" msgstr "читання розширень" -#: common.c:137 +#: common.c:138 #, c-format msgid "identifying extension members" msgstr "ідентифікація членів розширення" -#: common.c:140 +#: common.c:141 #, c-format msgid "reading schemas" msgstr "читання схемів" -#: common.c:149 +#: common.c:150 #, c-format msgid "reading user-defined tables" msgstr "читання користувацьких таблиць" -#: common.c:154 +#: common.c:155 #, c-format msgid "reading user-defined functions" msgstr "читання користувацьких функцій" -#: common.c:158 +#: common.c:159 #, c-format msgid "reading user-defined types" msgstr "читання користувацьких типів" -#: common.c:162 +#: common.c:163 #, c-format msgid "reading procedural languages" msgstr "читання процедурних мов" -#: common.c:165 +#: common.c:166 #, c-format msgid "reading user-defined aggregate functions" msgstr "читання користувацьких агрегатних функцій" -#: common.c:168 +#: common.c:169 #, c-format msgid "reading user-defined operators" msgstr "читання користувацьких операторів" -#: common.c:171 +#: common.c:172 #, c-format msgid "reading user-defined access methods" msgstr "читання користувацьких методів доступу" -#: common.c:174 +#: common.c:175 #, c-format msgid "reading user-defined operator classes" msgstr "читання користувацьких класів операторів" -#: common.c:177 +#: common.c:178 #, c-format msgid "reading user-defined operator families" msgstr "читання користувацьких сімейств операторів" -#: common.c:180 +#: common.c:181 #, c-format msgid "reading user-defined text search parsers" msgstr "читання користувацьких парсерів текстового пошуку" -#: common.c:183 +#: common.c:184 #, c-format msgid "reading user-defined text search templates" msgstr "читання користувацьких шаблонів текстового пошуку" -#: common.c:186 +#: common.c:187 #, c-format msgid "reading user-defined text search dictionaries" msgstr "читання користувацьких словників текстового пошуку" -#: common.c:189 +#: common.c:190 #, c-format msgid "reading user-defined text search configurations" msgstr "читання користувацьких конфігурацій текстового пошуку" -#: common.c:192 +#: common.c:193 #, c-format msgid "reading user-defined foreign-data wrappers" msgstr "читання користувацьких джерел сторонніх даних" -#: common.c:195 +#: common.c:196 #, c-format msgid "reading user-defined foreign servers" msgstr "читання користувацьких сторонніх серверів" -#: common.c:198 +#: common.c:199 #, c-format msgid "reading default privileges" msgstr "читання прав за замовчуванням" -#: common.c:201 +#: common.c:202 #, c-format msgid "reading user-defined collations" msgstr "читання користувацьких сортувань" -#: common.c:204 +#: common.c:205 #, c-format msgid "reading user-defined conversions" msgstr "читання користувацьких перетворень" -#: common.c:207 +#: common.c:208 #, c-format msgid "reading type casts" msgstr "читання типу приведення" -#: common.c:210 +#: common.c:211 #, c-format msgid "reading transforms" msgstr "читання перетворень" -#: common.c:213 +#: common.c:214 #, c-format msgid "reading table inheritance information" msgstr "читання інформації про успадкування таблиці" -#: common.c:216 +#: common.c:217 #, c-format msgid "reading event triggers" msgstr "читання тригерів подій" -#: common.c:220 +#: common.c:221 #, c-format msgid "finding extension tables" msgstr "пошук таблиць розширень" -#: common.c:224 +#: common.c:225 #, c-format msgid "finding inheritance relationships" msgstr "пошук відносин успадкування" -#: common.c:227 +#: common.c:228 #, c-format msgid "reading column info for interesting tables" msgstr "читання інформації про стовпці цікавлячої таблиці" -#: common.c:230 +#: common.c:231 #, c-format msgid "flagging inherited columns in subtables" msgstr "помітка успадкованих стовпців в підтаблицях" -#: common.c:233 +#: common.c:234 #, c-format msgid "reading partitioning data" msgstr "читання даних секції" -#: common.c:236 +#: common.c:237 #, c-format msgid "reading indexes" msgstr "читання індексів" -#: common.c:239 +#: common.c:240 #, c-format msgid "flagging indexes in partitioned tables" msgstr "помітка індексів в секційних таблицях" -#: common.c:242 +#: common.c:243 #, c-format msgid "reading extended statistics" msgstr "читання розширеної статистики" -#: common.c:245 +#: common.c:246 #, c-format msgid "reading constraints" msgstr "читання обмежень" -#: common.c:248 +#: common.c:249 #, c-format msgid "reading triggers" msgstr "читання тригерів" -#: common.c:251 +#: common.c:252 #, c-format msgid "reading rewrite rules" msgstr "читання правил перезаписування" -#: common.c:254 +#: common.c:255 #, c-format msgid "reading policies" msgstr "читання політик" -#: common.c:257 +#: common.c:258 #, c-format msgid "reading publications" msgstr "читання публікацій" -#: common.c:260 +#: common.c:261 #, c-format msgid "reading publication membership of tables" msgstr "читання членства публікації для таблиць" -#: common.c:263 +#: common.c:264 #, c-format msgid "reading publication membership of schemas" msgstr "читання членства публікації для схем" -#: common.c:266 +#: common.c:267 #, c-format msgid "reading subscriptions" msgstr "читання підписок" -#: common.c:345 +#: common.c:346 #, c-format msgid "invalid number of parents %d for table \"%s\"" msgstr "неприпустиме число батьківських елементів %d для таблиці \"%s\"" -#: common.c:1006 +#: common.c:1025 #, c-format msgid "failed sanity check, parent OID %u of table \"%s\" (OID %u) not found" msgstr "помилка перевірки, батьківський елемент ідентифікатора OID %u для таблиці \"%s\" (ідентифікатор OID %u) не знайдено" -#: common.c:1045 +#: common.c:1064 #, c-format msgid "could not parse numeric array \"%s\": too many numbers" msgstr "не вдалося проаналізувати числовий масив \"%s\": забагато чисел" -#: common.c:1057 +#: common.c:1076 #, c-format msgid "could not parse numeric array \"%s\": invalid character in number" msgstr "не вдалося проаналізувати числовий масив \"%s\": неприпустимий характер числа" @@ -476,7 +476,7 @@ msgstr "pgpipe: не вдалося зв'язатися з сокетом: ко msgid "pgpipe: could not accept connection: error code %d" msgstr "pgpipe: не вдалося прийняти зв'язок: код помилки %d" -#: pg_backup_archiver.c:280 pg_backup_archiver.c:1635 +#: pg_backup_archiver.c:280 pg_backup_archiver.c:1654 #, c-format msgid "could not close output file: %m" msgstr "не вдалося закрити вихідний файл: %m" @@ -521,72 +521,72 @@ msgstr "прямі з'днання з базою даних не підтрим msgid "implied data-only restore" msgstr "мається на увазі відновлення лише даних" -#: pg_backup_archiver.c:521 +#: pg_backup_archiver.c:532 #, c-format msgid "dropping %s %s" msgstr "видалення %s %s" -#: pg_backup_archiver.c:621 +#: pg_backup_archiver.c:632 #, c-format msgid "could not find where to insert IF EXISTS in statement \"%s\"" msgstr "не вдалося знайти, куди вставити IF EXISTS в інструкції \"%s\"" -#: pg_backup_archiver.c:777 pg_backup_archiver.c:779 +#: pg_backup_archiver.c:796 pg_backup_archiver.c:798 #, c-format msgid "warning from original dump file: %s" msgstr "попередження з оригінального файлу дамп: %s" -#: pg_backup_archiver.c:794 +#: pg_backup_archiver.c:813 #, c-format msgid "creating %s \"%s.%s\"" msgstr "створення %s \"%s.%s\"" -#: pg_backup_archiver.c:797 +#: pg_backup_archiver.c:816 #, c-format msgid "creating %s \"%s\"" msgstr "створення %s \" \"%s\"" -#: pg_backup_archiver.c:847 +#: pg_backup_archiver.c:866 #, c-format msgid "connecting to new database \"%s\"" msgstr "підключення до нової бази даних \"%s\"" -#: pg_backup_archiver.c:874 +#: pg_backup_archiver.c:893 #, c-format msgid "processing %s" msgstr "обробка %s" -#: pg_backup_archiver.c:896 +#: pg_backup_archiver.c:915 #, c-format msgid "processing data for table \"%s.%s\"" msgstr "обробка даних для таблиці \"%s.%s\"" -#: pg_backup_archiver.c:966 +#: pg_backup_archiver.c:985 #, c-format msgid "executing %s %s" msgstr "виконання %s %s" -#: pg_backup_archiver.c:1005 +#: pg_backup_archiver.c:1024 #, c-format msgid "disabling triggers for %s" msgstr "вимкнення тригерів для %s" -#: pg_backup_archiver.c:1031 +#: pg_backup_archiver.c:1050 #, c-format msgid "enabling triggers for %s" msgstr "увімкнення тригерів для %s" -#: pg_backup_archiver.c:1096 +#: pg_backup_archiver.c:1115 #, c-format msgid "internal error -- WriteData cannot be called outside the context of a DataDumper routine" msgstr "внутрішня помилка - WriteData не може бути викликана поза контекстом підпрограми DataDumper " -#: pg_backup_archiver.c:1282 +#: pg_backup_archiver.c:1301 #, c-format msgid "large-object output not supported in chosen format" msgstr "вивід великих об'єктів не підтримується у вибраному форматі" -#: pg_backup_archiver.c:1340 +#: pg_backup_archiver.c:1359 #, c-format msgid "restored %d large object" msgid_plural "restored %d large objects" @@ -595,55 +595,55 @@ msgstr[1] "відновлено %d великих об'єкти" msgstr[2] "відновлено %d великих об'єктів" msgstr[3] "відновлено %d великих об'єктів" -#: pg_backup_archiver.c:1361 pg_backup_tar.c:669 +#: pg_backup_archiver.c:1380 pg_backup_tar.c:669 #, c-format msgid "restoring large object with OID %u" msgstr "відновлення великого об'єкту з OID %u" -#: pg_backup_archiver.c:1373 +#: pg_backup_archiver.c:1392 #, c-format msgid "could not create large object %u: %s" msgstr "не вдалося створити великий об'єкт %u: %s" -#: pg_backup_archiver.c:1378 pg_dump.c:3655 +#: pg_backup_archiver.c:1397 pg_dump.c:3686 #, c-format msgid "could not open large object %u: %s" msgstr "не вдалося відкрити великий об'єкт %u: %s" -#: pg_backup_archiver.c:1434 +#: pg_backup_archiver.c:1453 #, c-format msgid "could not open TOC file \"%s\": %m" msgstr "не вдалося відкрити файл TOC \"%s\": %m" -#: pg_backup_archiver.c:1462 +#: pg_backup_archiver.c:1481 #, c-format msgid "line ignored: %s" msgstr "рядок проігноровано: %s" -#: pg_backup_archiver.c:1469 +#: pg_backup_archiver.c:1488 #, c-format msgid "could not find entry for ID %d" msgstr "не вдалося знайти введення для ID %d" -#: pg_backup_archiver.c:1492 pg_backup_directory.c:222 +#: pg_backup_archiver.c:1511 pg_backup_directory.c:222 #: pg_backup_directory.c:599 #, c-format msgid "could not close TOC file: %m" msgstr "не вдалося закрити файл TOC: %m" -#: pg_backup_archiver.c:1606 pg_backup_custom.c:156 pg_backup_directory.c:332 +#: pg_backup_archiver.c:1625 pg_backup_custom.c:156 pg_backup_directory.c:332 #: pg_backup_directory.c:586 pg_backup_directory.c:649 -#: pg_backup_directory.c:668 pg_dumpall.c:476 +#: pg_backup_directory.c:668 pg_dumpall.c:495 #, c-format msgid "could not open output file \"%s\": %m" msgstr "не вдалося відкрити вихідний файл \"%s\": %m" -#: pg_backup_archiver.c:1608 pg_backup_custom.c:162 +#: pg_backup_archiver.c:1627 pg_backup_custom.c:162 #, c-format msgid "could not open output file: %m" msgstr "не вдалося відкрити вихідний файл: %m" -#: pg_backup_archiver.c:1702 +#: pg_backup_archiver.c:1721 #, c-format msgid "wrote %zu byte of large object data (result = %d)" msgid_plural "wrote %zu bytes of large object data (result = %d)" @@ -652,258 +652,258 @@ msgstr[1] "записано %zu байти даних великого об'єк msgstr[2] "записано %zu байтів даних великого об'єкта (результат = %d)" msgstr[3] "записано %zu байтів даних великого об'єкта (результат = %d)" -#: pg_backup_archiver.c:1708 +#: pg_backup_archiver.c:1727 #, c-format msgid "could not write to large object: %s" msgstr "не вдалося записати до великого об'єкту: %s" -#: pg_backup_archiver.c:1798 +#: pg_backup_archiver.c:1817 #, c-format msgid "while INITIALIZING:" msgstr "при ІНІЦІАЛІЗАЦІЇ:" -#: pg_backup_archiver.c:1803 +#: pg_backup_archiver.c:1822 #, c-format msgid "while PROCESSING TOC:" msgstr "при ОБРОБЦІ TOC:" -#: pg_backup_archiver.c:1808 +#: pg_backup_archiver.c:1827 #, c-format msgid "while FINALIZING:" msgstr "при ЗАВЕРШЕННІ:" -#: pg_backup_archiver.c:1813 +#: pg_backup_archiver.c:1832 #, c-format msgid "from TOC entry %d; %u %u %s %s %s" msgstr "зі входження до TOC %d; %u %u %s %s %s" -#: pg_backup_archiver.c:1889 +#: pg_backup_archiver.c:1908 #, c-format msgid "bad dumpId" msgstr "невірний dumpId" -#: pg_backup_archiver.c:1910 +#: pg_backup_archiver.c:1929 #, c-format msgid "bad table dumpId for TABLE DATA item" msgstr "невірна таблиця dumpId для елементу даних таблиці" -#: pg_backup_archiver.c:2002 +#: pg_backup_archiver.c:2021 #, c-format msgid "unexpected data offset flag %d" msgstr "неочікувана позначка зсуву даних %d" -#: pg_backup_archiver.c:2015 +#: pg_backup_archiver.c:2034 #, c-format msgid "file offset in dump file is too large" msgstr "зсув файлу у файлі дампу завеликий" -#: pg_backup_archiver.c:2153 pg_backup_archiver.c:2163 +#: pg_backup_archiver.c:2172 pg_backup_archiver.c:2182 #, c-format msgid "directory name too long: \"%s\"" msgstr "ім'я каталогу задовге: \"%s\"" -#: pg_backup_archiver.c:2171 +#: pg_backup_archiver.c:2190 #, c-format msgid "directory \"%s\" does not appear to be a valid archive (\"toc.dat\" does not exist)" msgstr "каталог \"%s\" не схожий на архівний (\"toc.dat\" не існує)" -#: pg_backup_archiver.c:2179 pg_backup_custom.c:173 pg_backup_custom.c:807 +#: pg_backup_archiver.c:2198 pg_backup_custom.c:173 pg_backup_custom.c:807 #: pg_backup_directory.c:207 pg_backup_directory.c:395 #, c-format msgid "could not open input file \"%s\": %m" msgstr "не вдалося відкрити вхідний файл \"%s\": %m" -#: pg_backup_archiver.c:2186 pg_backup_custom.c:179 +#: pg_backup_archiver.c:2205 pg_backup_custom.c:179 #, c-format msgid "could not open input file: %m" msgstr "не вдалося відкрити вхідний файл: %m" -#: pg_backup_archiver.c:2192 +#: pg_backup_archiver.c:2211 #, c-format msgid "could not read input file: %m" msgstr "не вдалося прочитати вхідний файл: %m" -#: pg_backup_archiver.c:2194 +#: pg_backup_archiver.c:2213 #, c-format msgid "input file is too short (read %lu, expected 5)" msgstr "вхідний файл закороткий (прочитано %lu, очікувалось 5)" -#: pg_backup_archiver.c:2226 +#: pg_backup_archiver.c:2245 #, c-format msgid "input file appears to be a text format dump. Please use psql." msgstr "вхідний файл схожий на дамп текстового формату. Будь ласка, використайте psql." -#: pg_backup_archiver.c:2232 +#: pg_backup_archiver.c:2251 #, c-format msgid "input file does not appear to be a valid archive (too short?)" msgstr "вхідний файл не схожий на архівний (закороткий?)" -#: pg_backup_archiver.c:2238 +#: pg_backup_archiver.c:2257 #, c-format msgid "input file does not appear to be a valid archive" msgstr "вхідний файл не схожий на архівний" -#: pg_backup_archiver.c:2247 +#: pg_backup_archiver.c:2266 #, c-format msgid "could not close input file: %m" msgstr "не вдалося закрити вхідний файл: %m" -#: pg_backup_archiver.c:2364 +#: pg_backup_archiver.c:2383 #, c-format msgid "unrecognized file format \"%d\"" msgstr "нерозпізнаний формат файлу \"%d\"" -#: pg_backup_archiver.c:2446 pg_backup_archiver.c:4527 +#: pg_backup_archiver.c:2465 pg_backup_archiver.c:4551 #, c-format msgid "finished item %d %s %s" msgstr "завершений об'єкт %d %s %s" -#: pg_backup_archiver.c:2450 pg_backup_archiver.c:4540 +#: pg_backup_archiver.c:2469 pg_backup_archiver.c:4564 #, c-format msgid "worker process failed: exit code %d" msgstr "помилка при робочому процесі: код виходу %d" -#: pg_backup_archiver.c:2571 +#: pg_backup_archiver.c:2590 #, c-format msgid "entry ID %d out of range -- perhaps a corrupt TOC" msgstr "введення ідентифікатора %d поза діапазоном -- можливо, зміст пошкоджений" -#: pg_backup_archiver.c:2651 +#: pg_backup_archiver.c:2670 #, c-format msgid "restoring tables WITH OIDS is not supported anymore" msgstr "відновлення таблиць WITH OIDS більше не підтримується" -#: pg_backup_archiver.c:2733 +#: pg_backup_archiver.c:2752 #, c-format msgid "unrecognized encoding \"%s\"" msgstr "нерозпізнане кодування \"%s\"" -#: pg_backup_archiver.c:2739 +#: pg_backup_archiver.c:2758 #, c-format msgid "invalid ENCODING item: %s" msgstr "невірний об'єкт КОДУВАННЯ: %s" -#: pg_backup_archiver.c:2757 +#: pg_backup_archiver.c:2776 #, c-format msgid "invalid STDSTRINGS item: %s" msgstr "невірний об'єкт STDSTRINGS: %s" -#: pg_backup_archiver.c:2782 +#: pg_backup_archiver.c:2801 #, c-format msgid "schema \"%s\" not found" msgstr "схему \"%s\" не знайдено" -#: pg_backup_archiver.c:2789 +#: pg_backup_archiver.c:2808 #, c-format msgid "table \"%s\" not found" msgstr "таблицю \"%s\" не знайдено" -#: pg_backup_archiver.c:2796 +#: pg_backup_archiver.c:2815 #, c-format msgid "index \"%s\" not found" msgstr "індекс \"%s\" не знайдено" -#: pg_backup_archiver.c:2803 +#: pg_backup_archiver.c:2822 #, c-format msgid "function \"%s\" not found" msgstr "функцію \"%s\" не знайдено" -#: pg_backup_archiver.c:2810 +#: pg_backup_archiver.c:2829 #, c-format msgid "trigger \"%s\" not found" msgstr "тригер \"%s\" не знайдено" -#: pg_backup_archiver.c:3225 +#: pg_backup_archiver.c:3275 #, c-format msgid "could not set session user to \"%s\": %s" msgstr "не вдалося встановити користувача сеансу для \"%s\": %s" -#: pg_backup_archiver.c:3362 +#: pg_backup_archiver.c:3422 #, c-format msgid "could not set search_path to \"%s\": %s" msgstr "не вдалося встановити search_path для \"%s\": %s" -#: pg_backup_archiver.c:3424 +#: pg_backup_archiver.c:3484 #, c-format msgid "could not set default_tablespace to %s: %s" msgstr "не вдалося встановити default_tablespace для %s: %s" -#: pg_backup_archiver.c:3474 +#: pg_backup_archiver.c:3534 #, c-format msgid "could not set default_table_access_method: %s" msgstr "не вдалося встановити default_table_access_method для : %s" -#: pg_backup_archiver.c:3568 pg_backup_archiver.c:3733 +#: pg_backup_archiver.c:3628 pg_backup_archiver.c:3793 #, c-format msgid "don't know how to set owner for object type \"%s\"" msgstr "невідомо, як встановити власника об'єкту типу \"%s\"" -#: pg_backup_archiver.c:3836 +#: pg_backup_archiver.c:3860 #, c-format msgid "did not find magic string in file header" msgstr "в заголовку файлу не знайдено магічного рядка" -#: pg_backup_archiver.c:3850 +#: pg_backup_archiver.c:3874 #, c-format msgid "unsupported version (%d.%d) in file header" msgstr "в заголовку непідтримувана версія (%d.%d)" -#: pg_backup_archiver.c:3855 +#: pg_backup_archiver.c:3879 #, c-format msgid "sanity check on integer size (%lu) failed" msgstr "перевірка на розмір цілого числа (%lu) не вдалася" -#: pg_backup_archiver.c:3859 +#: pg_backup_archiver.c:3883 #, c-format msgid "archive was made on a machine with larger integers, some operations might fail" msgstr "архів зроблено на архітектурі з більшими цілими числами, деякі операції можуть не виконуватися" -#: pg_backup_archiver.c:3869 +#: pg_backup_archiver.c:3893 #, c-format msgid "expected format (%d) differs from format found in file (%d)" msgstr "очікуваний формат (%d) відрізняється від знайденого формату у файлі (%d)" -#: pg_backup_archiver.c:3884 +#: pg_backup_archiver.c:3908 #, c-format msgid "archive is compressed, but this installation does not support compression -- no data will be available" msgstr "архів стиснено, але ця інсталяція не підтримує стискання -- дані не будуть доступними " -#: pg_backup_archiver.c:3918 +#: pg_backup_archiver.c:3942 #, c-format msgid "invalid creation date in header" msgstr "неприпустима дата створення у заголовку" -#: pg_backup_archiver.c:4052 +#: pg_backup_archiver.c:4076 #, c-format msgid "processing item %d %s %s" msgstr "обробка елементу %d %s %s" -#: pg_backup_archiver.c:4131 +#: pg_backup_archiver.c:4155 #, c-format msgid "entering main parallel loop" msgstr "введення головного паралельного циклу" -#: pg_backup_archiver.c:4142 +#: pg_backup_archiver.c:4166 #, c-format msgid "skipping item %d %s %s" msgstr "пропускається елемент %d %s %s " -#: pg_backup_archiver.c:4151 +#: pg_backup_archiver.c:4175 #, c-format msgid "launching item %d %s %s" msgstr "запуск елементу %d %s %s " -#: pg_backup_archiver.c:4205 +#: pg_backup_archiver.c:4229 #, c-format msgid "finished main parallel loop" msgstr "головний паралельний цикл завершився" -#: pg_backup_archiver.c:4241 +#: pg_backup_archiver.c:4265 #, c-format msgid "processing missed item %d %s %s" msgstr "обробка втраченого елементу %d %s %s" -#: pg_backup_archiver.c:4846 +#: pg_backup_archiver.c:4870 #, c-format msgid "table \"%s\" could not be created, will not restore its data" msgstr "не вдалося створити таблицю \"%s\", дані не будуть відновлені" @@ -995,12 +995,12 @@ msgstr "ущільнювач активний" msgid "could not get server_version from libpq" msgstr "не вдалося отримати версію серверу з libpq" -#: pg_backup_db.c:53 pg_dumpall.c:1672 +#: pg_backup_db.c:53 pg_dumpall.c:1717 #, c-format msgid "aborting because of server version mismatch" msgstr "переривання через невідповідність версії серверу" -#: pg_backup_db.c:54 pg_dumpall.c:1673 +#: pg_backup_db.c:54 pg_dumpall.c:1718 #, c-format msgid "server version: %s; %s version: %s" msgstr "версія серверу: %s; версія %s: %s" @@ -1010,7 +1010,7 @@ msgstr "версія серверу: %s; версія %s: %s" msgid "already connected to a database" msgstr "вже під'єднано до бази даних" -#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1516 pg_dumpall.c:1621 +#: pg_backup_db.c:128 pg_backup_db.c:178 pg_dumpall.c:1561 pg_dumpall.c:1666 msgid "Password: " msgstr "Пароль: " @@ -1024,18 +1024,18 @@ msgstr "не вдалося зв'язатися з базою даних" msgid "reconnection failed: %s" msgstr "помилка повторного підключення: %s" -#: pg_backup_db.c:190 pg_backup_db.c:265 pg_dump_sort.c:1280 -#: pg_dump_sort.c:1300 pg_dumpall.c:1546 pg_dumpall.c:1630 +#: pg_backup_db.c:190 pg_backup_db.c:265 pg_dump_sort.c:1504 +#: pg_dump_sort.c:1524 pg_dumpall.c:1591 pg_dumpall.c:1675 #, c-format msgid "%s" msgstr "%s" -#: pg_backup_db.c:272 pg_dumpall.c:1735 pg_dumpall.c:1758 +#: pg_backup_db.c:272 pg_dumpall.c:1780 pg_dumpall.c:1803 #, c-format msgid "query failed: %s" msgstr "запит не вдався: %s" -#: pg_backup_db.c:274 pg_dumpall.c:1736 pg_dumpall.c:1759 +#: pg_backup_db.c:274 pg_dumpall.c:1781 pg_dumpall.c:1804 #, c-format msgid "Query was: %s" msgstr "Запит був: %s" @@ -1073,7 +1073,7 @@ msgstr "помилка повернулася від PQputCopyEnd: %s" msgid "COPY failed for table \"%s\": %s" msgstr "КОПІЮВАННЯ для таблиці \"%s\" не вдалося: %s" -#: pg_backup_db.c:522 pg_dump.c:2141 +#: pg_backup_db.c:522 pg_dump.c:2169 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "неочікувані зайві результати під час копіювання таблиці \"%s\"" @@ -1252,10 +1252,10 @@ msgstr "знайдено пошкоджений заголовок tar у %s (о msgid "unrecognized section name: \"%s\"" msgstr "нерозпізнане ім’я розділу: \"%s\"" -#: pg_backup_utils.c:55 pg_dump.c:629 pg_dump.c:646 pg_dumpall.c:340 -#: pg_dumpall.c:350 pg_dumpall.c:358 pg_dumpall.c:366 pg_dumpall.c:373 -#: pg_dumpall.c:383 pg_dumpall.c:458 pg_restore.c:291 pg_restore.c:307 -#: pg_restore.c:321 +#: pg_backup_utils.c:55 pg_dump.c:634 pg_dump.c:651 pg_dumpall.c:349 +#: pg_dumpall.c:359 pg_dumpall.c:367 pg_dumpall.c:375 pg_dumpall.c:382 +#: pg_dumpall.c:392 pg_dumpall.c:477 pg_restore.c:296 pg_restore.c:312 +#: pg_restore.c:326 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." @@ -1265,267 +1265,282 @@ msgstr "Спробуйте \"%s --help\" для додаткової інфор msgid "out of on_exit_nicely slots" msgstr "перевищено межу on_exit_nicely слотів" -#: pg_dump.c:644 pg_dumpall.c:348 pg_restore.c:305 +#: pg_dump.c:649 pg_dumpall.c:357 pg_restore.c:310 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_dump.c:663 pg_restore.c:328 +#: pg_dump.c:668 pg_restore.c:349 #, c-format msgid "options -s/--schema-only and -a/--data-only cannot be used together" msgstr "параметри -s/--schema-only і -a/--data-only не можуть використовуватись разом" -#: pg_dump.c:666 +#: pg_dump.c:671 #, c-format msgid "options -s/--schema-only and --include-foreign-data cannot be used together" msgstr "параметри -s/--schema-only і --include-foreign-data не можуть використовуватись разом" -#: pg_dump.c:669 +#: pg_dump.c:674 #, c-format msgid "option --include-foreign-data is not supported with parallel backup" msgstr "параметр --include-foreign-data не підтримується з паралельним резервним копіюванням" -#: pg_dump.c:672 pg_restore.c:331 +#: pg_dump.c:677 pg_restore.c:352 #, c-format msgid "options -c/--clean and -a/--data-only cannot be used together" msgstr "параметри -c/--clean і -a/--data-only не можна використовувати разом" -#: pg_dump.c:675 pg_dumpall.c:378 pg_restore.c:356 +#: pg_dump.c:680 pg_dumpall.c:387 pg_restore.c:377 #, c-format msgid "option --if-exists requires option -c/--clean" msgstr "параметр --if-exists потребує параметр -c/--clean" -#: pg_dump.c:682 +#: pg_dump.c:687 #, c-format msgid "option --on-conflict-do-nothing requires option --inserts, --rows-per-insert, or --column-inserts" msgstr "параметр --on-conflict-do-nothing вимагає опції --inserts, --rows-per-insert або --column-inserts" -#: pg_dump.c:704 +#: pg_dump.c:703 pg_dumpall.c:448 pg_restore.c:343 +#, c-format +msgid "could not generate restrict key" +msgstr "не вдалося згенерувати ключ обмеження" + +#: pg_dump.c:705 pg_dumpall.c:450 pg_restore.c:345 +#, c-format +msgid "invalid restrict key" +msgstr "неприпустимий ключ обмеження" + +#: pg_dump.c:708 +#, c-format +msgid "option --restrict-key can only be used with --format=plain" +msgstr "параметр --restrict-key можна використовувати тільки для --format=plain" + +#: pg_dump.c:723 #, c-format msgid "requested compression not available in this installation -- archive will be uncompressed" msgstr "затребуване стискання недоступне на цій системі -- архів не буде стискатися" -#: pg_dump.c:717 +#: pg_dump.c:736 #, c-format msgid "parallel backup only supported by the directory format" msgstr "паралельне резервне копіювання підтримується лише з форматом \"каталог\"" -#: pg_dump.c:763 +#: pg_dump.c:782 #, c-format msgid "last built-in OID is %u" msgstr "останній вбудований OID %u" -#: pg_dump.c:772 +#: pg_dump.c:791 #, c-format msgid "no matching schemas were found" msgstr "відповідних схем не знайдено" -#: pg_dump.c:786 +#: pg_dump.c:805 #, c-format msgid "no matching tables were found" msgstr "відповідних таблиць не знайдено" -#: pg_dump.c:808 +#: pg_dump.c:827 #, c-format msgid "no matching extensions were found" msgstr "не знайдено відповідних розширень" -#: pg_dump.c:991 +#: pg_dump.c:1011 #, c-format msgid "%s dumps a database as a text file or to other formats.\n\n" msgstr "%s зберігає резервну копію бази даних в текстовому файлі або в інших форматах.\n\n" -#: pg_dump.c:992 pg_dumpall.c:606 pg_restore.c:433 +#: pg_dump.c:1012 pg_dumpall.c:641 pg_restore.c:454 #, c-format msgid "Usage:\n" msgstr "Використання:\n" -#: pg_dump.c:993 +#: pg_dump.c:1013 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: pg_dump.c:995 pg_dumpall.c:609 pg_restore.c:436 +#: pg_dump.c:1015 pg_dumpall.c:644 pg_restore.c:457 #, c-format msgid "\n" "General options:\n" msgstr "\n" "Основні налаштування:\n" -#: pg_dump.c:996 +#: pg_dump.c:1016 #, c-format msgid " -f, --file=FILENAME output file or directory name\n" msgstr " -f, --file=FILENAME ім'я файлу виводу або каталогу\n" -#: pg_dump.c:997 +#: pg_dump.c:1017 #, c-format msgid " -F, --format=c|d|t|p output file format (custom, directory, tar,\n" " plain text (default))\n" msgstr " -F, --format=c|d|t|p формат файлу виводу (спеціальний, каталог, tar,\n" " звичайний текст (за замовчуванням))\n" -#: pg_dump.c:999 +#: pg_dump.c:1019 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to dump\n" msgstr " -j, --jobs=NUM використовувати ці паралельні завдання для вивантаження\n" -#: pg_dump.c:1000 pg_dumpall.c:611 +#: pg_dump.c:1020 pg_dumpall.c:646 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose детальний режим\n" -#: pg_dump.c:1001 pg_dumpall.c:612 +#: pg_dump.c:1021 pg_dumpall.c:647 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: pg_dump.c:1002 +#: pg_dump.c:1022 #, c-format msgid " -Z, --compress=0-9 compression level for compressed formats\n" msgstr " -Z, --compress=0-9 рівень стискання для стиснутих форматів\n" -#: pg_dump.c:1003 pg_dumpall.c:613 +#: pg_dump.c:1023 pg_dumpall.c:648 #, c-format msgid " --lock-wait-timeout=TIMEOUT fail after waiting TIMEOUT for a table lock\n" msgstr " --lock-wait-timeout=TIMEOUT помилка після очікування TIMEOUT для блокування таблиці\n" -#: pg_dump.c:1004 pg_dumpall.c:640 +#: pg_dump.c:1024 pg_dumpall.c:675 #, c-format msgid " --no-sync do not wait for changes to be written safely to disk\n" msgstr " --no-sync не чекати безпечного збереження змін на диск\n" -#: pg_dump.c:1005 pg_dumpall.c:614 +#: pg_dump.c:1025 pg_dumpall.c:649 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: pg_dump.c:1007 pg_dumpall.c:615 +#: pg_dump.c:1027 pg_dumpall.c:650 #, c-format msgid "\n" "Options controlling the output content:\n" msgstr "\n" "Параметри, що керують вихідним вмістом:\n" -#: pg_dump.c:1008 pg_dumpall.c:616 +#: pg_dump.c:1028 pg_dumpall.c:651 #, c-format msgid " -a, --data-only dump only the data, not the schema\n" msgstr " -a, --data-only вивантажити лише дані, без схеми\n" -#: pg_dump.c:1009 +#: pg_dump.c:1029 #, c-format msgid " -b, --blobs include large objects in dump\n" msgstr " -b, --blobs включити у вивантаження великі об'єкти\n" -#: pg_dump.c:1010 +#: pg_dump.c:1030 #, c-format msgid " -B, --no-blobs exclude large objects in dump\n" msgstr " -B, --no-blobs виключити з вивантаження великі об'єкти\n" -#: pg_dump.c:1011 pg_restore.c:447 +#: pg_dump.c:1031 pg_restore.c:468 #, c-format msgid " -c, --clean clean (drop) database objects before recreating\n" msgstr " -c, --clean видалити об'єкти бази даних перед перед повторним створенням\n" -#: pg_dump.c:1012 +#: pg_dump.c:1032 #, c-format msgid " -C, --create include commands to create database in dump\n" msgstr " -C, --create включити у вивантаження команди для створення бази даних\n" -#: pg_dump.c:1013 +#: pg_dump.c:1033 #, c-format msgid " -e, --extension=PATTERN dump the specified extension(s) only\n" msgstr " -e, --extension=PATTERN вивантажити лише вказане(і) розширення\n" -#: pg_dump.c:1014 pg_dumpall.c:618 +#: pg_dump.c:1034 pg_dumpall.c:653 #, c-format msgid " -E, --encoding=ENCODING dump the data in encoding ENCODING\n" msgstr " -E, --encoding=ENCODING вивантажити дані в кодуванні ENCODING\n" -#: pg_dump.c:1015 +#: pg_dump.c:1035 #, c-format msgid " -n, --schema=PATTERN dump the specified schema(s) only\n" msgstr " -n, --schema=PATTERN вивантажити лише вказану схему(и)\n" -#: pg_dump.c:1016 +#: pg_dump.c:1036 #, c-format msgid " -N, --exclude-schema=PATTERN do NOT dump the specified schema(s)\n" msgstr " -N, --exclude-schema=PATTERN НЕ вивантажувати вказану схему(и)\n" -#: pg_dump.c:1017 +#: pg_dump.c:1037 #, c-format msgid " -O, --no-owner skip restoration of object ownership in\n" " plain-text format\n" msgstr " -O, --no-owner пропускати відновлення володіння об'єктами\n" " при використанні текстового формату\n" -#: pg_dump.c:1019 pg_dumpall.c:622 +#: pg_dump.c:1039 pg_dumpall.c:657 #, c-format msgid " -s, --schema-only dump only the schema, no data\n" msgstr " -s, --schema-only вивантажити лише схему, без даних\n" -#: pg_dump.c:1020 +#: pg_dump.c:1040 #, c-format msgid " -S, --superuser=NAME superuser user name to use in plain-text format\n" msgstr " -S, --superuser=NAME ім'я користувача, яке буде використовуватись у звичайних текстових форматах\n" -#: pg_dump.c:1021 +#: pg_dump.c:1041 #, c-format msgid " -t, --table=PATTERN dump the specified table(s) only\n" msgstr " -t, --table=PATTERN вивантажити лише вказані таблиці\n" -#: pg_dump.c:1022 +#: pg_dump.c:1042 #, c-format msgid " -T, --exclude-table=PATTERN do NOT dump the specified table(s)\n" msgstr " -T, --exclude-table=PATTERN НЕ вивантажувати вказані таблиці\n" -#: pg_dump.c:1023 pg_dumpall.c:625 +#: pg_dump.c:1043 pg_dumpall.c:660 #, c-format msgid " -x, --no-privileges do not dump privileges (grant/revoke)\n" msgstr " -x, --no-privileges не вивантажувати права (надання/відкликання)\n" -#: pg_dump.c:1024 pg_dumpall.c:626 +#: pg_dump.c:1044 pg_dumpall.c:661 #, c-format msgid " --binary-upgrade for use by upgrade utilities only\n" msgstr " --binary-upgrade для використання лише утилітами оновлення\n" -#: pg_dump.c:1025 pg_dumpall.c:627 +#: pg_dump.c:1045 pg_dumpall.c:662 #, c-format msgid " --column-inserts dump data as INSERT commands with column names\n" msgstr " --column-inserts вивантажити дані у вигляді команд INSERT з іменами стовпців\n" -#: pg_dump.c:1026 pg_dumpall.c:628 +#: pg_dump.c:1046 pg_dumpall.c:663 #, c-format msgid " --disable-dollar-quoting disable dollar quoting, use SQL standard quoting\n" msgstr " --disable-dollar-quoting вимкнути цінову пропозицію $, використовувати SQL стандартну цінову пропозицію\n" -#: pg_dump.c:1027 pg_dumpall.c:629 pg_restore.c:464 +#: pg_dump.c:1047 pg_dumpall.c:664 pg_restore.c:485 #, c-format msgid " --disable-triggers disable triggers during data-only restore\n" msgstr " --disable-triggers вимкнути тригери лише під час відновлення даних\n" -#: pg_dump.c:1028 +#: pg_dump.c:1048 #, c-format msgid " --enable-row-security enable row security (dump only content user has\n" " access to)\n" msgstr " --enable-row-security активувати захист на рівні рядків (вивантажити лише той вміст, до якого\n" " користувач має доступ)\n" -#: pg_dump.c:1030 +#: pg_dump.c:1050 #, c-format msgid " --exclude-table-data=PATTERN do NOT dump data for the specified table(s)\n" msgstr " --exclude-table-data=PATTERN НЕ вивантажувати дані вказаних таблиць\n" -#: pg_dump.c:1031 pg_dumpall.c:631 +#: pg_dump.c:1051 pg_dumpall.c:666 #, c-format msgid " --extra-float-digits=NUM override default setting for extra_float_digits\n" msgstr " --extra-float-digits=NUM змінити параметр за замовчуванням для extra_float_digits\n" -#: pg_dump.c:1032 pg_dumpall.c:632 pg_restore.c:466 +#: pg_dump.c:1052 pg_dumpall.c:667 pg_restore.c:487 #, c-format msgid " --if-exists use IF EXISTS when dropping objects\n" msgstr " --if-exists використовувати IF EXISTS під час видалення об'єктів\n" -#: pg_dump.c:1033 +#: pg_dump.c:1053 #, c-format msgid " --include-foreign-data=PATTERN\n" " include data of foreign tables on foreign\n" @@ -1534,94 +1549,99 @@ msgstr " --include-foreign-data=ШАБЛОН\n" " включають дані підлеглих таблиць на підлеглих\n" " сервери, що відповідають ШАБЛОНУ\n" -#: pg_dump.c:1036 pg_dumpall.c:633 +#: pg_dump.c:1056 pg_dumpall.c:668 #, c-format msgid " --inserts dump data as INSERT commands, rather than COPY\n" msgstr " --inserts вивантажити дані у вигляді команд INSERT, не COPY\n" -#: pg_dump.c:1037 pg_dumpall.c:634 +#: pg_dump.c:1057 pg_dumpall.c:669 #, c-format msgid " --load-via-partition-root load partitions via the root table\n" msgstr " --load-via-partition-root завантажувати секції через головну таблицю\n" -#: pg_dump.c:1038 pg_dumpall.c:635 +#: pg_dump.c:1058 pg_dumpall.c:670 #, c-format msgid " --no-comments do not dump comments\n" msgstr " --no-comments не вивантажувати коментарі\n" -#: pg_dump.c:1039 pg_dumpall.c:636 +#: pg_dump.c:1059 pg_dumpall.c:671 #, c-format msgid " --no-publications do not dump publications\n" msgstr " --no-publications не вивантажувати публікації\n" -#: pg_dump.c:1040 pg_dumpall.c:638 +#: pg_dump.c:1060 pg_dumpall.c:673 #, c-format msgid " --no-security-labels do not dump security label assignments\n" msgstr " --no-security-labels не вивантажувати завдання міток безпеки\n" -#: pg_dump.c:1041 pg_dumpall.c:639 +#: pg_dump.c:1061 pg_dumpall.c:674 #, c-format msgid " --no-subscriptions do not dump subscriptions\n" msgstr " --no-subscriptions не вивантажувати підписки\n" -#: pg_dump.c:1042 pg_dumpall.c:641 +#: pg_dump.c:1062 pg_dumpall.c:676 #, c-format msgid " --no-table-access-method do not dump table access methods\n" msgstr " --no-table-access-method не вивантажувати табличні методи доступу\n" -#: pg_dump.c:1043 pg_dumpall.c:642 +#: pg_dump.c:1063 pg_dumpall.c:677 #, c-format msgid " --no-tablespaces do not dump tablespace assignments\n" msgstr " --no-tablespaces не вивантажувати призначення табличних просторів\n" -#: pg_dump.c:1044 pg_dumpall.c:643 +#: pg_dump.c:1064 pg_dumpall.c:678 #, c-format msgid " --no-toast-compression do not dump TOAST compression methods\n" msgstr " --no-toast-compression не вивантажувати методи стиснення TOAST\n" -#: pg_dump.c:1045 pg_dumpall.c:644 +#: pg_dump.c:1065 pg_dumpall.c:679 #, c-format msgid " --no-unlogged-table-data do not dump unlogged table data\n" msgstr " --no-unlogged-table-data не вивантажувати дані таблиць, які не журналюються\n" -#: pg_dump.c:1046 pg_dumpall.c:645 +#: pg_dump.c:1066 pg_dumpall.c:680 #, c-format msgid " --on-conflict-do-nothing add ON CONFLICT DO NOTHING to INSERT commands\n" msgstr " --on-conflict-do-nothing додавати ON CONFLICT DO NOTHING до команди INSERT\n" -#: pg_dump.c:1047 pg_dumpall.c:646 +#: pg_dump.c:1067 pg_dumpall.c:681 #, c-format msgid " --quote-all-identifiers quote all identifiers, even if not key words\n" msgstr " --quote-all-identifiers укладати в лапки всі ідентифікатори, а не тільки ключові слова\n" -#: pg_dump.c:1048 pg_dumpall.c:647 +#: pg_dump.c:1068 pg_dumpall.c:682 pg_restore.c:496 +#, c-format +msgid " --restrict-key=RESTRICT_KEY use provided string as psql \\restrict key\n" +msgstr " --restrict-key=RESTRICT_KEY використовувати вказаний рядок як ключ psql \\restrict\n" + +#: pg_dump.c:1069 pg_dumpall.c:683 #, c-format msgid " --rows-per-insert=NROWS number of rows per INSERT; implies --inserts\n" msgstr " --rows-per-insert=NROWS кількість рядків для INSERT; вимагає параметру --inserts\n" -#: pg_dump.c:1049 +#: pg_dump.c:1070 #, c-format msgid " --section=SECTION dump named section (pre-data, data, or post-data)\n" msgstr " --section=SECTION вивантажити вказану секцію (pre-data, data або post-data)\n" -#: pg_dump.c:1050 +#: pg_dump.c:1071 #, c-format msgid " --serializable-deferrable wait until the dump can run without anomalies\n" msgstr " --serializable-deferrable чекати коли вивантаження можна буде виконати без аномалій\n" -#: pg_dump.c:1051 +#: pg_dump.c:1072 #, c-format msgid " --snapshot=SNAPSHOT use given snapshot for the dump\n" msgstr " --snapshot=SNAPSHOT використовувати під час вивантаження вказаний знімок\n" -#: pg_dump.c:1052 pg_restore.c:476 +#: pg_dump.c:1073 pg_restore.c:498 #, c-format msgid " --strict-names require table and/or schema include patterns to\n" " match at least one entity each\n" msgstr " --strict-names потребувати, щоб при вказівці шаблону включення\n" " таблиці і/або схеми йому відповідав мінімум один об'єкт\n" -#: pg_dump.c:1054 pg_dumpall.c:648 pg_restore.c:478 +#: pg_dump.c:1075 pg_dumpall.c:684 pg_restore.c:500 #, c-format msgid " --use-set-session-authorization\n" " use SET SESSION AUTHORIZATION commands instead of\n" @@ -1630,49 +1650,49 @@ msgstr " --use-set-session-authorization\n" " щоб встановити власника, використати команди SET SESSION AUTHORIZATION,\n" " замість команд ALTER OWNER\n" -#: pg_dump.c:1058 pg_dumpall.c:652 pg_restore.c:482 +#: pg_dump.c:1079 pg_dumpall.c:688 pg_restore.c:504 #, c-format msgid "\n" "Connection options:\n" msgstr "\n" "Налаштування з'єднання:\n" -#: pg_dump.c:1059 +#: pg_dump.c:1080 #, c-format msgid " -d, --dbname=DBNAME database to dump\n" msgstr " -d, --dbname=DBNAME ім'я бази даних для вивантаження\n" -#: pg_dump.c:1060 pg_dumpall.c:654 pg_restore.c:483 +#: pg_dump.c:1081 pg_dumpall.c:690 pg_restore.c:505 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME хост серверу баз даних або каталог сокетів\n" -#: pg_dump.c:1061 pg_dumpall.c:656 pg_restore.c:484 +#: pg_dump.c:1082 pg_dumpall.c:692 pg_restore.c:506 #, c-format msgid " -p, --port=PORT database server port number\n" msgstr " -p, --port=PORT номер порту сервера бази даних\n" -#: pg_dump.c:1062 pg_dumpall.c:657 pg_restore.c:485 +#: pg_dump.c:1083 pg_dumpall.c:693 pg_restore.c:507 #, c-format msgid " -U, --username=NAME connect as specified database user\n" msgstr " -U, --username=NAME підключатись як вказаний користувач бази даних\n" -#: pg_dump.c:1063 pg_dumpall.c:658 pg_restore.c:486 +#: pg_dump.c:1084 pg_dumpall.c:694 pg_restore.c:508 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: pg_dump.c:1064 pg_dumpall.c:659 pg_restore.c:487 +#: pg_dump.c:1085 pg_dumpall.c:695 pg_restore.c:509 #, c-format msgid " -W, --password force password prompt (should happen automatically)\n" msgstr " -W, --password запитувати пароль завжди (повинно траплятись автоматично)\n" -#: pg_dump.c:1065 pg_dumpall.c:660 +#: pg_dump.c:1086 pg_dumpall.c:696 #, c-format msgid " --role=ROLENAME do SET ROLE before dump\n" msgstr " --role=ROLENAME виконати SET ROLE до вивантаження\n" -#: pg_dump.c:1067 +#: pg_dump.c:1088 #, c-format msgid "\n" "If no database name is supplied, then the PGDATABASE environment\n" @@ -1680,234 +1700,234 @@ msgid "\n" msgstr "\n" "Якщо ім'я бази даних не вказано, тоді використовується значення змінної середовища PGDATABASE.\n\n" -#: pg_dump.c:1069 pg_dumpall.c:664 pg_restore.c:494 +#: pg_dump.c:1090 pg_dumpall.c:700 pg_restore.c:516 #, c-format msgid "Report bugs to <%s>.\n" msgstr "Повідомляти про помилки на <%s>.\n" -#: pg_dump.c:1070 pg_dumpall.c:665 pg_restore.c:495 +#: pg_dump.c:1091 pg_dumpall.c:701 pg_restore.c:517 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" -#: pg_dump.c:1089 pg_dumpall.c:488 +#: pg_dump.c:1110 pg_dumpall.c:507 #, c-format msgid "invalid client encoding \"%s\" specified" msgstr "вказано неприпустиме клієнтське кодування \"%s\"" -#: pg_dump.c:1235 +#: pg_dump.c:1256 #, c-format msgid "parallel dumps from standby servers are not supported by this server version" msgstr "паралельні вивантаження для резервних серверів не підтримуються цією версію сервера" -#: pg_dump.c:1300 +#: pg_dump.c:1321 #, c-format msgid "invalid output format \"%s\" specified" msgstr "вказано неприпустимий формат виводу \"%s\"" -#: pg_dump.c:1341 pg_dump.c:1397 pg_dump.c:1450 pg_dumpall.c:1308 +#: pg_dump.c:1362 pg_dump.c:1418 pg_dump.c:1471 pg_dumpall.c:1350 #, c-format msgid "improper qualified name (too many dotted names): %s" msgstr "неправильне повне ім'я (забагато компонентів): %s" -#: pg_dump.c:1349 +#: pg_dump.c:1370 #, c-format msgid "no matching schemas were found for pattern \"%s\"" msgstr "не знайдено відповідних схем для візерунку \"%s\"" -#: pg_dump.c:1402 +#: pg_dump.c:1423 #, c-format msgid "no matching extensions were found for pattern \"%s\"" msgstr "не знайдено відповідних розширень для шаблону \"%s\"" -#: pg_dump.c:1455 +#: pg_dump.c:1476 #, c-format msgid "no matching foreign servers were found for pattern \"%s\"" msgstr "не знайдено відповідних підлеглих серверів для шаблону \"%s\"" -#: pg_dump.c:1518 +#: pg_dump.c:1539 #, c-format msgid "improper relation name (too many dotted names): %s" msgstr "неправильне ім'я зв'язку (забагато компонентів): %s" -#: pg_dump.c:1529 +#: pg_dump.c:1550 #, c-format msgid "no matching tables were found for pattern \"%s\"" msgstr "не знайдено відповідних таблиць для візерунку\"%s\"" -#: pg_dump.c:1556 +#: pg_dump.c:1577 #, c-format msgid "You are currently not connected to a database." msgstr "На даний момент ви від'єднанні від бази даних." -#: pg_dump.c:1559 +#: pg_dump.c:1580 #, c-format msgid "cross-database references are not implemented: %s" msgstr "міжбазові посилання не реалізовані: %s" -#: pg_dump.c:2012 +#: pg_dump.c:2040 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "вивантажування змісту таблиці \"%s.%s\"" -#: pg_dump.c:2122 +#: pg_dump.c:2150 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Помилка вивантажування змісту таблиці \"%s\": помилка в PQgetCopyData()." -#: pg_dump.c:2123 pg_dump.c:2133 +#: pg_dump.c:2151 pg_dump.c:2161 #, c-format msgid "Error message from server: %s" msgstr "Повідомлення про помилку від сервера: %s" -#: pg_dump.c:2124 pg_dump.c:2134 +#: pg_dump.c:2152 pg_dump.c:2162 #, c-format msgid "Command was: %s" msgstr "Команда була: %s" -#: pg_dump.c:2132 +#: pg_dump.c:2160 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Помилка вивантажування змісту таблиці \"%s\": помилка в PQgetResult(). " -#: pg_dump.c:2223 +#: pg_dump.c:2251 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "неправильна кількість полів отриманих з таблиці \"%s\"" -#: pg_dump.c:2923 +#: pg_dump.c:2954 #, c-format msgid "saving database definition" msgstr "збереження визначення бази даних" -#: pg_dump.c:3019 +#: pg_dump.c:3050 #, c-format msgid "unrecognized locale provider: %s" msgstr "нерозпізнаний постачальник локалів: %s" -#: pg_dump.c:3365 +#: pg_dump.c:3396 #, c-format msgid "saving encoding = %s" msgstr "збереження кодування = %s" -#: pg_dump.c:3390 +#: pg_dump.c:3421 #, c-format msgid "saving standard_conforming_strings = %s" msgstr "збереження standard_conforming_strings = %s" -#: pg_dump.c:3429 +#: pg_dump.c:3460 #, c-format msgid "could not parse result of current_schemas()" msgstr "не вдалося проаналізувати результат current_schemas()" -#: pg_dump.c:3448 +#: pg_dump.c:3479 #, c-format msgid "saving search_path = %s" msgstr "збереження search_path = %s" -#: pg_dump.c:3486 +#: pg_dump.c:3517 #, c-format msgid "reading large objects" msgstr "читання великих об’єктів" -#: pg_dump.c:3624 +#: pg_dump.c:3655 #, c-format msgid "saving large objects" msgstr "збереження великих об’єктів" -#: pg_dump.c:3665 +#: pg_dump.c:3696 #, c-format msgid "error reading large object %u: %s" msgstr "помилка читання великих об’єктів %u: %s" -#: pg_dump.c:3771 +#: pg_dump.c:3802 #, c-format msgid "reading row-level security policies" msgstr "читання політик безпеки на рівні рядків" -#: pg_dump.c:3912 +#: pg_dump.c:3943 #, c-format msgid "unexpected policy command type: %c" msgstr "неочікуваний тип команди в політиці: %c" -#: pg_dump.c:4362 pg_dump.c:4702 pg_dump.c:11911 pg_dump.c:17801 -#: pg_dump.c:17803 pg_dump.c:18424 +#: pg_dump.c:4393 pg_dump.c:4733 pg_dump.c:11974 pg_dump.c:17899 +#: pg_dump.c:17901 pg_dump.c:18522 #, c-format msgid "could not parse %s array" msgstr "не вдалося аналізувати масив %s" -#: pg_dump.c:4570 +#: pg_dump.c:4601 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "підписки не вивантажені через те, що чинний користувач не є суперкористувачем" -#: pg_dump.c:5084 +#: pg_dump.c:5115 #, c-format msgid "could not find parent extension for %s %s" msgstr "не вдалося знайти батьківський елемент для %s %s" -#: pg_dump.c:5229 +#: pg_dump.c:5260 #, c-format msgid "schema with OID %u does not exist" msgstr "схема з OID %u не існує" -#: pg_dump.c:6685 pg_dump.c:17065 +#: pg_dump.c:6743 pg_dump.c:17158 #, c-format msgid "failed sanity check, parent table with OID %u of sequence with OID %u not found" msgstr "помилка цілісності, за OID %u не вдалося знайти батьківську таблицю послідовності з OID %u" -#: pg_dump.c:6830 +#: pg_dump.c:6888 #, c-format msgid "failed sanity check, table OID %u appearing in pg_partitioned_table not found" msgstr "помилка цілісності, OID %u не знайдено в таблиці pg_partitioned_table" -#: pg_dump.c:7061 pg_dump.c:7332 pg_dump.c:7803 pg_dump.c:8470 pg_dump.c:8591 -#: pg_dump.c:8745 +#: pg_dump.c:7119 pg_dump.c:7390 pg_dump.c:7861 pg_dump.c:8528 pg_dump.c:8649 +#: pg_dump.c:8803 #, c-format msgid "unrecognized table OID %u" msgstr "нерозпізнаний OID таблиці %u" -#: pg_dump.c:7065 +#: pg_dump.c:7123 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "неочікувані дані індексу для таблиці \"%s\"" -#: pg_dump.c:7564 +#: pg_dump.c:7622 #, c-format msgid "failed sanity check, parent table with OID %u of pg_rewrite entry with OID %u not found" msgstr "помилка цілісності, за OID %u не вдалося знайти батьківську таблицю для запису pg_rewrite з OID %u" -#: pg_dump.c:7855 +#: pg_dump.c:7913 #, c-format msgid "query produced null referenced table name for foreign key trigger \"%s\" on table \"%s\" (OID of table: %u)" msgstr "запит не повернув ім'я цільової таблиці для тригера зовнішнього ключа \"%s\" в таблиці \"%s\" (OID цільової таблиці: %u)" -#: pg_dump.c:8474 +#: pg_dump.c:8532 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "неочікувані дані стовпця для таблиці \"%s\"" -#: pg_dump.c:8504 +#: pg_dump.c:8562 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "неприпустима нумерація стовпців у таблиці \"%s\"" -#: pg_dump.c:8553 +#: pg_dump.c:8611 #, c-format msgid "finding table default expressions" msgstr "пошук виразів за замовчуванням для таблиці" -#: pg_dump.c:8595 +#: pg_dump.c:8653 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "неприпустиме значення adnum %d для таблиці \"%s\"" -#: pg_dump.c:8695 +#: pg_dump.c:8753 #, c-format msgid "finding table check constraints" msgstr "пошук перевірочних обмежень таблиці" -#: pg_dump.c:8749 +#: pg_dump.c:8807 #, 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" @@ -1916,172 +1936,172 @@ msgstr[1] "очікувалось %d обмеження-перевірки дл msgstr[2] "очікувалось %d обмежень-перевірок для таблиці \"%s\", але знайдено %d" msgstr[3] "очікувалось %d обмежень-перевірок для таблиці \"%s\", але знайдено %d" -#: pg_dump.c:8753 +#: pg_dump.c:8811 #, c-format msgid "The system catalogs might be corrupted." msgstr "Системні каталоги можуть бути пошкоджені." -#: pg_dump.c:9443 +#: pg_dump.c:9501 #, c-format msgid "role with OID %u does not exist" msgstr "роль з OID %u не існує" -#: pg_dump.c:9555 pg_dump.c:9584 +#: pg_dump.c:9613 pg_dump.c:9642 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "непідтримуваний запис в pg_init_privs: %u %u %d" -#: pg_dump.c:10405 +#: pg_dump.c:10463 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "typtype типу даних \"%s\" має неприпустимий вигляд" -#: pg_dump.c:11980 +#: pg_dump.c:12043 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "нерозпізнане значення provolatile для функції \"%s\"" -#: pg_dump.c:12030 pg_dump.c:13893 +#: pg_dump.c:12093 pg_dump.c:13956 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "нерозпізнане значення proparallel для функції \"%s\"" -#: pg_dump.c:12162 pg_dump.c:12268 pg_dump.c:12275 +#: pg_dump.c:12225 pg_dump.c:12331 pg_dump.c:12338 #, c-format msgid "could not find function definition for function with OID %u" msgstr "не вдалося знайти визначення функції для функції з OID %u" -#: pg_dump.c:12201 +#: pg_dump.c:12264 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "неприпустиме значення в полі pg_cast.castfunc або pg_cast.castmethod" -#: pg_dump.c:12204 +#: pg_dump.c:12267 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "неприпустиме значення в полі pg_cast.castmethod" -#: pg_dump.c:12294 +#: pg_dump.c:12357 #, c-format msgid "bogus transform definition, at least one of trffromsql and trftosql should be nonzero" msgstr "неприпустиме визначення перетворення, як мінімум одне з trffromsql і trftosql повинно бути ненульовим" -#: pg_dump.c:12311 +#: pg_dump.c:12374 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "неприпустиме значення в полі pg_transform.trffromsql" -#: pg_dump.c:12332 +#: pg_dump.c:12395 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "неприпустиме значення в полі pg_transform.trftosql" -#: pg_dump.c:12477 +#: pg_dump.c:12540 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "постфіксні оператори більше не підтримуються (оператор \"%s\")" -#: pg_dump.c:12647 +#: pg_dump.c:12710 #, c-format msgid "could not find operator with OID %s" msgstr "не вдалося знайти оператора з OID %s" -#: pg_dump.c:12715 +#: pg_dump.c:12778 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "неприпустимий тип \"%c\" методу доступу \"%s\"" -#: pg_dump.c:13369 pg_dump.c:13422 +#: pg_dump.c:13432 pg_dump.c:13485 #, c-format msgid "unrecognized collation provider: %s" msgstr "нерозпізнаний постачальник правил сортування: %s" -#: pg_dump.c:13378 pg_dump.c:13387 pg_dump.c:13397 pg_dump.c:13406 +#: pg_dump.c:13441 pg_dump.c:13450 pg_dump.c:13460 pg_dump.c:13469 #, c-format msgid "invalid collation \"%s\"" msgstr "неприпустиме правило сортування \"%s\"" -#: pg_dump.c:13812 +#: pg_dump.c:13875 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "нерозпізнане значення aggfinalmodify для агрегату \"%s\"" -#: pg_dump.c:13868 +#: pg_dump.c:13931 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "нерозпізнане значення aggmfinalmodify для агрегату \"%s\"" -#: pg_dump.c:14586 +#: pg_dump.c:14649 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "нерозпізнаний тип об’єкта у стандартному праві: %d" -#: pg_dump.c:14602 +#: pg_dump.c:14665 #, c-format msgid "could not parse default ACL list (%s)" msgstr "не вдалося проаналізувати стандартний ACL список (%s)" -#: pg_dump.c:14684 +#: pg_dump.c:14747 #, c-format msgid "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "не вдалося аналізувати початковий список ACL (%s) або за замовченням (%s) для об'єкта \"%s\" (%s)" -#: pg_dump.c:14709 +#: pg_dump.c:14772 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "не вдалося аналізувати список ACL (%s) або за замовчуванням (%s) для об'єкту \"%s\" (%s)" -#: pg_dump.c:15247 +#: pg_dump.c:15310 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "запит на отримання визначення перегляду \"%s\" не повернув дані" -#: pg_dump.c:15250 +#: pg_dump.c:15313 #, c-format msgid "query to obtain definition of view \"%s\" returned more than one definition" msgstr "запит на отримання визначення перегляду \"%s\" повернув більше, ніж одне визначення" -#: pg_dump.c:15257 +#: pg_dump.c:15320 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "визначення перегляду \"%s\" пусте (довжина нуль)" -#: pg_dump.c:15341 +#: pg_dump.c:15404 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "WITH OIDS більше не підтримується (таблиця\"%s\")" -#: pg_dump.c:16270 +#: pg_dump.c:16333 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "неприпустиме число стовпців %d для таблиці \"%s\"" -#: pg_dump.c:16348 +#: pg_dump.c:16411 #, c-format msgid "could not parse index statistic columns" msgstr "не вдалося проаналізувати стовпці статистики індексів" -#: pg_dump.c:16350 +#: pg_dump.c:16413 #, c-format msgid "could not parse index statistic values" msgstr "не вдалося проаналізувати значення статистики індексів" -#: pg_dump.c:16352 +#: pg_dump.c:16415 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "невідповідна кількість стовпців і значень для статистики індексів" -#: pg_dump.c:16570 +#: pg_dump.c:16647 #, c-format msgid "missing index for constraint \"%s\"" msgstr "пропущено індекс для обмеження \"%s\"" -#: pg_dump.c:16798 +#: pg_dump.c:16891 #, c-format msgid "unrecognized constraint type: %c" msgstr "нерозпізнаний тип обмеження: %c" -#: pg_dump.c:16899 pg_dump.c:17129 +#: pg_dump.c:16992 pg_dump.c:17222 #, c-format 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)" @@ -2090,67 +2110,67 @@ msgstr[1] "запит на отримання даних послідовнос msgstr[2] "запит на отримання даних послідовності \"%s\" повернув %d рядків (очікувалося 1)" msgstr[3] "запит на отримання даних послідовності \"%s\" повернув %d рядків (очікувалося 1)" -#: pg_dump.c:16931 +#: pg_dump.c:17024 #, c-format msgid "unrecognized sequence type: %s" msgstr "нерозпізнаний тип послідовності: %s" -#: pg_dump.c:17221 +#: pg_dump.c:17314 #, c-format msgid "unexpected tgtype value: %d" msgstr "неочікуване значення tgtype: %d" -#: pg_dump.c:17293 +#: pg_dump.c:17386 #, c-format msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" msgstr "неприпустимий рядок аргументу (%s) для тригера \"%s\" у таблиці \"%s\"" -#: pg_dump.c:17562 +#: pg_dump.c:17660 #, c-format msgid "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows returned" msgstr "помилка запиту на отримання правила \"%s\" для таблиці \"%s\": повернено неправильне число рядків " -#: pg_dump.c:17715 +#: pg_dump.c:17813 #, c-format msgid "could not find referenced extension %u" msgstr "не вдалося знайти згадане розширення %u" -#: pg_dump.c:17805 +#: pg_dump.c:17903 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "невідповідна кількість конфігурацій і умов для розширення" -#: pg_dump.c:17937 +#: pg_dump.c:18035 #, c-format msgid "reading dependency data" msgstr "читання даних залежності" -#: pg_dump.c:18023 +#: pg_dump.c:18121 #, c-format msgid "no referencing object %u %u" msgstr "немає об’єкту посилання %u %u" -#: pg_dump.c:18034 +#: pg_dump.c:18132 #, c-format msgid "no referenced object %u %u" msgstr "немає посилання на об'єкт %u %u" -#: pg_dump_sort.c:422 +#: pg_dump_sort.c:646 #, c-format msgid "invalid dumpId %d" msgstr "неприпустимий dumpId %d" -#: pg_dump_sort.c:428 +#: pg_dump_sort.c:652 #, c-format msgid "invalid dependency %d" msgstr "неприпустима залежність %d" -#: pg_dump_sort.c:661 +#: pg_dump_sort.c:885 #, c-format msgid "could not identify dependency loop" msgstr "не вдалося ідентифікувати цикл залежності" -#: pg_dump_sort.c:1276 +#: pg_dump_sort.c:1500 #, c-format msgid "there are circular foreign-key constraints on this table:" msgid_plural "there are circular foreign-key constraints among these tables:" @@ -2159,129 +2179,129 @@ msgstr[1] "у наступних таблицях зациклені зовні msgstr[2] "у наступних таблицях зациклені зовнішні ключі:" msgstr[3] "у наступних таблицях зациклені зовнішні ключі:" -#: pg_dump_sort.c:1281 +#: pg_dump_sort.c:1505 #, c-format msgid "You might not be able to restore the dump without using --disable-triggers or temporarily dropping the constraints." msgstr "Ви не зможете відновити дамп без використання --disable-triggers або тимчасово розірвати обмеження." -#: pg_dump_sort.c:1282 +#: pg_dump_sort.c:1506 #, c-format msgid "Consider using a full dump instead of a --data-only dump to avoid this problem." msgstr "Можливо, використання повного вивантажування замість --data-only вивантажування допоможе уникнути цієї проблеми." -#: pg_dump_sort.c:1294 +#: pg_dump_sort.c:1518 #, c-format msgid "could not resolve dependency loop among these items:" msgstr "не вдалося вирішити цикл залежності серед цих елементів:" -#: pg_dumpall.c:205 +#: pg_dumpall.c:208 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "програма \"%s\" потрібна для %s, але не знайдена в тому ж каталозі, що й \"%s\"" -#: pg_dumpall.c:208 +#: pg_dumpall.c:211 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "програма \"%s\" знайдена для \"%s\", але має відмінну версію від %s" -#: pg_dumpall.c:357 +#: pg_dumpall.c:366 #, c-format msgid "option --exclude-database cannot be used together with -g/--globals-only, -r/--roles-only, or -t/--tablespaces-only" msgstr "параметр --exclude-database не можна використовувати разом з -g/--globals-only, -r/--roles-only або -t/--tablespaces-only" -#: pg_dumpall.c:365 +#: pg_dumpall.c:374 #, c-format msgid "options -g/--globals-only and -r/--roles-only cannot be used together" msgstr "параметри -g/--globals-only і -r/--roles-only не можна використовувати разом" -#: pg_dumpall.c:372 +#: pg_dumpall.c:381 #, c-format msgid "options -g/--globals-only and -t/--tablespaces-only cannot be used together" msgstr "параметри -g/--globals-only і -t/--tablespaces-only не можна використовувати разом" -#: pg_dumpall.c:382 +#: pg_dumpall.c:391 #, c-format msgid "options -r/--roles-only and -t/--tablespaces-only cannot be used together" msgstr "параметри -r/--roles-only і -t/--tablespaces-only не можна використовувати разом" -#: pg_dumpall.c:444 pg_dumpall.c:1613 +#: pg_dumpall.c:463 pg_dumpall.c:1658 #, c-format msgid "could not connect to database \"%s\"" msgstr "не вдалося зв'язатися з базою даних \"%s\"" -#: pg_dumpall.c:456 +#: pg_dumpall.c:475 #, c-format msgid "could not connect to databases \"postgres\" or \"template1\"\n" "Please specify an alternative database." msgstr "не вдалося зв'язатися з базами даних \"postgres\" або \"template1\"\n" "Будь ласка, вкажіть альтернативну базу даних." -#: pg_dumpall.c:605 +#: pg_dumpall.c:640 #, c-format msgid "%s extracts a PostgreSQL database cluster into an SQL script file.\n\n" msgstr "%s експортує кластер баз даних PostgreSQL до SQL-скрипту.\n\n" -#: pg_dumpall.c:607 +#: pg_dumpall.c:642 #, c-format msgid " %s [OPTION]...\n" msgstr " %s: [OPTION]...\n" -#: pg_dumpall.c:610 +#: pg_dumpall.c:645 #, c-format msgid " -f, --file=FILENAME output file name\n" msgstr " -f, --file=FILENAME ім'я вихідного файлу\n" -#: pg_dumpall.c:617 +#: pg_dumpall.c:652 #, c-format msgid " -c, --clean clean (drop) databases before recreating\n" msgstr " -c, --clean очистити (видалити) бази даних перед відтворенням\n" -#: pg_dumpall.c:619 +#: pg_dumpall.c:654 #, c-format msgid " -g, --globals-only dump only global objects, no databases\n" msgstr " -g, --globals-only вивантажувати лише глобальні об’єкти, не бази даних\n" -#: pg_dumpall.c:620 pg_restore.c:456 +#: pg_dumpall.c:655 pg_restore.c:477 #, c-format msgid " -O, --no-owner skip restoration of object ownership\n" msgstr " -O, --no-owner пропускається відновлення форми власності об’єктом\n" -#: pg_dumpall.c:621 +#: pg_dumpall.c:656 #, c-format msgid " -r, --roles-only dump only roles, no databases or tablespaces\n" msgstr " -r, --roles-only вивантажувати лише ролі, не бази даних або табличні простори\n" -#: pg_dumpall.c:623 +#: pg_dumpall.c:658 #, c-format msgid " -S, --superuser=NAME superuser user name to use in the dump\n" msgstr " -S, --superuser=NAME ім'я суперкористувача для використання при вивантажуванні\n" -#: pg_dumpall.c:624 +#: pg_dumpall.c:659 #, c-format msgid " -t, --tablespaces-only dump only tablespaces, no databases or roles\n" msgstr " -t, --tablespaces-only вивантажувати лише табличні простори, не бази даних або ролі\n" -#: pg_dumpall.c:630 +#: pg_dumpall.c:665 #, c-format msgid " --exclude-database=PATTERN exclude databases whose name matches PATTERN\n" msgstr " --exclude-database=PATTERN виключити бази даних, ім'я яких відповідає PATTERN\n" -#: pg_dumpall.c:637 +#: pg_dumpall.c:672 #, c-format msgid " --no-role-passwords do not dump passwords for roles\n" msgstr " --no-role-passwords не вивантажувати паролі для ролей\n" -#: pg_dumpall.c:653 +#: pg_dumpall.c:689 #, c-format msgid " -d, --dbname=CONNSTR connect using connection string\n" msgstr " -d, --dbname=CONNSTR підключення з використанням рядку підключення \n" -#: pg_dumpall.c:655 +#: pg_dumpall.c:691 #, c-format msgid " -l, --database=DBNAME alternative default database\n" msgstr " -l, --database=DBNAME альтернативна база даних за замовчуванням\n" -#: pg_dumpall.c:662 +#: pg_dumpall.c:698 #, c-format msgid "\n" "If -f/--file is not used, then the SQL script will be written to the standard\n" @@ -2289,278 +2309,283 @@ msgid "\n" msgstr "\n" "Якщо -f/--file не використовується, тоді SQL- сценарій буде записаний до стандартного виводу.\n\n" -#: pg_dumpall.c:807 +#: pg_dumpall.c:843 #, c-format msgid "role name starting with \"pg_\" skipped (%s)" msgstr "пропущено ім’я ролі, що починається з \"pg_\" (%s)" #. translator: %s represents a numeric role OID -#: pg_dumpall.c:965 pg_dumpall.c:972 +#: pg_dumpall.c:1001 pg_dumpall.c:1008 #, c-format msgid "found orphaned pg_auth_members entry for role %s" msgstr "знайдено забутий запис в pg_auth_members для ролі %s" -#: pg_dumpall.c:1044 +#: pg_dumpall.c:1080 #, c-format msgid "could not parse ACL list (%s) for parameter \"%s\"" msgstr "не вдалося аналізувати список ACL (%s) для параметра \"%s\"" -#: pg_dumpall.c:1162 +#: pg_dumpall.c:1198 #, c-format msgid "could not parse ACL list (%s) for tablespace \"%s\"" msgstr "не вдалося аналізувати список ACL (%s) для табличного простору \"%s\"" -#: pg_dumpall.c:1369 +#: pg_dumpall.c:1412 #, c-format msgid "excluding database \"%s\"" msgstr "виключаємо базу даних \"%s\"" -#: pg_dumpall.c:1373 +#: pg_dumpall.c:1416 #, c-format msgid "dumping database \"%s\"" msgstr "вивантажуємо базу даних \"%s\"" -#: pg_dumpall.c:1404 +#: pg_dumpall.c:1449 #, c-format msgid "pg_dump failed on database \"%s\", exiting" msgstr "помилка pg_dump для бази даних \"%s\", завершення роботи" -#: pg_dumpall.c:1410 +#: pg_dumpall.c:1455 #, c-format msgid "could not re-open the output file \"%s\": %m" msgstr "не вдалося повторно відкрити файл виводу \"%s\": %m" -#: pg_dumpall.c:1451 +#: pg_dumpall.c:1496 #, c-format msgid "running \"%s\"" msgstr "виконується \"%s\"" -#: pg_dumpall.c:1656 +#: pg_dumpall.c:1701 #, c-format msgid "could not get server version" msgstr "не вдалося отримати версію серверу" -#: pg_dumpall.c:1659 +#: pg_dumpall.c:1704 #, c-format msgid "could not parse server version \"%s\"" msgstr "не вдалося аналізувати версію серверу \"%s\"" -#: pg_dumpall.c:1729 pg_dumpall.c:1752 +#: pg_dumpall.c:1774 pg_dumpall.c:1797 #, c-format msgid "executing %s" msgstr "виконується %s" -#: pg_restore.c:313 +#: pg_restore.c:318 #, c-format msgid "one of -d/--dbname and -f/--file must be specified" msgstr "необхідно вказати один з -d/--dbname або -f/--file" -#: pg_restore.c:320 +#: pg_restore.c:325 #, c-format msgid "options -d/--dbname and -f/--file cannot be used together" msgstr "параметри -d/--dbname і -f/--file не можуть використовуватись разом" -#: pg_restore.c:338 +#: pg_restore.c:331 +#, c-format +msgid "options -d/--dbname and --restrict-key cannot be used together" +msgstr "параметри -d/--dbname і --restrict-key не можуть використовуватись разом" + +#: pg_restore.c:359 #, c-format msgid "options -C/--create and -1/--single-transaction cannot be used together" msgstr "параметри -C/--create і -1/--single-transaction не можуть використовуватись разом" -#: pg_restore.c:342 +#: pg_restore.c:363 #, c-format msgid "cannot specify both --single-transaction and multiple jobs" msgstr "параметр --single-transaction допускається лише з одним завданням" -#: pg_restore.c:380 +#: pg_restore.c:401 #, c-format msgid "unrecognized archive format \"%s\"; please specify \"c\", \"d\", or \"t\"" msgstr "нерозпізнаний формат архіву \"%s\"; будь ласка, вкажіть \"c\", \"d\" або \"t\"" -#: pg_restore.c:419 +#: pg_restore.c:440 #, c-format msgid "errors ignored on restore: %d" msgstr "при відновленні проігноровано помилок: %d" -#: pg_restore.c:432 +#: pg_restore.c:453 #, c-format msgid "%s restores a PostgreSQL database from an archive created by pg_dump.\n\n" msgstr "%s відновлює базу даних PostgreSQL з архіву, створеного командою pg_dump.\n\n" -#: pg_restore.c:434 +#: pg_restore.c:455 #, c-format msgid " %s [OPTION]... [FILE]\n" msgstr " %s [OPTION]... [FILE]\n" -#: pg_restore.c:437 +#: pg_restore.c:458 #, c-format msgid " -d, --dbname=NAME connect to database name\n" msgstr " -d, --dbname=NAME підключитись до вказаної бази даних\n" -#: pg_restore.c:438 +#: pg_restore.c:459 #, c-format msgid " -f, --file=FILENAME output file name (- for stdout)\n" msgstr " -f, --file=FILENAME ім'я файлу виводу (- для stdout)\n" -#: pg_restore.c:439 +#: pg_restore.c:460 #, 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:440 +#: pg_restore.c:461 #, c-format msgid " -l, --list print summarized TOC of the archive\n" msgstr " -l, --list вивести короткий зміст архіву\n" -#: pg_restore.c:441 +#: pg_restore.c:462 #, c-format msgid " -v, --verbose verbose mode\n" msgstr " -v, --verbose детальний режим\n" -#: pg_restore.c:442 +#: pg_restore.c:463 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію, потім вийти\n" -#: pg_restore.c:443 +#: pg_restore.c:464 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: pg_restore.c:445 +#: pg_restore.c:466 #, c-format msgid "\n" "Options controlling the restore:\n" msgstr "\n" "Параметри, що керують відновленням:\n" -#: pg_restore.c:446 +#: pg_restore.c:467 #, c-format msgid " -a, --data-only restore only the data, no schema\n" msgstr " -a, --data-only відновити лише дані, без схеми\n" -#: pg_restore.c:448 +#: pg_restore.c:469 #, c-format msgid " -C, --create create the target database\n" msgstr " -C, --create створити цільову базу даних\n" -#: pg_restore.c:449 +#: pg_restore.c:470 #, c-format msgid " -e, --exit-on-error exit on error, default is to continue\n" msgstr " -e, --exit-on-error вийти при помилці, продовжувати за замовчуванням\n" -#: pg_restore.c:450 +#: pg_restore.c:471 #, c-format msgid " -I, --index=NAME restore named index\n" msgstr " -I, --index=NAME відновити вказаний індекс\n" -#: pg_restore.c:451 +#: pg_restore.c:472 #, c-format msgid " -j, --jobs=NUM use this many parallel jobs to restore\n" msgstr " -j, --jobs=NUM щоб виконати відновлення, використайте ці паралельні завдання\n" -#: pg_restore.c:452 +#: pg_restore.c:473 #, c-format msgid " -L, --use-list=FILENAME use table of contents from this file for\n" " selecting/ordering output\n" msgstr " -L, --use-list=FILENAME використовувати зміст з цього файлу для \n" " вибору/упорядкування даних\n" -#: pg_restore.c:454 +#: pg_restore.c:475 #, c-format msgid " -n, --schema=NAME restore only objects in this schema\n" msgstr " -n, --schema=NAME відновити об'єкти лише в цій схемі\n" -#: pg_restore.c:455 +#: pg_restore.c:476 #, c-format msgid " -N, --exclude-schema=NAME do not restore objects in this schema\n" msgstr " -N, --exclude-schema=NAME не відновлювати об'єкти в цій схемі\n" -#: pg_restore.c:457 +#: pg_restore.c:478 #, c-format msgid " -P, --function=NAME(args) restore named function\n" msgstr " -P, --function=NAME(args) відновити вказану функцію\n" -#: pg_restore.c:458 +#: pg_restore.c:479 #, c-format msgid " -s, --schema-only restore only the schema, no data\n" msgstr " -s, --schema-only відновити лише схему, без даних\n" -#: pg_restore.c:459 +#: pg_restore.c:480 #, c-format msgid " -S, --superuser=NAME superuser user name to use for disabling triggers\n" msgstr " -S, --superuser=NAME ім'я суперкористувача для вимкнення тригерів\n" -#: pg_restore.c:460 +#: pg_restore.c:481 #, c-format msgid " -t, --table=NAME restore named relation (table, view, etc.)\n" msgstr " -t, --table=NAME відновити вказане відношення (таблицю, подання і т. д.)\n" -#: pg_restore.c:461 +#: pg_restore.c:482 #, c-format msgid " -T, --trigger=NAME restore named trigger\n" msgstr " -T, --trigger=NAME відновити вказаний тригер\n" -#: pg_restore.c:462 +#: pg_restore.c:483 #, c-format msgid " -x, --no-privileges skip restoration of access privileges (grant/revoke)\n" msgstr " -x, --no-privileges пропустити відновлення прав доступу (grant/revoke)\n" -#: pg_restore.c:463 +#: pg_restore.c:484 #, c-format msgid " -1, --single-transaction restore as a single transaction\n" msgstr " -1, --single-transaction відновити в одній транзакції\n" -#: pg_restore.c:465 +#: pg_restore.c:486 #, c-format msgid " --enable-row-security enable row security\n" msgstr " --enable-row-security активувати захист на рівні рядків\n" -#: pg_restore.c:467 +#: pg_restore.c:488 #, c-format msgid " --no-comments do not restore comments\n" msgstr " --no-comments не відновлювати коментарі\n" -#: pg_restore.c:468 +#: pg_restore.c:489 #, c-format msgid " --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" -#: pg_restore.c:470 +#: pg_restore.c:491 #, c-format msgid " --no-publications do not restore publications\n" msgstr " --no-publications не відновлювати публікації \n" -#: pg_restore.c:471 +#: pg_restore.c:492 #, c-format msgid " --no-security-labels do not restore security labels\n" msgstr " --no-security-labels не відновлювати мітки безпеки \n" -#: pg_restore.c:472 +#: pg_restore.c:493 #, c-format msgid " --no-subscriptions do not restore subscriptions\n" msgstr " --no-subscriptions не відновлювати підписки\n" -#: pg_restore.c:473 +#: pg_restore.c:494 #, c-format msgid " --no-table-access-method do not restore table access methods\n" msgstr " --no-table-access-method не відновлювати табличний метод доступу\n" -#: pg_restore.c:474 +#: pg_restore.c:495 #, c-format msgid " --no-tablespaces do not restore tablespace assignments\n" msgstr " --no-tablespaces не відновлювати завдання табличного простору\n" -#: pg_restore.c:475 +#: pg_restore.c:497 #, c-format msgid " --section=SECTION restore named section (pre-data, data, or post-data)\n" msgstr " --section=SECTION відновлювати названий розділ (pre-data, data або post-data)\n" -#: pg_restore.c:488 +#: pg_restore.c:510 #, c-format msgid " --role=ROLENAME do SET ROLE before restore\n" msgstr " --role=ROLENAME виконати SET ROLE перед відновленням\n" -#: pg_restore.c:490 +#: pg_restore.c:512 #, c-format msgid "\n" "The options -I, -n, -N, -P, -t, -T, and --section can be combined and specified\n" @@ -2569,7 +2594,7 @@ msgstr "\n" "Параметри -I, -n, -N, -P, -t, -T, і --section можна групувати і вказувати\n" "декілька разів для вибору декількох об'єктів.\n" -#: pg_restore.c:493 +#: pg_restore.c:515 #, c-format msgid "\n" "If no input file name is supplied, then standard input is used.\n\n" diff --git a/src/bin/pg_resetwal/po/de.po b/src/bin/pg_resetwal/po/de.po index 6a7cf3a7763..9d84b9a7260 100644 --- a/src/bin/pg_resetwal/po/de.po +++ b/src/bin/pg_resetwal/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-05-08 07:49+0000\n" +"POT-Creation-Date: 2026-02-07 09:09+0000\n" "PO-Revision-Date: 2022-05-08 14:16+0200\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -17,22 +17,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:277 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "Fehler: " -#: ../../../src/common/logging.c:284 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "Warnung: " -#: ../../../src/common/logging.c:295 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "Detail: " -#: ../../../src/common/logging.c:302 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "Tipp: " @@ -78,117 +78,112 @@ msgid "could not get exit code from subprocess: error code %lu" msgstr "konnte Statuscode des Subprozesses nicht ermitteln: Fehlercode %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:271 pg_resetwal.c:285 #, c-format msgid "invalid argument for option %s" msgstr "ungültiges Argument für Option %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:272 pg_resetwal.c:286 pg_resetwal.c:308 pg_resetwal.c:321 +#: pg_resetwal.c:328 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Versuchen Sie »%s --help« für weitere Informationen." -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "Transaktions-ID-Epoche (-e) darf nicht -1 sein" -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "älteste Transaktions-ID (-u) muss größer oder gleich %u sein" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "Transaktions-ID (-x) muss größer oder gleich %u sein" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "Transaktions-ID (-c) muss entweder 0 oder größer oder gleich 2 sein" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) darf nicht 0 sein" -#: pg_resetwal.c:254 -#, c-format -msgid "multitransaction ID (-m) must not be 0" -msgstr "Multitransaktions-ID (-m) darf nicht 0 sein" - -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "älteste Multitransaktions-ID (-m) darf nicht 0 sein" -#: pg_resetwal.c:274 +#: pg_resetwal.c:276 #, c-format -msgid "multitransaction offset (-O) must not be -1" -msgstr "Multitransaktions-Offset (-O) darf nicht -1 sein" +msgid "multitransaction offset (-O) must be between 0 and %u" +msgstr "Multitransaktions-Offset (-O) muss zwischen 0 und %u sein" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "Argument von --wal-segsize muss eine Zahl sein" -#: pg_resetwal.c:298 +#: pg_resetwal.c:303 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "Argument von --wal-segsize muss eine Zweierpotenz zwischen 1 und 1024 sein" -#: pg_resetwal.c:314 +#: pg_resetwal.c:319 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "zu viele Kommandozeilenargumente (das erste ist »%s«)" -#: pg_resetwal.c:322 +#: pg_resetwal.c:327 #, c-format msgid "no data directory specified" msgstr "kein Datenverzeichnis angegeben" -#: pg_resetwal.c:336 +#: pg_resetwal.c:341 #, c-format msgid "cannot be executed by \"root\"" msgstr "kann nicht von »root« ausgeführt werden" -#: pg_resetwal.c:337 +#: pg_resetwal.c:342 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Sie müssen %s als PostgreSQL-Superuser ausführen." -#: pg_resetwal.c:347 +#: pg_resetwal.c:352 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "konnte Zugriffsrechte von Verzeichnis »%s« nicht lesen: %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:358 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "konnte nicht in Verzeichnis »%s« wechseln: %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 +#: pg_resetwal.c:371 pg_resetwal.c:523 pg_resetwal.c:571 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "konnte Datei »%s« nicht zum Lesen öffnen: %m" -#: pg_resetwal.c:371 +#: pg_resetwal.c:376 #, c-format msgid "lock file \"%s\" exists" msgstr "Sperrdatei »%s« existiert" -#: pg_resetwal.c:372 +#: pg_resetwal.c:377 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "Läuft der Server? Wenn nicht, dann Sperrdatei löschen und nochmal versuchen." -#: pg_resetwal.c:467 +#: pg_resetwal.c:472 #, c-format msgid "" "\n" @@ -198,7 +193,7 @@ msgstr "" "Wenn diese Werte akzeptabel scheinen, dann benutzen Sie -f um das\n" "Zurücksetzen zu erzwingen.\n" -#: pg_resetwal.c:479 +#: pg_resetwal.c:484 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -210,32 +205,32 @@ msgstr "" "Wenn Sie trotzdem weiter machen wollen, benutzen Sie -f, um das\n" "Zurücksetzen zu erzwingen.\n" -#: pg_resetwal.c:493 +#: pg_resetwal.c:498 #, c-format msgid "Write-ahead log reset\n" msgstr "Write-Ahead-Log wurde zurückgesetzt\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:530 #, c-format msgid "unexpected empty file \"%s\"" msgstr "unerwartete leere Datei »%s«" -#: pg_resetwal.c:527 pg_resetwal.c:581 +#: pg_resetwal.c:532 pg_resetwal.c:586 #, c-format msgid "could not read file \"%s\": %m" msgstr "konnte Datei »%s« nicht lesen: %m" -#: pg_resetwal.c:535 +#: pg_resetwal.c:540 #, c-format msgid "data directory is of wrong version" msgstr "Datenverzeichnis hat falsche Version" -#: pg_resetwal.c:536 +#: pg_resetwal.c:541 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "Datei »%s« enthält »%s«, was nicht mit der Version dieses Programms »%s« kompatibel ist." -#: pg_resetwal.c:569 +#: pg_resetwal.c:574 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -246,24 +241,24 @@ msgstr "" " touch %s\n" "aus und versuchen Sie es erneut." -#: pg_resetwal.c:597 +#: pg_resetwal.c:602 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control existiert, aber mit ungültiger CRC; mit Vorsicht fortfahren" -#: pg_resetwal.c:606 +#: pg_resetwal.c:611 #, c-format 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] "pg_control gibt ungültige WAL-Segmentgröße an (%d Byte); mit Vorsicht fortfahren" msgstr[1] "pg_control gibt ungültige WAL-Segmentgröße an (%d Bytes); mit Vorsicht fortfahren" -#: pg_resetwal.c:617 +#: pg_resetwal.c:622 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control existiert, aber ist kaputt oder hat falsche Version; wird ignoriert" -#: pg_resetwal.c:712 +#: pg_resetwal.c:717 #, c-format msgid "" "Guessed pg_control values:\n" @@ -272,7 +267,7 @@ msgstr "" "Geschätzte pg_control-Werte:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:719 #, c-format msgid "" "Current pg_control values:\n" @@ -281,167 +276,167 @@ msgstr "" "Aktuelle pg_control-Werte:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:721 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control-Versionsnummer: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:723 #, c-format msgid "Catalog version number: %u\n" msgstr "Katalogversionsnummer: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:725 #, c-format msgid "Database system identifier: %llu\n" msgstr "Datenbanksystemidentifikation: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:727 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID des letzten Checkpoints: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "full_page_writes des letzten Checkpoints: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "off" msgstr "aus" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "on" msgstr "an" -#: pg_resetwal.c:726 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID des letzten Checkpoints: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:734 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID des letzten Checkpoints: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId des letzten Checkpoints: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset des letzten Checkpoints: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID des letzten Checkpoints: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "DB der oldestXID des letzten Checkpoints: %u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID des letzten Checkpoints: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid des letzten Checkpoints: %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "DB des oldestMulti des letzten Checkpoints: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid des letzten Checkpoints: %u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid des letzten Checkpoints: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:754 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Maximale Datenausrichtung (Alignment): %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:757 #, c-format msgid "Database block size: %u\n" msgstr "Datenbankblockgröße: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:759 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Blöcke pro Segment: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:761 #, c-format msgid "WAL block size: %u\n" msgstr "WAL-Blockgröße: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:763 pg_resetwal.c:853 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Bytes pro WAL-Segment: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:765 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Maximale Bezeichnerlänge: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:767 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Maximale Spalten in einem Index: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:769 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Maximale Größe eines Stücks TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:771 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Größe eines Large-Object-Chunks: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:774 #, c-format msgid "Date/time type storage: %s\n" msgstr "Speicherung von Datum/Zeit-Typen: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:775 msgid "64-bit integers" msgstr "64-Bit-Ganzzahlen" -#: pg_resetwal.c:771 +#: pg_resetwal.c:776 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Übergabe von Float8-Argumenten: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by reference" msgstr "Referenz" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by value" msgstr "Wert" -#: pg_resetwal.c:773 +#: pg_resetwal.c:778 #, c-format msgid "Data page checksum version: %u\n" msgstr "Datenseitenprüfsummenversion: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:792 #, c-format msgid "" "\n" @@ -454,102 +449,102 @@ msgstr "" "Zu ändernde Werte:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:796 #, c-format msgid "First log segment after reset: %s\n" msgstr "Erstes Logdateisegment nach Zurücksetzen: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:800 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:802 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:804 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMulti's DB: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:810 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:816 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:822 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:830 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID's DB: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID-Epoche: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:842 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:847 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:922 pg_resetwal.c:981 pg_resetwal.c:1016 +#: pg_resetwal.c:931 pg_resetwal.c:990 pg_resetwal.c:1025 #, c-format msgid "could not open directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht öffnen: %m" -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 +#: pg_resetwal.c:963 pg_resetwal.c:1004 pg_resetwal.c:1042 #, c-format msgid "could not read directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht lesen: %m" -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 +#: pg_resetwal.c:966 pg_resetwal.c:1007 pg_resetwal.c:1045 #, c-format msgid "could not close directory \"%s\": %m" msgstr "konnte Verzeichnis »%s« nicht schließen: %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 +#: pg_resetwal.c:999 pg_resetwal.c:1037 #, c-format msgid "could not delete file \"%s\": %m" msgstr "konnte Datei »%s« nicht löschen: %m" -#: pg_resetwal.c:1100 +#: pg_resetwal.c:1109 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" -#: pg_resetwal.c:1108 pg_resetwal.c:1120 +#: pg_resetwal.c:1117 pg_resetwal.c:1129 #, c-format msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" -#: pg_resetwal.c:1125 +#: pg_resetwal.c:1134 #, c-format msgid "fsync error: %m" msgstr "fsync-Fehler: %m" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1143 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -558,7 +553,7 @@ msgstr "" "%s setzt den PostgreSQL-Write-Ahead-Log zurück.\n" "\n" -#: pg_resetwal.c:1135 +#: pg_resetwal.c:1144 #, c-format msgid "" "Usage:\n" @@ -569,12 +564,12 @@ msgstr "" " %s [OPTION]... DATENVERZEICHNIS\n" "\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1145 #, c-format msgid "Options:\n" msgstr "Optionen:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1146 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -585,74 +580,74 @@ msgstr "" " älteste und neuste Transaktion mit Commit-\n" " Timestamp setzen (Null bedeutet keine Änderung)\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1149 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]VERZ Datenbankverzeichnis\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1150 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCHE nächste Transaktions-ID-Epoche setzen\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1151 #, c-format msgid " -f, --force force update to be done\n" msgstr " -f, --force Änderung erzwingen\n" -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1152 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALDATEI minimale Startposition für neuen WAL setzen\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1153 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID nächste und älteste Multitransaktions-ID setzen\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1154 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr "" " -n, --dry-run keine Änderungen; nur zeigen, was gemacht\n" " werden würde\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1155 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID nächste OID setzen\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1156 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET nächsten Multitransaktions-Offset setzen\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1157 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID älteste Transaktions-ID setzen\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1158 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version Versionsinformationen anzeigen, dann beenden\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1159 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID nächste Transaktions-ID setzen\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1160 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=ZAHL Größe eines WAL-Segments, in Megabytes\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1161 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help diese Hilfe anzeigen, dann beenden\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1162 #, c-format msgid "" "\n" @@ -661,7 +656,7 @@ msgstr "" "\n" "Berichten Sie Fehler an <%s>.\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1163 #, c-format msgid "%s home page: <%s>\n" msgstr "%s Homepage: <%s>\n" diff --git a/src/bin/pg_resetwal/po/es.po b/src/bin/pg_resetwal/po/es.po index a02a7f108de..f87d5962f5c 100644 --- a/src/bin/pg_resetwal/po/es.po +++ b/src/bin/pg_resetwal/po/es.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_resetwal (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:08+0000\n" +"POT-Creation-Date: 2026-02-06 21:19+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" @@ -84,117 +84,112 @@ msgid "could not get exit code from subprocess: error code %lu" msgstr "no se pudo obtener el código de salida del subproceso»: código de error %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:271 pg_resetwal.c:285 #, c-format msgid "invalid argument for option %s" msgstr "argumento no válido para la opción %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:272 pg_resetwal.c:286 pg_resetwal.c:308 pg_resetwal.c:321 +#: pg_resetwal.c:328 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Pruebe «%s --help» para mayor información." -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "el «epoch» de ID de transacción (-e) no debe ser -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "el ID de transacción más antiguo (-u) debe ser mayor o igual a %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "el ID de transacción (-x) debe ser mayor o igual a %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "el ID de transacción (-c) debe ser 0 o bien mayor o igual a 2" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) no debe ser cero" -#: pg_resetwal.c:254 -#, c-format -msgid "multitransaction ID (-m) must not be 0" -msgstr "el ID de multitransacción (-m) no debe ser 0" - -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "el ID de multitransacción más antiguo (-m) no debe ser 0" -#: pg_resetwal.c:274 +#: pg_resetwal.c:276 #, c-format -msgid "multitransaction offset (-O) must not be -1" -msgstr "la posición de multitransacción (-O) no debe ser -1" +msgid "multitransaction offset (-O) must be between 0 and %u" +msgstr "la posición de multitransacción (-O) debe estar entre 0 y %u" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "el argumento de --wal-segsize debe ser un número" -#: pg_resetwal.c:298 +#: pg_resetwal.c:303 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "el argumento de --wal-segsize debe ser una potencia de 2 entre 1 y 1024" -#: pg_resetwal.c:314 +#: pg_resetwal.c:319 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "demasiados argumentos en la línea de órdenes (el primero es «%s»)" -#: pg_resetwal.c:322 +#: pg_resetwal.c:327 #, c-format msgid "no data directory specified" msgstr "directorio de datos no especificado" -#: pg_resetwal.c:336 +#: pg_resetwal.c:341 #, c-format msgid "cannot be executed by \"root\"" msgstr "no puede ser ejecutado con el usuario «root»" -#: pg_resetwal.c:337 +#: pg_resetwal.c:342 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Debe ejecutar %s con el superusuario de PostgreSQL." -#: pg_resetwal.c:347 +#: pg_resetwal.c:352 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "no se pudo obtener los permisos del directorio «%s»: %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:358 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "no se pudo cambiar al directorio «%s»: %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 +#: pg_resetwal.c:371 pg_resetwal.c:523 pg_resetwal.c:571 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "no se pudo abrir archivo «%s» para lectura: %m" -#: pg_resetwal.c:371 +#: pg_resetwal.c:376 #, c-format msgid "lock file \"%s\" exists" msgstr "el archivo candado «%s» existe" -#: pg_resetwal.c:372 +#: pg_resetwal.c:377 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "¿Hay un servidor corriendo? Si no, borre el archivo candado e inténtelo de nuevo." -#: pg_resetwal.c:467 +#: pg_resetwal.c:472 #, c-format msgid "" "\n" @@ -203,7 +198,7 @@ msgstr "" "\n" "Si estos valores parecen aceptables, use -f para forzar reinicio.\n" -#: pg_resetwal.c:479 +#: pg_resetwal.c:484 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -214,32 +209,32 @@ msgstr "" "Restablecer el WAL puede causar pérdida de datos.\n" "Si quiere continuar de todas formas, use -f para forzar el restablecimiento.\n" -#: pg_resetwal.c:493 +#: pg_resetwal.c:498 #, c-format msgid "Write-ahead log reset\n" msgstr "«Write-ahead log» restablecido\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:530 #, c-format msgid "unexpected empty file \"%s\"" msgstr "archivo vacío inesperado «%s»" -#: pg_resetwal.c:527 pg_resetwal.c:581 +#: pg_resetwal.c:532 pg_resetwal.c:586 #, c-format msgid "could not read file \"%s\": %m" msgstr "no se pudo leer el archivo «%s»: %m" -#: pg_resetwal.c:535 +#: pg_resetwal.c:540 #, c-format msgid "data directory is of wrong version" msgstr "el directorio de datos tiene la versión equivocada" -#: pg_resetwal.c:536 +#: pg_resetwal.c:541 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "El archivo «%s» contiene «%s», que no es compatible con la versión «%s» de este programa." -#: pg_resetwal.c:569 +#: pg_resetwal.c:574 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -250,24 +245,24 @@ msgstr "" " touch %s\n" "y pruebe de nuevo." -#: pg_resetwal.c:597 +#: pg_resetwal.c:602 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "existe pg_control pero tiene un CRC no válido, proceda con precaución" -#: pg_resetwal.c:606 +#: pg_resetwal.c:611 #, c-format 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] "pg_control especifica un tamaño de segmento de WAL no válido (%d byte), proceda con precaución" msgstr[1] "pg_control especifica un tamaño de segmento de WAL no válido (%d bytes), proceda con precaución" -#: pg_resetwal.c:617 +#: pg_resetwal.c:622 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "existe pg_control pero está roto o tiene la versión equivocada; ignorándolo" -#: pg_resetwal.c:712 +#: pg_resetwal.c:717 #, c-format msgid "" "Guessed pg_control values:\n" @@ -276,7 +271,7 @@ msgstr "" "Valores de pg_control asumidos:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:719 #, c-format msgid "" "Current pg_control values:\n" @@ -285,167 +280,167 @@ msgstr "" "Valores actuales de pg_control:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:721 #, c-format msgid "pg_control version number: %u\n" msgstr "Número de versión de pg_control: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:723 #, c-format msgid "Catalog version number: %u\n" msgstr "Número de versión de catálogo: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:725 #, c-format msgid "Database system identifier: %llu\n" msgstr "Identificador de sistema: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:727 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "full_page_writes del checkpoint más reciente: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "off" msgstr "desactivado" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "on" msgstr "activado" -#: pg_resetwal.c:726 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID del checkpoint más reciente: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:734 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId del checkpoint más reciente: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset del checkpoint más reciente: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "BD del oldestXID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID del checkpoint más reciente: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid del checkpoint más reciente: %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "BD del oldestMultiXid del checkpt. más reciente: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid del último checkpoint: %u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid del último checkpoint: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:754 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Máximo alineamiento de datos: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:757 #, c-format msgid "Database block size: %u\n" msgstr "Tamaño del bloque de la base de datos: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:759 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Bloques por segmento de relación grande: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:761 #, c-format msgid "WAL block size: %u\n" msgstr "Tamaño del bloque de WAL: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:763 pg_resetwal.c:853 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Bytes por segmento WAL: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:765 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Longitud máxima de identificadores: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:767 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Máximo número de columnas en un índice: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:769 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Longitud máxima de un trozo TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:771 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Longitud máxima de un trozo de objeto grande: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:774 #, c-format msgid "Date/time type storage: %s\n" msgstr "Tipo de almacenamiento hora/fecha: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:775 msgid "64-bit integers" msgstr "enteros de 64 bits" -#: pg_resetwal.c:771 +#: pg_resetwal.c:776 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Paso de parámetros float8: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by reference" msgstr "por referencia" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by value" msgstr "por valor" -#: pg_resetwal.c:773 +#: pg_resetwal.c:778 #, c-format msgid "Data page checksum version: %u\n" msgstr "Versión de suma de verificación de datos: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:792 #, c-format msgid "" "\n" @@ -458,102 +453,102 @@ msgstr "" "Valores a cambiar:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:796 #, c-format msgid "First log segment after reset: %s\n" msgstr "Primer segmento de log después de reiniciar: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:800 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:802 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:804 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "Base de datos del OldestMulti: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:810 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:816 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:822 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:830 #, c-format msgid "OldestXID's DB: %u\n" msgstr "Base de datos del OldestXID: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextXID epoch: %u\n" msgstr "Epoch del NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:842 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:847 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:922 pg_resetwal.c:981 pg_resetwal.c:1016 +#: pg_resetwal.c:931 pg_resetwal.c:990 pg_resetwal.c:1025 #, c-format msgid "could not open directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 +#: pg_resetwal.c:963 pg_resetwal.c:1004 pg_resetwal.c:1042 #, c-format msgid "could not read directory \"%s\": %m" msgstr "no se pudo leer el directorio «%s»: %m" -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 +#: pg_resetwal.c:966 pg_resetwal.c:1007 pg_resetwal.c:1045 #, c-format msgid "could not close directory \"%s\": %m" msgstr "no se pudo abrir el directorio «%s»: %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 +#: pg_resetwal.c:999 pg_resetwal.c:1037 #, c-format msgid "could not delete file \"%s\": %m" msgstr "no se pudo borrar el archivo «%s»: %m" -#: pg_resetwal.c:1100 +#: pg_resetwal.c:1109 #, c-format msgid "could not open file \"%s\": %m" msgstr "no se pudo abrir el archivo «%s»: %m" -#: pg_resetwal.c:1108 pg_resetwal.c:1120 +#: pg_resetwal.c:1117 pg_resetwal.c:1129 #, c-format msgid "could not write file \"%s\": %m" msgstr "no se pudo escribir el archivo «%s»: %m" -#: pg_resetwal.c:1125 +#: pg_resetwal.c:1134 #, c-format msgid "fsync error: %m" msgstr "error de fsync: %m" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1143 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -562,7 +557,7 @@ msgstr "" "%s restablece el WAL («write-ahead log») de PostgreSQL.\n" "\n" -#: pg_resetwal.c:1135 +#: pg_resetwal.c:1144 #, c-format msgid "" "Usage:\n" @@ -573,12 +568,12 @@ msgstr "" " %s [OPCIÓN]... DATADIR\n" "\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1145 #, c-format msgid "Options:\n" msgstr "Opciones:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1146 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -590,29 +585,29 @@ msgstr "" " que llevan timestamp de commit (cero significa no\n" " cambiar)\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1149 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR directorio de datos\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1150 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH asigna el siguiente «epoch» de ID de transacción\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1151 #, c-format msgid " -f, --force force update to be done\n" msgstr " -f, --force fuerza que la actualización sea hecha\n" -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1152 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr "" " -l, --next-wal-file=ARCHIVOWAL\n" " fuerza una ubicación inicial mínima para nuevo WAL\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1153 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr "" @@ -620,53 +615,53 @@ msgstr "" " asigna el siguiente ID de multitransacción y\n" " el más antiguo\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1154 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr " -n, --dry-run no actualiza, sólo muestra lo que se haría\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1155 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID asigna el siguiente OID\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1156 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr "" " -O, --multixact-offset=OFFSET\n" " asigna la siguiente posición de multitransacción\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1157 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr "" " -u, --oldest-transaction-id=XID\n" " asigna el ID de transacción más antiguo\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1158 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version mostrar información de versión y salir\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1159 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr "" " -x, --next-transaction-id=XID\n" " asigna el siguiente ID de transacción\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1160 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=TAMAÑO tamaño de segmentos de WAL, en megabytes\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1161 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help mostrar esta ayuda y salir\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1162 #, c-format msgid "" "\n" @@ -675,7 +670,7 @@ msgstr "" "\n" "Reporte errores a <%s>.\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1163 #, c-format msgid "%s home page: <%s>\n" msgstr "Sitio web de %s: <%s>\n" diff --git a/src/bin/pg_resetwal/po/ja.po b/src/bin/pg_resetwal/po/ja.po index 58a8ef5c45b..3490c774fcf 100644 --- a/src/bin/pg_resetwal/po/ja.po +++ b/src/bin/pg_resetwal/po/ja.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: pg_resetwal (PostgreSQL 15)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-09 12:01+0900\n" -"PO-Revision-Date: 2022-05-10 14:36+0900\n" +"POT-Creation-Date: 2025-11-17 11:37+0900\n" +"PO-Revision-Date: 2025-11-17 13:23+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -83,117 +83,112 @@ msgid "could not get exit code from subprocess: error code %lu" msgstr "サブプロセスの終了コードを入手できませんでした。: エラーコード %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:271 pg_resetwal.c:285 #, c-format msgid "invalid argument for option %s" msgstr "オプション%sの引数が不正です" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:272 pg_resetwal.c:286 pg_resetwal.c:308 pg_resetwal.c:321 +#: pg_resetwal.c:328 #, c-format msgid "Try \"%s --help\" for more information." msgstr "詳細は\"%s --help\"を実行してください。" -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "トランザクションIDの基点(-e)は-1にはできません" -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "最古のトランザクションID(-u)は%uもしくはそれ以上でなければなりません" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "トランザクションID(-x)は%uもしくはそれ以上でなければなりません" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "トランザクションID(-c)は0もしくは2以上でなければなりません" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID(-o)は0にはできません" -#: pg_resetwal.c:254 -#, c-format -msgid "multitransaction ID (-m) must not be 0" -msgstr "マルチトランザクションID(-m)は0にはできません" - -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "最古のマルチトランザクションID(-m)は0にはできません" -#: pg_resetwal.c:274 +#: pg_resetwal.c:276 #, c-format -msgid "multitransaction offset (-O) must not be -1" -msgstr "マルチトランザクションオフセット(-O)は-1にはできません" +msgid "multitransaction offset (-O) must be between 0 and %u" +msgstr "マルチトランザクションオフセット(-O)は0と%uとの間である必要があります" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "--wal-segsizの引数は数値でなければなりません" -#: pg_resetwal.c:298 +#: pg_resetwal.c:303 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "--wal-segsizeの引数は1から1024の間の2のべき乗でなければなりません" -#: pg_resetwal.c:314 +#: pg_resetwal.c:319 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "コマンドライン引数が多すぎます。(先頭は\"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:327 #, c-format msgid "no data directory specified" msgstr "データディレクトリが指定されていません" -#: pg_resetwal.c:336 +#: pg_resetwal.c:341 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\"では実行できません" -#: pg_resetwal.c:337 +#: pg_resetwal.c:342 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "PostgreSQLのスーパーユーザーで%sを実行しなければなりません" -#: pg_resetwal.c:347 +#: pg_resetwal.c:352 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "ディレクトリ\"%s\"の権限を読み取れませんでした: %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:358 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "ディレクトリ\"%s\"に移動できませんでした: %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 +#: pg_resetwal.c:371 pg_resetwal.c:523 pg_resetwal.c:571 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"を読み取り用にオープンできませんでした: %m" -#: pg_resetwal.c:371 +#: pg_resetwal.c:376 #, c-format msgid "lock file \"%s\" exists" msgstr "ロックファイル\"%s\"が存在します" -#: pg_resetwal.c:372 +#: pg_resetwal.c:377 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "サーバーが稼動していませんか? そうでなければロックファイルを削除し再実行してください。" -#: pg_resetwal.c:467 +#: pg_resetwal.c:472 #, c-format msgid "" "\n" @@ -202,7 +197,7 @@ msgstr "" "\n" "この値が適切だと思われるのであれば、-fを使用して強制リセットしてください。\n" -#: pg_resetwal.c:479 +#: pg_resetwal.c:484 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -213,32 +208,32 @@ msgstr "" "先行書き込みログのリセットにはデータ損失の恐れがあります。\n" "とにかく処理したいのであれば、-fでリセットを強制してください。\n" -#: pg_resetwal.c:493 +#: pg_resetwal.c:498 #, c-format msgid "Write-ahead log reset\n" msgstr "先行書き込みログがリセットされました\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:530 #, c-format msgid "unexpected empty file \"%s\"" msgstr "想定外の空のファイル\"%s\"" -#: pg_resetwal.c:527 pg_resetwal.c:581 +#: pg_resetwal.c:532 pg_resetwal.c:586 #, c-format msgid "could not read file \"%s\": %m" msgstr "ファイル\"%s\"の読み取りに失敗しました: %m" -#: pg_resetwal.c:535 +#: pg_resetwal.c:540 #, c-format msgid "data directory is of wrong version" msgstr "データディレクトリのバージョンが違います" -#: pg_resetwal.c:536 +#: pg_resetwal.c:541 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "ファイル\"%s\"では\"%s\"となっています、これはこのプログラムのバージョン\"%s\"と互換性がありません" -#: pg_resetwal.c:569 +#: pg_resetwal.c:574 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -249,23 +244,23 @@ msgstr "" " touch %s\n" "の後に再実行してください。" -#: pg_resetwal.c:597 +#: pg_resetwal.c:602 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_controlがありましたが、CRCが不正でした; 注意して進めてください" -#: pg_resetwal.c:606 +#: pg_resetwal.c:611 #, c-format 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] "pg_controlにあるWALセグメントサイズ(%dバイト)は不正です; 注意して進めてください" -#: pg_resetwal.c:617 +#: pg_resetwal.c:622 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_controlがありましたが、破損あるいは間違ったバージョンです; 無視します" -#: pg_resetwal.c:712 +#: pg_resetwal.c:717 #, c-format msgid "" "Guessed pg_control values:\n" @@ -274,7 +269,7 @@ msgstr "" "pg_controlの推測値:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:719 #, c-format msgid "" "Current pg_control values:\n" @@ -283,167 +278,167 @@ msgstr "" "現在のpg_controlの値:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:721 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_controlバージョン番号: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:723 #, c-format msgid "Catalog version number: %u\n" msgstr "カタログバージョン番号: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:725 #, c-format msgid "Database system identifier: %llu\n" msgstr "データベースシステム識別子: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:727 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "最終チェックポイントの時系列ID: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "最終チェックポイントのfull_page_writes: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "off" msgstr "オフ" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "on" msgstr "オン" -#: pg_resetwal.c:726 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "最終チェックポイントのNextXID: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:734 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "最終チェックポイントのNextOID: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "最終チェックポイントのNextMultiXactId: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "最終チェックポイントのNextMultiOffset: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "最終チェックポイントのoldestXID: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "最終チェックポイントのoldestXIDのDB: %u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "最終チェックポイントのoldestActiveXID: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "最終チェックポイントのoldestMultiXid: %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "最終チェックポイントのoldestMultiのDB: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "最終チェックポイントのoldestCommitTsXid: %u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "最終チェックポイントのnewestCommitTsXid: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:754 #, c-format msgid "Maximum data alignment: %u\n" msgstr "最大データアラインメント: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:757 #, c-format msgid "Database block size: %u\n" msgstr "データベースのブロックサイズ: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:759 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "大きなリレーションのセグメント毎のブロック数:%u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:761 #, c-format msgid "WAL block size: %u\n" msgstr "WALのブロックサイズ: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:763 pg_resetwal.c:849 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "WALセグメント当たりのバイト数: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:765 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "識別子の最大長: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:767 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "インデックス内の最大列数: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:769 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "TOASTチャンクの最大サイズ: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:771 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "ラージオブジェクトチャンクのサイズ: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:774 #, c-format msgid "Date/time type storage: %s\n" msgstr "日付/時刻型の格納方式: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:775 msgid "64-bit integers" msgstr "64ビット整数" -#: pg_resetwal.c:771 +#: pg_resetwal.c:776 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Float8引数の渡し方: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by reference" msgstr "参照渡し" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by value" msgstr "値渡し" -#: pg_resetwal.c:773 +#: pg_resetwal.c:778 #, c-format msgid "Data page checksum version: %u\n" msgstr "データベージチェックサムのバージョン: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:792 #, c-format msgid "" "\n" @@ -456,102 +451,102 @@ msgstr "" "変更される値:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:796 #, c-format msgid "First log segment after reset: %s\n" msgstr "リセット後最初のログセグメント: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:800 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:802 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:804 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMultiのDB: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:810 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:816 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:822 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:824 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:826 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXIDのDB: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:832 #, c-format msgid "NextXID epoch: %u\n" msgstr "NextXID基点: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:838 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:843 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:922 pg_resetwal.c:981 pg_resetwal.c:1016 +#: pg_resetwal.c:927 pg_resetwal.c:986 pg_resetwal.c:1021 #, c-format msgid "could not open directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をオープンできませんでした: %m" -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 +#: pg_resetwal.c:959 pg_resetwal.c:1000 pg_resetwal.c:1038 #, c-format msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"を読み取れませんでした: %m" -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 +#: pg_resetwal.c:962 pg_resetwal.c:1003 pg_resetwal.c:1041 #, c-format msgid "could not close directory \"%s\": %m" msgstr "ディレクトリ\"%s\"をクローズできませんでした: %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 +#: pg_resetwal.c:995 pg_resetwal.c:1033 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ファイル\"%s\"を削除できませんでした: %m" -#: pg_resetwal.c:1100 +#: pg_resetwal.c:1105 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンできませんでした: %m" -#: pg_resetwal.c:1108 pg_resetwal.c:1120 +#: pg_resetwal.c:1113 pg_resetwal.c:1125 #, c-format msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書き出せませんでした: %m" -#: pg_resetwal.c:1125 +#: pg_resetwal.c:1130 #, c-format msgid "fsync error: %m" msgstr "fsyncエラー: %m" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1139 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -560,7 +555,7 @@ msgstr "" "%sはPostgreSQLの先行書き込みログをリセットします。\n" "\n" -#: pg_resetwal.c:1135 +#: pg_resetwal.c:1140 #, c-format msgid "" "Usage:\n" @@ -571,12 +566,12 @@ msgstr "" " %s [OPTION]... DATADIR\n" "\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1141 #, c-format msgid "Options:\n" msgstr "オプション:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1142 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -587,72 +582,72 @@ msgstr "" " コミットタイムスタンプを持つ最古と最新の\n" " トランザクション(0は変更しないことを意味する)\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1145 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR データディレクトリ\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1146 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH 次のトランザクションIDの基点を設定\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1147 #, c-format msgid " -f, --force force update to be done\n" msgstr " -f, --force 強制的に更新を実施\n" -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1148 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALFILE 新しいWALの最小開始ポイントを設定\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1149 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID 次および最古のマルチトランザクションIDを設定\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1150 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr " -n, --dry-run 更新をせず、単に何が行なわれるかを表示\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1151 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID 次のOIDを設定\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1152 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET 次のマルチトランザクションオフセットを設定\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1153 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID 最古のトランザクションIDを設定\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1154 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version バージョン情報を表示して終了\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1155 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID 次のトランザクションIDを設定\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1156 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE WALセグメントのサイズ、単位はメガバイト\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1157 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help このヘルプを表示して終了\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1158 #, c-format msgid "" "\n" @@ -661,25 +656,40 @@ msgstr "" "\n" "バグは<%s>に報告してください。\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1159 #, c-format msgid "%s home page: <%s>\n" msgstr "%s ホームページ: <%s>\n" -#~ msgid "fatal: " -#~ msgstr "致命的エラー: " +#~ msgid " (zero in either value means no change)\n" +#~ msgstr " (いずれかの値での0は変更がないことを意味します)\n" -#~ msgid "Try \"%s --help\" for more information.\n" -#~ msgstr "詳細は\"%s --help\"を実行してください。\n" +#~ msgid " --help show this help, then exit\n" +#~ msgstr " --help ヘルプを表示し、終了します\n" -#~ msgid "transaction ID (-x) must not be 0" -#~ msgstr "トランザクションID(-x)は0にはできません" +#~ msgid " --version output version information, then exit\n" +#~ msgstr " --version バージョン情報を表示し、終了します\n" + +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help このヘルプを表示して終了\n" + +#~ msgid " -?, --help show this help, then exit\n" +#~ msgstr " -?, --help このヘルプを表示し、終了します\n" #~ msgid " -V, --version output version information, then exit\n" #~ msgstr " -V, --version バージョン情報を表示して終了\n" -#~ msgid " -?, --help show this help, then exit\n" -#~ msgstr " -?, --help このヘルプを表示して終了\n" +#~ msgid " -V, --version output version information, then exit\n" +#~ msgstr " -V, --version バージョン情報を出力、終了します\n" + +#~ msgid " -c XID,XID set oldest and newest transactions bearing commit timestamp\n" +#~ msgstr " -c XID,XID コミットタイムスタンプを作成する最も古いトランザクションと最も新しいトランザクションを設定します\n" + +#~ msgid " -x XID set next transaction ID\n" +#~ msgstr " -x XID 次のトランザクションIDを設定します\n" + +#~ msgid " [-D] DATADIR data directory\n" +#~ msgstr " [-D] DATADIR データベースディレクトリ\n" #~ msgid "%s: cannot be executed by \"root\"\n" #~ msgstr "%s: \"root\"では実行できません\n" @@ -687,81 +697,48 @@ msgstr "%s ホームページ: <%s>\n" #~ msgid "%s: could not change directory to \"%s\": %s\n" #~ msgstr "%s: ディレクトリ\"%s\"に移動できませんでした: %s\n" -#~ msgid "%s: could not open file \"%s\" for reading: %s\n" -#~ msgstr "%s: 読み取り用のファイル\"%s\"をオープンできませんでした: %s\n" - -#~ msgid "Transaction log reset\n" -#~ msgstr "トランザクションログをリセットします。\n" - -#~ msgid "%s: could not read file \"%s\": %s\n" -#~ msgstr "%s: ファイル\"%s\"を読み込めませんでした: %s\n" - -#~ msgid "floating-point numbers" -#~ msgstr "浮動小数点数" - -#~ msgid "%s: internal error -- sizeof(ControlFileData) is too large ... fix PG_CONTROL_SIZE\n" -#~ msgstr "%s: 内部エラー -- sizeof(ControlFileData)が大きすぎます ... PG_CONTROL_SIZEを修正してください\n" +#~ msgid "%s: could not close directory \"%s\": %s\n" +#~ msgstr "%s: ディレクトリ \"%s\" をクローズできませんでした: %s\n" #~ msgid "%s: could not create pg_control file: %s\n" #~ msgstr "%s: pg_controlファイルを作成できませんでした: %s\n" -#~ msgid "%s: could not write pg_control file: %s\n" -#~ msgstr "%s: pg_controlファイルを書き込めませんでした: %s\n" +#~ msgid "%s: could not delete file \"%s\": %s\n" +#~ msgstr "%s: ファイル\"%s\"を削除できませんでした: %s\n" #~ msgid "%s: could not open directory \"%s\": %s\n" #~ msgstr "%s: ディレクトリ\"%s\"をオープンできませんでした: %s\n" -#~ msgid "%s: could not read directory \"%s\": %s\n" -#~ msgstr "%s: ディレクトリ\"%s\"を読み取ることができませんでした。: %s\n" - -#~ msgid "%s: could not close directory \"%s\": %s\n" -#~ msgstr "%s: ディレクトリ \"%s\" をクローズできませんでした: %s\n" - -#~ msgid "%s: could not delete 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" #~ msgid "%s: could not open file \"%s\": %s\n" #~ msgstr "%s: ファイル\"%s\"をオープンできませんでした: %s\n" -#~ msgid "%s: could not write file \"%s\": %s\n" -#~ msgstr "%s: ファイル\"%s\"を書き込めませんでした: %s\n" - -#~ msgid " -c XID,XID set oldest and newest transactions bearing commit timestamp\n" -#~ msgstr " -c XID,XID コミットタイムスタンプを作成する最も古いトランザクションと最も新しいトランザクションを設定します\n" - -#~ msgid " (zero in either value means no change)\n" -#~ msgstr " (いずれかの値での0は変更がないことを意味します)\n" - -#~ msgid " [-D] DATADIR data directory\n" -#~ msgstr " [-D] DATADIR データベースディレクトリ\n" - -#~ msgid " -V, --version output version information, then exit\n" -#~ msgstr " -V, --version バージョン情報を出力、終了します\n" +#~ msgid "%s: could not read directory \"%s\": %s\n" +#~ msgstr "%s: ディレクトリ\"%s\"を読み取ることができませんでした。: %s\n" -#~ msgid " -x XID set next transaction ID\n" -#~ msgstr " -x XID 次のトランザクションIDを設定します\n" +#~ msgid "%s: could not read file \"%s\": %s\n" +#~ msgstr "%s: ファイル\"%s\"を読み込めませんでした: %s\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" -#~ msgid "First log file ID after reset: %u\n" -#~ msgstr "リセット後、現在のログファイルID: %u\n" +#~ msgid "%s: could not write file \"%s\": %s\n" +#~ msgstr "%s: ファイル\"%s\"を書き込めませんでした: %s\n" -#~ msgid " --help show this help, then exit\n" -#~ msgstr " --help ヘルプを表示し、終了します\n" +#~ msgid "%s: could not write pg_control file: %s\n" +#~ msgstr "%s: pg_controlファイルを書き込めませんでした: %s\n" -#~ msgid " --version output version information, then exit\n" -#~ msgstr " --version バージョン情報を表示し、終了します\n" +#~ msgid "%s: internal error -- sizeof(ControlFileData) is too large ... fix PG_CONTROL_SIZE\n" +#~ msgstr "%s: 内部エラー -- sizeof(ControlFileData)が大きすぎます ... PG_CONTROL_SIZEを修正してください\n" -#~ msgid "%s: could not read from directory \"%s\": %s\n" -#~ msgstr "%s: ディレクトリ\"%s\"から読み込めませんでした: %s\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 "%s: invalid argument for option -O\n" -#~ msgstr "%s: オプション-Oの引数が無効です\n" - #~ msgid "%s: invalid argument for option -m\n" #~ msgstr "%s: オプション-mの引数が無効です\n" @@ -771,5 +748,26 @@ msgstr "%s ホームページ: <%s>\n" #~ msgid "%s: invalid argument for option -x\n" #~ msgstr "%s: オプション-xの引数が無効です\n" +#~ msgid "First log file ID after reset: %u\n" +#~ msgstr "リセット後、現在のログファイルID: %u\n" + #~ msgid "Float4 argument passing: %s\n" #~ msgstr "Float4引数の渡し方: %s\n" + +#~ msgid "Transaction log reset\n" +#~ msgstr "トランザクションログをリセットします。\n" + +#~ msgid "Try \"%s --help\" for more information.\n" +#~ msgstr "詳細は\"%s --help\"を実行してください。\n" + +#~ msgid "fatal: " +#~ msgstr "致命的エラー: " + +#~ msgid "floating-point numbers" +#~ msgstr "浮動小数点数" + +#~ msgid "multitransaction ID (-m) must not be 0" +#~ msgstr "マルチトランザクションID(-m)は0にはできません" + +#~ msgid "transaction ID (-x) must not be 0" +#~ msgstr "トランザクションID(-x)は0にはできません" diff --git a/src/bin/pg_resetwal/po/ru.po b/src/bin/pg_resetwal/po/ru.po index 02737f015ff..02791fd57ca 100644 --- a/src/bin/pg_resetwal/po/ru.po +++ b/src/bin/pg_resetwal/po/ru.po @@ -5,13 +5,13 @@ # Oleg Bartunov , 2004. # Sergey Burladyan , 2009. # Dmitriy Olshevskiy , 2014. -# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Alexander Lakhin msgid "" msgstr "" "Project-Id-Version: pg_resetxlog (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-27 14:52+0300\n" -"PO-Revision-Date: 2024-09-05 12:19+0300\n" +"POT-Creation-Date: 2026-02-07 08:58+0200\n" +"PO-Revision-Date: 2026-02-07 09:15+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -82,118 +82,113 @@ msgid "could not get exit code from subprocess: error code %lu" msgstr "не удалось получить код выхода от подпроцесса (код ошибки: %lu)" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:271 pg_resetwal.c:285 #, c-format msgid "invalid argument for option %s" msgstr "недопустимый аргумент параметра %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:272 pg_resetwal.c:286 pg_resetwal.c:308 pg_resetwal.c:321 +#: pg_resetwal.c:328 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Для дополнительной информации попробуйте \"%s --help\"." -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "эпоха ID транзакции (-e) не должна быть равна -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "ID старейшей транзакции (-u) должен быть больше или равен %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "ID транзакции (-x) должен быть больше или равен %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "ID транзакции (-c) должен быть равен 0, либо больше или равен 2" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) не должен быть равен 0" -#: pg_resetwal.c:254 -#, c-format -msgid "multitransaction ID (-m) must not be 0" -msgstr "ID мультитранзакции (-m) не должен быть равен 0" - -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "ID старейшей мультитранзакции (-m) не должен быть равен 0" -#: pg_resetwal.c:274 +#: pg_resetwal.c:276 #, c-format -msgid "multitransaction offset (-O) must not be -1" -msgstr "смещение мультитранзакции (-O) не должно быть равно -1" +msgid "multitransaction offset (-O) must be between 0 and %u" +msgstr "смещение мультитранзакции (-O) должно быть от 0 до %u" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "аргументом --wal-segsize должно быть число" -#: pg_resetwal.c:298 +#: pg_resetwal.c:303 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "аргументом --wal-segsize должна быть степень 2 от 1 до 1024" -#: pg_resetwal.c:314 +#: pg_resetwal.c:319 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "слишком много аргументов командной строки (первый: \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:327 #, c-format msgid "no data directory specified" msgstr "каталог данных не указан" -#: pg_resetwal.c:336 +#: pg_resetwal.c:341 #, c-format msgid "cannot be executed by \"root\"" msgstr "программу не должен запускать root" -#: pg_resetwal.c:337 +#: pg_resetwal.c:342 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускать %s нужно от имени суперпользователя PostgreSQL." -#: pg_resetwal.c:347 +#: pg_resetwal.c:352 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не удалось прочитать права на каталог \"%s\": %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:358 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не удалось перейти в каталог \"%s\": %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 +#: pg_resetwal.c:371 pg_resetwal.c:523 pg_resetwal.c:571 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" -#: pg_resetwal.c:371 +#: pg_resetwal.c:376 #, c-format msgid "lock file \"%s\" exists" msgstr "файл блокировки \"%s\" существует" -#: pg_resetwal.c:372 +#: pg_resetwal.c:377 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "" "Возможно, сервер запущен? Если нет, удалите этот файл и попробуйте снова." -#: pg_resetwal.c:467 +#: pg_resetwal.c:472 #, c-format msgid "" "\n" @@ -203,7 +198,7 @@ msgstr "" "Если эти значения всё же приемлемы, выполните сброс принудительно, добавив " "ключ -f.\n" -#: pg_resetwal.c:479 +#: pg_resetwal.c:484 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -214,27 +209,27 @@ msgstr "" "Сброс журнала предзаписи может привести к потере данных.\n" "Если вы хотите сбросить его, несмотря на это, добавьте ключ -f.\n" -#: pg_resetwal.c:493 +#: pg_resetwal.c:498 #, c-format msgid "Write-ahead log reset\n" msgstr "Журнал предзаписи сброшен\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:530 #, c-format msgid "unexpected empty file \"%s\"" msgstr "файл \"%s\" оказался пустым" -#: pg_resetwal.c:527 pg_resetwal.c:581 +#: pg_resetwal.c:532 pg_resetwal.c:586 #, c-format msgid "could not read file \"%s\": %m" msgstr "не удалось прочитать файл \"%s\": %m" -#: pg_resetwal.c:535 +#: pg_resetwal.c:540 #, c-format msgid "data directory is of wrong version" msgstr "каталог данных имеет неверную версию" -#: pg_resetwal.c:536 +#: pg_resetwal.c:541 #, c-format msgid "" "File \"%s\" contains \"%s\", which is not compatible with this program's " @@ -242,7 +237,7 @@ msgid "" msgstr "" "Файл \"%s\" содержит строку \"%s\", а ожидается версия программы \"%s\"." -#: pg_resetwal.c:569 +#: pg_resetwal.c:574 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -253,14 +248,14 @@ msgstr "" " touch %s\n" "и повторите попытку." -#: pg_resetwal.c:597 +#: pg_resetwal.c:602 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "" "pg_control существует, но его контрольная сумма неверна; продолжайте с " "осторожностью" -#: pg_resetwal.c:606 +#: pg_resetwal.c:611 #, c-format msgid "" "pg_control specifies invalid WAL segment size (%d byte); proceed with caution" @@ -277,14 +272,14 @@ msgstr[2] "" "в pg_control указан некорректный размер сегмента WAL (%d Б); продолжайте с " "осторожностью" -#: pg_resetwal.c:617 +#: pg_resetwal.c:622 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "" "pg_control испорчен или имеет неизвестную либо недопустимую версию; " "игнорируется..." -#: pg_resetwal.c:712 +#: pg_resetwal.c:717 #, c-format msgid "" "Guessed pg_control values:\n" @@ -293,7 +288,7 @@ msgstr "" "Предполагаемые значения pg_control:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:719 #, c-format msgid "" "Current pg_control values:\n" @@ -302,181 +297,181 @@ msgstr "" "Текущие значения pg_control:\n" "\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:721 #, c-format msgid "pg_control version number: %u\n" msgstr "Номер версии pg_control: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:723 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версии каталога: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:725 #, c-format msgid "Database system identifier: %llu\n" msgstr "Идентификатор системы баз данных: %llu\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:722 +#: pg_resetwal.c:727 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Линия времени последней конт. точки: %u\n" # skip-rule: no-space-after-period -#: pg_resetwal.c:724 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Режим full_page_writes последней к.т: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "off" msgstr "выкл." -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "on" msgstr "вкл." # skip-rule: capital-letter-first -#: pg_resetwal.c:726 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID последней конт. точки: %u:%u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:729 +#: pg_resetwal.c:734 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:731 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:733 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset послед. конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:735 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:737 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "БД с oldestXID последней конт. точки: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:739 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID последней к. т.: %u\n" # skip-rule: capital-letter-first -#: pg_resetwal.c:741 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid последней конт. точки: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:743 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "БД с oldestMulti последней к. т.: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:745 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid последней к. т.: %u\n" # skip-rule: capital-letter-first, double-space -#: pg_resetwal.c:747 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid последней к. т.: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:754 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Макс. предел выравнивания данных: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:757 #, c-format msgid "Database block size: %u\n" msgstr "Размер блока БД: %u\n" # skip-rule: double-space -#: pg_resetwal.c:754 +#: pg_resetwal.c:759 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоков в макс. сегменте отношений: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:761 #, c-format msgid "WAL block size: %u\n" msgstr "Размер блока WAL: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:763 pg_resetwal.c:853 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байт в сегменте WAL: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:765 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальная длина идентификаторов: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:767 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Макс. число столбцов в индексе: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:769 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальный размер порции TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:771 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Размер порции большого объекта: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:774 #, c-format msgid "Date/time type storage: %s\n" msgstr "Формат хранения даты/времени: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:775 msgid "64-bit integers" msgstr "64-битные целые" -#: pg_resetwal.c:771 +#: pg_resetwal.c:776 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Передача аргумента float8: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by reference" msgstr "по ссылке" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by value" msgstr "по значению" -#: pg_resetwal.c:773 +#: pg_resetwal.c:778 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версия контрольных сумм страниц: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:792 #, c-format msgid "" "\n" @@ -489,102 +484,102 @@ msgstr "" "Значения, которые будут изменены:\n" "\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:796 #, c-format msgid "First log segment after reset: %s\n" msgstr "Первый сегмент журнала после сброса: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:800 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:802 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:804 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "БД с oldestMultiXid: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:810 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:816 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:822 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:830 #, c-format msgid "OldestXID's DB: %u\n" msgstr "БД с oldestXID: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextXID epoch: %u\n" msgstr "Эпоха NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:842 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:847 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:922 pg_resetwal.c:981 pg_resetwal.c:1016 +#: pg_resetwal.c:931 pg_resetwal.c:990 pg_resetwal.c:1025 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не удалось открыть каталог \"%s\": %m" -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 +#: pg_resetwal.c:963 pg_resetwal.c:1004 pg_resetwal.c:1042 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не удалось прочитать каталог \"%s\": %m" -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 +#: pg_resetwal.c:966 pg_resetwal.c:1007 pg_resetwal.c:1045 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не удалось закрыть каталог \"%s\": %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 +#: pg_resetwal.c:999 pg_resetwal.c:1037 #, c-format msgid "could not delete file \"%s\": %m" msgstr "ошибка удаления файла \"%s\": %m" -#: pg_resetwal.c:1100 +#: pg_resetwal.c:1109 #, c-format msgid "could not open file \"%s\": %m" msgstr "не удалось открыть файл \"%s\": %m" -#: pg_resetwal.c:1108 pg_resetwal.c:1120 +#: pg_resetwal.c:1117 pg_resetwal.c:1129 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалось записать файл \"%s\": %m" -#: pg_resetwal.c:1125 +#: pg_resetwal.c:1134 #, c-format msgid "fsync error: %m" msgstr "ошибка синхронизации с ФС: %m" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1143 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -593,7 +588,7 @@ msgstr "" "%s сбрасывает журнал предзаписи PostgreSQL.\n" "\n" -#: pg_resetwal.c:1135 +#: pg_resetwal.c:1144 #, c-format msgid "" "Usage:\n" @@ -604,12 +599,12 @@ msgstr "" " %s [ПАРАМЕТР]... КАТАЛОГ-ДАННЫХ\n" "\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1145 #, c-format msgid "Options:\n" msgstr "Параметры:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1146 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -621,24 +616,24 @@ msgstr "" " задать старейшую и новейшую транзакции,\n" " несущие метки времени (0 — не менять)\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1149 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]КАТ_ДАННЫХ каталог данных\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1150 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr "" " -e, --epoch=XIDEPOCH задать эпоху для ID следующей транзакции\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1151 #, c-format msgid " -f, --force force update to be done\n" msgstr "" " -f, --force принудительное выполнение операции\n" -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1152 #, c-format msgid "" " -l, --next-wal-file=WALFILE set minimum starting location for new " @@ -647,7 +642,7 @@ msgstr "" " -l, --next-wal-file=ФАЙЛ_WAL задать минимальное начальное положение\n" " для нового WAL\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1153 #, c-format msgid "" " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" @@ -655,7 +650,7 @@ msgstr "" " -m, --multixact-ids=MXID,MXID задать ID следующей и старейшей\n" " мультитранзакции\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1154 #, c-format msgid "" " -n, --dry-run no update, just show what would be done\n" @@ -664,46 +659,46 @@ msgstr "" "выполнены,\n" " но не выполнять их\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1155 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID задать следующий OID\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1156 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr "" " -O, --multixact-offset=СМЕЩЕНИЕ задать смещение следующей " "мультитранзакции\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1157 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID задать ID старейшей ID\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1158 #, c-format msgid "" " -V, --version output version information, then exit\n" msgstr " -V, --version показать версию и выйти\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1159 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID задать ID следующей транзакции\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1160 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr "" " --wal-segsize=РАЗМЕР размер сегментов WAL (в мегабайтах)\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1161 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показать эту справку и выйти\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1162 #, c-format msgid "" "\n" @@ -712,11 +707,15 @@ msgstr "" "\n" "Об ошибках сообщайте по адресу <%s>.\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1163 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: <%s>\n" +#, c-format +#~ msgid "multitransaction ID (-m) must not be 0" +#~ msgstr "ID мультитранзакции (-m) не должен быть равен 0" + #~ msgid "fatal: " #~ msgstr "важно: " diff --git a/src/bin/pg_resetwal/po/sv.po b/src/bin/pg_resetwal/po/sv.po index 0cdd2f2c44a..5a3275751cb 100644 --- a/src/bin/pg_resetwal/po/sv.po +++ b/src/bin/pg_resetwal/po/sv.po @@ -1,5 +1,5 @@ # Swedish message translation file for resetxlog. -# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022. +# Dennis Björklund , 2002, 2003, 2004, 2005, 2006, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025. # Peter Eisentraut , 2010. # Mats Erik Andersson , 2014. # @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-04-11 19:48+0000\n" -"PO-Revision-Date: 2022-04-11 22:01+0200\n" +"POT-Creation-Date: 2026-01-30 21:41+0000\n" +"PO-Revision-Date: 2026-02-02 23:26+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -17,22 +17,22 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -#: ../../../src/common/logging.c:273 +#: ../../../src/common/logging.c:276 #, c-format msgid "error: " msgstr "fel: " -#: ../../../src/common/logging.c:280 +#: ../../../src/common/logging.c:283 #, c-format msgid "warning: " msgstr "varning: " -#: ../../../src/common/logging.c:291 +#: ../../../src/common/logging.c:294 #, c-format msgid "detail: " msgstr "detalj: " -#: ../../../src/common/logging.c:298 +#: ../../../src/common/logging.c:301 #, c-format msgid "hint: " msgstr "tips: " @@ -78,117 +78,112 @@ msgid "could not get exit code from subprocess: error code %lu" msgstr "kunde inte hämta statuskod för underprocess: felkod %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:271 pg_resetwal.c:285 #, c-format msgid "invalid argument for option %s" msgstr "ogiltigt argument för flaggan %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:272 pg_resetwal.c:286 pg_resetwal.c:308 pg_resetwal.c:321 +#: pg_resetwal.c:328 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Försök med \"%s --help\" för mer information." -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "Epoch (-e) för transaktions-ID får inte vara -1." -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "äldsta transaktions-ID (-u) måste vara större än eller lika med %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "transaktions-ID (-x) måste vara större än eller lika med %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "transaktions-ID (-c) måste antingen vara 0 eller större än eller lika med 2" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) får inte vara 0." -#: pg_resetwal.c:254 -#, c-format -msgid "multitransaction ID (-m) must not be 0" -msgstr "Multitransaktions-ID (-m) får inte vara 0." - -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "Äldsta multitransaktions-ID (-m) får inte vara 0." -#: pg_resetwal.c:274 +#: pg_resetwal.c:276 #, c-format -msgid "multitransaction offset (-O) must not be -1" -msgstr "Multitransaktionsoffset (-O) får inte vara -1." +msgid "multitransaction offset (-O) must be between 0 and %u" +msgstr "multitransaktionsoffset (-O) måste vara mellan 0 och %u" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "argumentet till --wal-segsize måste vara ett tal" -#: pg_resetwal.c:298 +#: pg_resetwal.c:303 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "argumentet till --wal-segsize måste vara en tvåpotens mellan 1 och 1024" -#: pg_resetwal.c:314 +#: pg_resetwal.c:319 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "för många kommandoradsargument (första är \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:327 #, c-format msgid "no data directory specified" msgstr "ingen datakatalog angiven" -#: pg_resetwal.c:336 +#: pg_resetwal.c:341 #, c-format msgid "cannot be executed by \"root\"" msgstr "kan inte köras av \"root\"" -#: pg_resetwal.c:337 +#: pg_resetwal.c:342 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Du måste köra %s som PostgreSQL:s superuser." -#: pg_resetwal.c:347 +#: pg_resetwal.c:352 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "kunde inte läsa rättigheter på katalog \"%s\": %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:358 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "kunde inte byta katalog till \"%s\": %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 +#: pg_resetwal.c:371 pg_resetwal.c:523 pg_resetwal.c:571 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "kunde inte öppna filen \"%s\" för läsning: %m" -#: pg_resetwal.c:371 +#: pg_resetwal.c:376 #, c-format msgid "lock file \"%s\" exists" msgstr "låsfil med namn \"%s\" finns redan" -#: pg_resetwal.c:372 +#: pg_resetwal.c:377 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "Kör servern redan? Om inte, radera låsfilen och försök igen." -#: pg_resetwal.c:467 +#: pg_resetwal.c:472 #, c-format msgid "" "\n" @@ -198,7 +193,7 @@ msgstr "" "Om dessa värden verkar godtagbara, använd då -f för att\n" "framtvinga återställning.\n" -#: pg_resetwal.c:479 +#: pg_resetwal.c:484 #, c-format msgid "" "The database server was not shut down cleanly.\n" @@ -209,32 +204,32 @@ msgstr "" "write-ahead-loggen kan medföra att data förloras. Om du ändå\n" "vill fortsätta, använd -f för att framtvinga återställning.\n" -#: pg_resetwal.c:493 +#: pg_resetwal.c:498 #, c-format msgid "Write-ahead log reset\n" msgstr "Återställning av write-ahead-log\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:530 #, c-format msgid "unexpected empty file \"%s\"" msgstr "oväntad tom fil \"%s\"" -#: pg_resetwal.c:527 pg_resetwal.c:581 +#: pg_resetwal.c:532 pg_resetwal.c:586 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: pg_resetwal.c:535 +#: pg_resetwal.c:540 #, c-format msgid "data directory is of wrong version" msgstr "datakatalogen har fel version" -#: pg_resetwal.c:536 +#: pg_resetwal.c:541 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "Filen \"%s\" innehåller \"%s\", vilket inte är kompatibelt med detta programmets version \"%s\"." -#: pg_resetwal.c:569 +#: pg_resetwal.c:574 #, c-format msgid "" "If you are sure the data directory path is correct, execute\n" @@ -244,24 +239,24 @@ msgstr "" "Om du är säker på att sökvägen till datakatalogen är riktig,\n" "utför då \"touch %s\" och försök sedan igen." -#: pg_resetwal.c:597 +#: pg_resetwal.c:602 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control existerar men har ogiltig CRC. Fortsätt med varsamhet." -#: pg_resetwal.c:606 +#: pg_resetwal.c:611 #, c-format 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] "pg_control anger ogiltig WAL-segmentstorlek (%d byte); fortsätt med varsamhet." msgstr[1] "pg_control anger ogiltig WAL-segmentstorlek (%d byte); fortsätt med varsamhet." -#: pg_resetwal.c:617 +#: pg_resetwal.c:622 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control existerar men är trasig eller har fel version. Den ignoreras." -#: pg_resetwal.c:712 +#: pg_resetwal.c:717 #, c-format msgid "" "Guessed pg_control values:\n" @@ -270,7 +265,7 @@ msgstr "" "Gissade värden för pg_control:\n" "\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:719 #, c-format msgid "" "Current pg_control values:\n" @@ -282,168 +277,168 @@ msgstr "" # November 26th, 2014: Insert six additional space characters # for best alignment with Swedish translation. # Translations should be checked against those of pg_controldata. -#: pg_resetwal.c:716 +#: pg_resetwal.c:721 #, c-format msgid "pg_control version number: %u\n" msgstr "Versionsnummer för pg_control: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:723 #, c-format msgid "Catalog version number: %u\n" msgstr "Katalogversion: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:725 #, c-format msgid "Database system identifier: %llu\n" msgstr "Databasens systemidentifierare: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:727 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "TimeLineID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Senaste kontrollpunktens full_page_writes: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "off" msgstr "av" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "on" msgstr "på" -#: pg_resetwal.c:726 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "NextXID vid senaste kontrollpunkt: %u:%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:734 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "NextOID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "NextMultiXactId vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "NextMultiOffset vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "oldestXID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "DB för oldestXID vid senaste kontrollpunkt: %u\n" # FIXME: too wide -#: pg_resetwal.c:739 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "oldestActiveXID vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "oldestMultiXid vid senaste kontrollpunkt: %u\n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "DB för oldestMulti vid senaste kontrollpkt: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "oldestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "newestCommitTsXid vid senaste kontrollpunkt:%u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:754 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Maximal jämkning av data (alignment): %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:757 #, c-format msgid "Database block size: %u\n" msgstr "Databasens blockstorlek: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:759 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Block per segment i en stor relation: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:761 #, c-format msgid "WAL block size: %u\n" msgstr "Blockstorlek i transaktionsloggen: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:763 pg_resetwal.c:853 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Segmentstorlek i transaktionsloggen: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:765 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Maximal längd för identifierare: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:767 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Maximalt antal kolonner i ett index: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:769 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Maximal storlek för en TOAST-enhet: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:771 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Storlek för large-object-enheter: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:774 #, c-format msgid "Date/time type storage: %s\n" msgstr "Representation av dag och tid: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:775 msgid "64-bit integers" msgstr "64-bitars heltal" -#: pg_resetwal.c:771 +#: pg_resetwal.c:776 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Åtkomst till float8-argument: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by reference" msgstr "referens" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by value" msgstr "värdeåtkomst" -#: pg_resetwal.c:773 +#: pg_resetwal.c:778 #, c-format msgid "Data page checksum version: %u\n" msgstr "Checksummaversion för datasidor: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:792 #, c-format msgid "" "\n" @@ -458,102 +453,102 @@ msgstr "" # November 26th, 2014: Insert additional spacing to fit # with the first translated text, which uses most characters. -#: pg_resetwal.c:791 +#: pg_resetwal.c:796 #, c-format msgid "First log segment after reset: %s\n" msgstr "Första loggsegment efter återställning: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:800 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:802 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:804 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "DB för OldestMulti: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:810 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:816 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:822 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:830 #, c-format msgid "OldestXID's DB: %u\n" msgstr "DB för OldestXID: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextXID epoch: %u\n" msgstr "Epoch för NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:842 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:847 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:922 pg_resetwal.c:981 pg_resetwal.c:1016 +#: pg_resetwal.c:931 pg_resetwal.c:990 pg_resetwal.c:1025 #, c-format msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 +#: pg_resetwal.c:963 pg_resetwal.c:1004 pg_resetwal.c:1042 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 +#: pg_resetwal.c:966 pg_resetwal.c:1007 pg_resetwal.c:1045 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 +#: pg_resetwal.c:999 pg_resetwal.c:1037 #, c-format msgid "could not delete file \"%s\": %m" msgstr "kunde inte radera fil \"%s\": %m" -#: pg_resetwal.c:1100 +#: pg_resetwal.c:1109 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" -#: pg_resetwal.c:1108 pg_resetwal.c:1120 +#: pg_resetwal.c:1117 pg_resetwal.c:1129 #, c-format msgid "could not write file \"%s\": %m" msgstr "kunde inte skriva fil \"%s\": %m" -#: pg_resetwal.c:1125 +#: pg_resetwal.c:1134 #, c-format msgid "fsync error: %m" msgstr "misslyckad fsync: %m" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1143 #, c-format msgid "" "%s resets the PostgreSQL write-ahead log.\n" @@ -562,7 +557,7 @@ msgstr "" "%s återställer write-ahead-log för PostgreSQL.\n" "\n" -#: pg_resetwal.c:1135 +#: pg_resetwal.c:1144 #, c-format msgid "" "Usage:\n" @@ -573,12 +568,12 @@ msgstr "" " %s [FLAGGA]... DATAKATALOG\n" "\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1145 #, c-format msgid "Options:\n" msgstr "Flaggor:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1146 #, c-format msgid "" " -c, --commit-timestamp-ids=XID,XID\n" @@ -590,72 +585,72 @@ msgstr "" " kan ha commit-tidstämpel (noll betyder\n" " ingen ändring)\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1149 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR datakatalog\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1150 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH sätter epoch för nästa transaktions-ID\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1151 #, c-format msgid " -f, --force force update to be done\n" msgstr " -f, --force framtvinga uppdatering\n" -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1152 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALFIL sätt minsta startposition för ny WAL\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1153 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID sätt nästa och äldsta multitransaktions-ID\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1154 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr " -n, --dry-run ingen updatering; visa bara planerade åtgärder\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1155 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID sätt nästa OID\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1156 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET sätt nästa multitransaktionsoffset\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1157 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID sätt äldsta transaktions-ID\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1158 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version visa versionsinformation, avsluta sedan\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1159 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID sätt nästa transaktions-ID\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1160 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=STORLEK storlek på WAL-segment i megabyte\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1161 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help visa denna hjälp, avsluta sedan\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1162 #, c-format msgid "" "\n" @@ -664,7 +659,7 @@ msgstr "" "\n" "Rapportera fel till <%s>.\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1163 #, c-format msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" diff --git a/src/bin/pg_resetwal/po/uk.po b/src/bin/pg_resetwal/po/uk.po index be458735c24..cc020541910 100644 --- a/src/bin/pg_resetwal/po/uk.po +++ b/src/bin/pg_resetwal/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: 2025-12-31 03:11+0000\n" +"PO-Revision-Date: 2025-12-31 16:25\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -78,124 +78,119 @@ msgid "could not get exit code from subprocess: error code %lu" msgstr "не вдалося отримати код завершення підпроцесу: код помилки %lu" #. translator: the second %s is a command line argument (-e, etc) -#: pg_resetwal.c:163 pg_resetwal.c:176 pg_resetwal.c:189 pg_resetwal.c:202 -#: pg_resetwal.c:209 pg_resetwal.c:228 pg_resetwal.c:241 pg_resetwal.c:249 -#: pg_resetwal.c:269 pg_resetwal.c:280 +#: pg_resetwal.c:166 pg_resetwal.c:179 pg_resetwal.c:192 pg_resetwal.c:205 +#: pg_resetwal.c:212 pg_resetwal.c:231 pg_resetwal.c:244 pg_resetwal.c:252 +#: pg_resetwal.c:271 pg_resetwal.c:285 #, c-format msgid "invalid argument for option %s" msgstr "неприпустимий аргумент для параметру %s" -#: pg_resetwal.c:164 pg_resetwal.c:177 pg_resetwal.c:190 pg_resetwal.c:203 -#: pg_resetwal.c:210 pg_resetwal.c:229 pg_resetwal.c:242 pg_resetwal.c:250 -#: pg_resetwal.c:270 pg_resetwal.c:281 pg_resetwal.c:303 pg_resetwal.c:316 -#: pg_resetwal.c:323 +#: pg_resetwal.c:167 pg_resetwal.c:180 pg_resetwal.c:193 pg_resetwal.c:206 +#: pg_resetwal.c:213 pg_resetwal.c:232 pg_resetwal.c:245 pg_resetwal.c:253 +#: pg_resetwal.c:272 pg_resetwal.c:286 pg_resetwal.c:308 pg_resetwal.c:321 +#: pg_resetwal.c:328 #, c-format msgid "Try \"%s --help\" for more information." msgstr "Спробуйте \"%s --help\" для додаткової інформації." -#: pg_resetwal.c:168 +#: pg_resetwal.c:171 #, c-format msgid "transaction ID epoch (-e) must not be -1" msgstr "епоха ID транзакції (-e) не повинна бути -1" -#: pg_resetwal.c:181 +#: pg_resetwal.c:184 #, c-format msgid "oldest transaction ID (-u) must be greater than or equal to %u" msgstr "найстаріший ID транзакції (-u) має бути більший або рівним %u" -#: pg_resetwal.c:194 +#: pg_resetwal.c:197 #, c-format msgid "transaction ID (-x) must be greater than or equal to %u" msgstr "ID транзакції (-x) має бути більшим чи рівним %u" -#: pg_resetwal.c:216 pg_resetwal.c:220 +#: pg_resetwal.c:219 pg_resetwal.c:223 #, c-format msgid "transaction ID (-c) must be either 0 or greater than or equal to 2" msgstr "ID транзакції (-c) повинен дорівнювати 0, бути більшим за або дорівнювати 2" -#: pg_resetwal.c:233 +#: pg_resetwal.c:236 #, c-format msgid "OID (-o) must not be 0" msgstr "OID (-o) не може бути 0" -#: pg_resetwal.c:254 -#, c-format -msgid "multitransaction ID (-m) must not be 0" -msgstr "ID мультитранзакції (-m) не повинен бути 0" - -#: pg_resetwal.c:261 +#: pg_resetwal.c:262 #, c-format msgid "oldest multitransaction ID (-m) must not be 0" msgstr "найстарший ID мультитранзакції (-m) не повинен бути 0" -#: pg_resetwal.c:274 +#: pg_resetwal.c:276 #, c-format -msgid "multitransaction offset (-O) must not be -1" -msgstr "зсув мультитранзакції (-O) не повинен бути -1" +msgid "multitransaction offset (-O) must be between 0 and %u" +msgstr "зсув мультитранзакції (O) повинен бути між 0 і %u" -#: pg_resetwal.c:296 +#: pg_resetwal.c:301 #, c-format msgid "argument of --wal-segsize must be a number" msgstr "аргумент --wal-segsize повинен бути числом" -#: pg_resetwal.c:298 +#: pg_resetwal.c:303 #, c-format msgid "argument of --wal-segsize must be a power of 2 between 1 and 1024" msgstr "аргумент --wal-segsize повинен бути ступенем 2 між 1 і 1024" -#: pg_resetwal.c:314 +#: pg_resetwal.c:319 #, c-format msgid "too many command-line arguments (first is \"%s\")" msgstr "забагато аргументів у командному рядку (перший \"%s\")" -#: pg_resetwal.c:322 +#: pg_resetwal.c:327 #, c-format msgid "no data directory specified" msgstr "каталог даних не вказано" -#: pg_resetwal.c:336 +#: pg_resetwal.c:341 #, c-format msgid "cannot be executed by \"root\"" msgstr "\"root\" не може це виконувати" -#: pg_resetwal.c:337 +#: pg_resetwal.c:342 #, c-format msgid "You must run %s as the PostgreSQL superuser." msgstr "Запускати %s треба від суперкористувача PostgreSQL." -#: pg_resetwal.c:347 +#: pg_resetwal.c:352 #, c-format msgid "could not read permissions of directory \"%s\": %m" msgstr "не вдалося прочитати дозволи на каталог \"%s\": %m" -#: pg_resetwal.c:353 +#: pg_resetwal.c:358 #, c-format msgid "could not change directory to \"%s\": %m" msgstr "не вдалося змінити каталог на \"%s\": %m" -#: pg_resetwal.c:366 pg_resetwal.c:518 pg_resetwal.c:566 +#: pg_resetwal.c:371 pg_resetwal.c:523 pg_resetwal.c:571 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не вдалося відкрити файл \"%s\" для читання: %m" -#: pg_resetwal.c:371 +#: pg_resetwal.c:376 #, c-format msgid "lock file \"%s\" exists" msgstr "файл блокування \"%s\" вже існує" -#: pg_resetwal.c:372 +#: pg_resetwal.c:377 #, c-format msgid "Is a server running? If not, delete the lock file and try again." msgstr "Чи запущений сервер? Якщо ні, видаліть файл блокування і спробуйте знову." -#: pg_resetwal.c:467 +#: pg_resetwal.c:472 #, c-format msgid "\n" "If these values seem acceptable, use -f to force reset.\n" msgstr "\n" "Якщо ці значення виглядають допустимими, використайте -f, щоб провести перевстановлення.\n" -#: pg_resetwal.c:479 +#: pg_resetwal.c:484 #, c-format msgid "The database server was not shut down cleanly.\n" "Resetting the write-ahead log might cause data to be lost.\n" @@ -204,32 +199,32 @@ msgstr "Сервер баз даних був зупинений некорек "Очищення журналу передзапису може привести до втрати даних.\n" "Якщо ви все одно хочете продовжити, використайте параметр -f.\n" -#: pg_resetwal.c:493 +#: pg_resetwal.c:498 #, c-format msgid "Write-ahead log reset\n" msgstr "Журнал передзапису скинуто\n" -#: pg_resetwal.c:525 +#: pg_resetwal.c:530 #, c-format msgid "unexpected empty file \"%s\"" msgstr "неочікуваний порожній файл \"%s\"" -#: pg_resetwal.c:527 pg_resetwal.c:581 +#: pg_resetwal.c:532 pg_resetwal.c:586 #, c-format msgid "could not read file \"%s\": %m" msgstr "не вдалося прочитати файл \"%s\": %m" -#: pg_resetwal.c:535 +#: pg_resetwal.c:540 #, c-format msgid "data directory is of wrong version" msgstr "каталог даних неправильної версії" -#: pg_resetwal.c:536 +#: pg_resetwal.c:541 #, c-format msgid "File \"%s\" contains \"%s\", which is not compatible with this program's version \"%s\"." msgstr "Файл \"%s\" містить \"%s\", який не сумісний з версією цієї програми \"%s\"." -#: pg_resetwal.c:569 +#: pg_resetwal.c:574 #, c-format msgid "If you are sure the data directory path is correct, execute\n" " touch %s\n" @@ -238,12 +233,12 @@ msgstr "Якщо Ви впевнені, що шлях каталогу дани " touch %s\n" "і спробуйте знову." -#: pg_resetwal.c:597 +#: pg_resetwal.c:602 #, c-format msgid "pg_control exists but has invalid CRC; proceed with caution" msgstr "pg_control існує, але має недопустимий CRC; продовжуйте з обережністю" -#: pg_resetwal.c:606 +#: pg_resetwal.c:611 #, c-format 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" @@ -252,301 +247,301 @@ msgstr[1] "pg_control вказує неприпустимий розмір се msgstr[2] "pg_control вказує неприпустимий розмір сегмента WAL (%d байтів); продовжуйте з обережністю" msgstr[3] "pg_control вказує неприпустимий розмір сегмента WAL (%d байтів); продовжуйте з обережністю" -#: pg_resetwal.c:617 +#: pg_resetwal.c:622 #, c-format msgid "pg_control exists but is broken or wrong version; ignoring it" msgstr "pg_control існує, але зламаний або неправильної версії; ігнорується" -#: pg_resetwal.c:712 +#: pg_resetwal.c:717 #, c-format msgid "Guessed pg_control values:\n\n" msgstr "Припустимі значення pg_control:\n\n" -#: pg_resetwal.c:714 +#: pg_resetwal.c:719 #, c-format msgid "Current pg_control values:\n\n" msgstr "Поточні значення pg_control:\n\n" -#: pg_resetwal.c:716 +#: pg_resetwal.c:721 #, c-format msgid "pg_control version number: %u\n" msgstr "pg_control номер версії: %u\n" -#: pg_resetwal.c:718 +#: pg_resetwal.c:723 #, c-format msgid "Catalog version number: %u\n" msgstr "Номер версії каталогу: %u\n" -#: pg_resetwal.c:720 +#: pg_resetwal.c:725 #, c-format msgid "Database system identifier: %llu\n" msgstr "Системний ідентифікатор бази даних: %llu\n" -#: pg_resetwal.c:722 +#: pg_resetwal.c:727 #, c-format msgid "Latest checkpoint's TimeLineID: %u\n" msgstr "Останній TimeLineID контрольної точки: %u\n" -#: pg_resetwal.c:724 +#: pg_resetwal.c:729 #, c-format msgid "Latest checkpoint's full_page_writes: %s\n" msgstr "Останній full_page_writes контрольної точки: %s\n" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "off" msgstr "вимк" -#: pg_resetwal.c:725 +#: pg_resetwal.c:730 msgid "on" msgstr "увімк" -#: pg_resetwal.c:726 +#: pg_resetwal.c:731 #, c-format msgid "Latest checkpoint's NextXID: %u:%u\n" msgstr "Останній NextXID контрольної точки: %u%u\n" -#: pg_resetwal.c:729 +#: pg_resetwal.c:734 #, c-format msgid "Latest checkpoint's NextOID: %u\n" msgstr "Останній NextOID контрольної точки: %u\n" -#: pg_resetwal.c:731 +#: pg_resetwal.c:736 #, c-format msgid "Latest checkpoint's NextMultiXactId: %u\n" msgstr "Останній NextMultiXactId контрольної точки: %u\n" -#: pg_resetwal.c:733 +#: pg_resetwal.c:738 #, c-format msgid "Latest checkpoint's NextMultiOffset: %u\n" msgstr "Останній NextMultiOffset контрольної точки: %u\n" -#: pg_resetwal.c:735 +#: pg_resetwal.c:740 #, c-format msgid "Latest checkpoint's oldestXID: %u\n" msgstr "Останній oldestXID контрольної точки: %u\n" -#: pg_resetwal.c:737 +#: pg_resetwal.c:742 #, c-format msgid "Latest checkpoint's oldestXID's DB: %u\n" msgstr "Остання DB останнього oldestXID контрольної точки: %u\n" -#: pg_resetwal.c:739 +#: pg_resetwal.c:744 #, c-format msgid "Latest checkpoint's oldestActiveXID: %u\n" msgstr "Останній oldestActiveXID контрольної точки: %u\n" -#: pg_resetwal.c:741 +#: pg_resetwal.c:746 #, c-format msgid "Latest checkpoint's oldestMultiXid: %u\n" msgstr "Останній oldestMultiXid контрольної точки: %u \n" -#: pg_resetwal.c:743 +#: pg_resetwal.c:748 #, c-format msgid "Latest checkpoint's oldestMulti's DB: %u\n" msgstr "Остання DB останньої oldestMulti контрольної точки: %u\n" -#: pg_resetwal.c:745 +#: pg_resetwal.c:750 #, c-format msgid "Latest checkpoint's oldestCommitTsXid:%u\n" msgstr "Останній oldestCommitTsXid контрольної точки:%u\n" -#: pg_resetwal.c:747 +#: pg_resetwal.c:752 #, c-format msgid "Latest checkpoint's newestCommitTsXid:%u\n" msgstr "Останній newestCommitTsXid контрольної точки: %u\n" -#: pg_resetwal.c:749 +#: pg_resetwal.c:754 #, c-format msgid "Maximum data alignment: %u\n" msgstr "Максимальне вирівнювання даних: %u\n" -#: pg_resetwal.c:752 +#: pg_resetwal.c:757 #, c-format msgid "Database block size: %u\n" msgstr "Розмір блоку бази даних: %u\n" -#: pg_resetwal.c:754 +#: pg_resetwal.c:759 #, c-format msgid "Blocks per segment of large relation: %u\n" msgstr "Блоків на сегмент великого відношення: %u\n" -#: pg_resetwal.c:756 +#: pg_resetwal.c:761 #, c-format msgid "WAL block size: %u\n" msgstr "Pозмір блоку WAL: %u\n" -#: pg_resetwal.c:758 pg_resetwal.c:844 +#: pg_resetwal.c:763 pg_resetwal.c:853 #, c-format msgid "Bytes per WAL segment: %u\n" msgstr "Байтів на сегмент WAL: %u\n" -#: pg_resetwal.c:760 +#: pg_resetwal.c:765 #, c-format msgid "Maximum length of identifiers: %u\n" msgstr "Максимальна довжина ідентифікаторів: %u\n" -#: pg_resetwal.c:762 +#: pg_resetwal.c:767 #, c-format msgid "Maximum columns in an index: %u\n" msgstr "Максимальна кількість стовпців в індексі: %u\n" -#: pg_resetwal.c:764 +#: pg_resetwal.c:769 #, c-format msgid "Maximum size of a TOAST chunk: %u\n" msgstr "Максимальний розмір сегменту TOAST: %u\n" -#: pg_resetwal.c:766 +#: pg_resetwal.c:771 #, c-format msgid "Size of a large-object chunk: %u\n" msgstr "Розмір сегменту великих обїєктів: %u\n" -#: pg_resetwal.c:769 +#: pg_resetwal.c:774 #, c-format msgid "Date/time type storage: %s\n" msgstr "Дата/час типу сховища: %s\n" -#: pg_resetwal.c:770 +#: pg_resetwal.c:775 msgid "64-bit integers" msgstr "64-бітні цілі" -#: pg_resetwal.c:771 +#: pg_resetwal.c:776 #, c-format msgid "Float8 argument passing: %s\n" msgstr "Передача аргументу Float8: %s\n" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by reference" msgstr "за посиланням" -#: pg_resetwal.c:772 +#: pg_resetwal.c:777 msgid "by value" msgstr "за значенням" -#: pg_resetwal.c:773 +#: pg_resetwal.c:778 #, c-format msgid "Data page checksum version: %u\n" msgstr "Версія контрольних сум сторінок даних: %u\n" -#: pg_resetwal.c:787 +#: pg_resetwal.c:792 #, c-format msgid "\n\n" "Values to be changed:\n\n" msgstr "\n\n" "Значення, що потребують зміни:\n\n" -#: pg_resetwal.c:791 +#: pg_resetwal.c:796 #, c-format msgid "First log segment after reset: %s\n" msgstr "Перший сегмент журналу після скидання: %s\n" -#: pg_resetwal.c:795 +#: pg_resetwal.c:800 #, c-format msgid "NextMultiXactId: %u\n" msgstr "NextMultiXactId: %u\n" -#: pg_resetwal.c:797 +#: pg_resetwal.c:802 #, c-format msgid "OldestMultiXid: %u\n" msgstr "OldestMultiXid: %u\n" -#: pg_resetwal.c:799 +#: pg_resetwal.c:804 #, c-format msgid "OldestMulti's DB: %u\n" msgstr "OldestMulti's DB: %u\n" -#: pg_resetwal.c:805 +#: pg_resetwal.c:810 #, c-format msgid "NextMultiOffset: %u\n" msgstr "NextMultiOffset: %u\n" -#: pg_resetwal.c:811 +#: pg_resetwal.c:816 #, c-format msgid "NextOID: %u\n" msgstr "NextOID: %u\n" -#: pg_resetwal.c:817 +#: pg_resetwal.c:822 #, c-format msgid "NextXID: %u\n" msgstr "NextXID: %u\n" -#: pg_resetwal.c:819 +#: pg_resetwal.c:828 #, c-format msgid "OldestXID: %u\n" msgstr "OldestXID: %u\n" -#: pg_resetwal.c:821 +#: pg_resetwal.c:830 #, c-format msgid "OldestXID's DB: %u\n" msgstr "OldestXID's DB: %u\n" -#: pg_resetwal.c:827 +#: pg_resetwal.c:836 #, c-format msgid "NextXID epoch: %u\n" msgstr "Епоха NextXID: %u\n" -#: pg_resetwal.c:833 +#: pg_resetwal.c:842 #, c-format msgid "oldestCommitTsXid: %u\n" msgstr "oldestCommitTsXid: %u\n" -#: pg_resetwal.c:838 +#: pg_resetwal.c:847 #, c-format msgid "newestCommitTsXid: %u\n" msgstr "newestCommitTsXid: %u\n" -#: pg_resetwal.c:922 pg_resetwal.c:981 pg_resetwal.c:1016 +#: pg_resetwal.c:931 pg_resetwal.c:990 pg_resetwal.c:1025 #, c-format msgid "could not open directory \"%s\": %m" msgstr "не вдалося відкрити каталог \"%s\": %m" -#: pg_resetwal.c:954 pg_resetwal.c:995 pg_resetwal.c:1033 +#: pg_resetwal.c:963 pg_resetwal.c:1004 pg_resetwal.c:1042 #, c-format msgid "could not read directory \"%s\": %m" msgstr "не вдалося прочитати каталог \"%s\": %m" -#: pg_resetwal.c:957 pg_resetwal.c:998 pg_resetwal.c:1036 +#: pg_resetwal.c:966 pg_resetwal.c:1007 pg_resetwal.c:1045 #, c-format msgid "could not close directory \"%s\": %m" msgstr "не вдалося закрити каталог \"%s\": %m" -#: pg_resetwal.c:990 pg_resetwal.c:1028 +#: pg_resetwal.c:999 pg_resetwal.c:1037 #, c-format msgid "could not delete file \"%s\": %m" msgstr "не вдалося видалити файл \"%s\": %m" -#: pg_resetwal.c:1100 +#: pg_resetwal.c:1109 #, c-format msgid "could not open file \"%s\": %m" msgstr "не можливо відкрити файл \"%s\": %m" -#: pg_resetwal.c:1108 pg_resetwal.c:1120 +#: pg_resetwal.c:1117 pg_resetwal.c:1129 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалося записати файл \"%s\": %m" -#: pg_resetwal.c:1125 +#: pg_resetwal.c:1134 #, c-format msgid "fsync error: %m" msgstr "помилка fsync: %m" -#: pg_resetwal.c:1134 +#: pg_resetwal.c:1143 #, c-format msgid "%s resets the PostgreSQL write-ahead log.\n\n" msgstr "%s скидає журнал передзапису PostgreSQL.\n\n" -#: pg_resetwal.c:1135 +#: pg_resetwal.c:1144 #, c-format msgid "Usage:\n" " %s [OPTION]... DATADIR\n\n" msgstr "Використання:\n" " %s [OPTION]... КАТАЛОГ_ДАНИХ\n\n" -#: pg_resetwal.c:1136 +#: pg_resetwal.c:1145 #, c-format msgid "Options:\n" msgstr "Параметри:\n" -#: pg_resetwal.c:1137 +#: pg_resetwal.c:1146 #, c-format msgid " -c, --commit-timestamp-ids=XID,XID\n" " set oldest and newest transactions bearing\n" @@ -555,79 +550,79 @@ msgstr " -c, --commit-timestamp-ids=XID,XID\n" " встановити найстарішу та найновішу транзакції\n" " затвердити позначку часу (нуль означає залишити без змін)\n" -#: pg_resetwal.c:1140 +#: pg_resetwal.c:1149 #, c-format msgid " [-D, --pgdata=]DATADIR data directory\n" msgstr " [-D, --pgdata=]DATADIR каталог даних\n" -#: pg_resetwal.c:1141 +#: pg_resetwal.c:1150 #, c-format msgid " -e, --epoch=XIDEPOCH set next transaction ID epoch\n" msgstr " -e, --epoch=XIDEPOCH встановити наступну епоху ID транзакцій\n" -#: pg_resetwal.c:1142 +#: pg_resetwal.c:1151 #, c-format msgid " -f, --force force update to be done\n" msgstr " -f, --force примусово виконати оновлення\n" -#: pg_resetwal.c:1143 +#: pg_resetwal.c:1152 #, c-format msgid " -l, --next-wal-file=WALFILE set minimum starting location for new WAL\n" msgstr " -l, --next-wal-file=WALFILE задати мінімальне початкове розташування для нового WAL\n" -#: pg_resetwal.c:1144 +#: pg_resetwal.c:1153 #, c-format msgid " -m, --multixact-ids=MXID,MXID set next and oldest multitransaction ID\n" msgstr " -m, --multixact-ids=MXID,MXID задати ID наступної і найстарішої мультитранзакції\n" -#: pg_resetwal.c:1145 +#: pg_resetwal.c:1154 #, c-format msgid " -n, --dry-run no update, just show what would be done\n" msgstr " -n, --dry-run без оновлень, просто показати, що буде зроблено\n" -#: pg_resetwal.c:1146 +#: pg_resetwal.c:1155 #, c-format msgid " -o, --next-oid=OID set next OID\n" msgstr " -o, --next-oid=OID задати наступний OID\n" -#: pg_resetwal.c:1147 +#: pg_resetwal.c:1156 #, c-format msgid " -O, --multixact-offset=OFFSET set next multitransaction offset\n" msgstr " -O, --multixact-offset=OFFSET задати зсув наступної мультитранзакції\n" -#: pg_resetwal.c:1148 +#: pg_resetwal.c:1157 #, c-format msgid " -u, --oldest-transaction-id=XID set oldest transaction ID\n" msgstr " -u, --oldest-transaction-id=XID задати ID найстарішої транзакції\n" -#: pg_resetwal.c:1149 +#: pg_resetwal.c:1158 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивести інформацію про версію і вийти\n" -#: pg_resetwal.c:1150 +#: pg_resetwal.c:1159 #, c-format msgid " -x, --next-transaction-id=XID set next transaction ID\n" msgstr " -x, --next-transaction-id=XID задати ID наступної транзакції\n" -#: pg_resetwal.c:1151 +#: pg_resetwal.c:1160 #, c-format msgid " --wal-segsize=SIZE size of WAL segments, in megabytes\n" msgstr " --wal-segsize=SIZE розмір сегментів WAL, у мегабайтах\n" -#: pg_resetwal.c:1152 +#: pg_resetwal.c:1161 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку і вийти\n" -#: pg_resetwal.c:1153 +#: pg_resetwal.c:1162 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "Повідомляти про помилки на <%s>.\n" -#: pg_resetwal.c:1154 +#: pg_resetwal.c:1163 #, c-format msgid "%s home page: <%s>\n" msgstr "Домашня сторінка %s: <%s>\n" diff --git a/src/bin/pg_rewind/po/es.po b/src/bin/pg_rewind/po/es.po index 018116e1da8..9c1da2c9419 100644 --- a/src/bin/pg_rewind/po/es.po +++ b/src/bin/pg_rewind/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:10+0000\n" +"POT-Creation-Date: 2026-02-06 21:21+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" @@ -209,11 +209,16 @@ msgstr "no se pudo crear el link simbólico en «%s»: %m" msgid "could not remove symbolic link \"%s\": %m" msgstr "no se pudo eliminar el enlace simbólico «%s»: %m" -#: file_ops.c:326 file_ops.c:330 +#: file_ops.c:326 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "no se pudo abrir archivo «%s» para lectura: %m" +#: file_ops.c:330 +#, c-format +msgid "could not stat file \"%s\" for reading: %m" +msgstr "no se pudo efectuar «stat» al archivo «%s» para lectura: %m" + #: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:371 #, c-format msgid "could not read file \"%s\": %m" diff --git a/src/bin/pg_rewind/po/ru.po b/src/bin/pg_rewind/po/ru.po index d3949ea65ce..f9ef6737a07 100644 --- a/src/bin/pg_rewind/po/ru.po +++ b/src/bin/pg_rewind/po/ru.po @@ -1,13 +1,13 @@ # Russian message translation file for pg_rewind # Copyright (C) 2015-2016 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# SPDX-FileCopyrightText: 2015-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2015-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Alexander Lakhin msgid "" msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-08-02 11:37+0300\n" -"PO-Revision-Date: 2025-09-13 18:56+0300\n" +"POT-Creation-Date: 2026-02-07 08:58+0200\n" +"PO-Revision-Date: 2026-02-07 09:14+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -205,11 +205,16 @@ msgstr "не удалось создать символическую ссылк msgid "could not remove symbolic link \"%s\": %m" msgstr "ошибка при удалении символической ссылки \"%s\": %m" -#: file_ops.c:326 file_ops.c:330 +#: file_ops.c:326 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не удалось открыть файл \"%s\" для чтения: %m" +#: file_ops.c:330 +#, c-format +msgid "could not stat file \"%s\" for reading: %m" +msgstr "не удалось получить информацию о файле \"%s\" для чтения: %m" + #: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:371 #, c-format msgid "could not read file \"%s\": %m" diff --git a/src/bin/pg_rewind/po/sv.po b/src/bin/pg_rewind/po/sv.po index d283f81d5c4..c7d80dba487 100644 --- a/src/bin/pg_rewind/po/sv.po +++ b/src/bin/pg_rewind/po/sv.po @@ -1,14 +1,14 @@ # Swedish message translation file for pg_rewind # Copyright (C) 2017 PostgreSQL Global Development Group # This file is distributed under the same license as the PostgreSQL package. -# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022. +# Dennis Björklund , 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. # msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-09-29 11:51+0000\n" -"PO-Revision-Date: 2022-09-29 21:42+0200\n" +"POT-Creation-Date: 2026-02-06 21:21+0000\n" +"PO-Revision-Date: 2026-02-07 09:31+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -125,7 +125,7 @@ msgstr "kunde inte återställa fil \"%s\" från arkiv" msgid "out of memory" msgstr "slut på minne" -#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:312 +#: ../../fe_utils/recovery_gen.c:121 parsexlog.c:333 #, c-format msgid "could not open file \"%s\": %m" msgstr "kunde inte öppna fil \"%s\": %m" @@ -138,7 +138,7 @@ msgstr "kunde inte skriva till fil \"%s\": %m" #: ../../fe_utils/recovery_gen.c:133 #, c-format msgid "could not create file \"%s\": %m" -msgstr "kan inte skapa fil \"%s\": %m" +msgstr "kunde inte skapa fil \"%s\": %m" #: file_ops.c:67 #, c-format @@ -205,17 +205,22 @@ msgstr "kunde inte skapa en symnbolisk länk vid \"%s\": %m" msgid "could not remove symbolic link \"%s\": %m" msgstr "kan inte ta bort symbolisk länk \"%s\": %m" -#: file_ops.c:326 file_ops.c:330 +#: file_ops.c:326 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "kunde inte öppna filen \"%s\" för läsning: %m" -#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:350 +#: file_ops.c:330 +#, c-format +msgid "could not stat file \"%s\" for reading: %m" +msgstr "kunde inte göra stat() på filen \"%s\" för läsning: %m" + +#: file_ops.c:341 local_source.c:104 local_source.c:163 parsexlog.c:371 #, c-format msgid "could not read file \"%s\": %m" msgstr "kunde inte läsa fil \"%s\": %m" -#: file_ops.c:344 parsexlog.c:352 +#: file_ops.c:344 parsexlog.c:373 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" @@ -225,57 +230,57 @@ msgstr "kunde inte läsa fil \"%s\": läste %d av %zu" msgid "could not open directory \"%s\": %m" msgstr "kunde inte öppna katalog \"%s\": %m" -#: file_ops.c:446 +#: file_ops.c:442 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "kan inte läsa symbolisk länk \"%s\": %m" -#: file_ops.c:449 +#: file_ops.c:445 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "mål för symbolisk länk \"%s\" är för lång" -#: file_ops.c:464 +#: file_ops.c:460 #, c-format msgid "\"%s\" is a symbolic link, but symbolic links are not supported on this platform" msgstr "\"%s\" är en symbolisk länk men symboliska länkar stöds inte på denna plattform" -#: file_ops.c:471 +#: file_ops.c:467 #, c-format msgid "could not read directory \"%s\": %m" msgstr "kunde inte läsa katalog \"%s\": %m" -#: file_ops.c:475 +#: file_ops.c:471 #, c-format msgid "could not close directory \"%s\": %m" msgstr "kunde inte stänga katalog \"%s\": %m" -#: filemap.c:236 +#: filemap.c:298 #, c-format msgid "data file \"%s\" in source is not a regular file" msgstr "datafil \"%s\" i källan är inte en vanlig fil" -#: filemap.c:241 filemap.c:274 +#: filemap.c:303 filemap.c:336 #, c-format msgid "duplicate source file \"%s\"" msgstr "duplicerad källflagga \"%s\"" -#: filemap.c:329 +#: filemap.c:391 #, c-format msgid "unexpected page modification for non-regular file \"%s\"" msgstr "oväntad sidmodifiering för icke-regulär fil \"%s\"" -#: filemap.c:679 filemap.c:773 +#: filemap.c:745 filemap.c:847 #, c-format msgid "unknown file type for \"%s\"" msgstr "okänd filtyp på \"%s\"" -#: filemap.c:706 +#: filemap.c:780 #, c-format msgid "file \"%s\" is of different type in source and target" msgstr "filen \"%s\" har olika typ i källa och mål" -#: filemap.c:778 +#: filemap.c:852 #, c-format msgid "could not decide what to do with file \"%s\"" msgstr "kunde inte bestämma vad som skulle göras med filen \"%s\"" @@ -425,7 +430,7 @@ msgstr "kunde inte söka i källfil: %m" msgid "unexpected EOF while reading file \"%s\"" msgstr "oväntad EOF under läsning av fil \"%s\"" -#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:199 +#: parsexlog.c:80 parsexlog.c:139 parsexlog.c:201 #, c-format msgid "out of memory while allocating a WAL reading processor" msgstr "slut på minne vid allokering av en WAL-läs-processor" @@ -445,22 +450,22 @@ msgstr "kunde inte läsa WAL-post vid %X/%X" msgid "end pointer %X/%X is not a valid end point; expected %X/%X" msgstr "slutpekare %X/%X är inte en giltig slutposition; förväntade %X/%X" -#: parsexlog.c:212 +#: parsexlog.c:214 #, c-format msgid "could not find previous WAL record at %X/%X: %s" msgstr "kunde inte hitta föregående WAL-post vid %X/%X: %s" -#: parsexlog.c:216 +#: parsexlog.c:218 #, c-format msgid "could not find previous WAL record at %X/%X" msgstr "kunde inte hitta förgående WAL-post vid %X/%X" -#: parsexlog.c:341 +#: parsexlog.c:362 #, c-format msgid "could not seek in file \"%s\": %m" msgstr "kunde inte söka (seek) i fil \"%s\": %m" -#: parsexlog.c:440 +#: parsexlog.c:461 #, c-format msgid "WAL record modifies a relation, but record type is not recognized: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" msgstr "WAL-post modifierar en relation, men posttypen känns inte igen: lsn: %X/%X, rmid: %d, rmgr: %s, info: %02X" @@ -539,9 +544,8 @@ msgid "" " -R, --write-recovery-conf write configuration for replication\n" " (requires --source-server)\n" msgstr "" -" -R, --write-recovery-conf\n" -" skriv konfiguration för replikering\n" -" (kräver --source-server)\n" +" -R, --write-recovery-conf skriv konfiguration för replikering\n" +" (kräver --source-server)\n" #: pg_rewind.c:100 #, c-format @@ -657,149 +661,149 @@ msgstr "servrarna divergerade vid WAL-position %X/%X på tidslinje %u" msgid "no rewind required" msgstr "ingen rewind krävs" -#: pg_rewind.c:410 +#: pg_rewind.c:413 #, c-format msgid "rewinding from last common checkpoint at %X/%X on timeline %u" msgstr "rewind från senaste gemensamma checkpoint vid %X/%X på tidslinje %u" -#: pg_rewind.c:420 +#: pg_rewind.c:423 #, c-format msgid "reading source file list" msgstr "läser källfillista" -#: pg_rewind.c:424 +#: pg_rewind.c:427 #, c-format msgid "reading target file list" msgstr "läser målfillista" -#: pg_rewind.c:433 +#: pg_rewind.c:436 #, c-format msgid "reading WAL in target" msgstr "läser WAL i målet" -#: pg_rewind.c:454 +#: pg_rewind.c:457 #, c-format msgid "need to copy %lu MB (total source directory size is %lu MB)" msgstr "behöver kopiera %lu MB (total källkatalogstorlek är %lu MB)" -#: pg_rewind.c:472 +#: pg_rewind.c:475 #, c-format msgid "syncing target data directory" msgstr "synkar måldatakatalog" -#: pg_rewind.c:488 +#: pg_rewind.c:491 #, c-format msgid "Done!" msgstr "Klar!" -#: pg_rewind.c:568 +#: pg_rewind.c:571 #, c-format msgid "no action decided for file \"%s\"" msgstr "ingen åtgärd beslutades för filen \"%s\"" -#: pg_rewind.c:600 +#: pg_rewind.c:603 #, c-format msgid "source system was modified while pg_rewind was running" msgstr "källsystemet ändrades samtidigt som pg_rewind kördes" -#: pg_rewind.c:604 +#: pg_rewind.c:607 #, c-format msgid "creating backup label and updating control file" msgstr "skapar backupetikett och uppdaterar kontrollfil" -#: pg_rewind.c:654 +#: pg_rewind.c:657 #, c-format msgid "source system was in unexpected state at end of rewind" msgstr "källsystemet var i ett oväntat tillstånd vid slutet av återspolningen" -#: pg_rewind.c:685 +#: pg_rewind.c:688 #, c-format msgid "source and target clusters are from different systems" msgstr "källa och målkluster är från olika system" -#: pg_rewind.c:693 +#: pg_rewind.c:696 #, c-format msgid "clusters are not compatible with this version of pg_rewind" msgstr "klustren är inte kompatibla med denna version av pg_rewind" -#: pg_rewind.c:703 +#: pg_rewind.c:706 #, c-format msgid "target server needs to use either data checksums or \"wal_log_hints = on\"" msgstr "målservern behöver använda antingen datachecksums eller \"wal_log_hints = on\"" -#: pg_rewind.c:714 +#: pg_rewind.c:717 #, c-format msgid "target server must be shut down cleanly" msgstr "målserver måste stängas ner utan fel" -#: pg_rewind.c:724 +#: pg_rewind.c:727 #, c-format msgid "source data directory must be shut down cleanly" msgstr "måldatakatalog måste stängas ner utan fel" -#: pg_rewind.c:771 +#: pg_rewind.c:774 #, c-format msgid "%*s/%s kB (%d%%) copied" msgstr "%*s/%s kB (%d%%) kopierad" -#: pg_rewind.c:834 +#: pg_rewind.c:837 #, c-format msgid "invalid control file" msgstr "ogiltig kontrollfil" -#: pg_rewind.c:918 +#: pg_rewind.c:919 #, c-format msgid "could not find common ancestor of the source and target cluster's timelines" msgstr "kunde inte finna en gemensam anfader av källa och målklusterets tidslinjer" -#: pg_rewind.c:959 +#: pg_rewind.c:960 #, c-format msgid "backup label buffer too small" msgstr "backupetikett-buffer för liten" -#: pg_rewind.c:982 +#: pg_rewind.c:983 #, c-format msgid "unexpected control file CRC" msgstr "oväntad kontrollfil-CRC" -#: pg_rewind.c:994 +#: pg_rewind.c:995 #, c-format msgid "unexpected control file size %d, expected %d" msgstr "oväntad kontrollfilstorlek %d, förväntade %d" -#: pg_rewind.c:1003 +#: pg_rewind.c:1004 #, 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-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men kontrollfilen anger %d byte" msgstr[1] "WAL-segmentstorlek måste vara en tvåpotens mellan 1MB och 1GB men kontrollfilen anger %d byte" -#: pg_rewind.c:1042 pg_rewind.c:1112 +#: pg_rewind.c:1043 pg_rewind.c:1113 #, c-format msgid "program \"%s\" is needed by %s but was not found in the same directory as \"%s\"" msgstr "programmet \"%s\" behövs av %s men hittades inte i samma katalog som \"%s\"" -#: pg_rewind.c:1045 pg_rewind.c:1115 +#: pg_rewind.c:1046 pg_rewind.c:1116 #, c-format msgid "program \"%s\" was found by \"%s\" but was not the same version as %s" msgstr "programmet \"%s\" hittades av \"%s\" men är inte av samma version som %s" -#: pg_rewind.c:1078 +#: pg_rewind.c:1079 #, c-format msgid "restore_command is not set in the target cluster" msgstr "restore_command är inte satt i målklustret" -#: pg_rewind.c:1119 +#: pg_rewind.c:1120 #, c-format msgid "executing \"%s\" for target server to complete crash recovery" msgstr "kör \"%s\" för målservern för att slutföra krashåterställning" -#: pg_rewind.c:1156 +#: pg_rewind.c:1157 #, c-format msgid "postgres single-user mode in target cluster failed" msgstr "postgres enanvändarläge misslyckades i målklustret" -#: pg_rewind.c:1157 +#: pg_rewind.c:1158 #, c-format msgid "Command was: %s" msgstr "Kommandot var: %s" @@ -839,172 +843,157 @@ msgstr "ogiltig data i historikfil" msgid "Timeline IDs must be less than child timeline's ID." msgstr "Tidslinje-ID:er måste vara mindre än barnens tidslinje-ID:er." -#: xlogreader.c:625 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "ogiltig postoffset vid %X/%X" -#: xlogreader.c:633 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "contrecord är begärd vid %X/%X" -#: xlogreader.c:674 xlogreader.c:1121 +#: xlogreader.c:669 xlogreader.c:1144 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "ogiltig postlängd vid %X/%X: förväntade %u, fick %u" -#: xlogreader.c:703 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "slut på minne vid avkodning av post med längden %u" - -#: xlogreader.c:725 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "postlängd %u vid %X/%X är för lång" - -#: xlogreader.c:774 +#: xlogreader.c:759 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "det finns ingen contrecord-flagga vid %X/%X" -#: xlogreader.c:787 +#: xlogreader.c:772 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ogiltig contrecord-längd %u (förväntade %lld) vid %X/%X" -#: xlogreader.c:922 -#, c-format -msgid "missing contrecord at %X/%X" -msgstr "det finns ingen contrecord vid %X/%X" - -#: xlogreader.c:1129 +#: xlogreader.c:1152 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ogiltigt resurshanterar-ID %u vid %X/%X" -#: xlogreader.c:1142 xlogreader.c:1158 +#: xlogreader.c:1165 xlogreader.c:1181 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "post med inkorrekt prev-link %X/%X vid %X/%X" -#: xlogreader.c:1194 +#: xlogreader.c:1219 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "felaktig resurshanterardatakontrollsumma i post vid %X/%X" -#: xlogreader.c:1231 +#: xlogreader.c:1256 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "felaktigt magiskt nummer %04X i loggsegment %s, offset %u" -#: xlogreader.c:1245 xlogreader.c:1286 +#: xlogreader.c:1270 xlogreader.c:1311 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ogiltiga infobitar %04X i loggsegment %s, offset %u" -#: xlogreader.c:1260 +#: xlogreader.c:1285 #, c-format msgid "WAL file is from different database system: WAL file database system identifier is %llu, pg_control database system identifier is %llu" msgstr "WAL-fil är från ett annat databassystem: WAL-filens databassystemidentifierare är %llu, pg_control databassystemidentifierare är %llu" -#: xlogreader.c:1268 +#: xlogreader.c:1293 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL-fil är från ett annat databassystem: inkorrekt segmentstorlek i sidhuvud" -#: xlogreader.c:1274 +#: xlogreader.c:1299 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL-fil är från ett annat databassystem: inkorrekt XLOG_BLCKSZ i sidhuvud" -#: xlogreader.c:1305 +#: xlogreader.c:1330 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "oväntad sidadress %X/%X i loggsegment %s, offset %u" -#: xlogreader.c:1330 +#: xlogreader.c:1355 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "ej-i-sekvens för tidslinje-ID %u (efter %u) i loggsegment %s, offset %u" -#: xlogreader.c:1735 +#: xlogreader.c:1760 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ej-i-sekvens block_id %u vid %X/%X" -#: xlogreader.c:1759 +#: xlogreader.c:1784 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" -msgstr "BKPBLOCK_HAS_DATA satt, men ingen data inkluderad vid %X/%X" +msgstr "BKPBLOCK_HAS_DATA är satt men ingen data inkluderad vid %X/%X" -#: xlogreader.c:1766 +#: xlogreader.c:1791 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" -msgstr "BKPBLOCK_HAS_DATA ej satt, men datalängd är %u vid %X/%X" +msgstr "BKPBLOCK_HAS_DATA är ej satt men datalängden är %u vid %X/%X" -#: xlogreader.c:1802 +#: xlogreader.c:1827 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" -msgstr "BKPIMAGE_HAS_HOLE satt, men håloffset %u längd %u block-image-längd %u vid %X/%X" +msgstr "BKPIMAGE_HAS_HOLE är satt men håloffset %u längd %u blockavbildlängd %u vid %X/%X" -#: xlogreader.c:1818 +#: xlogreader.c:1843 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" -msgstr "BKPIMAGE_HAS_HOLE ej satt, men håloffset %u längd %u vid %X/%X" +msgstr "BKPIMAGE_HAS_HOLE är inte satt men håloffset %u längd %u vid %X/%X" -#: xlogreader.c:1832 +#: xlogreader.c:1857 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" -msgstr "BKPIMAGE_COMPRESSED satt, men blockavbildlängd %u vid %X/%X" +msgstr "BKPIMAGE_COMPRESSED är satt men blockavbildlängd %u vid %X/%X" -#: xlogreader.c:1847 +#: xlogreader.c:1872 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" -msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_COMPRESSED satt, men blockavbildlängd är %u vid %X/%X" +msgstr "varken BKPIMAGE_HAS_HOLE eller BKPIMAGE_COMPRESSED är satt men blockavbildlängd är %u vid %X/%X" -#: xlogreader.c:1863 +#: xlogreader.c:1888 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" -msgstr "BKPBLOCK_SAME_REL satt men ingen tidigare rel vid %X/%X" +msgstr "BKPBLOCK_SAME_REL är satt men ingen tidigare rel vid %X/%X" -#: xlogreader.c:1875 +#: xlogreader.c:1900 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ogiltig block_id %u vid %X/%X" -#: xlogreader.c:1942 +#: xlogreader.c:1967 #, c-format msgid "record with invalid length at %X/%X" msgstr "post med ogiltig längd vid %X/%X" -#: xlogreader.c:1967 +#: xlogreader.c:1992 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "kunde inte hitta backup-block med ID %d i WAL-post" -#: xlogreader.c:2051 +#: xlogreader.c:2076 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt block %d angivet" -#: xlogreader.c:2058 +#: xlogreader.c:2083 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" -msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt state, block %d" +msgstr "kunde inte återställa avbild vid %X/%X med ogiltigt state, block %d" -#: xlogreader.c:2085 xlogreader.c:2102 +#: xlogreader.c:2110 xlogreader.c:2127 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" -msgstr "kunde inte återställa avbild vid %X/%X komprimerade med %s stöds inte av bygget, block %d" +msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med %s stöds inte av bygget, block %d" -#: xlogreader.c:2111 +#: xlogreader.c:2136 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" -msgstr "kunde inte återställa avbild vid %X/%X komprimerad med okänd metod, block %d" +msgstr "kunde inte återställa avbild vid %X/%X, komprimerad med okänd metod, block %d" -#: xlogreader.c:2119 +#: xlogreader.c:2144 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "kunde inte packa upp avbild vid %X/%X, block %d" diff --git a/src/bin/pg_test_fsync/po/es.po b/src/bin/pg_test_fsync/po/es.po index 99c7878b2e5..95e157f8480 100644 --- a/src/bin/pg_test_fsync/po/es.po +++ b/src/bin/pg_test_fsync/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_test_fsync (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:10+0000\n" +"POT-Creation-Date: 2026-02-06 21:22+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_test_timing/po/es.po b/src/bin/pg_test_timing/po/es.po index 9b50c9bd5bd..ce784718847 100644 --- a/src/bin/pg_test_timing/po/es.po +++ b/src/bin/pg_test_timing/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_test_timing (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:08+0000\n" +"POT-Creation-Date: 2026-02-06 21:19+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_upgrade/po/es.po b/src/bin/pg_upgrade/po/es.po index 27eb5bdcdc3..2ac4dbb519a 100644 --- a/src/bin/pg_upgrade/po/es.po +++ b/src/bin/pg_upgrade/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_upgrade (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:07+0000\n" +"POT-Creation-Date: 2026-02-06 21:19+0000\n" "PO-Revision-Date: 2025-11-08 15:15+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/pg_upgrade/po/uk.po b/src/bin/pg_upgrade/po/uk.po index eefdc2f258e..77a6514686e 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: 2023-12-17 22:33+0000\n" -"PO-Revision-Date: 2023-12-18 17:41\n" +"POT-Creation-Date: 2025-12-31 03:10+0000\n" +"PO-Revision-Date: 2025-12-31 16:25\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:75 +#: check.c:76 #, c-format msgid "Performing Consistency Checks on Old Live Server\n" "------------------------------------------------\n" msgstr "Перевірка цілістності на старому працюючому сервері\n" "------------------------------------------------\n" -#: check.c:81 +#: check.c:82 #, c-format msgid "Performing Consistency Checks\n" "-----------------------------\n" msgstr "Проведення перевірок цілістності\n" "-----------------------------\n" -#: check.c:231 +#: check.c:239 #, c-format msgid "\n" "*Clusters are compatible*\n" msgstr "\n" "*Кластери сумісні*\n" -#: check.c:239 +#: check.c:247 #, 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:280 +#: check.c:288 #, 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:286 +#: check.c:294 #, c-format msgid "Running this script will delete the old cluster's data files:\n" " %s\n" msgstr "При запуску цього скрипту файли даних старого кластера будуть видалені:\n" " %s\n" -#: check.c:291 +#: check.c:299 #, 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:303 +#: check.c:311 #, c-format msgid "Checking cluster versions" msgstr "Перевірка версій кластерів" -#: check.c:315 +#: check.c:323 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later.\n" msgstr "Ця утиліта може виконувати оновлення тільки з версії PostgreSQL %s і новіше.\n" -#: check.c:320 +#: check.c:328 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s.\n" msgstr "Ця утиліта може тільки підвищувати версію PostgreSQL до %s.\n" -#: check.c:329 +#: check.c:337 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions.\n" msgstr "Ця утиліта не може не може використовуватись щоб понижувати версію до більш старих основних версій PostgreSQL.\n" -#: check.c:334 +#: check.c:342 #, c-format msgid "Old cluster data and binary directories are from different major versions.\n" msgstr "Каталог даних і двійковий каталог старого кластера з різних основних версій.\n" -#: check.c:337 +#: check.c:345 #, c-format msgid "New cluster data and binary directories are from different major versions.\n" msgstr "Каталог даних і двійковий каталог нового кластера з різних основних версій.\n" -#: check.c:352 +#: check.c:360 #, c-format msgid "When checking a live server, the old and new port numbers must be different.\n" msgstr "Для перевірки працюючого сервера, старий і новий номер порта повинні бути різними.\n" -#: check.c:367 +#: check.c:375 #, c-format msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "кодування для бази даних \"%s\" не збігаються: старе \"%s\", нове \"%s\"\n" -#: check.c:372 +#: check.c:380 #, 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:375 +#: check.c:383 #, 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:378 +#: check.c:386 #, c-format msgid "locale providers for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "постачальники локалей для бази даних \"%s\" не збігаються: старий \"%s\", новий \"%s\"\n" -#: check.c:385 +#: check.c:393 #, 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:460 +#: check.c:468 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" msgstr "Новий кластер бази даних \"%s\" не порожній: знайдено відношення \"%s.%s\"\n" -#: check.c:512 +#: check.c:520 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Перевірка каталогів табличних просторів кластера" -#: check.c:523 +#: check.c:531 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"\n" msgstr "каталог нового кластерного табличного простору вже існує: \"%s\"\n" -#: check.c:556 +#: check.c:564 #, 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:580 +#: check.c:588 #, 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:590 +#: check.c:598 #, c-format msgid "Creating script to delete old cluster" msgstr "Створення скрипту для видалення старого кластеру" -#: 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 +#: check.c:601 check.c:776 check.c:896 check.c:995 check.c:1126 check.c:1205 +#: check.c:1285 check.c:1587 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:644 +#: check.c:652 #, c-format msgid "could not add execute permission to file \"%s\": %s\n" msgstr "не вдалося додати право виконання для файлу \"%s\": %s\n" -#: check.c:664 +#: check.c:672 #, c-format msgid "Checking database user is the install user" msgstr "Перевірка, чи є користувач бази даних стартовим користувачем" -#: check.c:680 +#: check.c:688 #, c-format msgid "database user \"%s\" is not the install user\n" msgstr "користувач бази даних \"%s\" не є стартовим користувачем\n" -#: check.c:691 +#: check.c:699 #, c-format msgid "could not determine the number of users\n" msgstr "не вдалося визначити кількість користувачів\n" -#: check.c:699 +#: check.c:707 #, c-format msgid "Only the install user can be defined in the new cluster.\n" msgstr "В новому кластері може бути визначеним тільки стартовий користувач.\n" -#: check.c:729 +#: check.c:737 #, c-format msgid "Checking database connection settings" msgstr "Перевірка параметрів підключення до бази даних" -#: check.c:755 +#: check.c:763 #, 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: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 +#: check.c:793 check.c:918 check.c:1020 check.c:1146 check.c:1227 check.c:1305 +#: check.c:1365 check.c:1426 check.c:1460 check.c:1491 check.c:1610 +#: function.c:187 version.c:192 version.c:232 version.c:378 #, c-format msgid "fatal\n" msgstr "збій\n" -#: check.c:786 +#: check.c:794 #, 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:811 +#: check.c:819 #, c-format msgid "Checking for prepared transactions" msgstr "Перевірка підготовлених транзакцій" -#: check.c:820 +#: check.c:828 #, c-format msgid "The source cluster contains prepared transactions\n" msgstr "Початковий кластер містить підготовлені транзакції\n" -#: check.c:822 +#: check.c:830 #, c-format msgid "The target cluster contains prepared transactions\n" msgstr "Цільовий кластер містить підготовлені транзакції\n" -#: check.c:848 +#: check.c:856 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Перевірка невідповідності при передаванні bigint в contrib/isn" -#: check.c:911 +#: check.c:919 #, 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:934 +#: check.c:942 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Перевірка постфіксних операторів визначених користувачем" -#: check.c:1013 +#: check.c:1021 #, 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:1037 +#: check.c:1045 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "Перевірка несумісних поліморфних функцій" -#: check.c:1139 +#: check.c:1147 #, 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:1164 +#: check.c:1172 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Перевірка таблиць WITH OIDS" -#: check.c:1220 +#: check.c:1228 #, 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,33 @@ msgstr "Ваша інсталяція містить таблиці, створ "Список проблемних таблиць подано у файлі:\n" " %s\n\n" -#: check.c:1248 +#: check.c:1253 +#, c-format +msgid "Checking for not-null constraint inconsistencies" +msgstr "Перевірка невідповідності обмеженням-null" + +#: check.c:1306 +#, c-format +msgid "Your installation contains inconsistent NOT NULL constraints.\n" +"If the parent column(s) are NOT NULL, then the child column must\n" +"also be marked NOT NULL, or the upgrade will fail.\n" +"You can fix this by running\n" +" ALTER TABLE tablename ALTER column SET NOT NULL;\n" +"on each column listed in the file:\n" +" %s\n\n" +msgstr "Ваша інсталяція містить суперечливі обмеження NOT NULL.\n" +"Якщо батьківські стовпці мають значення NOT NULL, то дочірні стовпці також повинні бути позначені як NOT NULL, інакше оновлення не відбудеться.\n" +"Ви можете виправити це, виконавши команду\n" +" ALTER TABLE tablename ALTER column SET NOT NULL;\n" +"для кожного стовпця, зазначеного у файлі:\n" +" %s\n\n" + +#: check.c:1335 #, c-format msgid "Checking for system-defined composite types in user tables" msgstr "Перевірка складених типів визначених системою у таблицях користувача" -#: check.c:1279 +#: check.c:1366 #, 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 +362,12 @@ msgstr "Ваша інсталяція містить складені типи "Список проблемних стовпців знаходиться у файлі:\n" " %s\n\n" -#: check.c:1307 +#: check.c:1394 #, c-format msgid "Checking for reg* data types in user tables" msgstr "Перевірка типів даних reg* в користувацьких таблицях" -#: check.c:1340 +#: check.c:1427 #, 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 +381,12 @@ msgstr "Ваша інсталяція містить один з типів да "Список проблемних стовпців знаходиться у файлі:\n" " %s\n\n" -#: check.c:1364 +#: check.c:1451 #, c-format msgid "Checking for removed \"%s\" data type in user tables" msgstr "Перевірка видаленого типу даних \"%s\" в користувацьких таблицях" -#: check.c:1374 +#: check.c:1461 #, 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" @@ -380,12 +401,12 @@ msgstr "Користувацькі таблиці у вашій інсталяц "оновлення. Список проблемних стовпців є у файлі:\n" " %s\n\n" -#: check.c:1396 +#: check.c:1483 #, c-format msgid "Checking for incompatible \"jsonb\" data type" msgstr "Перевірка несумісного типу даних \"jsonb\"" -#: check.c:1405 +#: check.c:1492 #, 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" @@ -400,27 +421,27 @@ msgstr "Ваша інсталяція містить тип даних \"jsonb\" "Список проблемних стовпців знаходиться у файлі:\n" " %s\n\n" -#: check.c:1427 +#: check.c:1514 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Перевірка ролей, які починаються з \"pg_\"" -#: check.c:1437 +#: check.c:1524 #, c-format msgid "The source cluster contains roles starting with \"pg_\"\n" msgstr "Початковий кластер містить ролі, які починаються з \"pg_\"\n" -#: check.c:1439 +#: check.c:1526 #, c-format msgid "The target cluster contains roles starting with \"pg_\"\n" msgstr "Цільовий кластер містить ролі, які починаються з \"pg_\"\n" -#: check.c:1460 +#: check.c:1547 #, c-format msgid "Checking for user-defined encoding conversions" msgstr "Перевірка користувацьких перетворення кодувань" -#: check.c:1524 +#: check.c:1611 #, c-format msgid "Your installation contains user-defined encoding conversions.\n" "The conversion function parameters changed in PostgreSQL version 14\n" @@ -435,17 +456,17 @@ msgstr "Ваша інсталяція містить користувацькі "Список перетворень кодувань знаходиться у файлі:\n" " %s\n\n" -#: check.c:1551 +#: check.c:1638 #, c-format msgid "failed to get the current locale\n" msgstr "не вдалося отримати поточну локаль\n" -#: check.c:1560 +#: check.c:1647 #, c-format msgid "failed to get system locale name for \"%s\"\n" msgstr "не вдалося отримати системне ім'я локалі для \"%s\"\n" -#: check.c:1566 +#: check.c:1653 #, c-format msgid "failed to restore old locale \"%s\"\n" msgstr "не вдалося відновити стару локаль \"%s\"\n" diff --git a/src/bin/pg_verifybackup/po/es.po b/src/bin/pg_verifybackup/po/es.po index 70860fe9abe..c3981ed41a6 100644 --- a/src/bin/pg_verifybackup/po/es.po +++ b/src/bin/pg_verifybackup/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_verifybackup (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:05+0000\n" +"POT-Creation-Date: 2026-02-06 21:17+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-ayuda \n" diff --git a/src/bin/pg_waldump/po/es.po b/src/bin/pg_waldump/po/es.po index 82e97be1cfb..b6e2bcdb269 100644 --- a/src/bin/pg_waldump/po/es.po +++ b/src/bin/pg_waldump/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:06+0000\n" +"POT-Creation-Date: 2026-02-06 21:18+0000\n" "PO-Revision-Date: 2022-11-04 13:17+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/bin/psql/po/de.po b/src/bin/psql/po/de.po index d29824d5e16..78658d9d95b 100644 --- a/src/bin/psql/po/de.po +++ b/src/bin/psql/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-07 07:06+0000\n" +"POT-Creation-Date: 2026-02-07 09:07+0000\n" "PO-Revision-Date: 2023-02-03 16:09+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" @@ -4058,189 +4058,189 @@ msgstr "%s: Speicher aufgebraucht" #: sql_help.c:728 sql_help.c:732 sql_help.c:751 sql_help.c:754 sql_help.c:757 #: sql_help.c:786 sql_help.c:798 sql_help.c:806 sql_help.c:809 sql_help.c:812 #: sql_help.c:827 sql_help.c:830 sql_help.c:859 sql_help.c:864 sql_help.c:869 -#: sql_help.c:874 sql_help.c:879 sql_help.c:906 sql_help.c:908 sql_help.c:910 -#: sql_help.c:912 sql_help.c:915 sql_help.c:917 sql_help.c:964 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1048 sql_help.c:1059 sql_help.c:1061 sql_help.c:1081 -#: sql_help.c:1091 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1108 sql_help.c:1112 sql_help.c:1114 sql_help.c:1126 -#: sql_help.c:1128 sql_help.c:1130 sql_help.c:1132 sql_help.c:1151 -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1169 sql_help.c:1170 sql_help.c:1173 -#: sql_help.c:1176 sql_help.c:1178 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1327 sql_help.c:1329 -#: sql_help.c:1332 sql_help.c:1335 sql_help.c:1455 sql_help.c:1457 -#: sql_help.c:1459 sql_help.c:1462 sql_help.c:1483 sql_help.c:1486 -#: sql_help.c:1489 sql_help.c:1492 sql_help.c:1496 sql_help.c:1498 -#: sql_help.c:1500 sql_help.c:1502 sql_help.c:1516 sql_help.c:1519 -#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1533 sql_help.c:1535 -#: sql_help.c:1545 sql_help.c:1547 sql_help.c:1557 sql_help.c:1560 -#: sql_help.c:1583 sql_help.c:1585 sql_help.c:1587 sql_help.c:1589 -#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 -#: sql_help.c:1651 sql_help.c:1694 sql_help.c:1697 sql_help.c:1699 -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:1706 sql_help.c:1708 -#: sql_help.c:1711 sql_help.c:1761 sql_help.c:1777 sql_help.c:2008 -#: sql_help.c:2077 sql_help.c:2096 sql_help.c:2109 sql_help.c:2166 -#: sql_help.c:2173 sql_help.c:2183 sql_help.c:2209 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4045 -#: sql_help.c:4159 sql_help.c:4188 sql_help.c:4203 sql_help.c:4706 -#: sql_help.c:4754 sql_help.c:4912 +#: sql_help.c:874 sql_help.c:879 sql_help.c:915 sql_help.c:917 sql_help.c:919 +#: sql_help.c:921 sql_help.c:924 sql_help.c:926 sql_help.c:978 sql_help.c:1023 +#: sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 sql_help.c:1043 +#: sql_help.c:1062 sql_help.c:1073 sql_help.c:1075 sql_help.c:1095 +#: sql_help.c:1105 sql_help.c:1106 sql_help.c:1108 sql_help.c:1110 +#: sql_help.c:1122 sql_help.c:1126 sql_help.c:1128 sql_help.c:1140 +#: sql_help.c:1142 sql_help.c:1144 sql_help.c:1146 sql_help.c:1165 +#: sql_help.c:1167 sql_help.c:1171 sql_help.c:1175 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1183 sql_help.c:1184 sql_help.c:1187 +#: sql_help.c:1190 sql_help.c:1192 sql_help.c:1331 sql_help.c:1333 +#: sql_help.c:1336 sql_help.c:1339 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1469 sql_help.c:1471 +#: sql_help.c:1473 sql_help.c:1476 sql_help.c:1497 sql_help.c:1500 +#: sql_help.c:1503 sql_help.c:1506 sql_help.c:1510 sql_help.c:1512 +#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1530 sql_help.c:1533 +#: sql_help.c:1535 sql_help.c:1537 sql_help.c:1547 sql_help.c:1549 +#: sql_help.c:1559 sql_help.c:1561 sql_help.c:1571 sql_help.c:1574 +#: sql_help.c:1597 sql_help.c:1599 sql_help.c:1601 sql_help.c:1603 +#: sql_help.c:1606 sql_help.c:1608 sql_help.c:1611 sql_help.c:1614 +#: sql_help.c:1665 sql_help.c:1708 sql_help.c:1711 sql_help.c:1713 +#: sql_help.c:1715 sql_help.c:1718 sql_help.c:1720 sql_help.c:1722 +#: sql_help.c:1725 sql_help.c:1775 sql_help.c:1791 sql_help.c:2022 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2123 sql_help.c:2180 +#: sql_help.c:2187 sql_help.c:2197 sql_help.c:2223 sql_help.c:2254 +#: sql_help.c:2272 sql_help.c:2300 sql_help.c:2411 sql_help.c:2457 +#: sql_help.c:2482 sql_help.c:2505 sql_help.c:2509 sql_help.c:2543 +#: sql_help.c:2563 sql_help.c:2585 sql_help.c:2599 sql_help.c:2620 +#: sql_help.c:2653 sql_help.c:2690 sql_help.c:2715 sql_help.c:2762 +#: sql_help.c:3060 sql_help.c:3073 sql_help.c:3090 sql_help.c:3106 +#: sql_help.c:3146 sql_help.c:3200 sql_help.c:3204 sql_help.c:3206 +#: sql_help.c:3213 sql_help.c:3232 sql_help.c:3259 sql_help.c:3294 +#: sql_help.c:3306 sql_help.c:3315 sql_help.c:3359 sql_help.c:3373 +#: sql_help.c:3401 sql_help.c:3409 sql_help.c:3421 sql_help.c:3431 +#: sql_help.c:3439 sql_help.c:3447 sql_help.c:3455 sql_help.c:3463 +#: sql_help.c:3472 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 +#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3525 sql_help.c:3534 +#: sql_help.c:3543 sql_help.c:3551 sql_help.c:3561 sql_help.c:3572 +#: sql_help.c:3580 sql_help.c:3589 sql_help.c:3600 sql_help.c:3609 +#: sql_help.c:3617 sql_help.c:3625 sql_help.c:3633 sql_help.c:3641 +#: sql_help.c:3649 sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 +#: sql_help.c:3681 sql_help.c:3689 sql_help.c:3706 sql_help.c:3715 +#: sql_help.c:3723 sql_help.c:3740 sql_help.c:3755 sql_help.c:4065 +#: sql_help.c:4179 sql_help.c:4208 sql_help.c:4223 sql_help.c:4726 +#: sql_help.c:4774 sql_help.c:4932 msgid "name" msgstr "Name" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1858 -#: sql_help.c:3354 sql_help.c:4474 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1872 +#: sql_help.c:3374 sql_help.c:4494 msgid "aggregate_signature" msgstr "Aggregatsignatur" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 #: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 #: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:753 sql_help.c:808 -#: sql_help.c:829 sql_help.c:868 sql_help.c:918 sql_help.c:965 sql_help.c:1018 -#: sql_help.c:1050 sql_help.c:1060 sql_help.c:1095 sql_help.c:1115 -#: sql_help.c:1129 sql_help.c:1179 sql_help.c:1326 sql_help.c:1456 -#: sql_help.c:1499 sql_help.c:1520 sql_help.c:1534 sql_help.c:1546 -#: sql_help.c:1559 sql_help.c:1586 sql_help.c:1652 sql_help.c:1705 +#: sql_help.c:829 sql_help.c:868 sql_help.c:927 sql_help.c:979 sql_help.c:1032 +#: sql_help.c:1064 sql_help.c:1074 sql_help.c:1109 sql_help.c:1129 +#: sql_help.c:1143 sql_help.c:1193 sql_help.c:1340 sql_help.c:1470 +#: sql_help.c:1513 sql_help.c:1534 sql_help.c:1548 sql_help.c:1560 +#: sql_help.c:1573 sql_help.c:1600 sql_help.c:1666 sql_help.c:1719 msgid "new_name" msgstr "neuer_Name" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 #: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 #: sql_help.c:642 sql_help.c:707 sql_help.c:727 sql_help.c:756 sql_help.c:811 -#: sql_help.c:873 sql_help.c:916 sql_help.c:1023 sql_help.c:1062 -#: sql_help.c:1093 sql_help.c:1113 sql_help.c:1127 sql_help.c:1177 -#: sql_help.c:1390 sql_help.c:1458 sql_help.c:1501 sql_help.c:1522 -#: sql_help.c:1584 sql_help.c:1700 sql_help.c:3026 +#: sql_help.c:873 sql_help.c:925 sql_help.c:1037 sql_help.c:1076 +#: sql_help.c:1107 sql_help.c:1127 sql_help.c:1141 sql_help.c:1191 +#: sql_help.c:1404 sql_help.c:1472 sql_help.c:1515 sql_help.c:1536 +#: sql_help.c:1598 sql_help.c:1714 sql_help.c:3046 msgid "new_owner" msgstr "neuer_Eigentümer" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 #: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:731 sql_help.c:759 -#: sql_help.c:814 sql_help.c:878 sql_help.c:1028 sql_help.c:1097 -#: sql_help.c:1131 sql_help.c:1328 sql_help.c:1503 sql_help.c:1524 -#: sql_help.c:1536 sql_help.c:1548 sql_help.c:1588 sql_help.c:1707 +#: sql_help.c:814 sql_help.c:878 sql_help.c:1042 sql_help.c:1111 +#: sql_help.c:1145 sql_help.c:1342 sql_help.c:1517 sql_help.c:1538 +#: sql_help.c:1550 sql_help.c:1562 sql_help.c:1602 sql_help.c:1721 msgid "new_schema" msgstr "neues_Schema" -#: sql_help.c:44 sql_help.c:1922 sql_help.c:3355 sql_help.c:4503 +#: sql_help.c:44 sql_help.c:1936 sql_help.c:3375 sql_help.c:4523 msgid "where aggregate_signature is:" msgstr "wobei Aggregatsignatur Folgendes ist:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 #: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 #: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1876 sql_help.c:1893 sql_help.c:1899 sql_help.c:1923 -#: sql_help.c:1926 sql_help.c:1929 sql_help.c:2078 sql_help.c:2097 -#: sql_help.c:2100 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3920 sql_help.c:4373 sql_help.c:4480 -#: sql_help.c:4487 sql_help.c:4493 sql_help.c:4504 sql_help.c:4507 -#: sql_help.c:4510 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1024 +#: sql_help.c:1029 sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 +#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 +#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2092 sql_help.c:2111 +#: sql_help.c:2114 sql_help.c:2412 sql_help.c:2621 sql_help.c:3376 +#: sql_help.c:3379 sql_help.c:3382 sql_help.c:3473 sql_help.c:3562 +#: sql_help.c:3590 sql_help.c:3940 sql_help.c:4393 sql_help.c:4500 +#: sql_help.c:4507 sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 +#: sql_help.c:4530 msgid "argmode" msgstr "Argmodus" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 #: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 #: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1011 -#: sql_help.c:1016 sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 -#: sql_help.c:1877 sql_help.c:1894 sql_help.c:1900 sql_help.c:1924 -#: sql_help.c:1927 sql_help.c:1930 sql_help.c:2079 sql_help.c:2098 -#: sql_help.c:2101 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4481 sql_help.c:4488 sql_help.c:4494 -#: sql_help.c:4505 sql_help.c:4508 sql_help.c:4511 +#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1025 +#: sql_help.c:1030 sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 +#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 +#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2093 sql_help.c:2112 +#: sql_help.c:2115 sql_help.c:2413 sql_help.c:2622 sql_help.c:3377 +#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3474 sql_help.c:3563 +#: sql_help.c:3591 sql_help.c:4501 sql_help.c:4508 sql_help.c:4514 +#: sql_help.c:4525 sql_help.c:4528 sql_help.c:4531 msgid "argname" msgstr "Argname" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 #: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 #: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:862 -#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1012 -#: sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 -#: sql_help.c:1878 sql_help.c:1895 sql_help.c:1901 sql_help.c:1925 -#: sql_help.c:1928 sql_help.c:1931 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4482 sql_help.c:4489 -#: sql_help.c:4495 sql_help.c:4506 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1026 +#: sql_help.c:1031 sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 +#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 +#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2414 sql_help.c:2623 +#: sql_help.c:3378 sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 +#: sql_help.c:3564 sql_help.c:3592 sql_help.c:4502 sql_help.c:4509 +#: sql_help.c:4515 sql_help.c:4526 sql_help.c:4529 sql_help.c:4532 msgid "argtype" msgstr "Argtyp" -#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:959 -#: sql_help.c:1110 sql_help.c:1517 sql_help.c:1646 sql_help.c:1678 -#: sql_help.c:1730 sql_help.c:1793 sql_help.c:1979 sql_help.c:1986 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3757 -#: sql_help.c:3964 sql_help.c:4202 sql_help.c:4975 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:973 +#: sql_help.c:1124 sql_help.c:1531 sql_help.c:1660 sql_help.c:1692 +#: sql_help.c:1744 sql_help.c:1807 sql_help.c:1993 sql_help.c:2000 +#: sql_help.c:2303 sql_help.c:2353 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2458 sql_help.c:2691 sql_help.c:2784 sql_help.c:3075 +#: sql_help.c:3260 sql_help.c:3282 sql_help.c:3422 sql_help.c:3777 +#: sql_help.c:3984 sql_help.c:4222 sql_help.c:4995 msgid "option" msgstr "Option" -#: sql_help.c:115 sql_help.c:960 sql_help.c:1647 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:974 sql_help.c:1661 sql_help.c:2459 +#: sql_help.c:2692 sql_help.c:3261 sql_help.c:3423 msgid "where option can be:" msgstr "wobei Option Folgendes sein kann:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2235 msgid "allowconn" msgstr "allowconn" -#: sql_help.c:117 sql_help.c:961 sql_help.c:1648 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:975 sql_help.c:1662 sql_help.c:2236 +#: sql_help.c:2460 sql_help.c:2693 sql_help.c:3262 msgid "connlimit" msgstr "Verbindungslimit" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2237 msgid "istemplate" msgstr "istemplate" -#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1331 -#: sql_help.c:1383 sql_help.c:4206 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1345 +#: sql_help.c:1397 sql_help.c:4226 msgid "new_tablespace" msgstr "neuer_Tablespace" #: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 -#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:968 -#: sql_help.c:972 sql_help.c:975 sql_help.c:1037 sql_help.c:1039 -#: sql_help.c:1040 sql_help.c:1190 sql_help.c:1192 sql_help.c:1655 -#: sql_help.c:1659 sql_help.c:1662 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3932 sql_help.c:4224 sql_help.c:4385 sql_help.c:4694 +#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:982 +#: sql_help.c:986 sql_help.c:989 sql_help.c:1051 sql_help.c:1053 +#: sql_help.c:1054 sql_help.c:1204 sql_help.c:1206 sql_help.c:1669 +#: sql_help.c:1673 sql_help.c:1676 sql_help.c:2424 sql_help.c:2627 +#: sql_help.c:3952 sql_help.c:4244 sql_help.c:4405 sql_help.c:4714 msgid "configuration_parameter" msgstr "Konfigurationsparameter" #: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 #: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:886 -#: sql_help.c:914 sql_help.c:969 sql_help.c:1038 sql_help.c:1111 -#: sql_help.c:1156 sql_help.c:1160 sql_help.c:1164 sql_help.c:1167 -#: sql_help.c:1172 sql_help.c:1175 sql_help.c:1191 sql_help.c:1362 -#: sql_help.c:1385 sql_help.c:1433 sql_help.c:1441 sql_help.c:1461 -#: sql_help.c:1518 sql_help.c:1602 sql_help.c:1656 sql_help.c:1679 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3965 -#: sql_help.c:4695 sql_help.c:4696 sql_help.c:4697 sql_help.c:4698 +#: sql_help.c:923 sql_help.c:983 sql_help.c:1052 sql_help.c:1125 +#: sql_help.c:1170 sql_help.c:1174 sql_help.c:1178 sql_help.c:1181 +#: sql_help.c:1186 sql_help.c:1189 sql_help.c:1205 sql_help.c:1376 +#: sql_help.c:1399 sql_help.c:1447 sql_help.c:1455 sql_help.c:1475 +#: sql_help.c:1532 sql_help.c:1616 sql_help.c:1670 sql_help.c:1693 +#: sql_help.c:2304 sql_help.c:2354 sql_help.c:2361 sql_help.c:2370 +#: sql_help.c:2425 sql_help.c:2426 sql_help.c:2490 sql_help.c:2493 +#: sql_help.c:2527 sql_help.c:2628 sql_help.c:2629 sql_help.c:2656 +#: sql_help.c:2785 sql_help.c:2824 sql_help.c:2934 sql_help.c:2947 +#: sql_help.c:2961 sql_help.c:3002 sql_help.c:3010 sql_help.c:3032 +#: sql_help.c:3049 sql_help.c:3076 sql_help.c:3283 sql_help.c:3985 +#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718 msgid "value" msgstr "Wert" @@ -4248,10 +4248,10 @@ msgstr "Wert" msgid "target_role" msgstr "Zielrolle" -#: sql_help.c:203 sql_help.c:923 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3895 sql_help.c:3904 -#: sql_help.c:3923 sql_help.c:3935 sql_help.c:4348 sql_help.c:4357 -#: sql_help.c:4376 sql_help.c:4388 +#: sql_help.c:203 sql_help.c:930 sql_help.c:933 sql_help.c:2288 sql_help.c:2659 +#: sql_help.c:2740 sql_help.c:2745 sql_help.c:3915 sql_help.c:3924 +#: sql_help.c:3943 sql_help.c:3955 sql_help.c:4368 sql_help.c:4377 +#: sql_help.c:4396 sql_help.c:4408 msgid "schema_name" msgstr "Schemaname" @@ -4265,32 +4265,32 @@ msgstr "wobei abgekürztes_Grant_oder_Revoke Folgendes sein kann:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:979 -#: sql_help.c:1330 sql_help.c:1666 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3944 sql_help.c:3948 -#: sql_help.c:4397 sql_help.c:4401 sql_help.c:4716 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:993 +#: sql_help.c:1344 sql_help.c:1680 sql_help.c:2463 sql_help.c:2464 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2467 sql_help.c:2601 +#: sql_help.c:2696 sql_help.c:2697 sql_help.c:2698 sql_help.c:2699 +#: sql_help.c:2700 sql_help.c:3265 sql_help.c:3266 sql_help.c:3267 +#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3964 sql_help.c:3968 +#: sql_help.c:4417 sql_help.c:4421 sql_help.c:4736 msgid "role_name" msgstr "Rollenname" -#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:922 sql_help.c:1346 -#: sql_help.c:1348 sql_help.c:1400 sql_help.c:1412 sql_help.c:1437 -#: sql_help.c:1696 sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 -#: sql_help.c:2364 sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 -#: sql_help.c:2786 sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 -#: sql_help.c:2936 sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 -#: sql_help.c:3996 sql_help.c:4011 sql_help.c:4013 sql_help.c:4102 -#: sql_help.c:4105 sql_help.c:4107 sql_help.c:4567 sql_help.c:4568 -#: sql_help.c:4577 sql_help.c:4624 sql_help.c:4625 sql_help.c:4626 -#: sql_help.c:4627 sql_help.c:4628 sql_help.c:4629 sql_help.c:4669 -#: sql_help.c:4670 sql_help.c:4675 sql_help.c:4680 sql_help.c:4824 -#: sql_help.c:4825 sql_help.c:4834 sql_help.c:4881 sql_help.c:4882 -#: sql_help.c:4883 sql_help.c:4884 sql_help.c:4885 sql_help.c:4886 -#: sql_help.c:4940 sql_help.c:4942 sql_help.c:5002 sql_help.c:5062 -#: sql_help.c:5063 sql_help.c:5072 sql_help.c:5119 sql_help.c:5120 -#: sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 sql_help.c:5124 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:937 sql_help.c:1360 +#: sql_help.c:1362 sql_help.c:1414 sql_help.c:1426 sql_help.c:1451 +#: sql_help.c:1710 sql_help.c:2257 sql_help.c:2261 sql_help.c:2373 +#: sql_help.c:2378 sql_help.c:2486 sql_help.c:2663 sql_help.c:2801 +#: sql_help.c:2806 sql_help.c:2808 sql_help.c:2929 sql_help.c:2942 +#: sql_help.c:2956 sql_help.c:2965 sql_help.c:2977 sql_help.c:3006 +#: sql_help.c:4016 sql_help.c:4031 sql_help.c:4033 sql_help.c:4122 +#: sql_help.c:4125 sql_help.c:4127 sql_help.c:4587 sql_help.c:4588 +#: sql_help.c:4597 sql_help.c:4644 sql_help.c:4645 sql_help.c:4646 +#: sql_help.c:4647 sql_help.c:4648 sql_help.c:4649 sql_help.c:4689 +#: sql_help.c:4690 sql_help.c:4695 sql_help.c:4700 sql_help.c:4844 +#: sql_help.c:4845 sql_help.c:4854 sql_help.c:4901 sql_help.c:4902 +#: sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5022 sql_help.c:5082 +#: sql_help.c:5083 sql_help.c:5092 sql_help.c:5139 sql_help.c:5140 +#: sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 sql_help.c:5144 msgid "expression" msgstr "Ausdruck" @@ -4299,14 +4299,14 @@ msgid "domain_constraint" msgstr "Domänen-Constraint" #: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 -#: sql_help.c:488 sql_help.c:1323 sql_help.c:1370 sql_help.c:1371 -#: sql_help.c:1372 sql_help.c:1399 sql_help.c:1411 sql_help.c:1428 -#: sql_help.c:1864 sql_help.c:1866 sql_help.c:2246 sql_help.c:2358 -#: sql_help.c:2363 sql_help.c:2944 sql_help.c:2956 sql_help.c:4008 +#: sql_help.c:488 sql_help.c:1337 sql_help.c:1384 sql_help.c:1385 +#: sql_help.c:1386 sql_help.c:1413 sql_help.c:1425 sql_help.c:1442 +#: sql_help.c:1878 sql_help.c:1880 sql_help.c:2260 sql_help.c:2372 +#: sql_help.c:2377 sql_help.c:2964 sql_help.c:2976 sql_help.c:4028 msgid "constraint_name" msgstr "Constraint-Name" -#: sql_help.c:254 sql_help.c:1324 +#: sql_help.c:254 sql_help.c:1338 msgid "new_constraint_name" msgstr "neuer_Constraint-Name" @@ -4314,7 +4314,7 @@ msgstr "neuer_Constraint-Name" msgid "where domain_constraint is:" msgstr "wobei Domänen-Constraint Folgendes ist:" -#: sql_help.c:330 sql_help.c:1109 +#: sql_help.c:330 sql_help.c:1123 msgid "new_version" msgstr "neue_Version" @@ -4330,82 +4330,82 @@ msgstr "wobei Elementobjekt Folgendes ist:" #: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 #: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 #: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 -#: sql_help.c:381 sql_help.c:1856 sql_help.c:1861 sql_help.c:1868 -#: sql_help.c:1869 sql_help.c:1870 sql_help.c:1871 sql_help.c:1872 -#: sql_help.c:1873 sql_help.c:1874 sql_help.c:1879 sql_help.c:1881 -#: sql_help.c:1885 sql_help.c:1887 sql_help.c:1891 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 -#: sql_help.c:1907 sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 -#: sql_help.c:1919 sql_help.c:1920 sql_help.c:4470 sql_help.c:4475 -#: sql_help.c:4476 sql_help.c:4477 sql_help.c:4478 sql_help.c:4484 -#: sql_help.c:4485 sql_help.c:4490 sql_help.c:4491 sql_help.c:4496 -#: sql_help.c:4497 sql_help.c:4498 sql_help.c:4499 sql_help.c:4500 -#: sql_help.c:4501 +#: sql_help.c:381 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 +#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 +#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 +#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 +#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 +#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 +#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4490 sql_help.c:4495 +#: sql_help.c:4496 sql_help.c:4497 sql_help.c:4498 sql_help.c:4504 +#: sql_help.c:4505 sql_help.c:4510 sql_help.c:4511 sql_help.c:4516 +#: sql_help.c:4517 sql_help.c:4518 sql_help.c:4519 sql_help.c:4520 +#: sql_help.c:4521 msgid "object_name" msgstr "Objektname" -#: sql_help.c:339 sql_help.c:1857 sql_help.c:4473 +#: sql_help.c:339 sql_help.c:1871 sql_help.c:4493 msgid "aggregate_name" msgstr "Aggregatname" -#: sql_help.c:341 sql_help.c:1859 sql_help.c:2143 sql_help.c:2147 -#: sql_help.c:2149 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1873 sql_help.c:2157 sql_help.c:2161 +#: sql_help.c:2163 sql_help.c:3392 msgid "source_type" msgstr "Quelltyp" -#: sql_help.c:342 sql_help.c:1860 sql_help.c:2144 sql_help.c:2148 -#: sql_help.c:2150 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1874 sql_help.c:2158 sql_help.c:2162 +#: sql_help.c:2164 sql_help.c:3393 msgid "target_type" msgstr "Zieltyp" -#: sql_help.c:349 sql_help.c:796 sql_help.c:1875 sql_help.c:2145 -#: sql_help.c:2186 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4372 sql_help.c:4479 sql_help.c:4596 -#: sql_help.c:4600 sql_help.c:4604 sql_help.c:4607 sql_help.c:4853 -#: sql_help.c:4857 sql_help.c:4861 sql_help.c:4864 sql_help.c:5091 -#: sql_help.c:5095 sql_help.c:5099 sql_help.c:5102 +#: sql_help.c:349 sql_help.c:796 sql_help.c:1889 sql_help.c:2159 +#: sql_help.c:2200 sql_help.c:2276 sql_help.c:2544 sql_help.c:2575 +#: sql_help.c:3152 sql_help.c:4392 sql_help.c:4499 sql_help.c:4616 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4627 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5111 +#: sql_help.c:5115 sql_help.c:5119 sql_help.c:5122 msgid "function_name" msgstr "Funktionsname" -#: sql_help.c:354 sql_help.c:789 sql_help.c:1882 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:789 sql_help.c:1896 sql_help.c:2568 msgid "operator_name" msgstr "Operatorname" -#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1883 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1897 +#: sql_help.c:2545 sql_help.c:3516 msgid "left_type" msgstr "linker_Typ" -#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1884 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1898 +#: sql_help.c:2546 sql_help.c:3517 msgid "right_type" msgstr "rechter_Typ" #: sql_help.c:358 sql_help.c:360 sql_help.c:752 sql_help.c:755 sql_help.c:758 #: sql_help.c:787 sql_help.c:799 sql_help.c:807 sql_help.c:810 sql_help.c:813 -#: sql_help.c:1417 sql_help.c:1886 sql_help.c:1888 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:1431 sql_help.c:1900 sql_help.c:1902 sql_help.c:2565 +#: sql_help.c:2586 sql_help.c:2982 sql_help.c:3526 sql_help.c:3535 msgid "index_method" msgstr "Indexmethode" -#: sql_help.c:362 sql_help.c:1892 sql_help.c:4486 +#: sql_help.c:362 sql_help.c:1906 sql_help.c:4506 msgid "procedure_name" msgstr "Prozedurname" -#: sql_help.c:366 sql_help.c:1898 sql_help.c:3919 sql_help.c:4492 +#: sql_help.c:366 sql_help.c:1912 sql_help.c:3939 sql_help.c:4512 msgid "routine_name" msgstr "Routinenname" -#: sql_help.c:378 sql_help.c:1389 sql_help.c:1915 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3941 sql_help.c:4394 +#: sql_help.c:378 sql_help.c:1403 sql_help.c:1929 sql_help.c:2420 +#: sql_help.c:2626 sql_help.c:2937 sql_help.c:3119 sql_help.c:3697 +#: sql_help.c:3961 sql_help.c:4414 msgid "type_name" msgstr "Typname" -#: sql_help.c:379 sql_help.c:1916 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3926 -#: sql_help.c:4379 +#: sql_help.c:379 sql_help.c:1930 sql_help.c:2419 sql_help.c:2625 +#: sql_help.c:3120 sql_help.c:3350 sql_help.c:3698 sql_help.c:3946 +#: sql_help.c:4399 msgid "lang_name" msgstr "Sprachname" @@ -4413,147 +4413,147 @@ msgstr "Sprachname" msgid "and aggregate_signature is:" msgstr "und Aggregatsignatur Folgendes ist:" -#: sql_help.c:405 sql_help.c:2010 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2024 sql_help.c:2301 msgid "handler_function" msgstr "Handler-Funktion" -#: sql_help.c:406 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2302 msgid "validator_function" msgstr "Validator-Funktion" -#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1013 -#: sql_help.c:1318 sql_help.c:1593 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1027 +#: sql_help.c:1332 sql_help.c:1607 msgid "action" msgstr "Aktion" #: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 #: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 #: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 -#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:921 sql_help.c:1090 -#: sql_help.c:1320 sql_help.c:1338 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1347 sql_help.c:1349 sql_help.c:1350 sql_help.c:1351 -#: sql_help.c:1352 sql_help.c:1354 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1360 sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 -#: sql_help.c:1413 sql_help.c:1415 sql_help.c:1422 sql_help.c:1431 -#: sql_help.c:1436 sql_help.c:1443 sql_help.c:1444 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1702 sql_help.c:1738 sql_help.c:1863 -#: sql_help.c:1976 sql_help.c:1982 sql_help.c:1995 sql_help.c:1996 -#: sql_help.c:1997 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3995 sql_help.c:4010 sql_help.c:4012 -#: sql_help.c:4014 sql_help.c:4101 sql_help.c:4104 sql_help.c:4106 -#: sql_help.c:4108 sql_help.c:4351 sql_help.c:4352 sql_help.c:4472 -#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4641 sql_help.c:4890 -#: sql_help.c:4896 sql_help.c:4898 sql_help.c:4939 sql_help.c:4941 -#: sql_help.c:4943 sql_help.c:4990 sql_help.c:5128 sql_help.c:5134 -#: sql_help.c:5136 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:936 sql_help.c:1104 +#: sql_help.c:1334 sql_help.c:1352 sql_help.c:1356 sql_help.c:1357 +#: sql_help.c:1361 sql_help.c:1363 sql_help.c:1364 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1368 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1374 sql_help.c:1377 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1436 sql_help.c:1445 +#: sql_help.c:1450 sql_help.c:1457 sql_help.c:1458 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1716 sql_help.c:1752 sql_help.c:1877 +#: sql_help.c:1990 sql_help.c:1996 sql_help.c:2009 sql_help.c:2010 +#: sql_help.c:2011 sql_help.c:2351 sql_help.c:2364 sql_help.c:2417 +#: sql_help.c:2485 sql_help.c:2491 sql_help.c:2524 sql_help.c:2662 +#: sql_help.c:2770 sql_help.c:2805 sql_help.c:2807 sql_help.c:2919 +#: sql_help.c:2928 sql_help.c:2938 sql_help.c:2941 sql_help.c:2951 +#: sql_help.c:2955 sql_help.c:2978 sql_help.c:2980 sql_help.c:2987 +#: sql_help.c:3000 sql_help.c:3005 sql_help.c:3012 sql_help.c:3013 +#: sql_help.c:3029 sql_help.c:3155 sql_help.c:3295 sql_help.c:3918 +#: sql_help.c:3919 sql_help.c:4015 sql_help.c:4030 sql_help.c:4032 +#: sql_help.c:4034 sql_help.c:4121 sql_help.c:4124 sql_help.c:4126 +#: sql_help.c:4128 sql_help.c:4371 sql_help.c:4372 sql_help.c:4492 +#: sql_help.c:4653 sql_help.c:4659 sql_help.c:4661 sql_help.c:4910 +#: sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 sql_help.c:4961 +#: sql_help.c:4963 sql_help.c:5010 sql_help.c:5148 sql_help.c:5154 +#: sql_help.c:5156 msgid "column_name" msgstr "Spaltenname" -#: sql_help.c:457 sql_help.c:682 sql_help.c:1321 sql_help.c:1703 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1335 sql_help.c:1717 msgid "new_column_name" msgstr "neuer_Spaltenname" -#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1034 -#: sql_help.c:1337 sql_help.c:1603 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1048 +#: sql_help.c:1351 sql_help.c:1617 msgid "where action is one of:" msgstr "wobei Aktion Folgendes sein kann:" -#: sql_help.c:464 sql_help.c:469 sql_help.c:1082 sql_help.c:1339 -#: sql_help.c:1344 sql_help.c:1605 sql_help.c:1609 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4160 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1096 sql_help.c:1353 +#: sql_help.c:1358 sql_help.c:1619 sql_help.c:1623 sql_help.c:2255 +#: sql_help.c:2352 sql_help.c:2564 sql_help.c:2763 sql_help.c:2920 +#: sql_help.c:3202 sql_help.c:4180 msgid "data_type" msgstr "Datentyp" -#: sql_help.c:465 sql_help.c:470 sql_help.c:1340 sql_help.c:1345 -#: sql_help.c:1438 sql_help.c:1606 sql_help.c:1610 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4005 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1354 sql_help.c:1359 +#: sql_help.c:1452 sql_help.c:1620 sql_help.c:1624 sql_help.c:2256 +#: sql_help.c:2355 sql_help.c:2487 sql_help.c:2922 sql_help.c:2930 +#: sql_help.c:2943 sql_help.c:2957 sql_help.c:3007 sql_help.c:3203 +#: sql_help.c:3209 sql_help.c:4025 msgid "collation" msgstr "Sortierfolge" -#: sql_help.c:466 sql_help.c:1341 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1355 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2923 sql_help.c:2939 sql_help.c:2952 msgid "column_constraint" msgstr "Spalten-Constraint" -#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1359 sql_help.c:4987 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1373 sql_help.c:5007 msgid "integer" msgstr "ganze_Zahl" -#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1361 -#: sql_help.c:1364 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1375 +#: sql_help.c:1378 msgid "attribute_option" msgstr "Attributoption" -#: sql_help.c:486 sql_help.c:1368 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1382 sql_help.c:2357 sql_help.c:2366 +#: sql_help.c:2924 sql_help.c:2940 sql_help.c:2953 msgid "table_constraint" msgstr "Tabellen-Constraint" -#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1373 -#: sql_help.c:1374 sql_help.c:1375 sql_help.c:1376 sql_help.c:1917 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1387 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 sql_help.c:1931 msgid "trigger_name" msgstr "Triggername" -#: sql_help.c:493 sql_help.c:494 sql_help.c:1387 sql_help.c:1388 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1401 sql_help.c:1402 +#: sql_help.c:2358 sql_help.c:2363 sql_help.c:2927 sql_help.c:2950 msgid "parent_table" msgstr "Elterntabelle" -#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1033 -#: sql_help.c:1562 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1047 +#: sql_help.c:1576 sql_help.c:2287 msgid "extension_name" msgstr "Erweiterungsname" -#: sql_help.c:555 sql_help.c:1035 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1049 sql_help.c:2421 msgid "execution_cost" msgstr "Ausführungskosten" -#: sql_help.c:556 sql_help.c:1036 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1050 sql_help.c:2422 msgid "result_rows" msgstr "Ergebniszeilen" -#: sql_help.c:557 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2423 msgid "support_function" msgstr "Support-Funktion" -#: sql_help.c:579 sql_help.c:581 sql_help.c:958 sql_help.c:966 sql_help.c:970 -#: sql_help.c:973 sql_help.c:976 sql_help.c:1645 sql_help.c:1653 -#: sql_help.c:1657 sql_help.c:1660 sql_help.c:1663 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3896 -#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3902 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3914 sql_help.c:3915 sql_help.c:3917 -#: sql_help.c:3918 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:3942 sql_help.c:3943 sql_help.c:3945 -#: sql_help.c:3946 sql_help.c:4349 sql_help.c:4350 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4367 -#: sql_help.c:4368 sql_help.c:4370 sql_help.c:4371 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 sql_help.c:4395 -#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 +#: sql_help.c:579 sql_help.c:581 sql_help.c:972 sql_help.c:980 sql_help.c:984 +#: sql_help.c:987 sql_help.c:990 sql_help.c:1659 sql_help.c:1667 +#: sql_help.c:1671 sql_help.c:1674 sql_help.c:1677 sql_help.c:2741 +#: sql_help.c:2743 sql_help.c:2746 sql_help.c:2747 sql_help.c:3916 +#: sql_help.c:3917 sql_help.c:3921 sql_help.c:3922 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3928 sql_help.c:3929 sql_help.c:3931 +#: sql_help.c:3932 sql_help.c:3934 sql_help.c:3935 sql_help.c:3937 +#: sql_help.c:3938 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:3956 sql_help.c:3957 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3962 sql_help.c:3963 sql_help.c:3965 +#: sql_help.c:3966 sql_help.c:4369 sql_help.c:4370 sql_help.c:4374 +#: sql_help.c:4375 sql_help.c:4378 sql_help.c:4379 sql_help.c:4381 +#: sql_help.c:4382 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4397 +#: sql_help.c:4398 sql_help.c:4400 sql_help.c:4401 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 msgid "role_specification" msgstr "Rollenangabe" -#: sql_help.c:580 sql_help.c:582 sql_help.c:1676 sql_help.c:2210 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4726 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1690 sql_help.c:2224 +#: sql_help.c:2749 sql_help.c:3280 sql_help.c:3731 sql_help.c:4746 msgid "user_name" msgstr "Benutzername" -#: sql_help.c:583 sql_help.c:978 sql_help.c:1665 sql_help.c:2728 -#: sql_help.c:3947 sql_help.c:4400 +#: sql_help.c:583 sql_help.c:992 sql_help.c:1679 sql_help.c:2748 +#: sql_help.c:3967 sql_help.c:4420 msgid "where role_specification can be:" msgstr "wobei Rollenangabe Folgendes sein kann:" @@ -4561,22 +4561,22 @@ msgstr "wobei Rollenangabe Folgendes sein kann:" msgid "group_name" msgstr "Gruppenname" -#: sql_help.c:606 sql_help.c:1434 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3938 -#: sql_help.c:4391 +#: sql_help.c:606 sql_help.c:1448 sql_help.c:2234 sql_help.c:2494 +#: sql_help.c:2528 sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 +#: sql_help.c:3003 sql_help.c:3033 sql_help.c:3045 sql_help.c:3958 +#: sql_help.c:4411 msgid "tablespace_name" msgstr "Tablespace-Name" -#: sql_help.c:608 sql_help.c:701 sql_help.c:1381 sql_help.c:1391 -#: sql_help.c:1429 sql_help.c:1792 sql_help.c:1795 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1395 sql_help.c:1405 +#: sql_help.c:1443 sql_help.c:1806 sql_help.c:1809 msgid "index_name" msgstr "Indexname" -#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1384 -#: sql_help.c:1386 sql_help.c:1432 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1398 +#: sql_help.c:1400 sql_help.c:1446 sql_help.c:2492 sql_help.c:2526 +#: sql_help.c:2933 sql_help.c:2946 sql_help.c:2960 sql_help.c:3001 +#: sql_help.c:3031 msgid "storage_parameter" msgstr "Storage-Parameter" @@ -4584,1877 +4584,1886 @@ msgstr "Storage-Parameter" msgid "column_number" msgstr "Spaltennummer" -#: sql_help.c:641 sql_help.c:1880 sql_help.c:4483 +#: sql_help.c:641 sql_help.c:1894 sql_help.c:4503 msgid "large_object_oid" msgstr "Large-Object-OID" -#: sql_help.c:700 sql_help.c:1367 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1381 sql_help.c:2921 msgid "compression_method" msgstr "Kompressionsmethode" -#: sql_help.c:702 sql_help.c:1382 +#: sql_help.c:702 sql_help.c:1396 msgid "new_access_method" msgstr "neue_Zugriffsmethode" -#: sql_help.c:735 sql_help.c:2535 +#: sql_help.c:735 sql_help.c:2549 msgid "res_proc" msgstr "Res-Funktion" -#: sql_help.c:736 sql_help.c:2536 +#: sql_help.c:736 sql_help.c:2550 msgid "join_proc" msgstr "Join-Funktion" -#: sql_help.c:788 sql_help.c:800 sql_help.c:2553 +#: sql_help.c:788 sql_help.c:800 sql_help.c:2567 msgid "strategy_number" msgstr "Strategienummer" #: sql_help.c:790 sql_help.c:791 sql_help.c:794 sql_help.c:795 sql_help.c:801 -#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2569 sql_help.c:2570 +#: sql_help.c:2573 sql_help.c:2574 msgid "op_type" msgstr "Optyp" -#: sql_help.c:792 sql_help.c:2557 +#: sql_help.c:792 sql_help.c:2571 msgid "sort_family_name" msgstr "Sortierfamilienname" -#: sql_help.c:793 sql_help.c:803 sql_help.c:2558 +#: sql_help.c:793 sql_help.c:803 sql_help.c:2572 msgid "support_number" msgstr "Unterst-Nummer" -#: sql_help.c:797 sql_help.c:2146 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:797 sql_help.c:2160 sql_help.c:2576 sql_help.c:3122 +#: sql_help.c:3124 msgid "argument_type" msgstr "Argumenttyp" -#: sql_help.c:828 sql_help.c:831 sql_help.c:920 sql_help.c:1049 sql_help.c:1089 -#: sql_help.c:1558 sql_help.c:1561 sql_help.c:1737 sql_help.c:1791 -#: sql_help.c:1794 sql_help.c:1865 sql_help.c:1890 sql_help.c:1903 -#: sql_help.c:1918 sql_help.c:1975 sql_help.c:1981 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3894 sql_help.c:3900 -#: sql_help.c:3961 sql_help.c:3993 sql_help.c:4347 sql_help.c:4353 -#: sql_help.c:4471 sql_help.c:4582 sql_help.c:4584 sql_help.c:4646 -#: sql_help.c:4685 sql_help.c:4839 sql_help.c:4841 sql_help.c:4903 -#: sql_help.c:4937 sql_help.c:4989 sql_help.c:5077 sql_help.c:5079 -#: sql_help.c:5141 +#: sql_help.c:828 sql_help.c:831 sql_help.c:932 sql_help.c:935 sql_help.c:1063 +#: sql_help.c:1103 sql_help.c:1572 sql_help.c:1575 sql_help.c:1751 +#: sql_help.c:1805 sql_help.c:1808 sql_help.c:1879 sql_help.c:1904 +#: sql_help.c:1917 sql_help.c:1932 sql_help.c:1989 sql_help.c:1995 +#: sql_help.c:2350 sql_help.c:2362 sql_help.c:2483 sql_help.c:2523 +#: sql_help.c:2600 sql_help.c:2661 sql_help.c:2717 sql_help.c:2769 +#: sql_help.c:2802 sql_help.c:2809 sql_help.c:2918 sql_help.c:2936 +#: sql_help.c:2949 sql_help.c:3028 sql_help.c:3148 sql_help.c:3329 +#: sql_help.c:3552 sql_help.c:3601 sql_help.c:3707 sql_help.c:3914 +#: sql_help.c:3920 sql_help.c:3981 sql_help.c:4013 sql_help.c:4367 +#: sql_help.c:4373 sql_help.c:4491 sql_help.c:4602 sql_help.c:4604 +#: sql_help.c:4666 sql_help.c:4705 sql_help.c:4859 sql_help.c:4861 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5009 sql_help.c:5097 +#: sql_help.c:5099 sql_help.c:5161 msgid "table_name" msgstr "Tabellenname" -#: sql_help.c:833 sql_help.c:2588 +#: sql_help.c:833 sql_help.c:2602 msgid "using_expression" msgstr "Using-Ausdruck" -#: sql_help.c:834 sql_help.c:2589 +#: sql_help.c:834 sql_help.c:2603 msgid "check_expression" msgstr "Check-Ausdruck" -#: sql_help.c:907 sql_help.c:909 sql_help.c:911 sql_help.c:2636 +#: sql_help.c:916 sql_help.c:918 sql_help.c:2654 msgid "publication_object" msgstr "Publikationsobjekt" -#: sql_help.c:913 sql_help.c:2637 +#: sql_help.c:920 +msgid "publication_drop_object" +msgstr "Publikations-Drop-Objekt" + +#: sql_help.c:922 sql_help.c:2655 msgid "publication_parameter" msgstr "Publikationsparameter" -#: sql_help.c:919 sql_help.c:2639 +#: sql_help.c:928 sql_help.c:2657 msgid "where publication_object is one of:" msgstr "wobei Publikationsobjekt Folgendes sein kann:" -#: sql_help.c:962 sql_help.c:1649 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:929 sql_help.c:1745 sql_help.c:1746 sql_help.c:2658 +#: sql_help.c:4996 sql_help.c:4997 +msgid "table_and_columns" +msgstr "Tabelle-und-Spalten" + +#: sql_help.c:931 +msgid "and publication_drop_object is one of:" +msgstr "wobei Publikations-Drop-Objekt Folgendes sein kann:" + +#: sql_help.c:934 sql_help.c:1750 sql_help.c:2660 sql_help.c:5008 +msgid "and table_and_columns is:" +msgstr "und Tabelle-und-Spalten Folgendes ist:" + +#: sql_help.c:976 sql_help.c:1663 sql_help.c:2461 sql_help.c:2694 +#: sql_help.c:3263 msgid "password" msgstr "Passwort" -#: sql_help.c:963 sql_help.c:1650 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:977 sql_help.c:1664 sql_help.c:2462 sql_help.c:2695 +#: sql_help.c:3264 msgid "timestamp" msgstr "Zeit" -#: sql_help.c:967 sql_help.c:971 sql_help.c:974 sql_help.c:977 sql_help.c:1654 -#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:3907 -#: sql_help.c:4360 +#: sql_help.c:981 sql_help.c:985 sql_help.c:988 sql_help.c:991 sql_help.c:1668 +#: sql_help.c:1672 sql_help.c:1675 sql_help.c:1678 sql_help.c:3927 +#: sql_help.c:4380 msgid "database_name" msgstr "Datenbankname" -#: sql_help.c:1083 sql_help.c:2744 +#: sql_help.c:1097 sql_help.c:2764 msgid "increment" msgstr "Inkrement" -#: sql_help.c:1084 sql_help.c:2745 +#: sql_help.c:1098 sql_help.c:2765 msgid "minvalue" msgstr "Minwert" -#: sql_help.c:1085 sql_help.c:2746 +#: sql_help.c:1099 sql_help.c:2766 msgid "maxvalue" msgstr "Maxwert" -#: sql_help.c:1086 sql_help.c:2747 sql_help.c:4580 sql_help.c:4683 -#: sql_help.c:4837 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1100 sql_help.c:2767 sql_help.c:4600 sql_help.c:4703 +#: sql_help.c:4857 sql_help.c:5026 sql_help.c:5095 msgid "start" msgstr "Start" -#: sql_help.c:1087 sql_help.c:1356 +#: sql_help.c:1101 sql_help.c:1370 msgid "restart" msgstr "Restart" -#: sql_help.c:1088 sql_help.c:2748 +#: sql_help.c:1102 sql_help.c:2768 msgid "cache" msgstr "Cache" -#: sql_help.c:1133 +#: sql_help.c:1147 msgid "new_target" msgstr "neues_Ziel" -#: sql_help.c:1152 sql_help.c:2801 +#: sql_help.c:1166 sql_help.c:2821 msgid "conninfo" msgstr "Verbindungsinfo" -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:2802 +#: sql_help.c:1168 sql_help.c:1172 sql_help.c:1176 sql_help.c:2822 msgid "publication_name" msgstr "Publikationsname" -#: sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1169 sql_help.c:1173 sql_help.c:1177 msgid "publication_option" msgstr "Publikationsoption" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "refresh_option" msgstr "Refresh-Option" -#: sql_help.c:1171 sql_help.c:2803 +#: sql_help.c:1185 sql_help.c:2823 msgid "subscription_parameter" msgstr "Subskriptionsparameter" -#: sql_help.c:1174 +#: sql_help.c:1188 msgid "skip_option" msgstr "Skip-Option" -#: sql_help.c:1333 sql_help.c:1336 +#: sql_help.c:1347 sql_help.c:1350 msgid "partition_name" msgstr "Partitionsname" -#: sql_help.c:1334 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1348 sql_help.c:2367 sql_help.c:2954 msgid "partition_bound_spec" msgstr "Partitionsbegrenzungsangabe" -#: sql_help.c:1353 sql_help.c:1403 sql_help.c:2948 +#: sql_help.c:1367 sql_help.c:1417 sql_help.c:2968 msgid "sequence_options" msgstr "Sequenzoptionen" -#: sql_help.c:1355 +#: sql_help.c:1369 msgid "sequence_option" msgstr "Sequenzoption" -#: sql_help.c:1369 +#: sql_help.c:1383 msgid "table_constraint_using_index" msgstr "Tabellen-Constraint-für-Index" -#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1391 sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 msgid "rewrite_rule_name" msgstr "Regelname" -#: sql_help.c:1392 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1406 sql_help.c:2379 sql_help.c:2993 msgid "and partition_bound_spec is:" msgstr "und Partitionsbegrenzungsangabe Folgendes ist:" -#: sql_help.c:1393 sql_help.c:1394 sql_help.c:1395 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1407 sql_help.c:1408 sql_help.c:1409 sql_help.c:2380 +#: sql_help.c:2381 sql_help.c:2382 sql_help.c:2994 sql_help.c:2995 +#: sql_help.c:2996 msgid "partition_bound_expr" msgstr "Partitionsbegrenzungsausdruck" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1410 sql_help.c:1411 sql_help.c:2383 sql_help.c:2384 +#: sql_help.c:2997 sql_help.c:2998 msgid "numeric_literal" msgstr "numerische_Konstante" -#: sql_help.c:1398 +#: sql_help.c:1412 msgid "and column_constraint is:" msgstr "und Spalten-Constraint Folgendes ist:" -#: sql_help.c:1401 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1415 sql_help.c:2374 sql_help.c:2415 sql_help.c:2624 +#: sql_help.c:2966 msgid "default_expr" msgstr "Vorgabeausdruck" -#: sql_help.c:1402 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1416 sql_help.c:2375 sql_help.c:2967 msgid "generation_expr" msgstr "Generierungsausdruck" -#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1414 sql_help.c:1416 -#: sql_help.c:1420 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1418 sql_help.c:1419 sql_help.c:1428 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:2969 sql_help.c:2970 sql_help.c:2979 +#: sql_help.c:2981 sql_help.c:2985 msgid "index_parameters" msgstr "Indexparameter" -#: sql_help.c:1406 sql_help.c:1423 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1420 sql_help.c:1437 sql_help.c:2971 sql_help.c:2988 msgid "reftable" msgstr "Reftabelle" -#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1421 sql_help.c:1438 sql_help.c:2972 sql_help.c:2989 msgid "refcolumn" msgstr "Refspalte" -#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1425 sql_help.c:1426 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1439 sql_help.c:1440 +#: sql_help.c:2973 sql_help.c:2974 sql_help.c:2990 sql_help.c:2991 msgid "referential_action" msgstr "Fremdschlüsselaktion" -#: sql_help.c:1410 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1424 sql_help.c:2376 sql_help.c:2975 msgid "and table_constraint is:" msgstr "und Tabellen-Constraint Folgendes ist:" -#: sql_help.c:1418 sql_help.c:2963 +#: sql_help.c:1432 sql_help.c:2983 msgid "exclude_element" msgstr "Exclude-Element" -#: sql_help.c:1419 sql_help.c:2964 sql_help.c:4578 sql_help.c:4681 -#: sql_help.c:4835 sql_help.c:5004 sql_help.c:5073 +#: sql_help.c:1433 sql_help.c:2984 sql_help.c:4598 sql_help.c:4701 +#: sql_help.c:4855 sql_help.c:5024 sql_help.c:5093 msgid "operator" msgstr "Operator" -#: sql_help.c:1421 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1435 sql_help.c:2495 sql_help.c:2986 msgid "predicate" msgstr "Prädikat" -#: sql_help.c:1427 +#: sql_help.c:1441 msgid "and table_constraint_using_index is:" msgstr "und Tabellen-Constraint-für-Index Folgendes ist:" -#: sql_help.c:1430 sql_help.c:2979 +#: sql_help.c:1444 sql_help.c:2999 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "Indexparameter bei UNIQUE-, PRIMARY KEY- und EXCLUDE-Constraints sind:" -#: sql_help.c:1435 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:3004 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "Exclude-Element in einem EXCLUDE-Constraint ist:" -#: sql_help.c:1439 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4006 +#: sql_help.c:1453 sql_help.c:2488 sql_help.c:2931 sql_help.c:2944 +#: sql_help.c:2958 sql_help.c:3008 sql_help.c:4026 msgid "opclass" msgstr "Opklasse" -#: sql_help.c:1440 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1454 sql_help.c:2489 sql_help.c:3009 msgid "opclass_parameter" msgstr "Opklassen-Parameter" -#: sql_help.c:1442 sql_help.c:2991 +#: sql_help.c:1456 sql_help.c:3011 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "Fremdschlüsselaktion in FOREIGN KEY/REFERENCES ist:" -#: sql_help.c:1460 sql_help.c:1463 sql_help.c:3028 +#: sql_help.c:1474 sql_help.c:1477 sql_help.c:3048 msgid "tablespace_option" msgstr "Tablespace-Option" -#: sql_help.c:1484 sql_help.c:1487 sql_help.c:1493 sql_help.c:1497 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1507 sql_help.c:1511 msgid "token_type" msgstr "Tokentyp" -#: sql_help.c:1485 sql_help.c:1488 +#: sql_help.c:1499 sql_help.c:1502 msgid "dictionary_name" msgstr "Wörterbuchname" -#: sql_help.c:1490 sql_help.c:1494 +#: sql_help.c:1504 sql_help.c:1508 msgid "old_dictionary" msgstr "altes_Wörterbuch" -#: sql_help.c:1491 sql_help.c:1495 +#: sql_help.c:1505 sql_help.c:1509 msgid "new_dictionary" msgstr "neues_Wörterbuch" -#: sql_help.c:1590 sql_help.c:1604 sql_help.c:1607 sql_help.c:1608 -#: sql_help.c:3181 +#: sql_help.c:1604 sql_help.c:1618 sql_help.c:1621 sql_help.c:1622 +#: sql_help.c:3201 msgid "attribute_name" msgstr "Attributname" -#: sql_help.c:1591 +#: sql_help.c:1605 msgid "new_attribute_name" msgstr "neuer_Attributname" -#: sql_help.c:1595 sql_help.c:1599 +#: sql_help.c:1609 sql_help.c:1613 msgid "new_enum_value" msgstr "neuer_Enum-Wert" -#: sql_help.c:1596 +#: sql_help.c:1610 msgid "neighbor_enum_value" msgstr "Nachbar-Enum-Wert" -#: sql_help.c:1598 +#: sql_help.c:1612 msgid "existing_enum_value" msgstr "existierender_Enum-Wert" -#: sql_help.c:1601 +#: sql_help.c:1615 msgid "property" msgstr "Eigenschaft" -#: sql_help.c:1677 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3916 sql_help.c:3962 -#: sql_help.c:4369 +#: sql_help.c:1691 sql_help.c:2359 sql_help.c:2368 sql_help.c:2780 +#: sql_help.c:3281 sql_help.c:3732 sql_help.c:3936 sql_help.c:3982 +#: sql_help.c:4389 msgid "server_name" msgstr "Servername" -#: sql_help.c:1709 sql_help.c:1712 sql_help.c:3276 +#: sql_help.c:1723 sql_help.c:1726 sql_help.c:3296 msgid "view_option_name" msgstr "Sichtoptionsname" -#: sql_help.c:1710 sql_help.c:3277 +#: sql_help.c:1724 sql_help.c:3297 msgid "view_option_value" msgstr "Sichtoptionswert" -#: sql_help.c:1731 sql_help.c:1732 sql_help.c:4976 sql_help.c:4977 -msgid "table_and_columns" -msgstr "Tabelle-und-Spalten" - -#: sql_help.c:1733 sql_help.c:1796 sql_help.c:1987 sql_help.c:3760 -#: sql_help.c:4204 sql_help.c:4978 +#: sql_help.c:1747 sql_help.c:1810 sql_help.c:2001 sql_help.c:3780 +#: sql_help.c:4224 sql_help.c:4998 msgid "where option can be one of:" msgstr "wobei Option eine der folgenden sein kann:" -#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1797 sql_help.c:1989 -#: sql_help.c:1992 sql_help.c:2171 sql_help.c:3761 sql_help.c:3762 -#: sql_help.c:3763 sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 -#: sql_help.c:3767 sql_help.c:3768 sql_help.c:4205 sql_help.c:4207 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1748 sql_help.c:1749 sql_help.c:1811 sql_help.c:2003 +#: sql_help.c:2006 sql_help.c:2185 sql_help.c:3781 sql_help.c:3782 +#: sql_help.c:3783 sql_help.c:3784 sql_help.c:3785 sql_help.c:3786 +#: sql_help.c:3787 sql_help.c:3788 sql_help.c:4225 sql_help.c:4227 +#: sql_help.c:4999 sql_help.c:5000 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 msgid "boolean" msgstr "boolean" -#: sql_help.c:1736 sql_help.c:4988 -msgid "and table_and_columns is:" -msgstr "und Tabelle-und-Spalten Folgendes ist:" - -#: sql_help.c:1752 sql_help.c:4742 sql_help.c:4744 sql_help.c:4768 +#: sql_help.c:1766 sql_help.c:4762 sql_help.c:4764 sql_help.c:4788 msgid "transaction_mode" msgstr "Transaktionsmodus" -#: sql_help.c:1753 sql_help.c:4745 sql_help.c:4769 +#: sql_help.c:1767 sql_help.c:4765 sql_help.c:4789 msgid "where transaction_mode is one of:" msgstr "wobei Transaktionsmodus Folgendes sein kann:" -#: sql_help.c:1762 sql_help.c:4588 sql_help.c:4597 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4608 sql_help.c:4845 sql_help.c:4854 -#: sql_help.c:4858 sql_help.c:4862 sql_help.c:4865 sql_help.c:5083 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:1776 sql_help.c:4608 sql_help.c:4617 sql_help.c:4621 +#: sql_help.c:4625 sql_help.c:4628 sql_help.c:4865 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4882 sql_help.c:4885 sql_help.c:5103 +#: sql_help.c:5112 sql_help.c:5116 sql_help.c:5120 sql_help.c:5123 msgid "argument" msgstr "Argument" -#: sql_help.c:1862 +#: sql_help.c:1876 msgid "relation_name" msgstr "Relationsname" -#: sql_help.c:1867 sql_help.c:3910 sql_help.c:4363 +#: sql_help.c:1881 sql_help.c:3930 sql_help.c:4383 msgid "domain_name" msgstr "Domänenname" -#: sql_help.c:1889 +#: sql_help.c:1903 msgid "policy_name" msgstr "Policy-Name" -#: sql_help.c:1902 +#: sql_help.c:1916 msgid "rule_name" msgstr "Regelname" -#: sql_help.c:1921 sql_help.c:4502 +#: sql_help.c:1935 sql_help.c:4522 msgid "string_literal" msgstr "Zeichenkettenkonstante" -#: sql_help.c:1946 sql_help.c:4169 sql_help.c:4416 +#: sql_help.c:1960 sql_help.c:4189 sql_help.c:4436 msgid "transaction_id" msgstr "Transaktions-ID" -#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4032 +#: sql_help.c:1991 sql_help.c:1998 sql_help.c:4052 msgid "filename" msgstr "Dateiname" -#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1992 sql_help.c:1999 sql_help.c:2719 sql_help.c:2720 +#: sql_help.c:2721 msgid "command" msgstr "Befehl" -#: sql_help.c:1980 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4016 sql_help.c:4095 sql_help.c:4098 sql_help.c:4571 -#: sql_help.c:4573 sql_help.c:4674 sql_help.c:4676 sql_help.c:4828 -#: sql_help.c:4830 sql_help.c:4946 sql_help.c:5066 sql_help.c:5068 +#: sql_help.c:1994 sql_help.c:2718 sql_help.c:3151 sql_help.c:3332 +#: sql_help.c:4036 sql_help.c:4115 sql_help.c:4118 sql_help.c:4591 +#: sql_help.c:4593 sql_help.c:4694 sql_help.c:4696 sql_help.c:4848 +#: sql_help.c:4850 sql_help.c:4966 sql_help.c:5086 sql_help.c:5088 msgid "condition" msgstr "Bedingung" -#: sql_help.c:1983 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3997 +#: sql_help.c:1997 sql_help.c:2529 sql_help.c:3034 sql_help.c:3298 +#: sql_help.c:3316 sql_help.c:4017 msgid "query" msgstr "Anfrage" -#: sql_help.c:1988 +#: sql_help.c:2002 msgid "format_name" msgstr "Formatname" -#: sql_help.c:1990 +#: sql_help.c:2004 msgid "delimiter_character" msgstr "Trennzeichen" -#: sql_help.c:1991 +#: sql_help.c:2005 msgid "null_string" msgstr "Null-Zeichenkette" -#: sql_help.c:1993 +#: sql_help.c:2007 msgid "quote_character" msgstr "Quote-Zeichen" -#: sql_help.c:1994 +#: sql_help.c:2008 msgid "escape_character" msgstr "Escape-Zeichen" -#: sql_help.c:1998 +#: sql_help.c:2012 msgid "encoding_name" msgstr "Kodierungsname" -#: sql_help.c:2009 +#: sql_help.c:2023 msgid "access_method_type" msgstr "Zugriffsmethodentyp" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2102 +#: sql_help.c:2094 sql_help.c:2113 sql_help.c:2116 msgid "arg_data_type" msgstr "Arg-Datentyp" -#: sql_help.c:2081 sql_help.c:2103 sql_help.c:2111 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "sfunc" msgstr "Übergangsfunktion" -#: sql_help.c:2082 sql_help.c:2104 sql_help.c:2112 +#: sql_help.c:2096 sql_help.c:2118 sql_help.c:2126 msgid "state_data_type" msgstr "Zustandsdatentyp" -#: sql_help.c:2083 sql_help.c:2105 sql_help.c:2113 +#: sql_help.c:2097 sql_help.c:2119 sql_help.c:2127 msgid "state_data_size" msgstr "Zustandsdatengröße" -#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 +#: sql_help.c:2098 sql_help.c:2120 sql_help.c:2128 msgid "ffunc" msgstr "Abschlussfunktion" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2099 sql_help.c:2129 msgid "combinefunc" msgstr "Combine-Funktion" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2100 sql_help.c:2130 msgid "serialfunc" msgstr "Serialisierungsfunktion" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2101 sql_help.c:2131 msgid "deserialfunc" msgstr "Deserialisierungsfunktion" -#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2118 +#: sql_help.c:2102 sql_help.c:2121 sql_help.c:2132 msgid "initial_condition" msgstr "Anfangswert" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2103 sql_help.c:2133 msgid "msfunc" msgstr "Moving-Übergangsfunktion" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2104 sql_help.c:2134 msgid "minvfunc" msgstr "Moving-Inversfunktion" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2105 sql_help.c:2135 msgid "mstate_data_type" msgstr "Moving-Zustandsdatentyp" -#: sql_help.c:2092 sql_help.c:2122 +#: sql_help.c:2106 sql_help.c:2136 msgid "mstate_data_size" msgstr "Moving-Zustandsdatengröße" -#: sql_help.c:2093 sql_help.c:2123 +#: sql_help.c:2107 sql_help.c:2137 msgid "mffunc" msgstr "Moving-Abschlussfunktion" -#: sql_help.c:2094 sql_help.c:2124 +#: sql_help.c:2108 sql_help.c:2138 msgid "minitial_condition" msgstr "Moving-Anfangswert" -#: sql_help.c:2095 sql_help.c:2125 +#: sql_help.c:2109 sql_help.c:2139 msgid "sort_operator" msgstr "Sortieroperator" -#: sql_help.c:2108 +#: sql_help.c:2122 msgid "or the old syntax" msgstr "oder die alte Syntax" -#: sql_help.c:2110 +#: sql_help.c:2124 msgid "base_type" msgstr "Basistyp" -#: sql_help.c:2167 sql_help.c:2214 +#: sql_help.c:2181 sql_help.c:2228 msgid "locale" msgstr "Locale" -#: sql_help.c:2168 sql_help.c:2215 +#: sql_help.c:2182 sql_help.c:2229 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2169 sql_help.c:2216 +#: sql_help.c:2183 sql_help.c:2230 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2170 sql_help.c:4469 +#: sql_help.c:2184 sql_help.c:4489 msgid "provider" msgstr "Provider" -#: sql_help.c:2172 sql_help.c:2275 +#: sql_help.c:2186 sql_help.c:2289 msgid "version" msgstr "Version" -#: sql_help.c:2174 +#: sql_help.c:2188 msgid "existing_collation" msgstr "existierende_Sortierfolge" -#: sql_help.c:2184 +#: sql_help.c:2198 msgid "source_encoding" msgstr "Quellkodierung" -#: sql_help.c:2185 +#: sql_help.c:2199 msgid "dest_encoding" msgstr "Zielkodierung" -#: sql_help.c:2211 sql_help.c:3054 +#: sql_help.c:2225 sql_help.c:3074 msgid "template" msgstr "Vorlage" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "encoding" msgstr "Kodierung" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "strategy" msgstr "Strategie" -#: sql_help.c:2217 +#: sql_help.c:2231 msgid "icu_locale" msgstr "ICU-Locale" -#: sql_help.c:2218 +#: sql_help.c:2232 msgid "locale_provider" msgstr "Locale-Provider" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "collation_version" msgstr "Sortierfolgenversion" -#: sql_help.c:2224 +#: sql_help.c:2238 msgid "oid" msgstr "OID" -#: sql_help.c:2244 +#: sql_help.c:2258 msgid "constraint" msgstr "Constraint" -#: sql_help.c:2245 +#: sql_help.c:2259 msgid "where constraint is:" msgstr "wobei Constraint Folgendes ist:" -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2273 sql_help.c:2716 sql_help.c:3147 msgid "event" msgstr "Ereignis" -#: sql_help.c:2260 +#: sql_help.c:2274 msgid "filter_variable" msgstr "Filtervariable" -#: sql_help.c:2261 +#: sql_help.c:2275 msgid "filter_value" msgstr "Filterwert" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2371 sql_help.c:2963 msgid "where column_constraint is:" msgstr "wobei Spalten-Constraint Folgendes ist:" -#: sql_help.c:2402 +#: sql_help.c:2416 msgid "rettype" msgstr "Rückgabetyp" -#: sql_help.c:2404 +#: sql_help.c:2418 msgid "column_type" msgstr "Spaltentyp" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2427 sql_help.c:2630 msgid "definition" msgstr "Definition" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2428 sql_help.c:2631 msgid "obj_file" msgstr "Objektdatei" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2429 sql_help.c:2632 msgid "link_symbol" msgstr "Linksymbol" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2430 sql_help.c:2633 msgid "sql_body" msgstr "SQL-Rumpf" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2468 sql_help.c:2701 sql_help.c:3270 msgid "uid" msgstr "Uid" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2484 sql_help.c:2525 sql_help.c:2932 sql_help.c:2945 +#: sql_help.c:2959 sql_help.c:3030 msgid "method" msgstr "Methode" -#: sql_help.c:2492 +#: sql_help.c:2506 msgid "call_handler" msgstr "Handler" -#: sql_help.c:2493 +#: sql_help.c:2507 msgid "inline_handler" msgstr "Inline-Handler" -#: sql_help.c:2494 +#: sql_help.c:2508 msgid "valfunction" msgstr "Valfunktion" -#: sql_help.c:2533 +#: sql_help.c:2547 msgid "com_op" msgstr "Kommutator-Op" -#: sql_help.c:2534 +#: sql_help.c:2548 msgid "neg_op" msgstr "Umkehrungs-Op" -#: sql_help.c:2552 +#: sql_help.c:2566 msgid "family_name" msgstr "Familienname" -#: sql_help.c:2563 +#: sql_help.c:2577 msgid "storage_type" msgstr "Storage-Typ" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2722 sql_help.c:3154 msgid "where event can be one of:" msgstr "wobei Ereignis eins der folgenden sein kann:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2742 sql_help.c:2744 msgid "schema_element" msgstr "Schemaelement" -#: sql_help.c:2761 +#: sql_help.c:2781 msgid "server_type" msgstr "Servertyp" -#: sql_help.c:2762 +#: sql_help.c:2782 msgid "server_version" msgstr "Serverversion" -#: sql_help.c:2763 sql_help.c:3913 sql_help.c:4366 +#: sql_help.c:2783 sql_help.c:3933 sql_help.c:4386 msgid "fdw_name" msgstr "FDW-Name" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2800 sql_help.c:2803 msgid "statistics_name" msgstr "Statistikname" -#: sql_help.c:2784 +#: sql_help.c:2804 msgid "statistics_kind" msgstr "Statistikart" -#: sql_help.c:2800 +#: sql_help.c:2820 msgid "subscription_name" msgstr "Subskriptionsname" -#: sql_help.c:2905 +#: sql_help.c:2925 msgid "source_table" msgstr "Quelltabelle" -#: sql_help.c:2906 +#: sql_help.c:2926 msgid "like_option" msgstr "Like-Option" -#: sql_help.c:2972 +#: sql_help.c:2992 msgid "and like_option is:" msgstr "und Like-Option Folgendes ist:" -#: sql_help.c:3027 +#: sql_help.c:3047 msgid "directory" msgstr "Verzeichnis" -#: sql_help.c:3041 +#: sql_help.c:3061 msgid "parser_name" msgstr "Parser-Name" -#: sql_help.c:3042 +#: sql_help.c:3062 msgid "source_config" msgstr "Quellkonfig" -#: sql_help.c:3071 +#: sql_help.c:3091 msgid "start_function" msgstr "Startfunktion" -#: sql_help.c:3072 +#: sql_help.c:3092 msgid "gettoken_function" msgstr "Gettext-Funktion" -#: sql_help.c:3073 +#: sql_help.c:3093 msgid "end_function" msgstr "Endfunktion" -#: sql_help.c:3074 +#: sql_help.c:3094 msgid "lextypes_function" msgstr "Lextypenfunktion" -#: sql_help.c:3075 +#: sql_help.c:3095 msgid "headline_function" msgstr "Headline-Funktion" -#: sql_help.c:3087 +#: sql_help.c:3107 msgid "init_function" msgstr "Init-Funktion" -#: sql_help.c:3088 +#: sql_help.c:3108 msgid "lexize_function" msgstr "Lexize-Funktion" -#: sql_help.c:3101 +#: sql_help.c:3121 msgid "from_sql_function_name" msgstr "From-SQL-Funktionsname" -#: sql_help.c:3103 +#: sql_help.c:3123 msgid "to_sql_function_name" msgstr "To-SQL-Funktionsname" -#: sql_help.c:3129 +#: sql_help.c:3149 msgid "referenced_table_name" msgstr "verwiesener_Tabellenname" -#: sql_help.c:3130 +#: sql_help.c:3150 msgid "transition_relation_name" msgstr "Übergangsrelationsname" -#: sql_help.c:3133 +#: sql_help.c:3153 msgid "arguments" msgstr "Argumente" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "label" msgstr "Label" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "subtype" msgstr "Untertyp" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "subtype_operator_class" msgstr "Untertyp-Operatorklasse" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "canonical_function" msgstr "Canonical-Funktion" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "subtype_diff_function" msgstr "Untertyp-Diff-Funktion" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "multirange_type_name" msgstr "Multirange-Typname" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "input_function" msgstr "Eingabefunktion" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "output_function" msgstr "Ausgabefunktion" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "receive_function" msgstr "Empfangsfunktion" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "send_function" msgstr "Sendefunktion" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "type_modifier_input_function" msgstr "Typmod-Eingabefunktion" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "type_modifier_output_function" msgstr "Typmod-Ausgabefunktion" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "analyze_function" msgstr "Analyze-Funktion" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "subscript_function" msgstr "Subscript-Funktion" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "internallength" msgstr "interne_Länge" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "alignment" msgstr "Ausrichtung" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "storage" msgstr "Speicherung" -#: sql_help.c:3205 +#: sql_help.c:3225 msgid "like_type" msgstr "wie_Typ" -#: sql_help.c:3206 +#: sql_help.c:3226 msgid "category" msgstr "Kategorie" -#: sql_help.c:3207 +#: sql_help.c:3227 msgid "preferred" msgstr "bevorzugt" -#: sql_help.c:3208 +#: sql_help.c:3228 msgid "default" msgstr "Vorgabewert" -#: sql_help.c:3209 +#: sql_help.c:3229 msgid "element" msgstr "Element" -#: sql_help.c:3210 +#: sql_help.c:3230 msgid "delimiter" msgstr "Trennzeichen" -#: sql_help.c:3211 +#: sql_help.c:3231 msgid "collatable" msgstr "sortierbar" -#: sql_help.c:3308 sql_help.c:3992 sql_help.c:4084 sql_help.c:4566 -#: sql_help.c:4668 sql_help.c:4823 sql_help.c:4936 sql_help.c:5061 +#: sql_help.c:3328 sql_help.c:4012 sql_help.c:4104 sql_help.c:4586 +#: sql_help.c:4688 sql_help.c:4843 sql_help.c:4956 sql_help.c:5081 msgid "with_query" msgstr "With-Anfrage" -#: sql_help.c:3310 sql_help.c:3994 sql_help.c:4585 sql_help.c:4591 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4602 sql_help.c:4610 -#: sql_help.c:4842 sql_help.c:4848 sql_help.c:4851 sql_help.c:4855 -#: sql_help.c:4859 sql_help.c:4867 sql_help.c:4938 sql_help.c:5080 -#: sql_help.c:5086 sql_help.c:5089 sql_help.c:5093 sql_help.c:5097 -#: sql_help.c:5105 +#: sql_help.c:3330 sql_help.c:4014 sql_help.c:4605 sql_help.c:4611 +#: sql_help.c:4614 sql_help.c:4618 sql_help.c:4622 sql_help.c:4630 +#: sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 sql_help.c:4875 +#: sql_help.c:4879 sql_help.c:4887 sql_help.c:4958 sql_help.c:5100 +#: sql_help.c:5106 sql_help.c:5109 sql_help.c:5113 sql_help.c:5117 +#: sql_help.c:5125 msgid "alias" msgstr "Alias" -#: sql_help.c:3311 sql_help.c:4570 sql_help.c:4612 sql_help.c:4614 -#: sql_help.c:4618 sql_help.c:4620 sql_help.c:4621 sql_help.c:4622 -#: sql_help.c:4673 sql_help.c:4827 sql_help.c:4869 sql_help.c:4871 -#: sql_help.c:4875 sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 -#: sql_help.c:4945 sql_help.c:5065 sql_help.c:5107 sql_help.c:5109 -#: sql_help.c:5113 sql_help.c:5115 sql_help.c:5116 sql_help.c:5117 +#: sql_help.c:3331 sql_help.c:4590 sql_help.c:4632 sql_help.c:4634 +#: sql_help.c:4638 sql_help.c:4640 sql_help.c:4641 sql_help.c:4642 +#: sql_help.c:4693 sql_help.c:4847 sql_help.c:4889 sql_help.c:4891 +#: sql_help.c:4895 sql_help.c:4897 sql_help.c:4898 sql_help.c:4899 +#: sql_help.c:4965 sql_help.c:5085 sql_help.c:5127 sql_help.c:5129 +#: sql_help.c:5133 sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "from_item" msgstr "From-Element" -#: sql_help.c:3313 sql_help.c:3794 sql_help.c:4136 sql_help.c:4947 +#: sql_help.c:3333 sql_help.c:3814 sql_help.c:4156 sql_help.c:4967 msgid "cursor_name" msgstr "Cursor-Name" -#: sql_help.c:3314 sql_help.c:4000 sql_help.c:4948 +#: sql_help.c:3334 sql_help.c:4020 sql_help.c:4968 msgid "output_expression" msgstr "Ausgabeausdruck" -#: sql_help.c:3315 sql_help.c:4001 sql_help.c:4569 sql_help.c:4671 -#: sql_help.c:4826 sql_help.c:4949 sql_help.c:5064 +#: sql_help.c:3335 sql_help.c:4021 sql_help.c:4589 sql_help.c:4691 +#: sql_help.c:4846 sql_help.c:4969 sql_help.c:5084 msgid "output_name" msgstr "Ausgabename" -#: sql_help.c:3331 +#: sql_help.c:3351 msgid "code" msgstr "Code" -#: sql_help.c:3736 +#: sql_help.c:3756 msgid "parameter" msgstr "Parameter" -#: sql_help.c:3758 sql_help.c:3759 sql_help.c:4161 +#: sql_help.c:3778 sql_help.c:3779 sql_help.c:4181 msgid "statement" msgstr "Anweisung" -#: sql_help.c:3793 sql_help.c:4135 +#: sql_help.c:3813 sql_help.c:4155 msgid "direction" msgstr "Richtung" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3815 sql_help.c:4157 msgid "where direction can be one of:" msgstr "wobei Richtung eine der folgenden sein kann:" -#: sql_help.c:3796 sql_help.c:3797 sql_help.c:3798 sql_help.c:3799 -#: sql_help.c:3800 sql_help.c:4138 sql_help.c:4139 sql_help.c:4140 -#: sql_help.c:4141 sql_help.c:4142 sql_help.c:4579 sql_help.c:4581 -#: sql_help.c:4682 sql_help.c:4684 sql_help.c:4836 sql_help.c:4838 -#: sql_help.c:5005 sql_help.c:5007 sql_help.c:5074 sql_help.c:5076 +#: sql_help.c:3816 sql_help.c:3817 sql_help.c:3818 sql_help.c:3819 +#: sql_help.c:3820 sql_help.c:4158 sql_help.c:4159 sql_help.c:4160 +#: sql_help.c:4161 sql_help.c:4162 sql_help.c:4599 sql_help.c:4601 +#: sql_help.c:4702 sql_help.c:4704 sql_help.c:4856 sql_help.c:4858 +#: sql_help.c:5025 sql_help.c:5027 sql_help.c:5094 sql_help.c:5096 msgid "count" msgstr "Anzahl" -#: sql_help.c:3903 sql_help.c:4356 +#: sql_help.c:3923 sql_help.c:4376 msgid "sequence_name" msgstr "Sequenzname" -#: sql_help.c:3921 sql_help.c:4374 +#: sql_help.c:3941 sql_help.c:4394 msgid "arg_name" msgstr "Argname" -#: sql_help.c:3922 sql_help.c:4375 +#: sql_help.c:3942 sql_help.c:4395 msgid "arg_type" msgstr "Argtyp" -#: sql_help.c:3929 sql_help.c:4382 +#: sql_help.c:3949 sql_help.c:4402 msgid "loid" msgstr "Large-Object-OID" -#: sql_help.c:3960 +#: sql_help.c:3980 msgid "remote_schema" msgstr "fernes_Schema" -#: sql_help.c:3963 +#: sql_help.c:3983 msgid "local_schema" msgstr "lokales_Schema" -#: sql_help.c:3998 +#: sql_help.c:4018 msgid "conflict_target" msgstr "Konfliktziel" -#: sql_help.c:3999 +#: sql_help.c:4019 msgid "conflict_action" msgstr "Konfliktaktion" -#: sql_help.c:4002 +#: sql_help.c:4022 msgid "where conflict_target can be one of:" msgstr "wobei Konfliktziel Folgendes sein kann:" -#: sql_help.c:4003 +#: sql_help.c:4023 msgid "index_column_name" msgstr "Indexspaltenname" -#: sql_help.c:4004 +#: sql_help.c:4024 msgid "index_expression" msgstr "Indexausdruck" -#: sql_help.c:4007 +#: sql_help.c:4027 msgid "index_predicate" msgstr "Indexprädikat" -#: sql_help.c:4009 +#: sql_help.c:4029 msgid "and conflict_action is one of:" msgstr "und Konfliktaktion Folgendes sein kann:" -#: sql_help.c:4015 sql_help.c:4109 sql_help.c:4944 +#: sql_help.c:4035 sql_help.c:4129 sql_help.c:4964 msgid "sub-SELECT" msgstr "Sub-SELECT" -#: sql_help.c:4024 sql_help.c:4150 sql_help.c:4920 +#: sql_help.c:4044 sql_help.c:4170 sql_help.c:4940 msgid "channel" msgstr "Kanal" -#: sql_help.c:4046 +#: sql_help.c:4066 msgid "lockmode" msgstr "Sperrmodus" -#: sql_help.c:4047 +#: sql_help.c:4067 msgid "where lockmode is one of:" msgstr "wobei Sperrmodus Folgendes sein kann:" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "target_table_name" msgstr "Zieltabellenname" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "target_alias" msgstr "Zielalias" -#: sql_help.c:4087 +#: sql_help.c:4107 msgid "data_source" msgstr "Datenquelle" -#: sql_help.c:4088 sql_help.c:4615 sql_help.c:4872 sql_help.c:5110 +#: sql_help.c:4108 sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 msgid "join_condition" msgstr "Verbundbedingung" -#: sql_help.c:4089 +#: sql_help.c:4109 msgid "when_clause" msgstr "When-Klausel" -#: sql_help.c:4090 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "wobei Datenquelle Folgendes ist:" -#: sql_help.c:4091 +#: sql_help.c:4111 msgid "source_table_name" msgstr "Quelltabellenname" -#: sql_help.c:4092 +#: sql_help.c:4112 msgid "source_query" msgstr "Quellanfrage" -#: sql_help.c:4093 +#: sql_help.c:4113 msgid "source_alias" msgstr "Quellalias" -#: sql_help.c:4094 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "und When-Klausel Folgendes ist:" -#: sql_help.c:4096 +#: sql_help.c:4116 msgid "merge_update" msgstr "Merge-Update" -#: sql_help.c:4097 +#: sql_help.c:4117 msgid "merge_delete" msgstr "Merge-Delete" -#: sql_help.c:4099 +#: sql_help.c:4119 msgid "merge_insert" msgstr "Merge-Insert" -#: sql_help.c:4100 +#: sql_help.c:4120 msgid "and merge_insert is:" msgstr "und Merge-Insert Folgendes ist:" -#: sql_help.c:4103 +#: sql_help.c:4123 msgid "and merge_update is:" msgstr "und Merge-Update Folgendes ist:" -#: sql_help.c:4110 +#: sql_help.c:4130 msgid "and merge_delete is:" msgstr "und Merge-Delete Folgendes ist:" -#: sql_help.c:4151 +#: sql_help.c:4171 msgid "payload" msgstr "Payload" -#: sql_help.c:4178 +#: sql_help.c:4198 msgid "old_role" msgstr "alte_Rolle" -#: sql_help.c:4179 +#: sql_help.c:4199 msgid "new_role" msgstr "neue_Rolle" -#: sql_help.c:4215 sql_help.c:4424 sql_help.c:4432 +#: sql_help.c:4235 sql_help.c:4444 sql_help.c:4452 msgid "savepoint_name" msgstr "Sicherungspunktsname" -#: sql_help.c:4572 sql_help.c:4630 sql_help.c:4829 sql_help.c:4887 -#: sql_help.c:5067 sql_help.c:5125 +#: sql_help.c:4592 sql_help.c:4650 sql_help.c:4849 sql_help.c:4907 +#: sql_help.c:5087 sql_help.c:5145 msgid "grouping_element" msgstr "Gruppierelement" -#: sql_help.c:4574 sql_help.c:4677 sql_help.c:4831 sql_help.c:5069 +#: sql_help.c:4594 sql_help.c:4697 sql_help.c:4851 sql_help.c:5089 msgid "window_name" msgstr "Fenstername" -#: sql_help.c:4575 sql_help.c:4678 sql_help.c:4832 sql_help.c:5070 +#: sql_help.c:4595 sql_help.c:4698 sql_help.c:4852 sql_help.c:5090 msgid "window_definition" msgstr "Fensterdefinition" -#: sql_help.c:4576 sql_help.c:4590 sql_help.c:4634 sql_help.c:4679 -#: sql_help.c:4833 sql_help.c:4847 sql_help.c:4891 sql_help.c:5071 -#: sql_help.c:5085 sql_help.c:5129 +#: sql_help.c:4596 sql_help.c:4610 sql_help.c:4654 sql_help.c:4699 +#: sql_help.c:4853 sql_help.c:4867 sql_help.c:4911 sql_help.c:5091 +#: sql_help.c:5105 sql_help.c:5149 msgid "select" msgstr "Select" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5078 +#: sql_help.c:4603 sql_help.c:4860 sql_help.c:5098 msgid "where from_item can be one of:" msgstr "wobei From-Element Folgendes sein kann:" -#: sql_help.c:4586 sql_help.c:4592 sql_help.c:4595 sql_help.c:4599 -#: sql_help.c:4611 sql_help.c:4843 sql_help.c:4849 sql_help.c:4852 -#: sql_help.c:4856 sql_help.c:4868 sql_help.c:5081 sql_help.c:5087 -#: sql_help.c:5090 sql_help.c:5094 sql_help.c:5106 +#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4631 sql_help.c:4863 sql_help.c:4869 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4888 sql_help.c:5101 sql_help.c:5107 +#: sql_help.c:5110 sql_help.c:5114 sql_help.c:5126 msgid "column_alias" msgstr "Spaltenalias" -#: sql_help.c:4587 sql_help.c:4844 sql_help.c:5082 +#: sql_help.c:4607 sql_help.c:4864 sql_help.c:5102 msgid "sampling_method" msgstr "Stichprobenmethode" -#: sql_help.c:4589 sql_help.c:4846 sql_help.c:5084 +#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5104 msgid "seed" msgstr "Startwert" -#: sql_help.c:4593 sql_help.c:4632 sql_help.c:4850 sql_help.c:4889 -#: sql_help.c:5088 sql_help.c:5127 +#: sql_help.c:4613 sql_help.c:4652 sql_help.c:4870 sql_help.c:4909 +#: sql_help.c:5108 sql_help.c:5147 msgid "with_query_name" msgstr "With-Anfragename" -#: sql_help.c:4603 sql_help.c:4606 sql_help.c:4609 sql_help.c:4860 -#: sql_help.c:4863 sql_help.c:4866 sql_help.c:5098 sql_help.c:5101 -#: sql_help.c:5104 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4629 sql_help.c:4880 +#: sql_help.c:4883 sql_help.c:4886 sql_help.c:5118 sql_help.c:5121 +#: sql_help.c:5124 msgid "column_definition" msgstr "Spaltendefinition" -#: sql_help.c:4613 sql_help.c:4619 sql_help.c:4870 sql_help.c:4876 -#: sql_help.c:5108 sql_help.c:5114 +#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4890 sql_help.c:4896 +#: sql_help.c:5128 sql_help.c:5134 msgid "join_type" msgstr "Verbundtyp" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5111 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 msgid "join_column" msgstr "Verbundspalte" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5112 +#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 msgid "join_using_alias" msgstr "Join-Using-Alias" -#: sql_help.c:4623 sql_help.c:4880 sql_help.c:5118 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 msgid "and grouping_element can be one of:" msgstr "und Gruppierelement eins der folgenden sein kann:" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5126 +#: sql_help.c:4651 sql_help.c:4908 sql_help.c:5146 msgid "and with_query is:" msgstr "und With-Anfrage ist:" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 +#: sql_help.c:4655 sql_help.c:4912 sql_help.c:5150 msgid "values" msgstr "values" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 +#: sql_help.c:4656 sql_help.c:4913 sql_help.c:5151 msgid "insert" msgstr "insert" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 +#: sql_help.c:4657 sql_help.c:4914 sql_help.c:5152 msgid "update" msgstr "update" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5133 +#: sql_help.c:4658 sql_help.c:4915 sql_help.c:5153 msgid "delete" msgstr "delete" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5135 +#: sql_help.c:4660 sql_help.c:4917 sql_help.c:5155 msgid "search_seq_col_name" msgstr "Search-Seq-Spaltenname" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5137 +#: sql_help.c:4662 sql_help.c:4919 sql_help.c:5157 msgid "cycle_mark_col_name" msgstr "Cycle-Mark-Spaltenname" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 +#: sql_help.c:4663 sql_help.c:4920 sql_help.c:5158 msgid "cycle_mark_value" msgstr "Cycle-Mark-Wert" -#: sql_help.c:4644 sql_help.c:4901 sql_help.c:5139 +#: sql_help.c:4664 sql_help.c:4921 sql_help.c:5159 msgid "cycle_mark_default" msgstr "Cycle-Mark-Standard" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5140 +#: sql_help.c:4665 sql_help.c:4922 sql_help.c:5160 msgid "cycle_path_col_name" msgstr "Cycle-Pfad-Spaltenname" -#: sql_help.c:4672 +#: sql_help.c:4692 msgid "new_table" msgstr "neue_Tabelle" -#: sql_help.c:4743 +#: sql_help.c:4763 msgid "snapshot_id" msgstr "Snapshot-ID" -#: sql_help.c:5003 +#: sql_help.c:5023 msgid "sort_expression" msgstr "Sortierausdruck" -#: sql_help.c:5147 sql_help.c:6131 +#: sql_help.c:5167 sql_help.c:6151 msgid "abort the current transaction" msgstr "bricht die aktuelle Transaktion ab" -#: sql_help.c:5153 +#: sql_help.c:5173 msgid "change the definition of an aggregate function" msgstr "ändert die Definition einer Aggregatfunktion" -#: sql_help.c:5159 +#: sql_help.c:5179 msgid "change the definition of a collation" msgstr "ändert die Definition einer Sortierfolge" -#: sql_help.c:5165 +#: sql_help.c:5185 msgid "change the definition of a conversion" msgstr "ändert die Definition einer Zeichensatzkonversion" -#: sql_help.c:5171 +#: sql_help.c:5191 msgid "change a database" msgstr "ändert eine Datenbank" -#: sql_help.c:5177 +#: sql_help.c:5197 msgid "define default access privileges" msgstr "definiert vorgegebene Zugriffsprivilegien" -#: sql_help.c:5183 +#: sql_help.c:5203 msgid "change the definition of a domain" msgstr "ändert die Definition einer Domäne" -#: sql_help.c:5189 +#: sql_help.c:5209 msgid "change the definition of an event trigger" msgstr "ändert die Definition eines Ereignistriggers" -#: sql_help.c:5195 +#: sql_help.c:5215 msgid "change the definition of an extension" msgstr "ändert die Definition einer Erweiterung" -#: sql_help.c:5201 +#: sql_help.c:5221 msgid "change the definition of a foreign-data wrapper" msgstr "ändert die Definition eines Fremddaten-Wrappers" -#: sql_help.c:5207 +#: sql_help.c:5227 msgid "change the definition of a foreign table" msgstr "ändert die Definition einer Fremdtabelle" -#: sql_help.c:5213 +#: sql_help.c:5233 msgid "change the definition of a function" msgstr "ändert die Definition einer Funktion" -#: sql_help.c:5219 +#: sql_help.c:5239 msgid "change role name or membership" msgstr "ändert Rollenname oder -mitglieder" -#: sql_help.c:5225 +#: sql_help.c:5245 msgid "change the definition of an index" msgstr "ändert die Definition eines Index" -#: sql_help.c:5231 +#: sql_help.c:5251 msgid "change the definition of a procedural language" msgstr "ändert die Definition einer prozeduralen Sprache" -#: sql_help.c:5237 +#: sql_help.c:5257 msgid "change the definition of a large object" msgstr "ändert die Definition eines Large Object" -#: sql_help.c:5243 +#: sql_help.c:5263 msgid "change the definition of a materialized view" msgstr "ändert die Definition einer materialisierten Sicht" -#: sql_help.c:5249 +#: sql_help.c:5269 msgid "change the definition of an operator" msgstr "ändert die Definition eines Operators" -#: sql_help.c:5255 +#: sql_help.c:5275 msgid "change the definition of an operator class" msgstr "ändert die Definition einer Operatorklasse" -#: sql_help.c:5261 +#: sql_help.c:5281 msgid "change the definition of an operator family" msgstr "ändert die Definition einer Operatorfamilie" -#: sql_help.c:5267 +#: sql_help.c:5287 msgid "change the definition of a row-level security policy" msgstr "ändert die Definition einer Policy für Sicherheit auf Zeilenebene" -#: sql_help.c:5273 +#: sql_help.c:5293 msgid "change the definition of a procedure" msgstr "ändert die Definition einer Prozedur" -#: sql_help.c:5279 +#: sql_help.c:5299 msgid "change the definition of a publication" msgstr "ändert die Definition einer Publikation" -#: sql_help.c:5285 sql_help.c:5387 +#: sql_help.c:5305 sql_help.c:5407 msgid "change a database role" msgstr "ändert eine Datenbankrolle" -#: sql_help.c:5291 +#: sql_help.c:5311 msgid "change the definition of a routine" msgstr "ändert die Definition einer Routine" -#: sql_help.c:5297 +#: sql_help.c:5317 msgid "change the definition of a rule" msgstr "ändert die Definition einer Regel" -#: sql_help.c:5303 +#: sql_help.c:5323 msgid "change the definition of a schema" msgstr "ändert die Definition eines Schemas" -#: sql_help.c:5309 +#: sql_help.c:5329 msgid "change the definition of a sequence generator" msgstr "ändert die Definition eines Sequenzgenerators" -#: sql_help.c:5315 +#: sql_help.c:5335 msgid "change the definition of a foreign server" msgstr "ändert die Definition eines Fremdservers" -#: sql_help.c:5321 +#: sql_help.c:5341 msgid "change the definition of an extended statistics object" msgstr "ändert die Definition eines erweiterten Statistikobjekts" -#: sql_help.c:5327 +#: sql_help.c:5347 msgid "change the definition of a subscription" msgstr "ändert die Definition einer Subskription" -#: sql_help.c:5333 +#: sql_help.c:5353 msgid "change a server configuration parameter" msgstr "ändert einen Server-Konfigurationsparameter" -#: sql_help.c:5339 +#: sql_help.c:5359 msgid "change the definition of a table" msgstr "ändert die Definition einer Tabelle" -#: sql_help.c:5345 +#: sql_help.c:5365 msgid "change the definition of a tablespace" msgstr "ändert die Definition eines Tablespace" -#: sql_help.c:5351 +#: sql_help.c:5371 msgid "change the definition of a text search configuration" msgstr "ändert die Definition einer Textsuchekonfiguration" -#: sql_help.c:5357 +#: sql_help.c:5377 msgid "change the definition of a text search dictionary" msgstr "ändert die Definition eines Textsuchewörterbuchs" -#: sql_help.c:5363 +#: sql_help.c:5383 msgid "change the definition of a text search parser" msgstr "ändert die Definition eines Textsucheparsers" -#: sql_help.c:5369 +#: sql_help.c:5389 msgid "change the definition of a text search template" msgstr "ändert die Definition einer Textsuchevorlage" -#: sql_help.c:5375 +#: sql_help.c:5395 msgid "change the definition of a trigger" msgstr "ändert die Definition eines Triggers" -#: sql_help.c:5381 +#: sql_help.c:5401 msgid "change the definition of a type" msgstr "ändert die Definition eines Typs" -#: sql_help.c:5393 +#: sql_help.c:5413 msgid "change the definition of a user mapping" msgstr "ändert die Definition einer Benutzerabbildung" -#: sql_help.c:5399 +#: sql_help.c:5419 msgid "change the definition of a view" msgstr "ändert die Definition einer Sicht" -#: sql_help.c:5405 +#: sql_help.c:5425 msgid "collect statistics about a database" msgstr "sammelt Statistiken über eine Datenbank" -#: sql_help.c:5411 sql_help.c:6209 +#: sql_help.c:5431 sql_help.c:6229 msgid "start a transaction block" msgstr "startet einen Transaktionsblock" -#: sql_help.c:5417 +#: sql_help.c:5437 msgid "invoke a procedure" msgstr "ruft eine Prozedur auf" -#: sql_help.c:5423 +#: sql_help.c:5443 msgid "force a write-ahead log checkpoint" msgstr "erzwingt einen Checkpoint im Write-Ahead-Log" -#: sql_help.c:5429 +#: sql_help.c:5449 msgid "close a cursor" msgstr "schließt einen Cursor" -#: sql_help.c:5435 +#: sql_help.c:5455 msgid "cluster a table according to an index" msgstr "clustert eine Tabelle nach einem Index" -#: sql_help.c:5441 +#: sql_help.c:5461 msgid "define or change the comment of an object" msgstr "definiert oder ändert den Kommentar eines Objektes" -#: sql_help.c:5447 sql_help.c:6005 +#: sql_help.c:5467 sql_help.c:6025 msgid "commit the current transaction" msgstr "schließt die aktuelle Transaktion ab" -#: sql_help.c:5453 +#: sql_help.c:5473 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "schließt eine Transaktion ab, die vorher für Two-Phase-Commit vorbereitet worden war" -#: sql_help.c:5459 +#: sql_help.c:5479 msgid "copy data between a file and a table" msgstr "kopiert Daten zwischen einer Datei und einer Tabelle" -#: sql_help.c:5465 +#: sql_help.c:5485 msgid "define a new access method" msgstr "definiert eine neue Zugriffsmethode" -#: sql_help.c:5471 +#: sql_help.c:5491 msgid "define a new aggregate function" msgstr "definiert eine neue Aggregatfunktion" -#: sql_help.c:5477 +#: sql_help.c:5497 msgid "define a new cast" msgstr "definiert eine neue Typumwandlung" -#: sql_help.c:5483 +#: sql_help.c:5503 msgid "define a new collation" msgstr "definiert eine neue Sortierfolge" -#: sql_help.c:5489 +#: sql_help.c:5509 msgid "define a new encoding conversion" msgstr "definiert eine neue Kodierungskonversion" -#: sql_help.c:5495 +#: sql_help.c:5515 msgid "create a new database" msgstr "erzeugt eine neue Datenbank" -#: sql_help.c:5501 +#: sql_help.c:5521 msgid "define a new domain" msgstr "definiert eine neue Domäne" -#: sql_help.c:5507 +#: sql_help.c:5527 msgid "define a new event trigger" msgstr "definiert einen neuen Ereignistrigger" -#: sql_help.c:5513 +#: sql_help.c:5533 msgid "install an extension" msgstr "installiert eine Erweiterung" -#: sql_help.c:5519 +#: sql_help.c:5539 msgid "define a new foreign-data wrapper" msgstr "definiert einen neuen Fremddaten-Wrapper" -#: sql_help.c:5525 +#: sql_help.c:5545 msgid "define a new foreign table" msgstr "definiert eine neue Fremdtabelle" -#: sql_help.c:5531 +#: sql_help.c:5551 msgid "define a new function" msgstr "definiert eine neue Funktion" -#: sql_help.c:5537 sql_help.c:5597 sql_help.c:5699 +#: sql_help.c:5557 sql_help.c:5617 sql_help.c:5719 msgid "define a new database role" msgstr "definiert eine neue Datenbankrolle" -#: sql_help.c:5543 +#: sql_help.c:5563 msgid "define a new index" msgstr "definiert einen neuen Index" -#: sql_help.c:5549 +#: sql_help.c:5569 msgid "define a new procedural language" msgstr "definiert eine neue prozedurale Sprache" -#: sql_help.c:5555 +#: sql_help.c:5575 msgid "define a new materialized view" msgstr "definiert eine neue materialisierte Sicht" -#: sql_help.c:5561 +#: sql_help.c:5581 msgid "define a new operator" msgstr "definiert einen neuen Operator" -#: sql_help.c:5567 +#: sql_help.c:5587 msgid "define a new operator class" msgstr "definiert eine neue Operatorklasse" -#: sql_help.c:5573 +#: sql_help.c:5593 msgid "define a new operator family" msgstr "definiert eine neue Operatorfamilie" -#: sql_help.c:5579 +#: sql_help.c:5599 msgid "define a new row-level security policy for a table" msgstr "definiert eine neue Policy für Sicherheit auf Zeilenebene für eine Tabelle" -#: sql_help.c:5585 +#: sql_help.c:5605 msgid "define a new procedure" msgstr "definiert eine neue Prozedur" -#: sql_help.c:5591 +#: sql_help.c:5611 msgid "define a new publication" msgstr "definiert eine neue Publikation" -#: sql_help.c:5603 +#: sql_help.c:5623 msgid "define a new rewrite rule" msgstr "definiert eine neue Umschreiberegel" -#: sql_help.c:5609 +#: sql_help.c:5629 msgid "define a new schema" msgstr "definiert ein neues Schema" -#: sql_help.c:5615 +#: sql_help.c:5635 msgid "define a new sequence generator" msgstr "definiert einen neuen Sequenzgenerator" -#: sql_help.c:5621 +#: sql_help.c:5641 msgid "define a new foreign server" msgstr "definiert einen neuen Fremdserver" -#: sql_help.c:5627 +#: sql_help.c:5647 msgid "define extended statistics" msgstr "definiert erweiterte Statistiken" -#: sql_help.c:5633 +#: sql_help.c:5653 msgid "define a new subscription" msgstr "definiert eine neue Subskription" -#: sql_help.c:5639 +#: sql_help.c:5659 msgid "define a new table" msgstr "definiert eine neue Tabelle" -#: sql_help.c:5645 sql_help.c:6167 +#: sql_help.c:5665 sql_help.c:6187 msgid "define a new table from the results of a query" msgstr "definiert eine neue Tabelle aus den Ergebnissen einer Anfrage" -#: sql_help.c:5651 +#: sql_help.c:5671 msgid "define a new tablespace" msgstr "definiert einen neuen Tablespace" -#: sql_help.c:5657 +#: sql_help.c:5677 msgid "define a new text search configuration" msgstr "definiert eine neue Textsuchekonfiguration" -#: sql_help.c:5663 +#: sql_help.c:5683 msgid "define a new text search dictionary" msgstr "definiert ein neues Textsuchewörterbuch" -#: sql_help.c:5669 +#: sql_help.c:5689 msgid "define a new text search parser" msgstr "definiert einen neuen Textsucheparser" -#: sql_help.c:5675 +#: sql_help.c:5695 msgid "define a new text search template" msgstr "definiert eine neue Textsuchevorlage" -#: sql_help.c:5681 +#: sql_help.c:5701 msgid "define a new transform" msgstr "definiert eine neue Transformation" -#: sql_help.c:5687 +#: sql_help.c:5707 msgid "define a new trigger" msgstr "definiert einen neuen Trigger" -#: sql_help.c:5693 +#: sql_help.c:5713 msgid "define a new data type" msgstr "definiert einen neuen Datentyp" -#: sql_help.c:5705 +#: sql_help.c:5725 msgid "define a new mapping of a user to a foreign server" msgstr "definiert eine neue Abbildung eines Benutzers auf einen Fremdserver" -#: sql_help.c:5711 +#: sql_help.c:5731 msgid "define a new view" msgstr "definiert eine neue Sicht" -#: sql_help.c:5717 +#: sql_help.c:5737 msgid "deallocate a prepared statement" msgstr "gibt einen vorbereiteten Befehl frei" -#: sql_help.c:5723 +#: sql_help.c:5743 msgid "define a cursor" msgstr "definiert einen Cursor" -#: sql_help.c:5729 +#: sql_help.c:5749 msgid "delete rows of a table" msgstr "löscht Zeilen einer Tabelle" -#: sql_help.c:5735 +#: sql_help.c:5755 msgid "discard session state" msgstr "verwirft den Sitzungszustand" -#: sql_help.c:5741 +#: sql_help.c:5761 msgid "execute an anonymous code block" msgstr "führt einen anonymen Codeblock aus" -#: sql_help.c:5747 +#: sql_help.c:5767 msgid "remove an access method" msgstr "entfernt eine Zugriffsmethode" -#: sql_help.c:5753 +#: sql_help.c:5773 msgid "remove an aggregate function" msgstr "entfernt eine Aggregatfunktion" -#: sql_help.c:5759 +#: sql_help.c:5779 msgid "remove a cast" msgstr "entfernt eine Typumwandlung" -#: sql_help.c:5765 +#: sql_help.c:5785 msgid "remove a collation" msgstr "entfernt eine Sortierfolge" -#: sql_help.c:5771 +#: sql_help.c:5791 msgid "remove a conversion" msgstr "entfernt eine Zeichensatzkonversion" -#: sql_help.c:5777 +#: sql_help.c:5797 msgid "remove a database" msgstr "entfernt eine Datenbank" -#: sql_help.c:5783 +#: sql_help.c:5803 msgid "remove a domain" msgstr "entfernt eine Domäne" -#: sql_help.c:5789 +#: sql_help.c:5809 msgid "remove an event trigger" msgstr "entfernt einen Ereignistrigger" -#: sql_help.c:5795 +#: sql_help.c:5815 msgid "remove an extension" msgstr "entfernt eine Erweiterung" -#: sql_help.c:5801 +#: sql_help.c:5821 msgid "remove a foreign-data wrapper" msgstr "entfernt einen Fremddaten-Wrapper" -#: sql_help.c:5807 +#: sql_help.c:5827 msgid "remove a foreign table" msgstr "entfernt eine Fremdtabelle" -#: sql_help.c:5813 +#: sql_help.c:5833 msgid "remove a function" msgstr "entfernt eine Funktion" -#: sql_help.c:5819 sql_help.c:5885 sql_help.c:5987 +#: sql_help.c:5839 sql_help.c:5905 sql_help.c:6007 msgid "remove a database role" msgstr "entfernt eine Datenbankrolle" -#: sql_help.c:5825 +#: sql_help.c:5845 msgid "remove an index" msgstr "entfernt einen Index" -#: sql_help.c:5831 +#: sql_help.c:5851 msgid "remove a procedural language" msgstr "entfernt eine prozedurale Sprache" -#: sql_help.c:5837 +#: sql_help.c:5857 msgid "remove a materialized view" msgstr "entfernt eine materialisierte Sicht" -#: sql_help.c:5843 +#: sql_help.c:5863 msgid "remove an operator" msgstr "entfernt einen Operator" -#: sql_help.c:5849 +#: sql_help.c:5869 msgid "remove an operator class" msgstr "entfernt eine Operatorklasse" -#: sql_help.c:5855 +#: sql_help.c:5875 msgid "remove an operator family" msgstr "entfernt eine Operatorfamilie" -#: sql_help.c:5861 +#: sql_help.c:5881 msgid "remove database objects owned by a database role" msgstr "entfernt die einer Datenbankrolle gehörenden Datenbankobjekte" -#: sql_help.c:5867 +#: sql_help.c:5887 msgid "remove a row-level security policy from a table" msgstr "entfernt eine Policy für Sicherheit auf Zeilenebene von einer Tabelle" -#: sql_help.c:5873 +#: sql_help.c:5893 msgid "remove a procedure" msgstr "entfernt eine Prozedur" -#: sql_help.c:5879 +#: sql_help.c:5899 msgid "remove a publication" msgstr "entfernt eine Publikation" -#: sql_help.c:5891 +#: sql_help.c:5911 msgid "remove a routine" msgstr "entfernt eine Routine" -#: sql_help.c:5897 +#: sql_help.c:5917 msgid "remove a rewrite rule" msgstr "entfernt eine Umschreiberegel" -#: sql_help.c:5903 +#: sql_help.c:5923 msgid "remove a schema" msgstr "entfernt ein Schema" -#: sql_help.c:5909 +#: sql_help.c:5929 msgid "remove a sequence" msgstr "entfernt eine Sequenz" -#: sql_help.c:5915 +#: sql_help.c:5935 msgid "remove a foreign server descriptor" msgstr "entfernt einen Fremdserverdeskriptor" -#: sql_help.c:5921 +#: sql_help.c:5941 msgid "remove extended statistics" msgstr "entfernt erweiterte Statistiken" -#: sql_help.c:5927 +#: sql_help.c:5947 msgid "remove a subscription" msgstr "entfernt eine Subskription" -#: sql_help.c:5933 +#: sql_help.c:5953 msgid "remove a table" msgstr "entfernt eine Tabelle" -#: sql_help.c:5939 +#: sql_help.c:5959 msgid "remove a tablespace" msgstr "entfernt einen Tablespace" -#: sql_help.c:5945 +#: sql_help.c:5965 msgid "remove a text search configuration" msgstr "entfernt eine Textsuchekonfiguration" -#: sql_help.c:5951 +#: sql_help.c:5971 msgid "remove a text search dictionary" msgstr "entfernt ein Textsuchewörterbuch" -#: sql_help.c:5957 +#: sql_help.c:5977 msgid "remove a text search parser" msgstr "entfernt einen Textsucheparser" -#: sql_help.c:5963 +#: sql_help.c:5983 msgid "remove a text search template" msgstr "entfernt eine Textsuchevorlage" -#: sql_help.c:5969 +#: sql_help.c:5989 msgid "remove a transform" msgstr "entfernt eine Transformation" -#: sql_help.c:5975 +#: sql_help.c:5995 msgid "remove a trigger" msgstr "entfernt einen Trigger" -#: sql_help.c:5981 +#: sql_help.c:6001 msgid "remove a data type" msgstr "entfernt einen Datentyp" -#: sql_help.c:5993 +#: sql_help.c:6013 msgid "remove a user mapping for a foreign server" msgstr "entfernt eine Benutzerabbildung für einen Fremdserver" -#: sql_help.c:5999 +#: sql_help.c:6019 msgid "remove a view" msgstr "entfernt eine Sicht" -#: sql_help.c:6011 +#: sql_help.c:6031 msgid "execute a prepared statement" msgstr "führt einen vorbereiteten Befehl aus" -#: sql_help.c:6017 +#: sql_help.c:6037 msgid "show the execution plan of a statement" msgstr "zeigt den Ausführungsplan eines Befehls" -#: sql_help.c:6023 +#: sql_help.c:6043 msgid "retrieve rows from a query using a cursor" msgstr "liest Zeilen aus einer Anfrage mit einem Cursor" -#: sql_help.c:6029 +#: sql_help.c:6049 msgid "define access privileges" msgstr "definiert Zugriffsprivilegien" -#: sql_help.c:6035 +#: sql_help.c:6055 msgid "import table definitions from a foreign server" msgstr "importiert Tabellendefinitionen von einem Fremdserver" -#: sql_help.c:6041 +#: sql_help.c:6061 msgid "create new rows in a table" msgstr "erzeugt neue Zeilen in einer Tabelle" -#: sql_help.c:6047 +#: sql_help.c:6067 msgid "listen for a notification" msgstr "hört auf eine Benachrichtigung" -#: sql_help.c:6053 +#: sql_help.c:6073 msgid "load a shared library file" msgstr "lädt eine dynamische Bibliotheksdatei" -#: sql_help.c:6059 +#: sql_help.c:6079 msgid "lock a table" msgstr "sperrt eine Tabelle" -#: sql_help.c:6065 +#: sql_help.c:6085 msgid "conditionally insert, update, or delete rows of a table" msgstr "fügt Zeilen in eine Tabelle ein oder ändert oder löscht Zeilen einer Tabelle, abhängig von Bedingungen" -#: sql_help.c:6071 +#: sql_help.c:6091 msgid "position a cursor" msgstr "positioniert einen Cursor" -#: sql_help.c:6077 +#: sql_help.c:6097 msgid "generate a notification" msgstr "erzeugt eine Benachrichtigung" -#: sql_help.c:6083 +#: sql_help.c:6103 msgid "prepare a statement for execution" msgstr "bereitet einen Befehl zur Ausführung vor" -#: sql_help.c:6089 +#: sql_help.c:6109 msgid "prepare the current transaction for two-phase commit" msgstr "bereitet die aktuelle Transaktion für Two-Phase-Commit vor" -#: sql_help.c:6095 +#: sql_help.c:6115 msgid "change the ownership of database objects owned by a database role" msgstr "ändert den Eigentümer der der Rolle gehörenden Datenbankobjekte" -#: sql_help.c:6101 +#: sql_help.c:6121 msgid "replace the contents of a materialized view" msgstr "ersetzt den Inhalt einer materialisierten Sicht" -#: sql_help.c:6107 +#: sql_help.c:6127 msgid "rebuild indexes" msgstr "baut Indexe neu" -#: sql_help.c:6113 +#: sql_help.c:6133 msgid "destroy a previously defined savepoint" msgstr "gibt einen zuvor definierten Sicherungspunkt frei" -#: sql_help.c:6119 +#: sql_help.c:6139 msgid "restore the value of a run-time parameter to the default value" msgstr "setzt einen Konfigurationsparameter auf die Voreinstellung zurück" -#: sql_help.c:6125 +#: sql_help.c:6145 msgid "remove access privileges" msgstr "entfernt Zugriffsprivilegien" -#: sql_help.c:6137 +#: sql_help.c:6157 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "storniert eine Transaktion, die vorher für Two-Phase-Commit vorbereitet worden war" -#: sql_help.c:6143 +#: sql_help.c:6163 msgid "roll back to a savepoint" msgstr "rollt eine Transaktion bis zu einem Sicherungspunkt zurück" -#: sql_help.c:6149 +#: sql_help.c:6169 msgid "define a new savepoint within the current transaction" msgstr "definiert einen neuen Sicherungspunkt in der aktuellen Transaktion" -#: sql_help.c:6155 +#: sql_help.c:6175 msgid "define or change a security label applied to an object" msgstr "definiert oder ändert ein Security-Label eines Objektes" -#: sql_help.c:6161 sql_help.c:6215 sql_help.c:6251 +#: sql_help.c:6181 sql_help.c:6235 sql_help.c:6271 msgid "retrieve rows from a table or view" msgstr "liest Zeilen aus einer Tabelle oder Sicht" -#: sql_help.c:6173 +#: sql_help.c:6193 msgid "change a run-time parameter" msgstr "ändert einen Konfigurationsparameter" -#: sql_help.c:6179 +#: sql_help.c:6199 msgid "set constraint check timing for the current transaction" msgstr "setzt die Zeitsteuerung für Check-Constraints in der aktuellen Transaktion" -#: sql_help.c:6185 +#: sql_help.c:6205 msgid "set the current user identifier of the current session" msgstr "setzt den aktuellen Benutzernamen der aktuellen Sitzung" -#: sql_help.c:6191 +#: sql_help.c:6211 msgid "set the session user identifier and the current user identifier of the current session" msgstr "setzt den Sitzungsbenutzernamen und den aktuellen Benutzernamen der aktuellen Sitzung" -#: sql_help.c:6197 +#: sql_help.c:6217 msgid "set the characteristics of the current transaction" msgstr "setzt die Charakteristika der aktuellen Transaktion" -#: sql_help.c:6203 +#: sql_help.c:6223 msgid "show the value of a run-time parameter" msgstr "zeigt den Wert eines Konfigurationsparameters" -#: sql_help.c:6221 +#: sql_help.c:6241 msgid "empty a table or set of tables" msgstr "leert eine oder mehrere Tabellen" -#: sql_help.c:6227 +#: sql_help.c:6247 msgid "stop listening for a notification" msgstr "beendet das Hören auf eine Benachrichtigung" -#: sql_help.c:6233 +#: sql_help.c:6253 msgid "update rows of a table" msgstr "aktualisiert Zeilen einer Tabelle" -#: sql_help.c:6239 +#: sql_help.c:6259 msgid "garbage-collect and optionally analyze a database" msgstr "säubert und analysiert eine Datenbank" -#: sql_help.c:6245 +#: sql_help.c:6265 msgid "compute a set of rows" msgstr "berechnet eine Zeilenmenge" diff --git a/src/bin/psql/po/es.po b/src/bin/psql/po/es.po index 4d3cb0f8774..1e7a28c71cd 100644 --- a/src/bin/psql/po/es.po +++ b/src/bin/psql/po/es.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: psql (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:06+0000\n" +"POT-Creation-Date: 2026-02-06 21:17+0000\n" "PO-Revision-Date: 2023-05-08 11:17+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" @@ -3973,189 +3973,189 @@ msgstr "%s: memoria agotada" #: sql_help.c:728 sql_help.c:732 sql_help.c:751 sql_help.c:754 sql_help.c:757 #: sql_help.c:786 sql_help.c:798 sql_help.c:806 sql_help.c:809 sql_help.c:812 #: sql_help.c:827 sql_help.c:830 sql_help.c:859 sql_help.c:864 sql_help.c:869 -#: sql_help.c:874 sql_help.c:879 sql_help.c:906 sql_help.c:908 sql_help.c:910 -#: sql_help.c:912 sql_help.c:915 sql_help.c:917 sql_help.c:964 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1048 sql_help.c:1059 sql_help.c:1061 sql_help.c:1081 -#: sql_help.c:1091 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1108 sql_help.c:1112 sql_help.c:1114 sql_help.c:1126 -#: sql_help.c:1128 sql_help.c:1130 sql_help.c:1132 sql_help.c:1151 -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1169 sql_help.c:1170 sql_help.c:1173 -#: sql_help.c:1176 sql_help.c:1178 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1327 sql_help.c:1329 -#: sql_help.c:1332 sql_help.c:1335 sql_help.c:1455 sql_help.c:1457 -#: sql_help.c:1459 sql_help.c:1462 sql_help.c:1483 sql_help.c:1486 -#: sql_help.c:1489 sql_help.c:1492 sql_help.c:1496 sql_help.c:1498 -#: sql_help.c:1500 sql_help.c:1502 sql_help.c:1516 sql_help.c:1519 -#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1533 sql_help.c:1535 -#: sql_help.c:1545 sql_help.c:1547 sql_help.c:1557 sql_help.c:1560 -#: sql_help.c:1583 sql_help.c:1585 sql_help.c:1587 sql_help.c:1589 -#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 -#: sql_help.c:1651 sql_help.c:1694 sql_help.c:1697 sql_help.c:1699 -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:1706 sql_help.c:1708 -#: sql_help.c:1711 sql_help.c:1761 sql_help.c:1777 sql_help.c:2008 -#: sql_help.c:2077 sql_help.c:2096 sql_help.c:2109 sql_help.c:2166 -#: sql_help.c:2173 sql_help.c:2183 sql_help.c:2209 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4045 -#: sql_help.c:4159 sql_help.c:4188 sql_help.c:4203 sql_help.c:4706 -#: sql_help.c:4754 sql_help.c:4912 +#: sql_help.c:874 sql_help.c:879 sql_help.c:915 sql_help.c:917 sql_help.c:919 +#: sql_help.c:921 sql_help.c:924 sql_help.c:926 sql_help.c:978 sql_help.c:1023 +#: sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 sql_help.c:1043 +#: sql_help.c:1062 sql_help.c:1073 sql_help.c:1075 sql_help.c:1095 +#: sql_help.c:1105 sql_help.c:1106 sql_help.c:1108 sql_help.c:1110 +#: sql_help.c:1122 sql_help.c:1126 sql_help.c:1128 sql_help.c:1140 +#: sql_help.c:1142 sql_help.c:1144 sql_help.c:1146 sql_help.c:1165 +#: sql_help.c:1167 sql_help.c:1171 sql_help.c:1175 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1183 sql_help.c:1184 sql_help.c:1187 +#: sql_help.c:1190 sql_help.c:1192 sql_help.c:1331 sql_help.c:1333 +#: sql_help.c:1336 sql_help.c:1339 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1469 sql_help.c:1471 +#: sql_help.c:1473 sql_help.c:1476 sql_help.c:1497 sql_help.c:1500 +#: sql_help.c:1503 sql_help.c:1506 sql_help.c:1510 sql_help.c:1512 +#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1530 sql_help.c:1533 +#: sql_help.c:1535 sql_help.c:1537 sql_help.c:1547 sql_help.c:1549 +#: sql_help.c:1559 sql_help.c:1561 sql_help.c:1571 sql_help.c:1574 +#: sql_help.c:1597 sql_help.c:1599 sql_help.c:1601 sql_help.c:1603 +#: sql_help.c:1606 sql_help.c:1608 sql_help.c:1611 sql_help.c:1614 +#: sql_help.c:1665 sql_help.c:1708 sql_help.c:1711 sql_help.c:1713 +#: sql_help.c:1715 sql_help.c:1718 sql_help.c:1720 sql_help.c:1722 +#: sql_help.c:1725 sql_help.c:1775 sql_help.c:1791 sql_help.c:2022 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2123 sql_help.c:2180 +#: sql_help.c:2187 sql_help.c:2197 sql_help.c:2223 sql_help.c:2254 +#: sql_help.c:2272 sql_help.c:2300 sql_help.c:2411 sql_help.c:2457 +#: sql_help.c:2482 sql_help.c:2505 sql_help.c:2509 sql_help.c:2543 +#: sql_help.c:2563 sql_help.c:2585 sql_help.c:2599 sql_help.c:2620 +#: sql_help.c:2653 sql_help.c:2690 sql_help.c:2715 sql_help.c:2762 +#: sql_help.c:3060 sql_help.c:3073 sql_help.c:3090 sql_help.c:3106 +#: sql_help.c:3146 sql_help.c:3200 sql_help.c:3204 sql_help.c:3206 +#: sql_help.c:3213 sql_help.c:3232 sql_help.c:3259 sql_help.c:3294 +#: sql_help.c:3306 sql_help.c:3315 sql_help.c:3359 sql_help.c:3373 +#: sql_help.c:3401 sql_help.c:3409 sql_help.c:3421 sql_help.c:3431 +#: sql_help.c:3439 sql_help.c:3447 sql_help.c:3455 sql_help.c:3463 +#: sql_help.c:3472 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 +#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3525 sql_help.c:3534 +#: sql_help.c:3543 sql_help.c:3551 sql_help.c:3561 sql_help.c:3572 +#: sql_help.c:3580 sql_help.c:3589 sql_help.c:3600 sql_help.c:3609 +#: sql_help.c:3617 sql_help.c:3625 sql_help.c:3633 sql_help.c:3641 +#: sql_help.c:3649 sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 +#: sql_help.c:3681 sql_help.c:3689 sql_help.c:3706 sql_help.c:3715 +#: sql_help.c:3723 sql_help.c:3740 sql_help.c:3755 sql_help.c:4065 +#: sql_help.c:4179 sql_help.c:4208 sql_help.c:4223 sql_help.c:4726 +#: sql_help.c:4774 sql_help.c:4932 msgid "name" msgstr "nombre" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1858 -#: sql_help.c:3354 sql_help.c:4474 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1872 +#: sql_help.c:3374 sql_help.c:4494 msgid "aggregate_signature" msgstr "signatura_func_agregación" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 #: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 #: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:753 sql_help.c:808 -#: sql_help.c:829 sql_help.c:868 sql_help.c:918 sql_help.c:965 sql_help.c:1018 -#: sql_help.c:1050 sql_help.c:1060 sql_help.c:1095 sql_help.c:1115 -#: sql_help.c:1129 sql_help.c:1179 sql_help.c:1326 sql_help.c:1456 -#: sql_help.c:1499 sql_help.c:1520 sql_help.c:1534 sql_help.c:1546 -#: sql_help.c:1559 sql_help.c:1586 sql_help.c:1652 sql_help.c:1705 +#: sql_help.c:829 sql_help.c:868 sql_help.c:927 sql_help.c:979 sql_help.c:1032 +#: sql_help.c:1064 sql_help.c:1074 sql_help.c:1109 sql_help.c:1129 +#: sql_help.c:1143 sql_help.c:1193 sql_help.c:1340 sql_help.c:1470 +#: sql_help.c:1513 sql_help.c:1534 sql_help.c:1548 sql_help.c:1560 +#: sql_help.c:1573 sql_help.c:1600 sql_help.c:1666 sql_help.c:1719 msgid "new_name" msgstr "nuevo_nombre" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 #: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 #: sql_help.c:642 sql_help.c:707 sql_help.c:727 sql_help.c:756 sql_help.c:811 -#: sql_help.c:873 sql_help.c:916 sql_help.c:1023 sql_help.c:1062 -#: sql_help.c:1093 sql_help.c:1113 sql_help.c:1127 sql_help.c:1177 -#: sql_help.c:1390 sql_help.c:1458 sql_help.c:1501 sql_help.c:1522 -#: sql_help.c:1584 sql_help.c:1700 sql_help.c:3026 +#: sql_help.c:873 sql_help.c:925 sql_help.c:1037 sql_help.c:1076 +#: sql_help.c:1107 sql_help.c:1127 sql_help.c:1141 sql_help.c:1191 +#: sql_help.c:1404 sql_help.c:1472 sql_help.c:1515 sql_help.c:1536 +#: sql_help.c:1598 sql_help.c:1714 sql_help.c:3046 msgid "new_owner" msgstr "nuevo_dueño" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 #: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:731 sql_help.c:759 -#: sql_help.c:814 sql_help.c:878 sql_help.c:1028 sql_help.c:1097 -#: sql_help.c:1131 sql_help.c:1328 sql_help.c:1503 sql_help.c:1524 -#: sql_help.c:1536 sql_help.c:1548 sql_help.c:1588 sql_help.c:1707 +#: sql_help.c:814 sql_help.c:878 sql_help.c:1042 sql_help.c:1111 +#: sql_help.c:1145 sql_help.c:1342 sql_help.c:1517 sql_help.c:1538 +#: sql_help.c:1550 sql_help.c:1562 sql_help.c:1602 sql_help.c:1721 msgid "new_schema" msgstr "nuevo_esquema" -#: sql_help.c:44 sql_help.c:1922 sql_help.c:3355 sql_help.c:4503 +#: sql_help.c:44 sql_help.c:1936 sql_help.c:3375 sql_help.c:4523 msgid "where aggregate_signature is:" msgstr "donde signatura_func_agregación es:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 #: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 #: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1876 sql_help.c:1893 sql_help.c:1899 sql_help.c:1923 -#: sql_help.c:1926 sql_help.c:1929 sql_help.c:2078 sql_help.c:2097 -#: sql_help.c:2100 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3920 sql_help.c:4373 sql_help.c:4480 -#: sql_help.c:4487 sql_help.c:4493 sql_help.c:4504 sql_help.c:4507 -#: sql_help.c:4510 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1024 +#: sql_help.c:1029 sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 +#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 +#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2092 sql_help.c:2111 +#: sql_help.c:2114 sql_help.c:2412 sql_help.c:2621 sql_help.c:3376 +#: sql_help.c:3379 sql_help.c:3382 sql_help.c:3473 sql_help.c:3562 +#: sql_help.c:3590 sql_help.c:3940 sql_help.c:4393 sql_help.c:4500 +#: sql_help.c:4507 sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 +#: sql_help.c:4530 msgid "argmode" msgstr "modo_arg" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 #: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 #: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1011 -#: sql_help.c:1016 sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 -#: sql_help.c:1877 sql_help.c:1894 sql_help.c:1900 sql_help.c:1924 -#: sql_help.c:1927 sql_help.c:1930 sql_help.c:2079 sql_help.c:2098 -#: sql_help.c:2101 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4481 sql_help.c:4488 sql_help.c:4494 -#: sql_help.c:4505 sql_help.c:4508 sql_help.c:4511 +#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1025 +#: sql_help.c:1030 sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 +#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 +#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2093 sql_help.c:2112 +#: sql_help.c:2115 sql_help.c:2413 sql_help.c:2622 sql_help.c:3377 +#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3474 sql_help.c:3563 +#: sql_help.c:3591 sql_help.c:4501 sql_help.c:4508 sql_help.c:4514 +#: sql_help.c:4525 sql_help.c:4528 sql_help.c:4531 msgid "argname" msgstr "nombre_arg" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 #: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 #: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:862 -#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1012 -#: sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 -#: sql_help.c:1878 sql_help.c:1895 sql_help.c:1901 sql_help.c:1925 -#: sql_help.c:1928 sql_help.c:1931 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4482 sql_help.c:4489 -#: sql_help.c:4495 sql_help.c:4506 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1026 +#: sql_help.c:1031 sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 +#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 +#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2414 sql_help.c:2623 +#: sql_help.c:3378 sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 +#: sql_help.c:3564 sql_help.c:3592 sql_help.c:4502 sql_help.c:4509 +#: sql_help.c:4515 sql_help.c:4526 sql_help.c:4529 sql_help.c:4532 msgid "argtype" msgstr "tipo_arg" -#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:959 -#: sql_help.c:1110 sql_help.c:1517 sql_help.c:1646 sql_help.c:1678 -#: sql_help.c:1730 sql_help.c:1793 sql_help.c:1979 sql_help.c:1986 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3757 -#: sql_help.c:3964 sql_help.c:4202 sql_help.c:4975 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:973 +#: sql_help.c:1124 sql_help.c:1531 sql_help.c:1660 sql_help.c:1692 +#: sql_help.c:1744 sql_help.c:1807 sql_help.c:1993 sql_help.c:2000 +#: sql_help.c:2303 sql_help.c:2353 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2458 sql_help.c:2691 sql_help.c:2784 sql_help.c:3075 +#: sql_help.c:3260 sql_help.c:3282 sql_help.c:3422 sql_help.c:3777 +#: sql_help.c:3984 sql_help.c:4222 sql_help.c:4995 msgid "option" msgstr "opción" -#: sql_help.c:115 sql_help.c:960 sql_help.c:1647 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:974 sql_help.c:1661 sql_help.c:2459 +#: sql_help.c:2692 sql_help.c:3261 sql_help.c:3423 msgid "where option can be:" msgstr "donde opción puede ser:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2235 msgid "allowconn" msgstr "allowconn" -#: sql_help.c:117 sql_help.c:961 sql_help.c:1648 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:975 sql_help.c:1662 sql_help.c:2236 +#: sql_help.c:2460 sql_help.c:2693 sql_help.c:3262 msgid "connlimit" msgstr "límite_conexiones" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2237 msgid "istemplate" msgstr "esplantilla" -#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1331 -#: sql_help.c:1383 sql_help.c:4206 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1345 +#: sql_help.c:1397 sql_help.c:4226 msgid "new_tablespace" msgstr "nuevo_tablespace" #: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 -#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:968 -#: sql_help.c:972 sql_help.c:975 sql_help.c:1037 sql_help.c:1039 -#: sql_help.c:1040 sql_help.c:1190 sql_help.c:1192 sql_help.c:1655 -#: sql_help.c:1659 sql_help.c:1662 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3932 sql_help.c:4224 sql_help.c:4385 sql_help.c:4694 +#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:982 +#: sql_help.c:986 sql_help.c:989 sql_help.c:1051 sql_help.c:1053 +#: sql_help.c:1054 sql_help.c:1204 sql_help.c:1206 sql_help.c:1669 +#: sql_help.c:1673 sql_help.c:1676 sql_help.c:2424 sql_help.c:2627 +#: sql_help.c:3952 sql_help.c:4244 sql_help.c:4405 sql_help.c:4714 msgid "configuration_parameter" msgstr "parámetro_de_configuración" #: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 #: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:886 -#: sql_help.c:914 sql_help.c:969 sql_help.c:1038 sql_help.c:1111 -#: sql_help.c:1156 sql_help.c:1160 sql_help.c:1164 sql_help.c:1167 -#: sql_help.c:1172 sql_help.c:1175 sql_help.c:1191 sql_help.c:1362 -#: sql_help.c:1385 sql_help.c:1433 sql_help.c:1441 sql_help.c:1461 -#: sql_help.c:1518 sql_help.c:1602 sql_help.c:1656 sql_help.c:1679 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3965 -#: sql_help.c:4695 sql_help.c:4696 sql_help.c:4697 sql_help.c:4698 +#: sql_help.c:923 sql_help.c:983 sql_help.c:1052 sql_help.c:1125 +#: sql_help.c:1170 sql_help.c:1174 sql_help.c:1178 sql_help.c:1181 +#: sql_help.c:1186 sql_help.c:1189 sql_help.c:1205 sql_help.c:1376 +#: sql_help.c:1399 sql_help.c:1447 sql_help.c:1455 sql_help.c:1475 +#: sql_help.c:1532 sql_help.c:1616 sql_help.c:1670 sql_help.c:1693 +#: sql_help.c:2304 sql_help.c:2354 sql_help.c:2361 sql_help.c:2370 +#: sql_help.c:2425 sql_help.c:2426 sql_help.c:2490 sql_help.c:2493 +#: sql_help.c:2527 sql_help.c:2628 sql_help.c:2629 sql_help.c:2656 +#: sql_help.c:2785 sql_help.c:2824 sql_help.c:2934 sql_help.c:2947 +#: sql_help.c:2961 sql_help.c:3002 sql_help.c:3010 sql_help.c:3032 +#: sql_help.c:3049 sql_help.c:3076 sql_help.c:3283 sql_help.c:3985 +#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718 msgid "value" msgstr "valor" @@ -4163,10 +4163,10 @@ msgstr "valor" msgid "target_role" msgstr "rol_destino" -#: sql_help.c:203 sql_help.c:923 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3895 sql_help.c:3904 -#: sql_help.c:3923 sql_help.c:3935 sql_help.c:4348 sql_help.c:4357 -#: sql_help.c:4376 sql_help.c:4388 +#: sql_help.c:203 sql_help.c:930 sql_help.c:933 sql_help.c:2288 sql_help.c:2659 +#: sql_help.c:2740 sql_help.c:2745 sql_help.c:3915 sql_help.c:3924 +#: sql_help.c:3943 sql_help.c:3955 sql_help.c:4368 sql_help.c:4377 +#: sql_help.c:4396 sql_help.c:4408 msgid "schema_name" msgstr "nombre_de_esquema" @@ -4180,32 +4180,32 @@ msgstr "donde grant_o_revoke_abreviado es uno de:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:979 -#: sql_help.c:1330 sql_help.c:1666 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3944 sql_help.c:3948 -#: sql_help.c:4397 sql_help.c:4401 sql_help.c:4716 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:993 +#: sql_help.c:1344 sql_help.c:1680 sql_help.c:2463 sql_help.c:2464 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2467 sql_help.c:2601 +#: sql_help.c:2696 sql_help.c:2697 sql_help.c:2698 sql_help.c:2699 +#: sql_help.c:2700 sql_help.c:3265 sql_help.c:3266 sql_help.c:3267 +#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3964 sql_help.c:3968 +#: sql_help.c:4417 sql_help.c:4421 sql_help.c:4736 msgid "role_name" msgstr "nombre_de_rol" -#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:922 sql_help.c:1346 -#: sql_help.c:1348 sql_help.c:1400 sql_help.c:1412 sql_help.c:1437 -#: sql_help.c:1696 sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 -#: sql_help.c:2364 sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 -#: sql_help.c:2786 sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 -#: sql_help.c:2936 sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 -#: sql_help.c:3996 sql_help.c:4011 sql_help.c:4013 sql_help.c:4102 -#: sql_help.c:4105 sql_help.c:4107 sql_help.c:4567 sql_help.c:4568 -#: sql_help.c:4577 sql_help.c:4624 sql_help.c:4625 sql_help.c:4626 -#: sql_help.c:4627 sql_help.c:4628 sql_help.c:4629 sql_help.c:4669 -#: sql_help.c:4670 sql_help.c:4675 sql_help.c:4680 sql_help.c:4824 -#: sql_help.c:4825 sql_help.c:4834 sql_help.c:4881 sql_help.c:4882 -#: sql_help.c:4883 sql_help.c:4884 sql_help.c:4885 sql_help.c:4886 -#: sql_help.c:4940 sql_help.c:4942 sql_help.c:5002 sql_help.c:5062 -#: sql_help.c:5063 sql_help.c:5072 sql_help.c:5119 sql_help.c:5120 -#: sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 sql_help.c:5124 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:937 sql_help.c:1360 +#: sql_help.c:1362 sql_help.c:1414 sql_help.c:1426 sql_help.c:1451 +#: sql_help.c:1710 sql_help.c:2257 sql_help.c:2261 sql_help.c:2373 +#: sql_help.c:2378 sql_help.c:2486 sql_help.c:2663 sql_help.c:2801 +#: sql_help.c:2806 sql_help.c:2808 sql_help.c:2929 sql_help.c:2942 +#: sql_help.c:2956 sql_help.c:2965 sql_help.c:2977 sql_help.c:3006 +#: sql_help.c:4016 sql_help.c:4031 sql_help.c:4033 sql_help.c:4122 +#: sql_help.c:4125 sql_help.c:4127 sql_help.c:4587 sql_help.c:4588 +#: sql_help.c:4597 sql_help.c:4644 sql_help.c:4645 sql_help.c:4646 +#: sql_help.c:4647 sql_help.c:4648 sql_help.c:4649 sql_help.c:4689 +#: sql_help.c:4690 sql_help.c:4695 sql_help.c:4700 sql_help.c:4844 +#: sql_help.c:4845 sql_help.c:4854 sql_help.c:4901 sql_help.c:4902 +#: sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5022 sql_help.c:5082 +#: sql_help.c:5083 sql_help.c:5092 sql_help.c:5139 sql_help.c:5140 +#: sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 sql_help.c:5144 msgid "expression" msgstr "expresión" @@ -4214,14 +4214,14 @@ msgid "domain_constraint" msgstr "restricción_de_dominio" #: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 -#: sql_help.c:488 sql_help.c:1323 sql_help.c:1370 sql_help.c:1371 -#: sql_help.c:1372 sql_help.c:1399 sql_help.c:1411 sql_help.c:1428 -#: sql_help.c:1864 sql_help.c:1866 sql_help.c:2246 sql_help.c:2358 -#: sql_help.c:2363 sql_help.c:2944 sql_help.c:2956 sql_help.c:4008 +#: sql_help.c:488 sql_help.c:1337 sql_help.c:1384 sql_help.c:1385 +#: sql_help.c:1386 sql_help.c:1413 sql_help.c:1425 sql_help.c:1442 +#: sql_help.c:1878 sql_help.c:1880 sql_help.c:2260 sql_help.c:2372 +#: sql_help.c:2377 sql_help.c:2964 sql_help.c:2976 sql_help.c:4028 msgid "constraint_name" msgstr "nombre_restricción" -#: sql_help.c:254 sql_help.c:1324 +#: sql_help.c:254 sql_help.c:1338 msgid "new_constraint_name" msgstr "nuevo_nombre_restricción" @@ -4229,7 +4229,7 @@ msgstr "nuevo_nombre_restricción" msgid "where domain_constraint is:" msgstr "donde restricción_de_dominio es:" -#: sql_help.c:330 sql_help.c:1109 +#: sql_help.c:330 sql_help.c:1123 msgid "new_version" msgstr "nueva_versión" @@ -4245,82 +4245,82 @@ msgstr "dondo objeto_miembro es:" #: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 #: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 #: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 -#: sql_help.c:381 sql_help.c:1856 sql_help.c:1861 sql_help.c:1868 -#: sql_help.c:1869 sql_help.c:1870 sql_help.c:1871 sql_help.c:1872 -#: sql_help.c:1873 sql_help.c:1874 sql_help.c:1879 sql_help.c:1881 -#: sql_help.c:1885 sql_help.c:1887 sql_help.c:1891 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 -#: sql_help.c:1907 sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 -#: sql_help.c:1919 sql_help.c:1920 sql_help.c:4470 sql_help.c:4475 -#: sql_help.c:4476 sql_help.c:4477 sql_help.c:4478 sql_help.c:4484 -#: sql_help.c:4485 sql_help.c:4490 sql_help.c:4491 sql_help.c:4496 -#: sql_help.c:4497 sql_help.c:4498 sql_help.c:4499 sql_help.c:4500 -#: sql_help.c:4501 +#: sql_help.c:381 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 +#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 +#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 +#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 +#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 +#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 +#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4490 sql_help.c:4495 +#: sql_help.c:4496 sql_help.c:4497 sql_help.c:4498 sql_help.c:4504 +#: sql_help.c:4505 sql_help.c:4510 sql_help.c:4511 sql_help.c:4516 +#: sql_help.c:4517 sql_help.c:4518 sql_help.c:4519 sql_help.c:4520 +#: sql_help.c:4521 msgid "object_name" msgstr "nombre_de_objeto" -#: sql_help.c:339 sql_help.c:1857 sql_help.c:4473 +#: sql_help.c:339 sql_help.c:1871 sql_help.c:4493 msgid "aggregate_name" msgstr "nombre_función_agregación" -#: sql_help.c:341 sql_help.c:1859 sql_help.c:2143 sql_help.c:2147 -#: sql_help.c:2149 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1873 sql_help.c:2157 sql_help.c:2161 +#: sql_help.c:2163 sql_help.c:3392 msgid "source_type" msgstr "tipo_fuente" -#: sql_help.c:342 sql_help.c:1860 sql_help.c:2144 sql_help.c:2148 -#: sql_help.c:2150 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1874 sql_help.c:2158 sql_help.c:2162 +#: sql_help.c:2164 sql_help.c:3393 msgid "target_type" msgstr "tipo_destino" -#: sql_help.c:349 sql_help.c:796 sql_help.c:1875 sql_help.c:2145 -#: sql_help.c:2186 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4372 sql_help.c:4479 sql_help.c:4596 -#: sql_help.c:4600 sql_help.c:4604 sql_help.c:4607 sql_help.c:4853 -#: sql_help.c:4857 sql_help.c:4861 sql_help.c:4864 sql_help.c:5091 -#: sql_help.c:5095 sql_help.c:5099 sql_help.c:5102 +#: sql_help.c:349 sql_help.c:796 sql_help.c:1889 sql_help.c:2159 +#: sql_help.c:2200 sql_help.c:2276 sql_help.c:2544 sql_help.c:2575 +#: sql_help.c:3152 sql_help.c:4392 sql_help.c:4499 sql_help.c:4616 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4627 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5111 +#: sql_help.c:5115 sql_help.c:5119 sql_help.c:5122 msgid "function_name" msgstr "nombre_de_función" -#: sql_help.c:354 sql_help.c:789 sql_help.c:1882 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:789 sql_help.c:1896 sql_help.c:2568 msgid "operator_name" msgstr "nombre_operador" -#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1883 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1897 +#: sql_help.c:2545 sql_help.c:3516 msgid "left_type" msgstr "tipo_izq" -#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1884 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1898 +#: sql_help.c:2546 sql_help.c:3517 msgid "right_type" msgstr "tipo_der" #: sql_help.c:358 sql_help.c:360 sql_help.c:752 sql_help.c:755 sql_help.c:758 #: sql_help.c:787 sql_help.c:799 sql_help.c:807 sql_help.c:810 sql_help.c:813 -#: sql_help.c:1417 sql_help.c:1886 sql_help.c:1888 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:1431 sql_help.c:1900 sql_help.c:1902 sql_help.c:2565 +#: sql_help.c:2586 sql_help.c:2982 sql_help.c:3526 sql_help.c:3535 msgid "index_method" msgstr "método_de_índice" -#: sql_help.c:362 sql_help.c:1892 sql_help.c:4486 +#: sql_help.c:362 sql_help.c:1906 sql_help.c:4506 msgid "procedure_name" msgstr "nombre_de_procedimiento" -#: sql_help.c:366 sql_help.c:1898 sql_help.c:3919 sql_help.c:4492 +#: sql_help.c:366 sql_help.c:1912 sql_help.c:3939 sql_help.c:4512 msgid "routine_name" msgstr "nombre_de_rutina" -#: sql_help.c:378 sql_help.c:1389 sql_help.c:1915 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3941 sql_help.c:4394 +#: sql_help.c:378 sql_help.c:1403 sql_help.c:1929 sql_help.c:2420 +#: sql_help.c:2626 sql_help.c:2937 sql_help.c:3119 sql_help.c:3697 +#: sql_help.c:3961 sql_help.c:4414 msgid "type_name" msgstr "nombre_de_tipo" -#: sql_help.c:379 sql_help.c:1916 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3926 -#: sql_help.c:4379 +#: sql_help.c:379 sql_help.c:1930 sql_help.c:2419 sql_help.c:2625 +#: sql_help.c:3120 sql_help.c:3350 sql_help.c:3698 sql_help.c:3946 +#: sql_help.c:4399 msgid "lang_name" msgstr "nombre_lenguaje" @@ -4328,147 +4328,147 @@ msgstr "nombre_lenguaje" msgid "and aggregate_signature is:" msgstr "y signatura_func_agregación es:" -#: sql_help.c:405 sql_help.c:2010 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2024 sql_help.c:2301 msgid "handler_function" msgstr "función_manejadora" -#: sql_help.c:406 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2302 msgid "validator_function" msgstr "función_validadora" -#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1013 -#: sql_help.c:1318 sql_help.c:1593 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1027 +#: sql_help.c:1332 sql_help.c:1607 msgid "action" msgstr "acción" #: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 #: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 #: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 -#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:921 sql_help.c:1090 -#: sql_help.c:1320 sql_help.c:1338 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1347 sql_help.c:1349 sql_help.c:1350 sql_help.c:1351 -#: sql_help.c:1352 sql_help.c:1354 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1360 sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 -#: sql_help.c:1413 sql_help.c:1415 sql_help.c:1422 sql_help.c:1431 -#: sql_help.c:1436 sql_help.c:1443 sql_help.c:1444 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1702 sql_help.c:1738 sql_help.c:1863 -#: sql_help.c:1976 sql_help.c:1982 sql_help.c:1995 sql_help.c:1996 -#: sql_help.c:1997 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3995 sql_help.c:4010 sql_help.c:4012 -#: sql_help.c:4014 sql_help.c:4101 sql_help.c:4104 sql_help.c:4106 -#: sql_help.c:4108 sql_help.c:4351 sql_help.c:4352 sql_help.c:4472 -#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4641 sql_help.c:4890 -#: sql_help.c:4896 sql_help.c:4898 sql_help.c:4939 sql_help.c:4941 -#: sql_help.c:4943 sql_help.c:4990 sql_help.c:5128 sql_help.c:5134 -#: sql_help.c:5136 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:936 sql_help.c:1104 +#: sql_help.c:1334 sql_help.c:1352 sql_help.c:1356 sql_help.c:1357 +#: sql_help.c:1361 sql_help.c:1363 sql_help.c:1364 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1368 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1374 sql_help.c:1377 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1436 sql_help.c:1445 +#: sql_help.c:1450 sql_help.c:1457 sql_help.c:1458 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1716 sql_help.c:1752 sql_help.c:1877 +#: sql_help.c:1990 sql_help.c:1996 sql_help.c:2009 sql_help.c:2010 +#: sql_help.c:2011 sql_help.c:2351 sql_help.c:2364 sql_help.c:2417 +#: sql_help.c:2485 sql_help.c:2491 sql_help.c:2524 sql_help.c:2662 +#: sql_help.c:2770 sql_help.c:2805 sql_help.c:2807 sql_help.c:2919 +#: sql_help.c:2928 sql_help.c:2938 sql_help.c:2941 sql_help.c:2951 +#: sql_help.c:2955 sql_help.c:2978 sql_help.c:2980 sql_help.c:2987 +#: sql_help.c:3000 sql_help.c:3005 sql_help.c:3012 sql_help.c:3013 +#: sql_help.c:3029 sql_help.c:3155 sql_help.c:3295 sql_help.c:3918 +#: sql_help.c:3919 sql_help.c:4015 sql_help.c:4030 sql_help.c:4032 +#: sql_help.c:4034 sql_help.c:4121 sql_help.c:4124 sql_help.c:4126 +#: sql_help.c:4128 sql_help.c:4371 sql_help.c:4372 sql_help.c:4492 +#: sql_help.c:4653 sql_help.c:4659 sql_help.c:4661 sql_help.c:4910 +#: sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 sql_help.c:4961 +#: sql_help.c:4963 sql_help.c:5010 sql_help.c:5148 sql_help.c:5154 +#: sql_help.c:5156 msgid "column_name" msgstr "nombre_de_columna" -#: sql_help.c:457 sql_help.c:682 sql_help.c:1321 sql_help.c:1703 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1335 sql_help.c:1717 msgid "new_column_name" msgstr "nuevo_nombre_de_columna" -#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1034 -#: sql_help.c:1337 sql_help.c:1603 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1048 +#: sql_help.c:1351 sql_help.c:1617 msgid "where action is one of:" msgstr "donde acción es una de:" -#: sql_help.c:464 sql_help.c:469 sql_help.c:1082 sql_help.c:1339 -#: sql_help.c:1344 sql_help.c:1605 sql_help.c:1609 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4160 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1096 sql_help.c:1353 +#: sql_help.c:1358 sql_help.c:1619 sql_help.c:1623 sql_help.c:2255 +#: sql_help.c:2352 sql_help.c:2564 sql_help.c:2763 sql_help.c:2920 +#: sql_help.c:3202 sql_help.c:4180 msgid "data_type" msgstr "tipo_de_dato" -#: sql_help.c:465 sql_help.c:470 sql_help.c:1340 sql_help.c:1345 -#: sql_help.c:1438 sql_help.c:1606 sql_help.c:1610 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4005 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1354 sql_help.c:1359 +#: sql_help.c:1452 sql_help.c:1620 sql_help.c:1624 sql_help.c:2256 +#: sql_help.c:2355 sql_help.c:2487 sql_help.c:2922 sql_help.c:2930 +#: sql_help.c:2943 sql_help.c:2957 sql_help.c:3007 sql_help.c:3203 +#: sql_help.c:3209 sql_help.c:4025 msgid "collation" msgstr "ordenamiento" -#: sql_help.c:466 sql_help.c:1341 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1355 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2923 sql_help.c:2939 sql_help.c:2952 msgid "column_constraint" msgstr "restricción_de_columna" -#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1359 sql_help.c:4987 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1373 sql_help.c:5007 msgid "integer" msgstr "entero" -#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1361 -#: sql_help.c:1364 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1375 +#: sql_help.c:1378 msgid "attribute_option" msgstr "opción_de_atributo" -#: sql_help.c:486 sql_help.c:1368 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1382 sql_help.c:2357 sql_help.c:2366 +#: sql_help.c:2924 sql_help.c:2940 sql_help.c:2953 msgid "table_constraint" msgstr "restricción_de_tabla" -#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1373 -#: sql_help.c:1374 sql_help.c:1375 sql_help.c:1376 sql_help.c:1917 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1387 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 sql_help.c:1931 msgid "trigger_name" msgstr "nombre_disparador" -#: sql_help.c:493 sql_help.c:494 sql_help.c:1387 sql_help.c:1388 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1401 sql_help.c:1402 +#: sql_help.c:2358 sql_help.c:2363 sql_help.c:2927 sql_help.c:2950 msgid "parent_table" msgstr "tabla_padre" -#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1033 -#: sql_help.c:1562 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1047 +#: sql_help.c:1576 sql_help.c:2287 msgid "extension_name" msgstr "nombre_de_extensión" -#: sql_help.c:555 sql_help.c:1035 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1049 sql_help.c:2421 msgid "execution_cost" msgstr "costo_de_ejecución" -#: sql_help.c:556 sql_help.c:1036 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1050 sql_help.c:2422 msgid "result_rows" msgstr "núm_de_filas" -#: sql_help.c:557 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2423 msgid "support_function" msgstr "función_de_soporte" -#: sql_help.c:579 sql_help.c:581 sql_help.c:958 sql_help.c:966 sql_help.c:970 -#: sql_help.c:973 sql_help.c:976 sql_help.c:1645 sql_help.c:1653 -#: sql_help.c:1657 sql_help.c:1660 sql_help.c:1663 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3896 -#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3902 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3914 sql_help.c:3915 sql_help.c:3917 -#: sql_help.c:3918 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:3942 sql_help.c:3943 sql_help.c:3945 -#: sql_help.c:3946 sql_help.c:4349 sql_help.c:4350 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4367 -#: sql_help.c:4368 sql_help.c:4370 sql_help.c:4371 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 sql_help.c:4395 -#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 +#: sql_help.c:579 sql_help.c:581 sql_help.c:972 sql_help.c:980 sql_help.c:984 +#: sql_help.c:987 sql_help.c:990 sql_help.c:1659 sql_help.c:1667 +#: sql_help.c:1671 sql_help.c:1674 sql_help.c:1677 sql_help.c:2741 +#: sql_help.c:2743 sql_help.c:2746 sql_help.c:2747 sql_help.c:3916 +#: sql_help.c:3917 sql_help.c:3921 sql_help.c:3922 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3928 sql_help.c:3929 sql_help.c:3931 +#: sql_help.c:3932 sql_help.c:3934 sql_help.c:3935 sql_help.c:3937 +#: sql_help.c:3938 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:3956 sql_help.c:3957 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3962 sql_help.c:3963 sql_help.c:3965 +#: sql_help.c:3966 sql_help.c:4369 sql_help.c:4370 sql_help.c:4374 +#: sql_help.c:4375 sql_help.c:4378 sql_help.c:4379 sql_help.c:4381 +#: sql_help.c:4382 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4397 +#: sql_help.c:4398 sql_help.c:4400 sql_help.c:4401 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 msgid "role_specification" msgstr "especificación_de_rol" -#: sql_help.c:580 sql_help.c:582 sql_help.c:1676 sql_help.c:2210 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4726 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1690 sql_help.c:2224 +#: sql_help.c:2749 sql_help.c:3280 sql_help.c:3731 sql_help.c:4746 msgid "user_name" msgstr "nombre_de_usuario" -#: sql_help.c:583 sql_help.c:978 sql_help.c:1665 sql_help.c:2728 -#: sql_help.c:3947 sql_help.c:4400 +#: sql_help.c:583 sql_help.c:992 sql_help.c:1679 sql_help.c:2748 +#: sql_help.c:3967 sql_help.c:4420 msgid "where role_specification can be:" msgstr "donde especificación_de_rol puede ser:" @@ -4476,22 +4476,22 @@ msgstr "donde especificación_de_rol puede ser:" msgid "group_name" msgstr "nombre_de_grupo" -#: sql_help.c:606 sql_help.c:1434 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3938 -#: sql_help.c:4391 +#: sql_help.c:606 sql_help.c:1448 sql_help.c:2234 sql_help.c:2494 +#: sql_help.c:2528 sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 +#: sql_help.c:3003 sql_help.c:3033 sql_help.c:3045 sql_help.c:3958 +#: sql_help.c:4411 msgid "tablespace_name" msgstr "nombre_de_tablespace" -#: sql_help.c:608 sql_help.c:701 sql_help.c:1381 sql_help.c:1391 -#: sql_help.c:1429 sql_help.c:1792 sql_help.c:1795 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1395 sql_help.c:1405 +#: sql_help.c:1443 sql_help.c:1806 sql_help.c:1809 msgid "index_name" msgstr "nombre_índice" -#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1384 -#: sql_help.c:1386 sql_help.c:1432 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1398 +#: sql_help.c:1400 sql_help.c:1446 sql_help.c:2492 sql_help.c:2526 +#: sql_help.c:2933 sql_help.c:2946 sql_help.c:2960 sql_help.c:3001 +#: sql_help.c:3031 msgid "storage_parameter" msgstr "parámetro_de_almacenamiento" @@ -4499,1879 +4499,1888 @@ msgstr "parámetro_de_almacenamiento" msgid "column_number" msgstr "número_de_columna" -#: sql_help.c:641 sql_help.c:1880 sql_help.c:4483 +#: sql_help.c:641 sql_help.c:1894 sql_help.c:4503 msgid "large_object_oid" msgstr "oid_de_objeto_grande" -#: sql_help.c:700 sql_help.c:1367 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1381 sql_help.c:2921 msgid "compression_method" msgstr "método_de_compresión" -#: sql_help.c:702 sql_help.c:1382 +#: sql_help.c:702 sql_help.c:1396 msgid "new_access_method" msgstr "nuevo_método_de_acceso" -#: sql_help.c:735 sql_help.c:2535 +#: sql_help.c:735 sql_help.c:2549 msgid "res_proc" msgstr "proc_res" -#: sql_help.c:736 sql_help.c:2536 +#: sql_help.c:736 sql_help.c:2550 msgid "join_proc" msgstr "proc_join" -#: sql_help.c:788 sql_help.c:800 sql_help.c:2553 +#: sql_help.c:788 sql_help.c:800 sql_help.c:2567 msgid "strategy_number" msgstr "número_de_estrategia" #: sql_help.c:790 sql_help.c:791 sql_help.c:794 sql_help.c:795 sql_help.c:801 -#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2569 sql_help.c:2570 +#: sql_help.c:2573 sql_help.c:2574 msgid "op_type" msgstr "tipo_op" -#: sql_help.c:792 sql_help.c:2557 +#: sql_help.c:792 sql_help.c:2571 msgid "sort_family_name" msgstr "nombre_familia_ordenamiento" -#: sql_help.c:793 sql_help.c:803 sql_help.c:2558 +#: sql_help.c:793 sql_help.c:803 sql_help.c:2572 msgid "support_number" msgstr "número_de_soporte" -#: sql_help.c:797 sql_help.c:2146 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:797 sql_help.c:2160 sql_help.c:2576 sql_help.c:3122 +#: sql_help.c:3124 msgid "argument_type" msgstr "tipo_argumento" -#: sql_help.c:828 sql_help.c:831 sql_help.c:920 sql_help.c:1049 sql_help.c:1089 -#: sql_help.c:1558 sql_help.c:1561 sql_help.c:1737 sql_help.c:1791 -#: sql_help.c:1794 sql_help.c:1865 sql_help.c:1890 sql_help.c:1903 -#: sql_help.c:1918 sql_help.c:1975 sql_help.c:1981 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3894 sql_help.c:3900 -#: sql_help.c:3961 sql_help.c:3993 sql_help.c:4347 sql_help.c:4353 -#: sql_help.c:4471 sql_help.c:4582 sql_help.c:4584 sql_help.c:4646 -#: sql_help.c:4685 sql_help.c:4839 sql_help.c:4841 sql_help.c:4903 -#: sql_help.c:4937 sql_help.c:4989 sql_help.c:5077 sql_help.c:5079 -#: sql_help.c:5141 +#: sql_help.c:828 sql_help.c:831 sql_help.c:932 sql_help.c:935 sql_help.c:1063 +#: sql_help.c:1103 sql_help.c:1572 sql_help.c:1575 sql_help.c:1751 +#: sql_help.c:1805 sql_help.c:1808 sql_help.c:1879 sql_help.c:1904 +#: sql_help.c:1917 sql_help.c:1932 sql_help.c:1989 sql_help.c:1995 +#: sql_help.c:2350 sql_help.c:2362 sql_help.c:2483 sql_help.c:2523 +#: sql_help.c:2600 sql_help.c:2661 sql_help.c:2717 sql_help.c:2769 +#: sql_help.c:2802 sql_help.c:2809 sql_help.c:2918 sql_help.c:2936 +#: sql_help.c:2949 sql_help.c:3028 sql_help.c:3148 sql_help.c:3329 +#: sql_help.c:3552 sql_help.c:3601 sql_help.c:3707 sql_help.c:3914 +#: sql_help.c:3920 sql_help.c:3981 sql_help.c:4013 sql_help.c:4367 +#: sql_help.c:4373 sql_help.c:4491 sql_help.c:4602 sql_help.c:4604 +#: sql_help.c:4666 sql_help.c:4705 sql_help.c:4859 sql_help.c:4861 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5009 sql_help.c:5097 +#: sql_help.c:5099 sql_help.c:5161 msgid "table_name" msgstr "nombre_de_tabla" -#: sql_help.c:833 sql_help.c:2588 +#: sql_help.c:833 sql_help.c:2602 msgid "using_expression" msgstr "expresión_using" -#: sql_help.c:834 sql_help.c:2589 +#: sql_help.c:834 sql_help.c:2603 msgid "check_expression" msgstr "expresión_check" -#: sql_help.c:907 sql_help.c:909 sql_help.c:911 sql_help.c:2636 +#: sql_help.c:916 sql_help.c:918 sql_help.c:2654 msgid "publication_object" msgstr "objeto_de_publicación" -#: sql_help.c:913 sql_help.c:2637 +#: sql_help.c:920 +msgid "publication_drop_object" +msgstr "objeto_drop_publicación" + +#: sql_help.c:922 sql_help.c:2655 msgid "publication_parameter" msgstr "parámetro_de_publicación" -#: sql_help.c:919 sql_help.c:2639 +#: sql_help.c:928 sql_help.c:2657 msgid "where publication_object is one of:" msgstr "donde objeto_de_publicación es uno de:" -#: sql_help.c:962 sql_help.c:1649 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:929 sql_help.c:1745 sql_help.c:1746 sql_help.c:2658 +#: sql_help.c:4996 sql_help.c:4997 +msgid "table_and_columns" +msgstr "tabla_y_columnas" + +#: sql_help.c:931 +msgid "and publication_drop_object is one of:" +msgstr "donde objeto_drop_publicación es uno de:" + +#: sql_help.c:934 sql_help.c:1750 sql_help.c:2660 sql_help.c:5008 +msgid "and table_and_columns is:" +msgstr "y tabla_y_columnas es:" + +#: sql_help.c:976 sql_help.c:1663 sql_help.c:2461 sql_help.c:2694 +#: sql_help.c:3263 msgid "password" msgstr "contraseña" -#: sql_help.c:963 sql_help.c:1650 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:977 sql_help.c:1664 sql_help.c:2462 sql_help.c:2695 +#: sql_help.c:3264 msgid "timestamp" msgstr "fecha_hora" -#: sql_help.c:967 sql_help.c:971 sql_help.c:974 sql_help.c:977 sql_help.c:1654 -#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:3907 -#: sql_help.c:4360 +#: sql_help.c:981 sql_help.c:985 sql_help.c:988 sql_help.c:991 sql_help.c:1668 +#: sql_help.c:1672 sql_help.c:1675 sql_help.c:1678 sql_help.c:3927 +#: sql_help.c:4380 msgid "database_name" msgstr "nombre_de_base_de_datos" -#: sql_help.c:1083 sql_help.c:2744 +#: sql_help.c:1097 sql_help.c:2764 msgid "increment" msgstr "incremento" -#: sql_help.c:1084 sql_help.c:2745 +#: sql_help.c:1098 sql_help.c:2765 msgid "minvalue" msgstr "valormin" -#: sql_help.c:1085 sql_help.c:2746 +#: sql_help.c:1099 sql_help.c:2766 msgid "maxvalue" msgstr "valormax" -#: sql_help.c:1086 sql_help.c:2747 sql_help.c:4580 sql_help.c:4683 -#: sql_help.c:4837 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1100 sql_help.c:2767 sql_help.c:4600 sql_help.c:4703 +#: sql_help.c:4857 sql_help.c:5026 sql_help.c:5095 msgid "start" msgstr "inicio" -#: sql_help.c:1087 sql_help.c:1356 +#: sql_help.c:1101 sql_help.c:1370 msgid "restart" msgstr "reinicio" -#: sql_help.c:1088 sql_help.c:2748 +#: sql_help.c:1102 sql_help.c:2768 msgid "cache" msgstr "cache" -#: sql_help.c:1133 +#: sql_help.c:1147 msgid "new_target" msgstr "nuevo_valor" -#: sql_help.c:1152 sql_help.c:2801 +#: sql_help.c:1166 sql_help.c:2821 msgid "conninfo" msgstr "conninfo" -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:2802 +#: sql_help.c:1168 sql_help.c:1172 sql_help.c:1176 sql_help.c:2822 msgid "publication_name" msgstr "nombre_de_publicación" -#: sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1169 sql_help.c:1173 sql_help.c:1177 msgid "publication_option" msgstr "opción_de_publicación" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "refresh_option" msgstr "opción_refresh" -#: sql_help.c:1171 sql_help.c:2803 +#: sql_help.c:1185 sql_help.c:2823 msgid "subscription_parameter" msgstr "parámetro_de_suscripción" -#: sql_help.c:1174 +#: sql_help.c:1188 msgid "skip_option" msgstr "opción_skip" -#: sql_help.c:1333 sql_help.c:1336 +#: sql_help.c:1347 sql_help.c:1350 msgid "partition_name" msgstr "nombre_de_partición" -#: sql_help.c:1334 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1348 sql_help.c:2367 sql_help.c:2954 msgid "partition_bound_spec" msgstr "borde_de_partición" -#: sql_help.c:1353 sql_help.c:1403 sql_help.c:2948 +#: sql_help.c:1367 sql_help.c:1417 sql_help.c:2968 msgid "sequence_options" msgstr "opciones_de_secuencia" -#: sql_help.c:1355 +#: sql_help.c:1369 msgid "sequence_option" msgstr "opción_de_secuencia" -#: sql_help.c:1369 +#: sql_help.c:1383 msgid "table_constraint_using_index" msgstr "restricción_de_tabla_con_índice" -#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1391 sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 msgid "rewrite_rule_name" msgstr "nombre_regla_de_reescritura" -#: sql_help.c:1392 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1406 sql_help.c:2379 sql_help.c:2993 msgid "and partition_bound_spec is:" msgstr "y borde_de_partición es:" -#: sql_help.c:1393 sql_help.c:1394 sql_help.c:1395 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1407 sql_help.c:1408 sql_help.c:1409 sql_help.c:2380 +#: sql_help.c:2381 sql_help.c:2382 sql_help.c:2994 sql_help.c:2995 +#: sql_help.c:2996 msgid "partition_bound_expr" msgstr "expresión_de_borde_de_partición" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1410 sql_help.c:1411 sql_help.c:2383 sql_help.c:2384 +#: sql_help.c:2997 sql_help.c:2998 msgid "numeric_literal" msgstr "literal_numérico" -#: sql_help.c:1398 +#: sql_help.c:1412 msgid "and column_constraint is:" msgstr "donde restricción_de_columna es:" -#: sql_help.c:1401 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1415 sql_help.c:2374 sql_help.c:2415 sql_help.c:2624 +#: sql_help.c:2966 msgid "default_expr" msgstr "expr_por_omisión" -#: sql_help.c:1402 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1416 sql_help.c:2375 sql_help.c:2967 msgid "generation_expr" msgstr "expr_de_generación" -#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1414 sql_help.c:1416 -#: sql_help.c:1420 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1418 sql_help.c:1419 sql_help.c:1428 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:2969 sql_help.c:2970 sql_help.c:2979 +#: sql_help.c:2981 sql_help.c:2985 msgid "index_parameters" msgstr "parámetros_de_índice" -#: sql_help.c:1406 sql_help.c:1423 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1420 sql_help.c:1437 sql_help.c:2971 sql_help.c:2988 msgid "reftable" msgstr "tabla_ref" -#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1421 sql_help.c:1438 sql_help.c:2972 sql_help.c:2989 msgid "refcolumn" msgstr "columna_ref" -#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1425 sql_help.c:1426 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1439 sql_help.c:1440 +#: sql_help.c:2973 sql_help.c:2974 sql_help.c:2990 sql_help.c:2991 msgid "referential_action" msgstr "acción_referencial" -#: sql_help.c:1410 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1424 sql_help.c:2376 sql_help.c:2975 msgid "and table_constraint is:" msgstr "y restricción_de_tabla es:" -#: sql_help.c:1418 sql_help.c:2963 +#: sql_help.c:1432 sql_help.c:2983 msgid "exclude_element" msgstr "elemento_de_exclusión" -#: sql_help.c:1419 sql_help.c:2964 sql_help.c:4578 sql_help.c:4681 -#: sql_help.c:4835 sql_help.c:5004 sql_help.c:5073 +#: sql_help.c:1433 sql_help.c:2984 sql_help.c:4598 sql_help.c:4701 +#: sql_help.c:4855 sql_help.c:5024 sql_help.c:5093 msgid "operator" msgstr "operador" -#: sql_help.c:1421 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1435 sql_help.c:2495 sql_help.c:2986 msgid "predicate" msgstr "predicado" -#: sql_help.c:1427 +#: sql_help.c:1441 msgid "and table_constraint_using_index is:" msgstr "y restricción_de_tabla_con_índice es:" -#: sql_help.c:1430 sql_help.c:2979 +#: sql_help.c:1444 sql_help.c:2999 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "parámetros_de_índice en UNIQUE, PRIMARY KEY y EXCLUDE son:" -#: sql_help.c:1435 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:3004 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "elemento_de_exclusión en una restricción EXCLUDE es:" -#: sql_help.c:1439 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4006 +#: sql_help.c:1453 sql_help.c:2488 sql_help.c:2931 sql_help.c:2944 +#: sql_help.c:2958 sql_help.c:3008 sql_help.c:4026 msgid "opclass" msgstr "clase_de_ops" -#: sql_help.c:1440 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1454 sql_help.c:2489 sql_help.c:3009 msgid "opclass_parameter" msgstr "parámetro_opclass" -#: sql_help.c:1442 sql_help.c:2991 +#: sql_help.c:1456 sql_help.c:3011 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "acción_referencial en una restricción FOREIGN KEY/REFERENCES es:" -#: sql_help.c:1460 sql_help.c:1463 sql_help.c:3028 +#: sql_help.c:1474 sql_help.c:1477 sql_help.c:3048 msgid "tablespace_option" msgstr "opción_de_tablespace" -#: sql_help.c:1484 sql_help.c:1487 sql_help.c:1493 sql_help.c:1497 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1507 sql_help.c:1511 msgid "token_type" msgstr "tipo_de_token" -#: sql_help.c:1485 sql_help.c:1488 +#: sql_help.c:1499 sql_help.c:1502 msgid "dictionary_name" msgstr "nombre_diccionario" -#: sql_help.c:1490 sql_help.c:1494 +#: sql_help.c:1504 sql_help.c:1508 msgid "old_dictionary" msgstr "diccionario_antiguo" -#: sql_help.c:1491 sql_help.c:1495 +#: sql_help.c:1505 sql_help.c:1509 msgid "new_dictionary" msgstr "diccionario_nuevo" -#: sql_help.c:1590 sql_help.c:1604 sql_help.c:1607 sql_help.c:1608 -#: sql_help.c:3181 +#: sql_help.c:1604 sql_help.c:1618 sql_help.c:1621 sql_help.c:1622 +#: sql_help.c:3201 msgid "attribute_name" msgstr "nombre_atributo" -#: sql_help.c:1591 +#: sql_help.c:1605 msgid "new_attribute_name" msgstr "nuevo_nombre_atributo" -#: sql_help.c:1595 sql_help.c:1599 +#: sql_help.c:1609 sql_help.c:1613 msgid "new_enum_value" msgstr "nuevo_valor_enum" -#: sql_help.c:1596 +#: sql_help.c:1610 msgid "neighbor_enum_value" msgstr "valor_enum_vecino" -#: sql_help.c:1598 +#: sql_help.c:1612 msgid "existing_enum_value" msgstr "valor_enum_existente" -#: sql_help.c:1601 +#: sql_help.c:1615 msgid "property" msgstr "propiedad" -#: sql_help.c:1677 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3916 sql_help.c:3962 -#: sql_help.c:4369 +#: sql_help.c:1691 sql_help.c:2359 sql_help.c:2368 sql_help.c:2780 +#: sql_help.c:3281 sql_help.c:3732 sql_help.c:3936 sql_help.c:3982 +#: sql_help.c:4389 msgid "server_name" msgstr "nombre_de_servidor" -#: sql_help.c:1709 sql_help.c:1712 sql_help.c:3276 +#: sql_help.c:1723 sql_help.c:1726 sql_help.c:3296 msgid "view_option_name" msgstr "nombre_opción_de_vista" -#: sql_help.c:1710 sql_help.c:3277 +#: sql_help.c:1724 sql_help.c:3297 msgid "view_option_value" msgstr "valor_opción_de_vista" -#: sql_help.c:1731 sql_help.c:1732 sql_help.c:4976 sql_help.c:4977 -msgid "table_and_columns" -msgstr "tabla_y_columnas" - -#: sql_help.c:1733 sql_help.c:1796 sql_help.c:1987 sql_help.c:3760 -#: sql_help.c:4204 sql_help.c:4978 +#: sql_help.c:1747 sql_help.c:1810 sql_help.c:2001 sql_help.c:3780 +#: sql_help.c:4224 sql_help.c:4998 msgid "where option can be one of:" msgstr "donde opción puede ser una de:" -#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1797 sql_help.c:1989 -#: sql_help.c:1992 sql_help.c:2171 sql_help.c:3761 sql_help.c:3762 -#: sql_help.c:3763 sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 -#: sql_help.c:3767 sql_help.c:3768 sql_help.c:4205 sql_help.c:4207 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1748 sql_help.c:1749 sql_help.c:1811 sql_help.c:2003 +#: sql_help.c:2006 sql_help.c:2185 sql_help.c:3781 sql_help.c:3782 +#: sql_help.c:3783 sql_help.c:3784 sql_help.c:3785 sql_help.c:3786 +#: sql_help.c:3787 sql_help.c:3788 sql_help.c:4225 sql_help.c:4227 +#: sql_help.c:4999 sql_help.c:5000 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 msgid "boolean" msgstr "booleano" -#: sql_help.c:1736 sql_help.c:4988 -msgid "and table_and_columns is:" -msgstr "y tabla_y_columnas es:" - -#: sql_help.c:1752 sql_help.c:4742 sql_help.c:4744 sql_help.c:4768 +#: sql_help.c:1766 sql_help.c:4762 sql_help.c:4764 sql_help.c:4788 msgid "transaction_mode" msgstr "modo_de_transacción" -#: sql_help.c:1753 sql_help.c:4745 sql_help.c:4769 +#: sql_help.c:1767 sql_help.c:4765 sql_help.c:4789 msgid "where transaction_mode is one of:" msgstr "donde modo_de_transacción es uno de:" -#: sql_help.c:1762 sql_help.c:4588 sql_help.c:4597 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4608 sql_help.c:4845 sql_help.c:4854 -#: sql_help.c:4858 sql_help.c:4862 sql_help.c:4865 sql_help.c:5083 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:1776 sql_help.c:4608 sql_help.c:4617 sql_help.c:4621 +#: sql_help.c:4625 sql_help.c:4628 sql_help.c:4865 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4882 sql_help.c:4885 sql_help.c:5103 +#: sql_help.c:5112 sql_help.c:5116 sql_help.c:5120 sql_help.c:5123 msgid "argument" msgstr "argumento" -#: sql_help.c:1862 +#: sql_help.c:1876 msgid "relation_name" msgstr "nombre_relación" -#: sql_help.c:1867 sql_help.c:3910 sql_help.c:4363 +#: sql_help.c:1881 sql_help.c:3930 sql_help.c:4383 msgid "domain_name" msgstr "nombre_de_dominio" -#: sql_help.c:1889 +#: sql_help.c:1903 msgid "policy_name" msgstr "nombre_de_política" -#: sql_help.c:1902 +#: sql_help.c:1916 msgid "rule_name" msgstr "nombre_regla" -#: sql_help.c:1921 sql_help.c:4502 +#: sql_help.c:1935 sql_help.c:4522 msgid "string_literal" msgstr "literal_de_cadena" -#: sql_help.c:1946 sql_help.c:4169 sql_help.c:4416 +#: sql_help.c:1960 sql_help.c:4189 sql_help.c:4436 msgid "transaction_id" msgstr "id_de_transacción" -#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4032 +#: sql_help.c:1991 sql_help.c:1998 sql_help.c:4052 msgid "filename" msgstr "nombre_de_archivo" -#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1992 sql_help.c:1999 sql_help.c:2719 sql_help.c:2720 +#: sql_help.c:2721 msgid "command" msgstr "orden" -#: sql_help.c:1980 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4016 sql_help.c:4095 sql_help.c:4098 sql_help.c:4571 -#: sql_help.c:4573 sql_help.c:4674 sql_help.c:4676 sql_help.c:4828 -#: sql_help.c:4830 sql_help.c:4946 sql_help.c:5066 sql_help.c:5068 +#: sql_help.c:1994 sql_help.c:2718 sql_help.c:3151 sql_help.c:3332 +#: sql_help.c:4036 sql_help.c:4115 sql_help.c:4118 sql_help.c:4591 +#: sql_help.c:4593 sql_help.c:4694 sql_help.c:4696 sql_help.c:4848 +#: sql_help.c:4850 sql_help.c:4966 sql_help.c:5086 sql_help.c:5088 msgid "condition" msgstr "condición" -#: sql_help.c:1983 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3997 +#: sql_help.c:1997 sql_help.c:2529 sql_help.c:3034 sql_help.c:3298 +#: sql_help.c:3316 sql_help.c:4017 msgid "query" msgstr "consulta" -#: sql_help.c:1988 +#: sql_help.c:2002 msgid "format_name" msgstr "nombre_de_formato" -#: sql_help.c:1990 +#: sql_help.c:2004 msgid "delimiter_character" msgstr "carácter_delimitador" -#: sql_help.c:1991 +#: sql_help.c:2005 msgid "null_string" msgstr "cadena_null" -#: sql_help.c:1993 +#: sql_help.c:2007 msgid "quote_character" msgstr "carácter_de_comilla" -#: sql_help.c:1994 +#: sql_help.c:2008 msgid "escape_character" msgstr "carácter_de_escape" -#: sql_help.c:1998 +#: sql_help.c:2012 msgid "encoding_name" msgstr "nombre_codificación" -#: sql_help.c:2009 +#: sql_help.c:2023 msgid "access_method_type" msgstr "tipo_de_método_de_acceso" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2102 +#: sql_help.c:2094 sql_help.c:2113 sql_help.c:2116 msgid "arg_data_type" msgstr "tipo_de_dato_arg" -#: sql_help.c:2081 sql_help.c:2103 sql_help.c:2111 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "sfunc" msgstr "func_transición" -#: sql_help.c:2082 sql_help.c:2104 sql_help.c:2112 +#: sql_help.c:2096 sql_help.c:2118 sql_help.c:2126 msgid "state_data_type" msgstr "tipo_de_dato_de_estado" -#: sql_help.c:2083 sql_help.c:2105 sql_help.c:2113 +#: sql_help.c:2097 sql_help.c:2119 sql_help.c:2127 msgid "state_data_size" msgstr "tamaño_de_dato_de_estado" -#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 +#: sql_help.c:2098 sql_help.c:2120 sql_help.c:2128 msgid "ffunc" msgstr "func_final" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2099 sql_help.c:2129 msgid "combinefunc" msgstr "func_combinación" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2100 sql_help.c:2130 msgid "serialfunc" msgstr "func_serial" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2101 sql_help.c:2131 msgid "deserialfunc" msgstr "func_deserial" -#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2118 +#: sql_help.c:2102 sql_help.c:2121 sql_help.c:2132 msgid "initial_condition" msgstr "condición_inicial" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2103 sql_help.c:2133 msgid "msfunc" msgstr "func_transición_m" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2104 sql_help.c:2134 msgid "minvfunc" msgstr "func_inv_m" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2105 sql_help.c:2135 msgid "mstate_data_type" msgstr "tipo_de_dato_de_estado_m" -#: sql_help.c:2092 sql_help.c:2122 +#: sql_help.c:2106 sql_help.c:2136 msgid "mstate_data_size" msgstr "tamaño_de_dato_de_estado_m" -#: sql_help.c:2093 sql_help.c:2123 +#: sql_help.c:2107 sql_help.c:2137 msgid "mffunc" msgstr "func_final_m" -#: sql_help.c:2094 sql_help.c:2124 +#: sql_help.c:2108 sql_help.c:2138 msgid "minitial_condition" msgstr "condición_inicial_m" -#: sql_help.c:2095 sql_help.c:2125 +#: sql_help.c:2109 sql_help.c:2139 msgid "sort_operator" msgstr "operador_de_ordenamiento" -#: sql_help.c:2108 +#: sql_help.c:2122 msgid "or the old syntax" msgstr "o la sintaxis antigua" -#: sql_help.c:2110 +#: sql_help.c:2124 msgid "base_type" msgstr "tipo_base" -#: sql_help.c:2167 sql_help.c:2214 +#: sql_help.c:2181 sql_help.c:2228 msgid "locale" msgstr "configuración regional" -#: sql_help.c:2168 sql_help.c:2215 +#: sql_help.c:2182 sql_help.c:2229 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2169 sql_help.c:2216 +#: sql_help.c:2183 sql_help.c:2230 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2170 sql_help.c:4469 +#: sql_help.c:2184 sql_help.c:4489 msgid "provider" msgstr "proveedor" -#: sql_help.c:2172 sql_help.c:2275 +#: sql_help.c:2186 sql_help.c:2289 msgid "version" msgstr "versión" -#: sql_help.c:2174 +#: sql_help.c:2188 msgid "existing_collation" msgstr "ordenamiento_existente" -#: sql_help.c:2184 +#: sql_help.c:2198 msgid "source_encoding" msgstr "codificación_origen" -#: sql_help.c:2185 +#: sql_help.c:2199 msgid "dest_encoding" msgstr "codificación_destino" -#: sql_help.c:2211 sql_help.c:3054 +#: sql_help.c:2225 sql_help.c:3074 msgid "template" msgstr "plantilla" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "encoding" msgstr "codificación" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "strategy" msgstr "estrategia" -#: sql_help.c:2217 +#: sql_help.c:2231 msgid "icu_locale" msgstr "locale_icu" -#: sql_help.c:2218 +#: sql_help.c:2232 msgid "locale_provider" msgstr "proveedor_locale" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "collation_version" msgstr "versión_ordenamiento" -#: sql_help.c:2224 +#: sql_help.c:2238 msgid "oid" msgstr "oid" -#: sql_help.c:2244 +#: sql_help.c:2258 msgid "constraint" msgstr "restricción" -#: sql_help.c:2245 +#: sql_help.c:2259 msgid "where constraint is:" msgstr "donde restricción es:" -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2273 sql_help.c:2716 sql_help.c:3147 msgid "event" msgstr "evento" -#: sql_help.c:2260 +#: sql_help.c:2274 msgid "filter_variable" msgstr "variable_de_filtrado" -#: sql_help.c:2261 +#: sql_help.c:2275 msgid "filter_value" msgstr "valor_de_filtrado" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2371 sql_help.c:2963 msgid "where column_constraint is:" msgstr "donde restricción_de_columna es:" -#: sql_help.c:2402 +#: sql_help.c:2416 msgid "rettype" msgstr "tipo_ret" -#: sql_help.c:2404 +#: sql_help.c:2418 msgid "column_type" msgstr "tipo_columna" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2427 sql_help.c:2630 msgid "definition" msgstr "definición" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2428 sql_help.c:2631 msgid "obj_file" msgstr "archivo_obj" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2429 sql_help.c:2632 msgid "link_symbol" msgstr "símbolo_enlace" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2430 sql_help.c:2633 msgid "sql_body" msgstr "contenido_sql" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2468 sql_help.c:2701 sql_help.c:3270 msgid "uid" msgstr "uid" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2484 sql_help.c:2525 sql_help.c:2932 sql_help.c:2945 +#: sql_help.c:2959 sql_help.c:3030 msgid "method" msgstr "método" -#: sql_help.c:2492 +#: sql_help.c:2506 msgid "call_handler" msgstr "manejador_de_llamada" -#: sql_help.c:2493 +#: sql_help.c:2507 msgid "inline_handler" msgstr "manejador_en_línea" -#: sql_help.c:2494 +#: sql_help.c:2508 msgid "valfunction" msgstr "función_val" -#: sql_help.c:2533 +#: sql_help.c:2547 msgid "com_op" msgstr "op_conm" -#: sql_help.c:2534 +#: sql_help.c:2548 msgid "neg_op" msgstr "op_neg" -#: sql_help.c:2552 +#: sql_help.c:2566 msgid "family_name" msgstr "nombre_familia" -#: sql_help.c:2563 +#: sql_help.c:2577 msgid "storage_type" msgstr "tipo_almacenamiento" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2722 sql_help.c:3154 msgid "where event can be one of:" msgstr "donde evento puede ser una de:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2742 sql_help.c:2744 msgid "schema_element" msgstr "elemento_de_esquema" -#: sql_help.c:2761 +#: sql_help.c:2781 msgid "server_type" msgstr "tipo_de_servidor" -#: sql_help.c:2762 +#: sql_help.c:2782 msgid "server_version" msgstr "versión_de_servidor" -#: sql_help.c:2763 sql_help.c:3913 sql_help.c:4366 +#: sql_help.c:2783 sql_help.c:3933 sql_help.c:4386 msgid "fdw_name" msgstr "nombre_fdw" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2800 sql_help.c:2803 msgid "statistics_name" msgstr "nombre_de_estadística" -#: sql_help.c:2784 +#: sql_help.c:2804 msgid "statistics_kind" msgstr "tipo_de_estadística" -#: sql_help.c:2800 +#: sql_help.c:2820 msgid "subscription_name" msgstr "nombre_de_suscripción" -#: sql_help.c:2905 +#: sql_help.c:2925 msgid "source_table" msgstr "tabla_origen" -#: sql_help.c:2906 +#: sql_help.c:2926 msgid "like_option" msgstr "opción_de_like" -#: sql_help.c:2972 +#: sql_help.c:2992 msgid "and like_option is:" msgstr "y opción_de_like es:" -#: sql_help.c:3027 +#: sql_help.c:3047 msgid "directory" msgstr "directorio" -#: sql_help.c:3041 +#: sql_help.c:3061 msgid "parser_name" msgstr "nombre_de_parser" -#: sql_help.c:3042 +#: sql_help.c:3062 msgid "source_config" msgstr "config_origen" -#: sql_help.c:3071 +#: sql_help.c:3091 msgid "start_function" msgstr "función_inicio" -#: sql_help.c:3072 +#: sql_help.c:3092 msgid "gettoken_function" msgstr "función_gettoken" -#: sql_help.c:3073 +#: sql_help.c:3093 msgid "end_function" msgstr "función_fin" -#: sql_help.c:3074 +#: sql_help.c:3094 msgid "lextypes_function" msgstr "función_lextypes" -#: sql_help.c:3075 +#: sql_help.c:3095 msgid "headline_function" msgstr "función_headline" -#: sql_help.c:3087 +#: sql_help.c:3107 msgid "init_function" msgstr "función_init" -#: sql_help.c:3088 +#: sql_help.c:3108 msgid "lexize_function" msgstr "función_lexize" -#: sql_help.c:3101 +#: sql_help.c:3121 msgid "from_sql_function_name" msgstr "nombre_de_función_from" -#: sql_help.c:3103 +#: sql_help.c:3123 msgid "to_sql_function_name" msgstr "nombre_de_función_to" -#: sql_help.c:3129 +#: sql_help.c:3149 msgid "referenced_table_name" msgstr "nombre_tabla_referenciada" -#: sql_help.c:3130 +#: sql_help.c:3150 msgid "transition_relation_name" msgstr "nombre_de_relación_de_transición" -#: sql_help.c:3133 +#: sql_help.c:3153 msgid "arguments" msgstr "argumentos" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "label" msgstr "etiqueta" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "subtype" msgstr "subtipo" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "subtype_operator_class" msgstr "clase_de_operador_del_subtipo" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "canonical_function" msgstr "función_canónica" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "subtype_diff_function" msgstr "función_diff_del_subtipo" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "multirange_type_name" msgstr "nombre_de_tipo_de_multirango" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "input_function" msgstr "función_entrada" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "output_function" msgstr "función_salida" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "receive_function" msgstr "función_receive" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "send_function" msgstr "función_send" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "type_modifier_input_function" msgstr "función_entrada_del_modificador_de_tipo" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "type_modifier_output_function" msgstr "función_salida_del_modificador_de_tipo" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "analyze_function" msgstr "función_analyze" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "subscript_function" msgstr "función_de_subíndice" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "internallength" msgstr "largo_interno" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "alignment" msgstr "alineamiento" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "storage" msgstr "almacenamiento" -#: sql_help.c:3205 +#: sql_help.c:3225 msgid "like_type" msgstr "como_tipo" -#: sql_help.c:3206 +#: sql_help.c:3226 msgid "category" msgstr "categoría" -#: sql_help.c:3207 +#: sql_help.c:3227 msgid "preferred" msgstr "preferido" -#: sql_help.c:3208 +#: sql_help.c:3228 msgid "default" msgstr "valor_por_omisión" -#: sql_help.c:3209 +#: sql_help.c:3229 msgid "element" msgstr "elemento" -#: sql_help.c:3210 +#: sql_help.c:3230 msgid "delimiter" msgstr "delimitador" -#: sql_help.c:3211 +#: sql_help.c:3231 msgid "collatable" msgstr "ordenable" -#: sql_help.c:3308 sql_help.c:3992 sql_help.c:4084 sql_help.c:4566 -#: sql_help.c:4668 sql_help.c:4823 sql_help.c:4936 sql_help.c:5061 +#: sql_help.c:3328 sql_help.c:4012 sql_help.c:4104 sql_help.c:4586 +#: sql_help.c:4688 sql_help.c:4843 sql_help.c:4956 sql_help.c:5081 msgid "with_query" msgstr "consulta_with" -#: sql_help.c:3310 sql_help.c:3994 sql_help.c:4585 sql_help.c:4591 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4602 sql_help.c:4610 -#: sql_help.c:4842 sql_help.c:4848 sql_help.c:4851 sql_help.c:4855 -#: sql_help.c:4859 sql_help.c:4867 sql_help.c:4938 sql_help.c:5080 -#: sql_help.c:5086 sql_help.c:5089 sql_help.c:5093 sql_help.c:5097 -#: sql_help.c:5105 +#: sql_help.c:3330 sql_help.c:4014 sql_help.c:4605 sql_help.c:4611 +#: sql_help.c:4614 sql_help.c:4618 sql_help.c:4622 sql_help.c:4630 +#: sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 sql_help.c:4875 +#: sql_help.c:4879 sql_help.c:4887 sql_help.c:4958 sql_help.c:5100 +#: sql_help.c:5106 sql_help.c:5109 sql_help.c:5113 sql_help.c:5117 +#: sql_help.c:5125 msgid "alias" msgstr "alias" -#: sql_help.c:3311 sql_help.c:4570 sql_help.c:4612 sql_help.c:4614 -#: sql_help.c:4618 sql_help.c:4620 sql_help.c:4621 sql_help.c:4622 -#: sql_help.c:4673 sql_help.c:4827 sql_help.c:4869 sql_help.c:4871 -#: sql_help.c:4875 sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 -#: sql_help.c:4945 sql_help.c:5065 sql_help.c:5107 sql_help.c:5109 -#: sql_help.c:5113 sql_help.c:5115 sql_help.c:5116 sql_help.c:5117 +#: sql_help.c:3331 sql_help.c:4590 sql_help.c:4632 sql_help.c:4634 +#: sql_help.c:4638 sql_help.c:4640 sql_help.c:4641 sql_help.c:4642 +#: sql_help.c:4693 sql_help.c:4847 sql_help.c:4889 sql_help.c:4891 +#: sql_help.c:4895 sql_help.c:4897 sql_help.c:4898 sql_help.c:4899 +#: sql_help.c:4965 sql_help.c:5085 sql_help.c:5127 sql_help.c:5129 +#: sql_help.c:5133 sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "from_item" msgstr "item_de_from" -#: sql_help.c:3313 sql_help.c:3794 sql_help.c:4136 sql_help.c:4947 +#: sql_help.c:3333 sql_help.c:3814 sql_help.c:4156 sql_help.c:4967 msgid "cursor_name" msgstr "nombre_de_cursor" -#: sql_help.c:3314 sql_help.c:4000 sql_help.c:4948 +#: sql_help.c:3334 sql_help.c:4020 sql_help.c:4968 msgid "output_expression" msgstr "expresión_de_salida" -#: sql_help.c:3315 sql_help.c:4001 sql_help.c:4569 sql_help.c:4671 -#: sql_help.c:4826 sql_help.c:4949 sql_help.c:5064 +#: sql_help.c:3335 sql_help.c:4021 sql_help.c:4589 sql_help.c:4691 +#: sql_help.c:4846 sql_help.c:4969 sql_help.c:5084 msgid "output_name" msgstr "nombre_de_salida" -#: sql_help.c:3331 +#: sql_help.c:3351 msgid "code" msgstr "código" -#: sql_help.c:3736 +#: sql_help.c:3756 msgid "parameter" msgstr "parámetro" -#: sql_help.c:3758 sql_help.c:3759 sql_help.c:4161 +#: sql_help.c:3778 sql_help.c:3779 sql_help.c:4181 msgid "statement" msgstr "sentencia" -#: sql_help.c:3793 sql_help.c:4135 +#: sql_help.c:3813 sql_help.c:4155 msgid "direction" msgstr "dirección" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3815 sql_help.c:4157 msgid "where direction can be one of:" msgstr "donde dirección puede ser una de:" -#: sql_help.c:3796 sql_help.c:3797 sql_help.c:3798 sql_help.c:3799 -#: sql_help.c:3800 sql_help.c:4138 sql_help.c:4139 sql_help.c:4140 -#: sql_help.c:4141 sql_help.c:4142 sql_help.c:4579 sql_help.c:4581 -#: sql_help.c:4682 sql_help.c:4684 sql_help.c:4836 sql_help.c:4838 -#: sql_help.c:5005 sql_help.c:5007 sql_help.c:5074 sql_help.c:5076 +#: sql_help.c:3816 sql_help.c:3817 sql_help.c:3818 sql_help.c:3819 +#: sql_help.c:3820 sql_help.c:4158 sql_help.c:4159 sql_help.c:4160 +#: sql_help.c:4161 sql_help.c:4162 sql_help.c:4599 sql_help.c:4601 +#: sql_help.c:4702 sql_help.c:4704 sql_help.c:4856 sql_help.c:4858 +#: sql_help.c:5025 sql_help.c:5027 sql_help.c:5094 sql_help.c:5096 msgid "count" msgstr "cantidad" -#: sql_help.c:3903 sql_help.c:4356 +#: sql_help.c:3923 sql_help.c:4376 msgid "sequence_name" msgstr "nombre_secuencia" -#: sql_help.c:3921 sql_help.c:4374 +#: sql_help.c:3941 sql_help.c:4394 msgid "arg_name" msgstr "nombre_arg" -#: sql_help.c:3922 sql_help.c:4375 +#: sql_help.c:3942 sql_help.c:4395 msgid "arg_type" msgstr "tipo_arg" -#: sql_help.c:3929 sql_help.c:4382 +#: sql_help.c:3949 sql_help.c:4402 msgid "loid" msgstr "loid" -#: sql_help.c:3960 +#: sql_help.c:3980 msgid "remote_schema" msgstr "esquema_remoto" -#: sql_help.c:3963 +#: sql_help.c:3983 msgid "local_schema" msgstr "esquema_local" -#: sql_help.c:3998 +#: sql_help.c:4018 msgid "conflict_target" msgstr "destino_de_conflict" -#: sql_help.c:3999 +#: sql_help.c:4019 msgid "conflict_action" msgstr "acción_de_conflict" -#: sql_help.c:4002 +#: sql_help.c:4022 msgid "where conflict_target can be one of:" msgstr "donde destino_de_conflict puede ser uno de:" -#: sql_help.c:4003 +#: sql_help.c:4023 msgid "index_column_name" msgstr "nombre_de_columna_de_índice" -#: sql_help.c:4004 +#: sql_help.c:4024 msgid "index_expression" msgstr "expresión_de_índice" -#: sql_help.c:4007 +#: sql_help.c:4027 msgid "index_predicate" msgstr "predicado_de_índice" -#: sql_help.c:4009 +#: sql_help.c:4029 msgid "and conflict_action is one of:" msgstr "donde acción_de_conflict es una de:" -#: sql_help.c:4015 sql_help.c:4109 sql_help.c:4944 +#: sql_help.c:4035 sql_help.c:4129 sql_help.c:4964 msgid "sub-SELECT" msgstr "sub-SELECT" -#: sql_help.c:4024 sql_help.c:4150 sql_help.c:4920 +#: sql_help.c:4044 sql_help.c:4170 sql_help.c:4940 msgid "channel" msgstr "canal" -#: sql_help.c:4046 +#: sql_help.c:4066 msgid "lockmode" msgstr "modo_bloqueo" -#: sql_help.c:4047 +#: sql_help.c:4067 msgid "where lockmode is one of:" msgstr "donde modo_bloqueo es uno de:" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "target_table_name" msgstr "nombre_de_tabla_destino" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "target_alias" msgstr "alias_de_destino" -#: sql_help.c:4087 +#: sql_help.c:4107 msgid "data_source" msgstr "origin_de_datos" -#: sql_help.c:4088 sql_help.c:4615 sql_help.c:4872 sql_help.c:5110 +#: sql_help.c:4108 sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 msgid "join_condition" msgstr "condición_de_join" -#: sql_help.c:4089 +#: sql_help.c:4109 msgid "when_clause" msgstr "cláusula_when" -#: sql_help.c:4090 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "donde origen_de_datos es:" -#: sql_help.c:4091 +#: sql_help.c:4111 msgid "source_table_name" msgstr "nombre_tabla_origen" -#: sql_help.c:4092 +#: sql_help.c:4112 msgid "source_query" msgstr "consulta_origen" -#: sql_help.c:4093 +#: sql_help.c:4113 msgid "source_alias" msgstr "alias_origen" -#: sql_help.c:4094 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "y cláusula_when es:" -#: sql_help.c:4096 +#: sql_help.c:4116 msgid "merge_update" msgstr "update_de_merge" -#: sql_help.c:4097 +#: sql_help.c:4117 msgid "merge_delete" msgstr "delete_de_merge" -#: sql_help.c:4099 +#: sql_help.c:4119 msgid "merge_insert" msgstr "insert_de_merge" -#: sql_help.c:4100 +#: sql_help.c:4120 msgid "and merge_insert is:" msgstr "y insert_de_merge es:" -#: sql_help.c:4103 +#: sql_help.c:4123 msgid "and merge_update is:" msgstr "y update_de_merge es:" -#: sql_help.c:4110 +#: sql_help.c:4130 msgid "and merge_delete is:" msgstr "y delete_de_merge es:" -#: sql_help.c:4151 +#: sql_help.c:4171 msgid "payload" msgstr "carga" -#: sql_help.c:4178 +#: sql_help.c:4198 msgid "old_role" msgstr "rol_antiguo" -#: sql_help.c:4179 +#: sql_help.c:4199 msgid "new_role" msgstr "rol_nuevo" -#: sql_help.c:4215 sql_help.c:4424 sql_help.c:4432 +#: sql_help.c:4235 sql_help.c:4444 sql_help.c:4452 msgid "savepoint_name" msgstr "nombre_de_savepoint" -#: sql_help.c:4572 sql_help.c:4630 sql_help.c:4829 sql_help.c:4887 -#: sql_help.c:5067 sql_help.c:5125 +#: sql_help.c:4592 sql_help.c:4650 sql_help.c:4849 sql_help.c:4907 +#: sql_help.c:5087 sql_help.c:5145 msgid "grouping_element" msgstr "elemento_agrupante" -#: sql_help.c:4574 sql_help.c:4677 sql_help.c:4831 sql_help.c:5069 +#: sql_help.c:4594 sql_help.c:4697 sql_help.c:4851 sql_help.c:5089 msgid "window_name" msgstr "nombre_de_ventana" -#: sql_help.c:4575 sql_help.c:4678 sql_help.c:4832 sql_help.c:5070 +#: sql_help.c:4595 sql_help.c:4698 sql_help.c:4852 sql_help.c:5090 msgid "window_definition" msgstr "definición_de_ventana" -#: sql_help.c:4576 sql_help.c:4590 sql_help.c:4634 sql_help.c:4679 -#: sql_help.c:4833 sql_help.c:4847 sql_help.c:4891 sql_help.c:5071 -#: sql_help.c:5085 sql_help.c:5129 +#: sql_help.c:4596 sql_help.c:4610 sql_help.c:4654 sql_help.c:4699 +#: sql_help.c:4853 sql_help.c:4867 sql_help.c:4911 sql_help.c:5091 +#: sql_help.c:5105 sql_help.c:5149 msgid "select" msgstr "select" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5078 +#: sql_help.c:4603 sql_help.c:4860 sql_help.c:5098 msgid "where from_item can be one of:" msgstr "donde item_de_from puede ser uno de:" -#: sql_help.c:4586 sql_help.c:4592 sql_help.c:4595 sql_help.c:4599 -#: sql_help.c:4611 sql_help.c:4843 sql_help.c:4849 sql_help.c:4852 -#: sql_help.c:4856 sql_help.c:4868 sql_help.c:5081 sql_help.c:5087 -#: sql_help.c:5090 sql_help.c:5094 sql_help.c:5106 +#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4631 sql_help.c:4863 sql_help.c:4869 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4888 sql_help.c:5101 sql_help.c:5107 +#: sql_help.c:5110 sql_help.c:5114 sql_help.c:5126 msgid "column_alias" msgstr "alias_de_columna" -#: sql_help.c:4587 sql_help.c:4844 sql_help.c:5082 +#: sql_help.c:4607 sql_help.c:4864 sql_help.c:5102 msgid "sampling_method" msgstr "método_de_sampleo" -#: sql_help.c:4589 sql_help.c:4846 sql_help.c:5084 +#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5104 msgid "seed" msgstr "semilla" -#: sql_help.c:4593 sql_help.c:4632 sql_help.c:4850 sql_help.c:4889 -#: sql_help.c:5088 sql_help.c:5127 +#: sql_help.c:4613 sql_help.c:4652 sql_help.c:4870 sql_help.c:4909 +#: sql_help.c:5108 sql_help.c:5147 msgid "with_query_name" msgstr "nombre_consulta_with" -#: sql_help.c:4603 sql_help.c:4606 sql_help.c:4609 sql_help.c:4860 -#: sql_help.c:4863 sql_help.c:4866 sql_help.c:5098 sql_help.c:5101 -#: sql_help.c:5104 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4629 sql_help.c:4880 +#: sql_help.c:4883 sql_help.c:4886 sql_help.c:5118 sql_help.c:5121 +#: sql_help.c:5124 msgid "column_definition" msgstr "definición_de_columna" -#: sql_help.c:4613 sql_help.c:4619 sql_help.c:4870 sql_help.c:4876 -#: sql_help.c:5108 sql_help.c:5114 +#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4890 sql_help.c:4896 +#: sql_help.c:5128 sql_help.c:5134 msgid "join_type" msgstr "tipo_de_join" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5111 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 msgid "join_column" msgstr "columna_de_join" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5112 +#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 msgid "join_using_alias" msgstr "join_con_alias" -#: sql_help.c:4623 sql_help.c:4880 sql_help.c:5118 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 msgid "and grouping_element can be one of:" msgstr "donde elemento_agrupante puede ser una de:" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5126 +#: sql_help.c:4651 sql_help.c:4908 sql_help.c:5146 msgid "and with_query is:" msgstr "y consulta_with es:" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 +#: sql_help.c:4655 sql_help.c:4912 sql_help.c:5150 msgid "values" msgstr "valores" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 +#: sql_help.c:4656 sql_help.c:4913 sql_help.c:5151 msgid "insert" msgstr "insert" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 +#: sql_help.c:4657 sql_help.c:4914 sql_help.c:5152 msgid "update" msgstr "update" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5133 +#: sql_help.c:4658 sql_help.c:4915 sql_help.c:5153 msgid "delete" msgstr "delete" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5135 +#: sql_help.c:4660 sql_help.c:4917 sql_help.c:5155 msgid "search_seq_col_name" msgstr "nombre_col_para_sec_de_búsqueda" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5137 +#: sql_help.c:4662 sql_help.c:4919 sql_help.c:5157 msgid "cycle_mark_col_name" msgstr "nombre_col_para_marca_de_ciclo" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 +#: sql_help.c:4663 sql_help.c:4920 sql_help.c:5158 msgid "cycle_mark_value" msgstr "valor_marca_de_ciclo" -#: sql_help.c:4644 sql_help.c:4901 sql_help.c:5139 +#: sql_help.c:4664 sql_help.c:4921 sql_help.c:5159 msgid "cycle_mark_default" msgstr "valor_predet_marca_de_ciclo" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5140 +#: sql_help.c:4665 sql_help.c:4922 sql_help.c:5160 msgid "cycle_path_col_name" msgstr "nombre_col_para_ruta_de_ciclo" -#: sql_help.c:4672 +#: sql_help.c:4692 msgid "new_table" msgstr "nueva_tabla" -#: sql_help.c:4743 +#: sql_help.c:4763 msgid "snapshot_id" msgstr "id_de_snapshot" -#: sql_help.c:5003 +#: sql_help.c:5023 msgid "sort_expression" msgstr "expresión_orden" -#: sql_help.c:5147 sql_help.c:6131 +#: sql_help.c:5167 sql_help.c:6151 msgid "abort the current transaction" msgstr "aborta la transacción en curso" -#: sql_help.c:5153 +#: sql_help.c:5173 msgid "change the definition of an aggregate function" msgstr "cambia la definición de una función de agregación" -#: sql_help.c:5159 +#: sql_help.c:5179 msgid "change the definition of a collation" msgstr "cambia la definición de un ordenamiento" -#: sql_help.c:5165 +#: sql_help.c:5185 msgid "change the definition of a conversion" msgstr "cambia la definición de una conversión" -#: sql_help.c:5171 +#: sql_help.c:5191 msgid "change a database" msgstr "cambia una base de datos" -#: sql_help.c:5177 +#: sql_help.c:5197 msgid "define default access privileges" msgstr "define privilegios de acceso por omisión" -#: sql_help.c:5183 +#: sql_help.c:5203 msgid "change the definition of a domain" msgstr "cambia la definición de un dominio" -#: sql_help.c:5189 +#: sql_help.c:5209 msgid "change the definition of an event trigger" msgstr "cambia la definición de un disparador por evento" -#: sql_help.c:5195 +#: sql_help.c:5215 msgid "change the definition of an extension" msgstr "cambia la definición de una extensión" -#: sql_help.c:5201 +#: sql_help.c:5221 msgid "change the definition of a foreign-data wrapper" msgstr "cambia la definición de un conector de datos externos" -#: sql_help.c:5207 +#: sql_help.c:5227 msgid "change the definition of a foreign table" msgstr "cambia la definición de una tabla foránea" -#: sql_help.c:5213 +#: sql_help.c:5233 msgid "change the definition of a function" msgstr "cambia la definición de una función" -#: sql_help.c:5219 +#: sql_help.c:5239 msgid "change role name or membership" msgstr "cambiar nombre del rol o membresía" -#: sql_help.c:5225 +#: sql_help.c:5245 msgid "change the definition of an index" msgstr "cambia la definición de un índice" -#: sql_help.c:5231 +#: sql_help.c:5251 msgid "change the definition of a procedural language" msgstr "cambia la definición de un lenguaje procedural" -#: sql_help.c:5237 +#: sql_help.c:5257 msgid "change the definition of a large object" msgstr "cambia la definición de un objeto grande" -#: sql_help.c:5243 +#: sql_help.c:5263 msgid "change the definition of a materialized view" msgstr "cambia la definición de una vista materializada" -#: sql_help.c:5249 +#: sql_help.c:5269 msgid "change the definition of an operator" msgstr "cambia la definición de un operador" -#: sql_help.c:5255 +#: sql_help.c:5275 msgid "change the definition of an operator class" msgstr "cambia la definición de una clase de operadores" -#: sql_help.c:5261 +#: sql_help.c:5281 msgid "change the definition of an operator family" msgstr "cambia la definición de una familia de operadores" -#: sql_help.c:5267 +#: sql_help.c:5287 msgid "change the definition of a row-level security policy" msgstr "cambia la definición de una política de seguridad a nivel de registros" -#: sql_help.c:5273 +#: sql_help.c:5293 msgid "change the definition of a procedure" msgstr "cambia la definición de un procedimiento" -#: sql_help.c:5279 +#: sql_help.c:5299 msgid "change the definition of a publication" msgstr "cambia la definición de una publicación" -#: sql_help.c:5285 sql_help.c:5387 +#: sql_help.c:5305 sql_help.c:5407 msgid "change a database role" msgstr "cambia un rol de la base de datos" -#: sql_help.c:5291 +#: sql_help.c:5311 msgid "change the definition of a routine" msgstr "cambia la definición de una rutina" -#: sql_help.c:5297 +#: sql_help.c:5317 msgid "change the definition of a rule" msgstr "cambia la definición de una regla" -#: sql_help.c:5303 +#: sql_help.c:5323 msgid "change the definition of a schema" msgstr "cambia la definición de un esquema" -#: sql_help.c:5309 +#: sql_help.c:5329 msgid "change the definition of a sequence generator" msgstr "cambia la definición de un generador secuencial" -#: sql_help.c:5315 +#: sql_help.c:5335 msgid "change the definition of a foreign server" msgstr "cambia la definición de un servidor foráneo" -#: sql_help.c:5321 +#: sql_help.c:5341 msgid "change the definition of an extended statistics object" msgstr "cambia la definición de un objeto de estadísticas extendidas" -#: sql_help.c:5327 +#: sql_help.c:5347 msgid "change the definition of a subscription" msgstr "cambia la definición de una suscripción" -#: sql_help.c:5333 +#: sql_help.c:5353 msgid "change a server configuration parameter" msgstr "cambia un parámetro de configuración del servidor" -#: sql_help.c:5339 +#: sql_help.c:5359 msgid "change the definition of a table" msgstr "cambia la definición de una tabla" -#: sql_help.c:5345 +#: sql_help.c:5365 msgid "change the definition of a tablespace" msgstr "cambia la definición de un tablespace" -#: sql_help.c:5351 +#: sql_help.c:5371 msgid "change the definition of a text search configuration" msgstr "cambia la definición de una configuración de búsqueda en texto" -#: sql_help.c:5357 +#: sql_help.c:5377 msgid "change the definition of a text search dictionary" msgstr "cambia la definición de un diccionario de búsqueda en texto" -#: sql_help.c:5363 +#: sql_help.c:5383 msgid "change the definition of a text search parser" msgstr "cambia la definición de un analizador de búsqueda en texto" -#: sql_help.c:5369 +#: sql_help.c:5389 msgid "change the definition of a text search template" msgstr "cambia la definición de una plantilla de búsqueda en texto" -#: sql_help.c:5375 +#: sql_help.c:5395 msgid "change the definition of a trigger" msgstr "cambia la definición de un disparador" -#: sql_help.c:5381 +#: sql_help.c:5401 msgid "change the definition of a type" msgstr "cambia la definición de un tipo" -#: sql_help.c:5393 +#: sql_help.c:5413 msgid "change the definition of a user mapping" msgstr "cambia la definición de un mapeo de usuario" -#: sql_help.c:5399 +#: sql_help.c:5419 msgid "change the definition of a view" msgstr "cambia la definición de una vista" -#: sql_help.c:5405 +#: sql_help.c:5425 msgid "collect statistics about a database" msgstr "recolecta estadísticas sobre una base de datos" -#: sql_help.c:5411 sql_help.c:6209 +#: sql_help.c:5431 sql_help.c:6229 msgid "start a transaction block" msgstr "inicia un bloque de transacción" -#: sql_help.c:5417 +#: sql_help.c:5437 msgid "invoke a procedure" msgstr "invocar un procedimiento" -#: sql_help.c:5423 +#: sql_help.c:5443 msgid "force a write-ahead log checkpoint" msgstr "fuerza un checkpoint de wal" -#: sql_help.c:5429 +#: sql_help.c:5449 msgid "close a cursor" msgstr "cierra un cursor" -#: sql_help.c:5435 +#: sql_help.c:5455 msgid "cluster a table according to an index" msgstr "reordena una tabla siguiendo un índice" -#: sql_help.c:5441 +#: sql_help.c:5461 msgid "define or change the comment of an object" msgstr "define o cambia un comentario sobre un objeto" -#: sql_help.c:5447 sql_help.c:6005 +#: sql_help.c:5467 sql_help.c:6025 msgid "commit the current transaction" msgstr "compromete la transacción en curso" -#: sql_help.c:5453 +#: sql_help.c:5473 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "confirma una transacción que fue preparada para two-phase commit" -#: sql_help.c:5459 +#: sql_help.c:5479 msgid "copy data between a file and a table" msgstr "copia datos entre un archivo y una tabla" -#: sql_help.c:5465 +#: sql_help.c:5485 msgid "define a new access method" msgstr "define un nuevo método de acceso" -#: sql_help.c:5471 +#: sql_help.c:5491 msgid "define a new aggregate function" msgstr "define una nueva función de agregación" -#: sql_help.c:5477 +#: sql_help.c:5497 msgid "define a new cast" msgstr "define una nueva conversión de tipo" -#: sql_help.c:5483 +#: sql_help.c:5503 msgid "define a new collation" msgstr "define un nuevo ordenamiento" -#: sql_help.c:5489 +#: sql_help.c:5509 msgid "define a new encoding conversion" msgstr "define una nueva conversión de codificación" -#: sql_help.c:5495 +#: sql_help.c:5515 msgid "create a new database" msgstr "crea una nueva base de datos" -#: sql_help.c:5501 +#: sql_help.c:5521 msgid "define a new domain" msgstr "define un nuevo dominio" -#: sql_help.c:5507 +#: sql_help.c:5527 msgid "define a new event trigger" msgstr "define un nuevo disparador por evento" -#: sql_help.c:5513 +#: sql_help.c:5533 msgid "install an extension" msgstr "instala una extensión" -#: sql_help.c:5519 +#: sql_help.c:5539 msgid "define a new foreign-data wrapper" msgstr "define un nuevo conector de datos externos" -#: sql_help.c:5525 +#: sql_help.c:5545 msgid "define a new foreign table" msgstr "define una nueva tabla foránea" -#: sql_help.c:5531 +#: sql_help.c:5551 msgid "define a new function" msgstr "define una nueva función" -#: sql_help.c:5537 sql_help.c:5597 sql_help.c:5699 +#: sql_help.c:5557 sql_help.c:5617 sql_help.c:5719 msgid "define a new database role" msgstr "define un nuevo rol de la base de datos" -#: sql_help.c:5543 +#: sql_help.c:5563 msgid "define a new index" msgstr "define un nuevo índice" -#: sql_help.c:5549 +#: sql_help.c:5569 msgid "define a new procedural language" msgstr "define un nuevo lenguaje procedural" -#: sql_help.c:5555 +#: sql_help.c:5575 msgid "define a new materialized view" msgstr "define una nueva vista materializada" -#: sql_help.c:5561 +#: sql_help.c:5581 msgid "define a new operator" msgstr "define un nuevo operador" -#: sql_help.c:5567 +#: sql_help.c:5587 msgid "define a new operator class" msgstr "define una nueva clase de operadores" -#: sql_help.c:5573 +#: sql_help.c:5593 msgid "define a new operator family" msgstr "define una nueva familia de operadores" -#: sql_help.c:5579 +#: sql_help.c:5599 msgid "define a new row-level security policy for a table" msgstr "define una nueva política de seguridad a nivel de registros para una tabla" -#: sql_help.c:5585 +#: sql_help.c:5605 msgid "define a new procedure" msgstr "define un nuevo procedimiento" -#: sql_help.c:5591 +#: sql_help.c:5611 msgid "define a new publication" msgstr "define una nueva publicación" -#: sql_help.c:5603 +#: sql_help.c:5623 msgid "define a new rewrite rule" msgstr "define una nueva regla de reescritura" -#: sql_help.c:5609 +#: sql_help.c:5629 msgid "define a new schema" msgstr "define un nuevo esquema" -#: sql_help.c:5615 +#: sql_help.c:5635 msgid "define a new sequence generator" msgstr "define un nuevo generador secuencial" -#: sql_help.c:5621 +#: sql_help.c:5641 msgid "define a new foreign server" msgstr "define un nuevo servidor foráneo" -#: sql_help.c:5627 +#: sql_help.c:5647 msgid "define extended statistics" msgstr "define estadísticas extendidas" -#: sql_help.c:5633 +#: sql_help.c:5653 msgid "define a new subscription" msgstr "define una nueva suscripción" -#: sql_help.c:5639 +#: sql_help.c:5659 msgid "define a new table" msgstr "define una nueva tabla" -#: sql_help.c:5645 sql_help.c:6167 +#: sql_help.c:5665 sql_help.c:6187 msgid "define a new table from the results of a query" msgstr "crea una nueva tabla usando los resultados de una consulta" -#: sql_help.c:5651 +#: sql_help.c:5671 msgid "define a new tablespace" msgstr "define un nuevo tablespace" -#: sql_help.c:5657 +#: sql_help.c:5677 msgid "define a new text search configuration" msgstr "define una nueva configuración de búsqueda en texto" -#: sql_help.c:5663 +#: sql_help.c:5683 msgid "define a new text search dictionary" msgstr "define un nuevo diccionario de búsqueda en texto" -#: sql_help.c:5669 +#: sql_help.c:5689 msgid "define a new text search parser" msgstr "define un nuevo analizador de búsqueda en texto" -#: sql_help.c:5675 +#: sql_help.c:5695 msgid "define a new text search template" msgstr "define una nueva plantilla de búsqueda en texto" -#: sql_help.c:5681 +#: sql_help.c:5701 msgid "define a new transform" msgstr "define una nueva transformación" -#: sql_help.c:5687 +#: sql_help.c:5707 msgid "define a new trigger" msgstr "define un nuevo disparador" -#: sql_help.c:5693 +#: sql_help.c:5713 msgid "define a new data type" msgstr "define un nuevo tipo de datos" -#: sql_help.c:5705 +#: sql_help.c:5725 msgid "define a new mapping of a user to a foreign server" msgstr "define un nuevo mapa de usuario a servidor foráneo" -#: sql_help.c:5711 +#: sql_help.c:5731 msgid "define a new view" msgstr "define una nueva vista" -#: sql_help.c:5717 +#: sql_help.c:5737 msgid "deallocate a prepared statement" msgstr "elimina una sentencia preparada" -#: sql_help.c:5723 +#: sql_help.c:5743 msgid "define a cursor" msgstr "define un nuevo cursor" -#: sql_help.c:5729 +#: sql_help.c:5749 msgid "delete rows of a table" msgstr "elimina filas de una tabla" -#: sql_help.c:5735 +#: sql_help.c:5755 msgid "discard session state" msgstr "descartar datos de la sesión" -#: sql_help.c:5741 +#: sql_help.c:5761 msgid "execute an anonymous code block" msgstr "ejecutar un bloque anónimo de código" -#: sql_help.c:5747 +#: sql_help.c:5767 msgid "remove an access method" msgstr "elimina un método de acceso" -#: sql_help.c:5753 +#: sql_help.c:5773 msgid "remove an aggregate function" msgstr "elimina una función de agregación" -#: sql_help.c:5759 +#: sql_help.c:5779 msgid "remove a cast" msgstr "elimina una conversión de tipo" -#: sql_help.c:5765 +#: sql_help.c:5785 msgid "remove a collation" msgstr "elimina un ordenamiento" -#: sql_help.c:5771 +#: sql_help.c:5791 msgid "remove a conversion" msgstr "elimina una conversión de codificación" -#: sql_help.c:5777 +#: sql_help.c:5797 msgid "remove a database" msgstr "elimina una base de datos" -#: sql_help.c:5783 +#: sql_help.c:5803 msgid "remove a domain" msgstr "elimina un dominio" -#: sql_help.c:5789 +#: sql_help.c:5809 msgid "remove an event trigger" msgstr "elimina un disparador por evento" -#: sql_help.c:5795 +#: sql_help.c:5815 msgid "remove an extension" msgstr "elimina una extensión" -#: sql_help.c:5801 +#: sql_help.c:5821 msgid "remove a foreign-data wrapper" msgstr "elimina un conector de datos externos" -#: sql_help.c:5807 +#: sql_help.c:5827 msgid "remove a foreign table" msgstr "elimina una tabla foránea" -#: sql_help.c:5813 +#: sql_help.c:5833 msgid "remove a function" msgstr "elimina una función" -#: sql_help.c:5819 sql_help.c:5885 sql_help.c:5987 +#: sql_help.c:5839 sql_help.c:5905 sql_help.c:6007 msgid "remove a database role" msgstr "elimina un rol de base de datos" -#: sql_help.c:5825 +#: sql_help.c:5845 msgid "remove an index" msgstr "elimina un índice" -#: sql_help.c:5831 +#: sql_help.c:5851 msgid "remove a procedural language" msgstr "elimina un lenguaje procedural" -#: sql_help.c:5837 +#: sql_help.c:5857 msgid "remove a materialized view" msgstr "elimina una vista materializada" -#: sql_help.c:5843 +#: sql_help.c:5863 msgid "remove an operator" msgstr "elimina un operador" -#: sql_help.c:5849 +#: sql_help.c:5869 msgid "remove an operator class" msgstr "elimina una clase de operadores" -#: sql_help.c:5855 +#: sql_help.c:5875 msgid "remove an operator family" msgstr "elimina una familia de operadores" -#: sql_help.c:5861 +#: sql_help.c:5881 msgid "remove database objects owned by a database role" msgstr "elimina objetos de propiedad de un rol de la base de datos" -#: sql_help.c:5867 +#: sql_help.c:5887 msgid "remove a row-level security policy from a table" msgstr "elimina una política de seguridad a nivel de registros de una tabla" -#: sql_help.c:5873 +#: sql_help.c:5893 msgid "remove a procedure" msgstr "elimina un procedimiento" -#: sql_help.c:5879 +#: sql_help.c:5899 msgid "remove a publication" msgstr "elimina una publicación" -#: sql_help.c:5891 +#: sql_help.c:5911 msgid "remove a routine" msgstr "elimina una rutina" -#: sql_help.c:5897 +#: sql_help.c:5917 msgid "remove a rewrite rule" msgstr "elimina una regla de reescritura" -#: sql_help.c:5903 +#: sql_help.c:5923 msgid "remove a schema" msgstr "elimina un esquema" -#: sql_help.c:5909 +#: sql_help.c:5929 msgid "remove a sequence" msgstr "elimina un generador secuencial" -#: sql_help.c:5915 +#: sql_help.c:5935 msgid "remove a foreign server descriptor" msgstr "elimina un descriptor de servidor foráneo" -#: sql_help.c:5921 +#: sql_help.c:5941 msgid "remove extended statistics" msgstr "elimina estadísticas extendidas" -#: sql_help.c:5927 +#: sql_help.c:5947 msgid "remove a subscription" msgstr "elimina una suscripción" -#: sql_help.c:5933 +#: sql_help.c:5953 msgid "remove a table" msgstr "elimina una tabla" -#: sql_help.c:5939 +#: sql_help.c:5959 msgid "remove a tablespace" msgstr "elimina un tablespace" -#: sql_help.c:5945 +#: sql_help.c:5965 msgid "remove a text search configuration" msgstr "elimina una configuración de búsqueda en texto" -#: sql_help.c:5951 +#: sql_help.c:5971 msgid "remove a text search dictionary" msgstr "elimina un diccionario de búsqueda en texto" -#: sql_help.c:5957 +#: sql_help.c:5977 msgid "remove a text search parser" msgstr "elimina un analizador de búsqueda en texto" -#: sql_help.c:5963 +#: sql_help.c:5983 msgid "remove a text search template" msgstr "elimina una plantilla de búsqueda en texto" -#: sql_help.c:5969 +#: sql_help.c:5989 msgid "remove a transform" msgstr "elimina una transformación" -#: sql_help.c:5975 +#: sql_help.c:5995 msgid "remove a trigger" msgstr "elimina un disparador" -#: sql_help.c:5981 +#: sql_help.c:6001 msgid "remove a data type" msgstr "elimina un tipo de datos" -#: sql_help.c:5993 +#: sql_help.c:6013 msgid "remove a user mapping for a foreign server" msgstr "elimina un mapeo de usuario para un servidor remoto" -#: sql_help.c:5999 +#: sql_help.c:6019 msgid "remove a view" msgstr "elimina una vista" -#: sql_help.c:6011 +#: sql_help.c:6031 msgid "execute a prepared statement" msgstr "ejecuta una sentencia preparada" -#: sql_help.c:6017 +#: sql_help.c:6037 msgid "show the execution plan of a statement" msgstr "muestra el plan de ejecución de una sentencia" -#: sql_help.c:6023 +#: sql_help.c:6043 msgid "retrieve rows from a query using a cursor" msgstr "recupera filas de una consulta usando un cursor" -#: sql_help.c:6029 +#: sql_help.c:6049 msgid "define access privileges" msgstr "define privilegios de acceso" -#: sql_help.c:6035 +#: sql_help.c:6055 msgid "import table definitions from a foreign server" msgstr "importa definiciones de tablas desde un servidor foráneo" -#: sql_help.c:6041 +#: sql_help.c:6061 msgid "create new rows in a table" msgstr "crea nuevas filas en una tabla" -#: sql_help.c:6047 +#: sql_help.c:6067 msgid "listen for a notification" msgstr "escucha notificaciones" -#: sql_help.c:6053 +#: sql_help.c:6073 msgid "load a shared library file" msgstr "carga un archivo de biblioteca compartida" -#: sql_help.c:6059 +#: sql_help.c:6079 msgid "lock a table" msgstr "bloquea una tabla" -#: sql_help.c:6065 +#: sql_help.c:6085 msgid "conditionally insert, update, or delete rows of a table" msgstr "condicionalmente inserta, actualiza o elimina filas de una tabla" -#: sql_help.c:6071 +#: sql_help.c:6091 msgid "position a cursor" msgstr "reposiciona un cursor" -#: sql_help.c:6077 +#: sql_help.c:6097 msgid "generate a notification" msgstr "genera una notificación" -#: sql_help.c:6083 +#: sql_help.c:6103 msgid "prepare a statement for execution" msgstr "prepara una sentencia para ejecución" -#: sql_help.c:6089 +#: sql_help.c:6109 msgid "prepare the current transaction for two-phase commit" msgstr "prepara la transacción actual para two-phase commit" -#: sql_help.c:6095 +#: sql_help.c:6115 msgid "change the ownership of database objects owned by a database role" msgstr "cambia de dueño a los objetos de propiedad de un rol de la base de datos" -#: sql_help.c:6101 +#: sql_help.c:6121 msgid "replace the contents of a materialized view" msgstr "reemplaza los contenidos de una vista materializada" -#: sql_help.c:6107 +#: sql_help.c:6127 msgid "rebuild indexes" msgstr "reconstruye índices" -#: sql_help.c:6113 +#: sql_help.c:6133 msgid "destroy a previously defined savepoint" msgstr "destruye un savepoint previamente definido" -#: sql_help.c:6119 +#: sql_help.c:6139 msgid "restore the value of a run-time parameter to the default value" msgstr "restaura el valor de un parámetro de configuración al valor inicial" -#: sql_help.c:6125 +#: sql_help.c:6145 msgid "remove access privileges" msgstr "revoca privilegios de acceso" -#: sql_help.c:6137 +#: sql_help.c:6157 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "cancela una transacción que fue previamente preparada para two-phase commit" -#: sql_help.c:6143 +#: sql_help.c:6163 msgid "roll back to a savepoint" msgstr "descartar hacia un savepoint" -#: sql_help.c:6149 +#: sql_help.c:6169 msgid "define a new savepoint within the current transaction" msgstr "define un nuevo savepoint en la transacción en curso" -#: sql_help.c:6155 +#: sql_help.c:6175 msgid "define or change a security label applied to an object" msgstr "define o cambia una etiqueta de seguridad sobre un objeto" -#: sql_help.c:6161 sql_help.c:6215 sql_help.c:6251 +#: sql_help.c:6181 sql_help.c:6235 sql_help.c:6271 msgid "retrieve rows from a table or view" msgstr "recupera filas desde una tabla o vista" -#: sql_help.c:6173 +#: sql_help.c:6193 msgid "change a run-time parameter" msgstr "cambia un parámetro de configuración" -#: sql_help.c:6179 +#: sql_help.c:6199 msgid "set constraint check timing for the current transaction" msgstr "define el modo de verificación de las restricciones de la transacción en curso" -#: sql_help.c:6185 +#: sql_help.c:6205 msgid "set the current user identifier of the current session" msgstr "define el identificador de usuario actual de la sesión actual" -#: sql_help.c:6191 +#: sql_help.c:6211 msgid "set the session user identifier and the current user identifier of the current session" msgstr "" "define el identificador del usuario de sesión y el identificador\n" "del usuario actual de la sesión en curso" -#: sql_help.c:6197 +#: sql_help.c:6217 msgid "set the characteristics of the current transaction" msgstr "define las características de la transacción en curso" -#: sql_help.c:6203 +#: sql_help.c:6223 msgid "show the value of a run-time parameter" msgstr "muestra el valor de un parámetro de configuración" -#: sql_help.c:6221 +#: sql_help.c:6241 msgid "empty a table or set of tables" msgstr "vacía una tabla o conjunto de tablas" -#: sql_help.c:6227 +#: sql_help.c:6247 msgid "stop listening for a notification" msgstr "deja de escuchar una notificación" -#: sql_help.c:6233 +#: sql_help.c:6253 msgid "update rows of a table" msgstr "actualiza filas de una tabla" -#: sql_help.c:6239 +#: sql_help.c:6259 msgid "garbage-collect and optionally analyze a database" msgstr "recolecta basura y opcionalmente estadísticas sobre una base de datos" -#: sql_help.c:6245 +#: sql_help.c:6265 msgid "compute a set of rows" msgstr "calcula un conjunto de registros" diff --git a/src/bin/psql/po/ja.po b/src/bin/psql/po/ja.po index f66149fd2fe..b747d647ce0 100644 --- a/src/bin/psql/po/ja.po +++ b/src/bin/psql/po/ja.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: psql (PostgreSQL 15)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-05 10:27+0900\n" -"PO-Revision-Date: 2025-11-05 11:19+0900\n" +"POT-Creation-Date: 2025-11-28 14:13+0900\n" +"PO-Revision-Date: 2025-11-28 15:44+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -4048,189 +4048,189 @@ msgstr "%s: メモリ不足です" #: sql_help.c:728 sql_help.c:732 sql_help.c:751 sql_help.c:754 sql_help.c:757 #: sql_help.c:786 sql_help.c:798 sql_help.c:806 sql_help.c:809 sql_help.c:812 #: sql_help.c:827 sql_help.c:830 sql_help.c:859 sql_help.c:864 sql_help.c:869 -#: sql_help.c:874 sql_help.c:879 sql_help.c:906 sql_help.c:908 sql_help.c:910 -#: sql_help.c:912 sql_help.c:915 sql_help.c:917 sql_help.c:964 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1048 sql_help.c:1059 sql_help.c:1061 sql_help.c:1081 -#: sql_help.c:1091 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1108 sql_help.c:1112 sql_help.c:1114 sql_help.c:1126 -#: sql_help.c:1128 sql_help.c:1130 sql_help.c:1132 sql_help.c:1151 -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1169 sql_help.c:1170 sql_help.c:1173 -#: sql_help.c:1176 sql_help.c:1178 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1327 sql_help.c:1329 -#: sql_help.c:1332 sql_help.c:1335 sql_help.c:1455 sql_help.c:1457 -#: sql_help.c:1459 sql_help.c:1462 sql_help.c:1483 sql_help.c:1486 -#: sql_help.c:1489 sql_help.c:1492 sql_help.c:1496 sql_help.c:1498 -#: sql_help.c:1500 sql_help.c:1502 sql_help.c:1516 sql_help.c:1519 -#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1533 sql_help.c:1535 -#: sql_help.c:1545 sql_help.c:1547 sql_help.c:1557 sql_help.c:1560 -#: sql_help.c:1583 sql_help.c:1585 sql_help.c:1587 sql_help.c:1589 -#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 -#: sql_help.c:1651 sql_help.c:1694 sql_help.c:1697 sql_help.c:1699 -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:1706 sql_help.c:1708 -#: sql_help.c:1711 sql_help.c:1761 sql_help.c:1777 sql_help.c:2008 -#: sql_help.c:2077 sql_help.c:2096 sql_help.c:2109 sql_help.c:2166 -#: sql_help.c:2173 sql_help.c:2183 sql_help.c:2209 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4045 -#: sql_help.c:4159 sql_help.c:4188 sql_help.c:4203 sql_help.c:4706 -#: sql_help.c:4754 sql_help.c:4912 +#: sql_help.c:874 sql_help.c:879 sql_help.c:915 sql_help.c:917 sql_help.c:919 +#: sql_help.c:921 sql_help.c:924 sql_help.c:926 sql_help.c:978 sql_help.c:1023 +#: sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 sql_help.c:1043 +#: sql_help.c:1062 sql_help.c:1073 sql_help.c:1075 sql_help.c:1095 +#: sql_help.c:1105 sql_help.c:1106 sql_help.c:1108 sql_help.c:1110 +#: sql_help.c:1122 sql_help.c:1126 sql_help.c:1128 sql_help.c:1140 +#: sql_help.c:1142 sql_help.c:1144 sql_help.c:1146 sql_help.c:1165 +#: sql_help.c:1167 sql_help.c:1171 sql_help.c:1175 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1183 sql_help.c:1184 sql_help.c:1187 +#: sql_help.c:1190 sql_help.c:1192 sql_help.c:1331 sql_help.c:1333 +#: sql_help.c:1336 sql_help.c:1339 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1469 sql_help.c:1471 +#: sql_help.c:1473 sql_help.c:1476 sql_help.c:1497 sql_help.c:1500 +#: sql_help.c:1503 sql_help.c:1506 sql_help.c:1510 sql_help.c:1512 +#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1530 sql_help.c:1533 +#: sql_help.c:1535 sql_help.c:1537 sql_help.c:1547 sql_help.c:1549 +#: sql_help.c:1559 sql_help.c:1561 sql_help.c:1571 sql_help.c:1574 +#: sql_help.c:1597 sql_help.c:1599 sql_help.c:1601 sql_help.c:1603 +#: sql_help.c:1606 sql_help.c:1608 sql_help.c:1611 sql_help.c:1614 +#: sql_help.c:1665 sql_help.c:1708 sql_help.c:1711 sql_help.c:1713 +#: sql_help.c:1715 sql_help.c:1718 sql_help.c:1720 sql_help.c:1722 +#: sql_help.c:1725 sql_help.c:1775 sql_help.c:1791 sql_help.c:2022 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2123 sql_help.c:2180 +#: sql_help.c:2187 sql_help.c:2197 sql_help.c:2223 sql_help.c:2254 +#: sql_help.c:2272 sql_help.c:2300 sql_help.c:2411 sql_help.c:2457 +#: sql_help.c:2482 sql_help.c:2505 sql_help.c:2509 sql_help.c:2543 +#: sql_help.c:2563 sql_help.c:2585 sql_help.c:2599 sql_help.c:2620 +#: sql_help.c:2653 sql_help.c:2690 sql_help.c:2715 sql_help.c:2762 +#: sql_help.c:3060 sql_help.c:3073 sql_help.c:3090 sql_help.c:3106 +#: sql_help.c:3146 sql_help.c:3200 sql_help.c:3204 sql_help.c:3206 +#: sql_help.c:3213 sql_help.c:3232 sql_help.c:3259 sql_help.c:3294 +#: sql_help.c:3306 sql_help.c:3315 sql_help.c:3359 sql_help.c:3373 +#: sql_help.c:3401 sql_help.c:3409 sql_help.c:3421 sql_help.c:3431 +#: sql_help.c:3439 sql_help.c:3447 sql_help.c:3455 sql_help.c:3463 +#: sql_help.c:3472 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 +#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3525 sql_help.c:3534 +#: sql_help.c:3543 sql_help.c:3551 sql_help.c:3561 sql_help.c:3572 +#: sql_help.c:3580 sql_help.c:3589 sql_help.c:3600 sql_help.c:3609 +#: sql_help.c:3617 sql_help.c:3625 sql_help.c:3633 sql_help.c:3641 +#: sql_help.c:3649 sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 +#: sql_help.c:3681 sql_help.c:3689 sql_help.c:3706 sql_help.c:3715 +#: sql_help.c:3723 sql_help.c:3740 sql_help.c:3755 sql_help.c:4065 +#: sql_help.c:4179 sql_help.c:4208 sql_help.c:4223 sql_help.c:4726 +#: sql_help.c:4774 sql_help.c:4932 msgid "name" msgstr "名前" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1858 -#: sql_help.c:3354 sql_help.c:4474 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1872 +#: sql_help.c:3374 sql_help.c:4494 msgid "aggregate_signature" msgstr "集約関数のシグニチャー" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 #: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 #: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:753 sql_help.c:808 -#: sql_help.c:829 sql_help.c:868 sql_help.c:918 sql_help.c:965 sql_help.c:1018 -#: sql_help.c:1050 sql_help.c:1060 sql_help.c:1095 sql_help.c:1115 -#: sql_help.c:1129 sql_help.c:1179 sql_help.c:1326 sql_help.c:1456 -#: sql_help.c:1499 sql_help.c:1520 sql_help.c:1534 sql_help.c:1546 -#: sql_help.c:1559 sql_help.c:1586 sql_help.c:1652 sql_help.c:1705 +#: sql_help.c:829 sql_help.c:868 sql_help.c:927 sql_help.c:979 sql_help.c:1032 +#: sql_help.c:1064 sql_help.c:1074 sql_help.c:1109 sql_help.c:1129 +#: sql_help.c:1143 sql_help.c:1193 sql_help.c:1340 sql_help.c:1470 +#: sql_help.c:1513 sql_help.c:1534 sql_help.c:1548 sql_help.c:1560 +#: sql_help.c:1573 sql_help.c:1600 sql_help.c:1666 sql_help.c:1719 msgid "new_name" msgstr "新しい名前" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 #: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 #: sql_help.c:642 sql_help.c:707 sql_help.c:727 sql_help.c:756 sql_help.c:811 -#: sql_help.c:873 sql_help.c:916 sql_help.c:1023 sql_help.c:1062 -#: sql_help.c:1093 sql_help.c:1113 sql_help.c:1127 sql_help.c:1177 -#: sql_help.c:1390 sql_help.c:1458 sql_help.c:1501 sql_help.c:1522 -#: sql_help.c:1584 sql_help.c:1700 sql_help.c:3026 +#: sql_help.c:873 sql_help.c:925 sql_help.c:1037 sql_help.c:1076 +#: sql_help.c:1107 sql_help.c:1127 sql_help.c:1141 sql_help.c:1191 +#: sql_help.c:1404 sql_help.c:1472 sql_help.c:1515 sql_help.c:1536 +#: sql_help.c:1598 sql_help.c:1714 sql_help.c:3046 msgid "new_owner" msgstr "新しい所有者" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 #: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:731 sql_help.c:759 -#: sql_help.c:814 sql_help.c:878 sql_help.c:1028 sql_help.c:1097 -#: sql_help.c:1131 sql_help.c:1328 sql_help.c:1503 sql_help.c:1524 -#: sql_help.c:1536 sql_help.c:1548 sql_help.c:1588 sql_help.c:1707 +#: sql_help.c:814 sql_help.c:878 sql_help.c:1042 sql_help.c:1111 +#: sql_help.c:1145 sql_help.c:1342 sql_help.c:1517 sql_help.c:1538 +#: sql_help.c:1550 sql_help.c:1562 sql_help.c:1602 sql_help.c:1721 msgid "new_schema" msgstr "新しいスキーマ" -#: sql_help.c:44 sql_help.c:1922 sql_help.c:3355 sql_help.c:4503 +#: sql_help.c:44 sql_help.c:1936 sql_help.c:3375 sql_help.c:4523 msgid "where aggregate_signature is:" msgstr "集約関数のシグニチャーには以下のものがあります:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 #: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 #: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1876 sql_help.c:1893 sql_help.c:1899 sql_help.c:1923 -#: sql_help.c:1926 sql_help.c:1929 sql_help.c:2078 sql_help.c:2097 -#: sql_help.c:2100 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3920 sql_help.c:4373 sql_help.c:4480 -#: sql_help.c:4487 sql_help.c:4493 sql_help.c:4504 sql_help.c:4507 -#: sql_help.c:4510 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1024 +#: sql_help.c:1029 sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 +#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 +#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2092 sql_help.c:2111 +#: sql_help.c:2114 sql_help.c:2412 sql_help.c:2621 sql_help.c:3376 +#: sql_help.c:3379 sql_help.c:3382 sql_help.c:3473 sql_help.c:3562 +#: sql_help.c:3590 sql_help.c:3940 sql_help.c:4393 sql_help.c:4500 +#: sql_help.c:4507 sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 +#: sql_help.c:4530 msgid "argmode" msgstr "引数のモード" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 #: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 #: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1011 -#: sql_help.c:1016 sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 -#: sql_help.c:1877 sql_help.c:1894 sql_help.c:1900 sql_help.c:1924 -#: sql_help.c:1927 sql_help.c:1930 sql_help.c:2079 sql_help.c:2098 -#: sql_help.c:2101 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4481 sql_help.c:4488 sql_help.c:4494 -#: sql_help.c:4505 sql_help.c:4508 sql_help.c:4511 +#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1025 +#: sql_help.c:1030 sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 +#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 +#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2093 sql_help.c:2112 +#: sql_help.c:2115 sql_help.c:2413 sql_help.c:2622 sql_help.c:3377 +#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3474 sql_help.c:3563 +#: sql_help.c:3591 sql_help.c:4501 sql_help.c:4508 sql_help.c:4514 +#: sql_help.c:4525 sql_help.c:4528 sql_help.c:4531 msgid "argname" msgstr "引数の名前" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 #: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 #: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:862 -#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1012 -#: sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 -#: sql_help.c:1878 sql_help.c:1895 sql_help.c:1901 sql_help.c:1925 -#: sql_help.c:1928 sql_help.c:1931 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4482 sql_help.c:4489 -#: sql_help.c:4495 sql_help.c:4506 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1026 +#: sql_help.c:1031 sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 +#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 +#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2414 sql_help.c:2623 +#: sql_help.c:3378 sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 +#: sql_help.c:3564 sql_help.c:3592 sql_help.c:4502 sql_help.c:4509 +#: sql_help.c:4515 sql_help.c:4526 sql_help.c:4529 sql_help.c:4532 msgid "argtype" msgstr "引数の型" -#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:959 -#: sql_help.c:1110 sql_help.c:1517 sql_help.c:1646 sql_help.c:1678 -#: sql_help.c:1730 sql_help.c:1793 sql_help.c:1979 sql_help.c:1986 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3757 -#: sql_help.c:3964 sql_help.c:4202 sql_help.c:4975 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:973 +#: sql_help.c:1124 sql_help.c:1531 sql_help.c:1660 sql_help.c:1692 +#: sql_help.c:1744 sql_help.c:1807 sql_help.c:1993 sql_help.c:2000 +#: sql_help.c:2303 sql_help.c:2353 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2458 sql_help.c:2691 sql_help.c:2784 sql_help.c:3075 +#: sql_help.c:3260 sql_help.c:3282 sql_help.c:3422 sql_help.c:3777 +#: sql_help.c:3984 sql_help.c:4222 sql_help.c:4995 msgid "option" msgstr "オプション" -#: sql_help.c:115 sql_help.c:960 sql_help.c:1647 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:974 sql_help.c:1661 sql_help.c:2459 +#: sql_help.c:2692 sql_help.c:3261 sql_help.c:3423 msgid "where option can be:" msgstr "オプションには以下のものがあります:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2235 msgid "allowconn" msgstr "接続の可否(真偽値)" -#: sql_help.c:117 sql_help.c:961 sql_help.c:1648 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:975 sql_help.c:1662 sql_help.c:2236 +#: sql_help.c:2460 sql_help.c:2693 sql_help.c:3262 msgid "connlimit" msgstr "最大同時接続数" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2237 msgid "istemplate" msgstr "テンプレートかどうか(真偽値)" -#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1331 -#: sql_help.c:1383 sql_help.c:4206 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1345 +#: sql_help.c:1397 sql_help.c:4226 msgid "new_tablespace" msgstr "新しいテーブル空間名" #: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 -#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:968 -#: sql_help.c:972 sql_help.c:975 sql_help.c:1037 sql_help.c:1039 -#: sql_help.c:1040 sql_help.c:1190 sql_help.c:1192 sql_help.c:1655 -#: sql_help.c:1659 sql_help.c:1662 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3932 sql_help.c:4224 sql_help.c:4385 sql_help.c:4694 +#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:982 +#: sql_help.c:986 sql_help.c:989 sql_help.c:1051 sql_help.c:1053 +#: sql_help.c:1054 sql_help.c:1204 sql_help.c:1206 sql_help.c:1669 +#: sql_help.c:1673 sql_help.c:1676 sql_help.c:2424 sql_help.c:2627 +#: sql_help.c:3952 sql_help.c:4244 sql_help.c:4405 sql_help.c:4714 msgid "configuration_parameter" msgstr "設定パラメータ" #: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 #: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:886 -#: sql_help.c:914 sql_help.c:969 sql_help.c:1038 sql_help.c:1111 -#: sql_help.c:1156 sql_help.c:1160 sql_help.c:1164 sql_help.c:1167 -#: sql_help.c:1172 sql_help.c:1175 sql_help.c:1191 sql_help.c:1362 -#: sql_help.c:1385 sql_help.c:1433 sql_help.c:1441 sql_help.c:1461 -#: sql_help.c:1518 sql_help.c:1602 sql_help.c:1656 sql_help.c:1679 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3965 -#: sql_help.c:4695 sql_help.c:4696 sql_help.c:4697 sql_help.c:4698 +#: sql_help.c:923 sql_help.c:983 sql_help.c:1052 sql_help.c:1125 +#: sql_help.c:1170 sql_help.c:1174 sql_help.c:1178 sql_help.c:1181 +#: sql_help.c:1186 sql_help.c:1189 sql_help.c:1205 sql_help.c:1376 +#: sql_help.c:1399 sql_help.c:1447 sql_help.c:1455 sql_help.c:1475 +#: sql_help.c:1532 sql_help.c:1616 sql_help.c:1670 sql_help.c:1693 +#: sql_help.c:2304 sql_help.c:2354 sql_help.c:2361 sql_help.c:2370 +#: sql_help.c:2425 sql_help.c:2426 sql_help.c:2490 sql_help.c:2493 +#: sql_help.c:2527 sql_help.c:2628 sql_help.c:2629 sql_help.c:2656 +#: sql_help.c:2785 sql_help.c:2824 sql_help.c:2934 sql_help.c:2947 +#: sql_help.c:2961 sql_help.c:3002 sql_help.c:3010 sql_help.c:3032 +#: sql_help.c:3049 sql_help.c:3076 sql_help.c:3283 sql_help.c:3985 +#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718 msgid "value" msgstr "値" @@ -4238,10 +4238,10 @@ msgstr "値" msgid "target_role" msgstr "対象のロール" -#: sql_help.c:203 sql_help.c:923 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3895 sql_help.c:3904 -#: sql_help.c:3923 sql_help.c:3935 sql_help.c:4348 sql_help.c:4357 -#: sql_help.c:4376 sql_help.c:4388 +#: sql_help.c:203 sql_help.c:930 sql_help.c:933 sql_help.c:2288 sql_help.c:2659 +#: sql_help.c:2740 sql_help.c:2745 sql_help.c:3915 sql_help.c:3924 +#: sql_help.c:3943 sql_help.c:3955 sql_help.c:4368 sql_help.c:4377 +#: sql_help.c:4396 sql_help.c:4408 msgid "schema_name" msgstr "スキーマ名" @@ -4255,32 +4255,32 @@ msgstr "GRANT/REVOKEの省略形は以下のいずれかです:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:979 -#: sql_help.c:1330 sql_help.c:1666 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3944 sql_help.c:3948 -#: sql_help.c:4397 sql_help.c:4401 sql_help.c:4716 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:993 +#: sql_help.c:1344 sql_help.c:1680 sql_help.c:2463 sql_help.c:2464 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2467 sql_help.c:2601 +#: sql_help.c:2696 sql_help.c:2697 sql_help.c:2698 sql_help.c:2699 +#: sql_help.c:2700 sql_help.c:3265 sql_help.c:3266 sql_help.c:3267 +#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3964 sql_help.c:3968 +#: sql_help.c:4417 sql_help.c:4421 sql_help.c:4736 msgid "role_name" msgstr "ロール名" -#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:922 sql_help.c:1346 -#: sql_help.c:1348 sql_help.c:1400 sql_help.c:1412 sql_help.c:1437 -#: sql_help.c:1696 sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 -#: sql_help.c:2364 sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 -#: sql_help.c:2786 sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 -#: sql_help.c:2936 sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 -#: sql_help.c:3996 sql_help.c:4011 sql_help.c:4013 sql_help.c:4102 -#: sql_help.c:4105 sql_help.c:4107 sql_help.c:4567 sql_help.c:4568 -#: sql_help.c:4577 sql_help.c:4624 sql_help.c:4625 sql_help.c:4626 -#: sql_help.c:4627 sql_help.c:4628 sql_help.c:4629 sql_help.c:4669 -#: sql_help.c:4670 sql_help.c:4675 sql_help.c:4680 sql_help.c:4824 -#: sql_help.c:4825 sql_help.c:4834 sql_help.c:4881 sql_help.c:4882 -#: sql_help.c:4883 sql_help.c:4884 sql_help.c:4885 sql_help.c:4886 -#: sql_help.c:4940 sql_help.c:4942 sql_help.c:5002 sql_help.c:5062 -#: sql_help.c:5063 sql_help.c:5072 sql_help.c:5119 sql_help.c:5120 -#: sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 sql_help.c:5124 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:937 sql_help.c:1360 +#: sql_help.c:1362 sql_help.c:1414 sql_help.c:1426 sql_help.c:1451 +#: sql_help.c:1710 sql_help.c:2257 sql_help.c:2261 sql_help.c:2373 +#: sql_help.c:2378 sql_help.c:2486 sql_help.c:2663 sql_help.c:2801 +#: sql_help.c:2806 sql_help.c:2808 sql_help.c:2929 sql_help.c:2942 +#: sql_help.c:2956 sql_help.c:2965 sql_help.c:2977 sql_help.c:3006 +#: sql_help.c:4016 sql_help.c:4031 sql_help.c:4033 sql_help.c:4122 +#: sql_help.c:4125 sql_help.c:4127 sql_help.c:4587 sql_help.c:4588 +#: sql_help.c:4597 sql_help.c:4644 sql_help.c:4645 sql_help.c:4646 +#: sql_help.c:4647 sql_help.c:4648 sql_help.c:4649 sql_help.c:4689 +#: sql_help.c:4690 sql_help.c:4695 sql_help.c:4700 sql_help.c:4844 +#: sql_help.c:4845 sql_help.c:4854 sql_help.c:4901 sql_help.c:4902 +#: sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5022 sql_help.c:5082 +#: sql_help.c:5083 sql_help.c:5092 sql_help.c:5139 sql_help.c:5140 +#: sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 sql_help.c:5144 msgid "expression" msgstr "評価式" @@ -4289,14 +4289,14 @@ msgid "domain_constraint" msgstr "ドメイン制約" #: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 -#: sql_help.c:488 sql_help.c:1323 sql_help.c:1370 sql_help.c:1371 -#: sql_help.c:1372 sql_help.c:1399 sql_help.c:1411 sql_help.c:1428 -#: sql_help.c:1864 sql_help.c:1866 sql_help.c:2246 sql_help.c:2358 -#: sql_help.c:2363 sql_help.c:2944 sql_help.c:2956 sql_help.c:4008 +#: sql_help.c:488 sql_help.c:1337 sql_help.c:1384 sql_help.c:1385 +#: sql_help.c:1386 sql_help.c:1413 sql_help.c:1425 sql_help.c:1442 +#: sql_help.c:1878 sql_help.c:1880 sql_help.c:2260 sql_help.c:2372 +#: sql_help.c:2377 sql_help.c:2964 sql_help.c:2976 sql_help.c:4028 msgid "constraint_name" msgstr "制約名" -#: sql_help.c:254 sql_help.c:1324 +#: sql_help.c:254 sql_help.c:1338 msgid "new_constraint_name" msgstr "新しい制約名" @@ -4304,7 +4304,7 @@ msgstr "新しい制約名" msgid "where domain_constraint is:" msgstr "ドメイン制約は以下の通りです:" -#: sql_help.c:330 sql_help.c:1109 +#: sql_help.c:330 sql_help.c:1123 msgid "new_version" msgstr "新しいバージョン" @@ -4320,82 +4320,82 @@ msgstr "メンバーオブジェクトは以下の通りです:" #: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 #: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 #: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 -#: sql_help.c:381 sql_help.c:1856 sql_help.c:1861 sql_help.c:1868 -#: sql_help.c:1869 sql_help.c:1870 sql_help.c:1871 sql_help.c:1872 -#: sql_help.c:1873 sql_help.c:1874 sql_help.c:1879 sql_help.c:1881 -#: sql_help.c:1885 sql_help.c:1887 sql_help.c:1891 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 -#: sql_help.c:1907 sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 -#: sql_help.c:1919 sql_help.c:1920 sql_help.c:4470 sql_help.c:4475 -#: sql_help.c:4476 sql_help.c:4477 sql_help.c:4478 sql_help.c:4484 -#: sql_help.c:4485 sql_help.c:4490 sql_help.c:4491 sql_help.c:4496 -#: sql_help.c:4497 sql_help.c:4498 sql_help.c:4499 sql_help.c:4500 -#: sql_help.c:4501 +#: sql_help.c:381 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 +#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 +#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 +#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 +#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 +#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 +#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4490 sql_help.c:4495 +#: sql_help.c:4496 sql_help.c:4497 sql_help.c:4498 sql_help.c:4504 +#: sql_help.c:4505 sql_help.c:4510 sql_help.c:4511 sql_help.c:4516 +#: sql_help.c:4517 sql_help.c:4518 sql_help.c:4519 sql_help.c:4520 +#: sql_help.c:4521 msgid "object_name" msgstr "オブジェクト名" -#: sql_help.c:339 sql_help.c:1857 sql_help.c:4473 +#: sql_help.c:339 sql_help.c:1871 sql_help.c:4493 msgid "aggregate_name" msgstr "集約関数名" -#: sql_help.c:341 sql_help.c:1859 sql_help.c:2143 sql_help.c:2147 -#: sql_help.c:2149 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1873 sql_help.c:2157 sql_help.c:2161 +#: sql_help.c:2163 sql_help.c:3392 msgid "source_type" msgstr "変換前の型" -#: sql_help.c:342 sql_help.c:1860 sql_help.c:2144 sql_help.c:2148 -#: sql_help.c:2150 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1874 sql_help.c:2158 sql_help.c:2162 +#: sql_help.c:2164 sql_help.c:3393 msgid "target_type" msgstr "変換後の型" -#: sql_help.c:349 sql_help.c:796 sql_help.c:1875 sql_help.c:2145 -#: sql_help.c:2186 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4372 sql_help.c:4479 sql_help.c:4596 -#: sql_help.c:4600 sql_help.c:4604 sql_help.c:4607 sql_help.c:4853 -#: sql_help.c:4857 sql_help.c:4861 sql_help.c:4864 sql_help.c:5091 -#: sql_help.c:5095 sql_help.c:5099 sql_help.c:5102 +#: sql_help.c:349 sql_help.c:796 sql_help.c:1889 sql_help.c:2159 +#: sql_help.c:2200 sql_help.c:2276 sql_help.c:2544 sql_help.c:2575 +#: sql_help.c:3152 sql_help.c:4392 sql_help.c:4499 sql_help.c:4616 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4627 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5111 +#: sql_help.c:5115 sql_help.c:5119 sql_help.c:5122 msgid "function_name" msgstr "関数名" -#: sql_help.c:354 sql_help.c:789 sql_help.c:1882 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:789 sql_help.c:1896 sql_help.c:2568 msgid "operator_name" msgstr "演算子名" -#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1883 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1897 +#: sql_help.c:2545 sql_help.c:3516 msgid "left_type" msgstr "左辺の型" -#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1884 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1898 +#: sql_help.c:2546 sql_help.c:3517 msgid "right_type" msgstr "右辺の型" #: sql_help.c:358 sql_help.c:360 sql_help.c:752 sql_help.c:755 sql_help.c:758 #: sql_help.c:787 sql_help.c:799 sql_help.c:807 sql_help.c:810 sql_help.c:813 -#: sql_help.c:1417 sql_help.c:1886 sql_help.c:1888 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:1431 sql_help.c:1900 sql_help.c:1902 sql_help.c:2565 +#: sql_help.c:2586 sql_help.c:2982 sql_help.c:3526 sql_help.c:3535 msgid "index_method" msgstr "インデックスメソッド" -#: sql_help.c:362 sql_help.c:1892 sql_help.c:4486 +#: sql_help.c:362 sql_help.c:1906 sql_help.c:4506 msgid "procedure_name" msgstr "プロシージャ名" -#: sql_help.c:366 sql_help.c:1898 sql_help.c:3919 sql_help.c:4492 +#: sql_help.c:366 sql_help.c:1912 sql_help.c:3939 sql_help.c:4512 msgid "routine_name" msgstr "ルーチン名" -#: sql_help.c:378 sql_help.c:1389 sql_help.c:1915 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3941 sql_help.c:4394 +#: sql_help.c:378 sql_help.c:1403 sql_help.c:1929 sql_help.c:2420 +#: sql_help.c:2626 sql_help.c:2937 sql_help.c:3119 sql_help.c:3697 +#: sql_help.c:3961 sql_help.c:4414 msgid "type_name" msgstr "型名" -#: sql_help.c:379 sql_help.c:1916 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3926 -#: sql_help.c:4379 +#: sql_help.c:379 sql_help.c:1930 sql_help.c:2419 sql_help.c:2625 +#: sql_help.c:3120 sql_help.c:3350 sql_help.c:3698 sql_help.c:3946 +#: sql_help.c:4399 msgid "lang_name" msgstr "言語名" @@ -4403,147 +4403,147 @@ msgstr "言語名" msgid "and aggregate_signature is:" msgstr "集約関数のシグニチャーは以下の通りです:" -#: sql_help.c:405 sql_help.c:2010 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2024 sql_help.c:2301 msgid "handler_function" msgstr "ハンドラー関数" -#: sql_help.c:406 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2302 msgid "validator_function" msgstr "バリデーター関数" -#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1013 -#: sql_help.c:1318 sql_help.c:1593 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1027 +#: sql_help.c:1332 sql_help.c:1607 msgid "action" msgstr "アクション" #: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 #: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 #: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 -#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:921 sql_help.c:1090 -#: sql_help.c:1320 sql_help.c:1338 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1347 sql_help.c:1349 sql_help.c:1350 sql_help.c:1351 -#: sql_help.c:1352 sql_help.c:1354 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1360 sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 -#: sql_help.c:1413 sql_help.c:1415 sql_help.c:1422 sql_help.c:1431 -#: sql_help.c:1436 sql_help.c:1443 sql_help.c:1444 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1702 sql_help.c:1738 sql_help.c:1863 -#: sql_help.c:1976 sql_help.c:1982 sql_help.c:1995 sql_help.c:1996 -#: sql_help.c:1997 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3995 sql_help.c:4010 sql_help.c:4012 -#: sql_help.c:4014 sql_help.c:4101 sql_help.c:4104 sql_help.c:4106 -#: sql_help.c:4108 sql_help.c:4351 sql_help.c:4352 sql_help.c:4472 -#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4641 sql_help.c:4890 -#: sql_help.c:4896 sql_help.c:4898 sql_help.c:4939 sql_help.c:4941 -#: sql_help.c:4943 sql_help.c:4990 sql_help.c:5128 sql_help.c:5134 -#: sql_help.c:5136 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:936 sql_help.c:1104 +#: sql_help.c:1334 sql_help.c:1352 sql_help.c:1356 sql_help.c:1357 +#: sql_help.c:1361 sql_help.c:1363 sql_help.c:1364 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1368 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1374 sql_help.c:1377 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1436 sql_help.c:1445 +#: sql_help.c:1450 sql_help.c:1457 sql_help.c:1458 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1716 sql_help.c:1752 sql_help.c:1877 +#: sql_help.c:1990 sql_help.c:1996 sql_help.c:2009 sql_help.c:2010 +#: sql_help.c:2011 sql_help.c:2351 sql_help.c:2364 sql_help.c:2417 +#: sql_help.c:2485 sql_help.c:2491 sql_help.c:2524 sql_help.c:2662 +#: sql_help.c:2770 sql_help.c:2805 sql_help.c:2807 sql_help.c:2919 +#: sql_help.c:2928 sql_help.c:2938 sql_help.c:2941 sql_help.c:2951 +#: sql_help.c:2955 sql_help.c:2978 sql_help.c:2980 sql_help.c:2987 +#: sql_help.c:3000 sql_help.c:3005 sql_help.c:3012 sql_help.c:3013 +#: sql_help.c:3029 sql_help.c:3155 sql_help.c:3295 sql_help.c:3918 +#: sql_help.c:3919 sql_help.c:4015 sql_help.c:4030 sql_help.c:4032 +#: sql_help.c:4034 sql_help.c:4121 sql_help.c:4124 sql_help.c:4126 +#: sql_help.c:4128 sql_help.c:4371 sql_help.c:4372 sql_help.c:4492 +#: sql_help.c:4653 sql_help.c:4659 sql_help.c:4661 sql_help.c:4910 +#: sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 sql_help.c:4961 +#: sql_help.c:4963 sql_help.c:5010 sql_help.c:5148 sql_help.c:5154 +#: sql_help.c:5156 msgid "column_name" msgstr "列名" -#: sql_help.c:457 sql_help.c:682 sql_help.c:1321 sql_help.c:1703 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1335 sql_help.c:1717 msgid "new_column_name" msgstr "新しい列名" -#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1034 -#: sql_help.c:1337 sql_help.c:1603 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1048 +#: sql_help.c:1351 sql_help.c:1617 msgid "where action is one of:" msgstr "アクションは以下のいずれかです:" -#: sql_help.c:464 sql_help.c:469 sql_help.c:1082 sql_help.c:1339 -#: sql_help.c:1344 sql_help.c:1605 sql_help.c:1609 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4160 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1096 sql_help.c:1353 +#: sql_help.c:1358 sql_help.c:1619 sql_help.c:1623 sql_help.c:2255 +#: sql_help.c:2352 sql_help.c:2564 sql_help.c:2763 sql_help.c:2920 +#: sql_help.c:3202 sql_help.c:4180 msgid "data_type" msgstr "データ型" -#: sql_help.c:465 sql_help.c:470 sql_help.c:1340 sql_help.c:1345 -#: sql_help.c:1438 sql_help.c:1606 sql_help.c:1610 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4005 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1354 sql_help.c:1359 +#: sql_help.c:1452 sql_help.c:1620 sql_help.c:1624 sql_help.c:2256 +#: sql_help.c:2355 sql_help.c:2487 sql_help.c:2922 sql_help.c:2930 +#: sql_help.c:2943 sql_help.c:2957 sql_help.c:3007 sql_help.c:3203 +#: sql_help.c:3209 sql_help.c:4025 msgid "collation" msgstr "照合順序" -#: sql_help.c:466 sql_help.c:1341 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1355 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2923 sql_help.c:2939 sql_help.c:2952 msgid "column_constraint" msgstr "カラム制約" -#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1359 sql_help.c:4987 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1373 sql_help.c:5007 msgid "integer" msgstr "整数" -#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1361 -#: sql_help.c:1364 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1375 +#: sql_help.c:1378 msgid "attribute_option" msgstr "属性オプション" -#: sql_help.c:486 sql_help.c:1368 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1382 sql_help.c:2357 sql_help.c:2366 +#: sql_help.c:2924 sql_help.c:2940 sql_help.c:2953 msgid "table_constraint" msgstr "テーブル制約" -#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1373 -#: sql_help.c:1374 sql_help.c:1375 sql_help.c:1376 sql_help.c:1917 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1387 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 sql_help.c:1931 msgid "trigger_name" msgstr "トリガー名" -#: sql_help.c:493 sql_help.c:494 sql_help.c:1387 sql_help.c:1388 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1401 sql_help.c:1402 +#: sql_help.c:2358 sql_help.c:2363 sql_help.c:2927 sql_help.c:2950 msgid "parent_table" msgstr "親テーブル" -#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1033 -#: sql_help.c:1562 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1047 +#: sql_help.c:1576 sql_help.c:2287 msgid "extension_name" msgstr "拡張名" -#: sql_help.c:555 sql_help.c:1035 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1049 sql_help.c:2421 msgid "execution_cost" msgstr "実行コスト" -#: sql_help.c:556 sql_help.c:1036 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1050 sql_help.c:2422 msgid "result_rows" msgstr "結果の行数" -#: sql_help.c:557 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2423 msgid "support_function" msgstr "サポート関数" -#: sql_help.c:579 sql_help.c:581 sql_help.c:958 sql_help.c:966 sql_help.c:970 -#: sql_help.c:973 sql_help.c:976 sql_help.c:1645 sql_help.c:1653 -#: sql_help.c:1657 sql_help.c:1660 sql_help.c:1663 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3896 -#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3902 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3914 sql_help.c:3915 sql_help.c:3917 -#: sql_help.c:3918 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:3942 sql_help.c:3943 sql_help.c:3945 -#: sql_help.c:3946 sql_help.c:4349 sql_help.c:4350 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4367 -#: sql_help.c:4368 sql_help.c:4370 sql_help.c:4371 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 sql_help.c:4395 -#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 +#: sql_help.c:579 sql_help.c:581 sql_help.c:972 sql_help.c:980 sql_help.c:984 +#: sql_help.c:987 sql_help.c:990 sql_help.c:1659 sql_help.c:1667 +#: sql_help.c:1671 sql_help.c:1674 sql_help.c:1677 sql_help.c:2741 +#: sql_help.c:2743 sql_help.c:2746 sql_help.c:2747 sql_help.c:3916 +#: sql_help.c:3917 sql_help.c:3921 sql_help.c:3922 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3928 sql_help.c:3929 sql_help.c:3931 +#: sql_help.c:3932 sql_help.c:3934 sql_help.c:3935 sql_help.c:3937 +#: sql_help.c:3938 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:3956 sql_help.c:3957 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3962 sql_help.c:3963 sql_help.c:3965 +#: sql_help.c:3966 sql_help.c:4369 sql_help.c:4370 sql_help.c:4374 +#: sql_help.c:4375 sql_help.c:4378 sql_help.c:4379 sql_help.c:4381 +#: sql_help.c:4382 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4397 +#: sql_help.c:4398 sql_help.c:4400 sql_help.c:4401 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 msgid "role_specification" msgstr "ロールの指定" -#: sql_help.c:580 sql_help.c:582 sql_help.c:1676 sql_help.c:2210 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4726 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1690 sql_help.c:2224 +#: sql_help.c:2749 sql_help.c:3280 sql_help.c:3731 sql_help.c:4746 msgid "user_name" msgstr "ユーザー名" -#: sql_help.c:583 sql_help.c:978 sql_help.c:1665 sql_help.c:2728 -#: sql_help.c:3947 sql_help.c:4400 +#: sql_help.c:583 sql_help.c:992 sql_help.c:1679 sql_help.c:2748 +#: sql_help.c:3967 sql_help.c:4420 msgid "where role_specification can be:" msgstr "ロール指定は以下の通りです:" @@ -4551,22 +4551,22 @@ msgstr "ロール指定は以下の通りです:" msgid "group_name" msgstr "グループ名" -#: sql_help.c:606 sql_help.c:1434 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3938 -#: sql_help.c:4391 +#: sql_help.c:606 sql_help.c:1448 sql_help.c:2234 sql_help.c:2494 +#: sql_help.c:2528 sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 +#: sql_help.c:3003 sql_help.c:3033 sql_help.c:3045 sql_help.c:3958 +#: sql_help.c:4411 msgid "tablespace_name" msgstr "テーブル空間名" -#: sql_help.c:608 sql_help.c:701 sql_help.c:1381 sql_help.c:1391 -#: sql_help.c:1429 sql_help.c:1792 sql_help.c:1795 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1395 sql_help.c:1405 +#: sql_help.c:1443 sql_help.c:1806 sql_help.c:1809 msgid "index_name" msgstr "インデックス名" -#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1384 -#: sql_help.c:1386 sql_help.c:1432 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1398 +#: sql_help.c:1400 sql_help.c:1446 sql_help.c:2492 sql_help.c:2526 +#: sql_help.c:2933 sql_help.c:2946 sql_help.c:2960 sql_help.c:3001 +#: sql_help.c:3031 msgid "storage_parameter" msgstr "ストレージパラメータ" @@ -4574,1877 +4574,1886 @@ msgstr "ストレージパラメータ" msgid "column_number" msgstr "列番号" -#: sql_help.c:641 sql_help.c:1880 sql_help.c:4483 +#: sql_help.c:641 sql_help.c:1894 sql_help.c:4503 msgid "large_object_oid" msgstr "ラージオブジェクトのOID" -#: sql_help.c:700 sql_help.c:1367 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1381 sql_help.c:2921 msgid "compression_method" msgstr "圧縮方式" -#: sql_help.c:702 sql_help.c:1382 +#: sql_help.c:702 sql_help.c:1396 msgid "new_access_method" msgstr "新しいアクセスメソッド" -#: sql_help.c:735 sql_help.c:2535 +#: sql_help.c:735 sql_help.c:2549 msgid "res_proc" msgstr "制約選択評価関数" -#: sql_help.c:736 sql_help.c:2536 +#: sql_help.c:736 sql_help.c:2550 msgid "join_proc" msgstr "結合選択評価関数" -#: sql_help.c:788 sql_help.c:800 sql_help.c:2553 +#: sql_help.c:788 sql_help.c:800 sql_help.c:2567 msgid "strategy_number" msgstr "戦略番号" #: sql_help.c:790 sql_help.c:791 sql_help.c:794 sql_help.c:795 sql_help.c:801 -#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2569 sql_help.c:2570 +#: sql_help.c:2573 sql_help.c:2574 msgid "op_type" msgstr "演算子の型" -#: sql_help.c:792 sql_help.c:2557 +#: sql_help.c:792 sql_help.c:2571 msgid "sort_family_name" msgstr "ソートファミリー名" -#: sql_help.c:793 sql_help.c:803 sql_help.c:2558 +#: sql_help.c:793 sql_help.c:803 sql_help.c:2572 msgid "support_number" msgstr "サポート番号" -#: sql_help.c:797 sql_help.c:2146 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:797 sql_help.c:2160 sql_help.c:2576 sql_help.c:3122 +#: sql_help.c:3124 msgid "argument_type" msgstr "引数の型" -#: sql_help.c:828 sql_help.c:831 sql_help.c:920 sql_help.c:1049 sql_help.c:1089 -#: sql_help.c:1558 sql_help.c:1561 sql_help.c:1737 sql_help.c:1791 -#: sql_help.c:1794 sql_help.c:1865 sql_help.c:1890 sql_help.c:1903 -#: sql_help.c:1918 sql_help.c:1975 sql_help.c:1981 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3894 sql_help.c:3900 -#: sql_help.c:3961 sql_help.c:3993 sql_help.c:4347 sql_help.c:4353 -#: sql_help.c:4471 sql_help.c:4582 sql_help.c:4584 sql_help.c:4646 -#: sql_help.c:4685 sql_help.c:4839 sql_help.c:4841 sql_help.c:4903 -#: sql_help.c:4937 sql_help.c:4989 sql_help.c:5077 sql_help.c:5079 -#: sql_help.c:5141 +#: sql_help.c:828 sql_help.c:831 sql_help.c:932 sql_help.c:935 sql_help.c:1063 +#: sql_help.c:1103 sql_help.c:1572 sql_help.c:1575 sql_help.c:1751 +#: sql_help.c:1805 sql_help.c:1808 sql_help.c:1879 sql_help.c:1904 +#: sql_help.c:1917 sql_help.c:1932 sql_help.c:1989 sql_help.c:1995 +#: sql_help.c:2350 sql_help.c:2362 sql_help.c:2483 sql_help.c:2523 +#: sql_help.c:2600 sql_help.c:2661 sql_help.c:2717 sql_help.c:2769 +#: sql_help.c:2802 sql_help.c:2809 sql_help.c:2918 sql_help.c:2936 +#: sql_help.c:2949 sql_help.c:3028 sql_help.c:3148 sql_help.c:3329 +#: sql_help.c:3552 sql_help.c:3601 sql_help.c:3707 sql_help.c:3914 +#: sql_help.c:3920 sql_help.c:3981 sql_help.c:4013 sql_help.c:4367 +#: sql_help.c:4373 sql_help.c:4491 sql_help.c:4602 sql_help.c:4604 +#: sql_help.c:4666 sql_help.c:4705 sql_help.c:4859 sql_help.c:4861 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5009 sql_help.c:5097 +#: sql_help.c:5099 sql_help.c:5161 msgid "table_name" msgstr "テーブル名" -#: sql_help.c:833 sql_help.c:2588 +#: sql_help.c:833 sql_help.c:2602 msgid "using_expression" msgstr "USING式" -#: sql_help.c:834 sql_help.c:2589 +#: sql_help.c:834 sql_help.c:2603 msgid "check_expression" msgstr "CHECK式" -#: sql_help.c:907 sql_help.c:909 sql_help.c:911 sql_help.c:2636 +#: sql_help.c:916 sql_help.c:918 sql_help.c:2654 msgid "publication_object" msgstr "発行オブジェクト" -#: sql_help.c:913 sql_help.c:2637 +#: sql_help.c:920 +msgid "publication_drop_object" +msgstr "削除発行オブジェクト" + +#: sql_help.c:922 sql_help.c:2655 msgid "publication_parameter" msgstr "パブリケーションパラメータ" -#: sql_help.c:919 sql_help.c:2639 +#: sql_help.c:928 sql_help.c:2657 msgid "where publication_object is one of:" msgstr "発行オブジェクトは以下のいずれかです:" -#: sql_help.c:962 sql_help.c:1649 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:929 sql_help.c:1745 sql_help.c:1746 sql_help.c:2658 +#: sql_help.c:4996 sql_help.c:4997 +msgid "table_and_columns" +msgstr "テーブルおよび列" + +#: sql_help.c:931 +msgid "and publication_drop_object is one of:" +msgstr "また、削除発行オブジェクトは以下のいずれかです:" + +#: sql_help.c:934 sql_help.c:1750 sql_help.c:2660 sql_help.c:5008 +msgid "and table_and_columns is:" +msgstr "そしてテーブルと列の指定は以下の通りです:" + +#: sql_help.c:976 sql_help.c:1663 sql_help.c:2461 sql_help.c:2694 +#: sql_help.c:3263 msgid "password" msgstr "パスワード" -#: sql_help.c:963 sql_help.c:1650 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:977 sql_help.c:1664 sql_help.c:2462 sql_help.c:2695 +#: sql_help.c:3264 msgid "timestamp" msgstr "タイムスタンプ" -#: sql_help.c:967 sql_help.c:971 sql_help.c:974 sql_help.c:977 sql_help.c:1654 -#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:3907 -#: sql_help.c:4360 +#: sql_help.c:981 sql_help.c:985 sql_help.c:988 sql_help.c:991 sql_help.c:1668 +#: sql_help.c:1672 sql_help.c:1675 sql_help.c:1678 sql_help.c:3927 +#: sql_help.c:4380 msgid "database_name" msgstr "データベース名" -#: sql_help.c:1083 sql_help.c:2744 +#: sql_help.c:1097 sql_help.c:2764 msgid "increment" msgstr "増分値" -#: sql_help.c:1084 sql_help.c:2745 +#: sql_help.c:1098 sql_help.c:2765 msgid "minvalue" msgstr "最小値" -#: sql_help.c:1085 sql_help.c:2746 +#: sql_help.c:1099 sql_help.c:2766 msgid "maxvalue" msgstr "最大値" -#: sql_help.c:1086 sql_help.c:2747 sql_help.c:4580 sql_help.c:4683 -#: sql_help.c:4837 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1100 sql_help.c:2767 sql_help.c:4600 sql_help.c:4703 +#: sql_help.c:4857 sql_help.c:5026 sql_help.c:5095 msgid "start" msgstr "開始番号" -#: sql_help.c:1087 sql_help.c:1356 +#: sql_help.c:1101 sql_help.c:1370 msgid "restart" msgstr "再開始番号" -#: sql_help.c:1088 sql_help.c:2748 +#: sql_help.c:1102 sql_help.c:2768 msgid "cache" msgstr "キャッシュ割り当て数" -#: sql_help.c:1133 +#: sql_help.c:1147 msgid "new_target" msgstr "新しいターゲット" -#: sql_help.c:1152 sql_help.c:2801 +#: sql_help.c:1166 sql_help.c:2821 msgid "conninfo" msgstr "接続文字列" -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:2802 +#: sql_help.c:1168 sql_help.c:1172 sql_help.c:1176 sql_help.c:2822 msgid "publication_name" msgstr "パブリケーション名" -#: sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1169 sql_help.c:1173 sql_help.c:1177 msgid "publication_option" msgstr "パブリケーション・オプション" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "refresh_option" msgstr "{REFRESH PUBLICATION の追加オプション}" -#: sql_help.c:1171 sql_help.c:2803 +#: sql_help.c:1185 sql_help.c:2823 msgid "subscription_parameter" msgstr "{SUBSCRIPTION パラメータ名}" -#: sql_help.c:1174 +#: sql_help.c:1188 msgid "skip_option" msgstr "スキップオプション" -#: sql_help.c:1333 sql_help.c:1336 +#: sql_help.c:1347 sql_help.c:1350 msgid "partition_name" msgstr "パーティション名" -#: sql_help.c:1334 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1348 sql_help.c:2367 sql_help.c:2954 msgid "partition_bound_spec" msgstr "パーティション境界の仕様" -#: sql_help.c:1353 sql_help.c:1403 sql_help.c:2948 +#: sql_help.c:1367 sql_help.c:1417 sql_help.c:2968 msgid "sequence_options" msgstr "シーケンスオプション" -#: sql_help.c:1355 +#: sql_help.c:1369 msgid "sequence_option" msgstr "シーケンスオプション" -#: sql_help.c:1369 +#: sql_help.c:1383 msgid "table_constraint_using_index" msgstr "インデックスを使うテーブルの制約" -#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1391 sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 msgid "rewrite_rule_name" msgstr "書き換えルール名" -#: sql_help.c:1392 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1406 sql_help.c:2379 sql_help.c:2993 msgid "and partition_bound_spec is:" msgstr "パーティション境界の仕様は以下の通りです:" -#: sql_help.c:1393 sql_help.c:1394 sql_help.c:1395 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1407 sql_help.c:1408 sql_help.c:1409 sql_help.c:2380 +#: sql_help.c:2381 sql_help.c:2382 sql_help.c:2994 sql_help.c:2995 +#: sql_help.c:2996 msgid "partition_bound_expr" msgstr "パーティション境界式" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1410 sql_help.c:1411 sql_help.c:2383 sql_help.c:2384 +#: sql_help.c:2997 sql_help.c:2998 msgid "numeric_literal" msgstr "numericリテラル" -#: sql_help.c:1398 +#: sql_help.c:1412 msgid "and column_constraint is:" msgstr "そしてカラム制約は以下の通りです:" -#: sql_help.c:1401 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1415 sql_help.c:2374 sql_help.c:2415 sql_help.c:2624 +#: sql_help.c:2966 msgid "default_expr" msgstr "デフォルト表現" -#: sql_help.c:1402 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1416 sql_help.c:2375 sql_help.c:2967 msgid "generation_expr" msgstr "生成式" -#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1414 sql_help.c:1416 -#: sql_help.c:1420 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1418 sql_help.c:1419 sql_help.c:1428 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:2969 sql_help.c:2970 sql_help.c:2979 +#: sql_help.c:2981 sql_help.c:2985 msgid "index_parameters" msgstr "インデックスパラメータ" -#: sql_help.c:1406 sql_help.c:1423 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1420 sql_help.c:1437 sql_help.c:2971 sql_help.c:2988 msgid "reftable" msgstr "参照テーブル" -#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1421 sql_help.c:1438 sql_help.c:2972 sql_help.c:2989 msgid "refcolumn" msgstr "参照列" -#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1425 sql_help.c:1426 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1439 sql_help.c:1440 +#: sql_help.c:2973 sql_help.c:2974 sql_help.c:2990 sql_help.c:2991 msgid "referential_action" msgstr "参照動作" -#: sql_help.c:1410 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1424 sql_help.c:2376 sql_help.c:2975 msgid "and table_constraint is:" msgstr "テーブル制約は以下の通りです:" -#: sql_help.c:1418 sql_help.c:2963 +#: sql_help.c:1432 sql_help.c:2983 msgid "exclude_element" msgstr "除外対象要素" -#: sql_help.c:1419 sql_help.c:2964 sql_help.c:4578 sql_help.c:4681 -#: sql_help.c:4835 sql_help.c:5004 sql_help.c:5073 +#: sql_help.c:1433 sql_help.c:2984 sql_help.c:4598 sql_help.c:4701 +#: sql_help.c:4855 sql_help.c:5024 sql_help.c:5093 msgid "operator" msgstr "演算子" -#: sql_help.c:1421 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1435 sql_help.c:2495 sql_help.c:2986 msgid "predicate" msgstr "インデックスの述語" -#: sql_help.c:1427 +#: sql_help.c:1441 msgid "and table_constraint_using_index is:" msgstr "テーブル制約は以下の通りです:" -#: sql_help.c:1430 sql_help.c:2979 +#: sql_help.c:1444 sql_help.c:2999 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "UNIQUE, PRIMARY KEY, EXCLUDE 制約のインデックスパラメータは以下の通りです:" -#: sql_help.c:1435 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:3004 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "EXCLUDE 制約の除外対象要素は以下の通りです:" -#: sql_help.c:1439 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4006 +#: sql_help.c:1453 sql_help.c:2488 sql_help.c:2931 sql_help.c:2944 +#: sql_help.c:2958 sql_help.c:3008 sql_help.c:4026 msgid "opclass" msgstr "演算子クラス" -#: sql_help.c:1440 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1454 sql_help.c:2489 sql_help.c:3009 msgid "opclass_parameter" msgstr "演算子クラスパラメータ" -#: sql_help.c:1442 sql_help.c:2991 +#: sql_help.c:1456 sql_help.c:3011 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "FOREIGN KEY/REFERENCES制約の参照動作は以下の通り:" -#: sql_help.c:1460 sql_help.c:1463 sql_help.c:3028 +#: sql_help.c:1474 sql_help.c:1477 sql_help.c:3048 msgid "tablespace_option" msgstr "テーブル空間のオプション" -#: sql_help.c:1484 sql_help.c:1487 sql_help.c:1493 sql_help.c:1497 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1507 sql_help.c:1511 msgid "token_type" msgstr "トークンの型" -#: sql_help.c:1485 sql_help.c:1488 +#: sql_help.c:1499 sql_help.c:1502 msgid "dictionary_name" msgstr "辞書名" -#: sql_help.c:1490 sql_help.c:1494 +#: sql_help.c:1504 sql_help.c:1508 msgid "old_dictionary" msgstr "元の辞書" -#: sql_help.c:1491 sql_help.c:1495 +#: sql_help.c:1505 sql_help.c:1509 msgid "new_dictionary" msgstr "新しい辞書" -#: sql_help.c:1590 sql_help.c:1604 sql_help.c:1607 sql_help.c:1608 -#: sql_help.c:3181 +#: sql_help.c:1604 sql_help.c:1618 sql_help.c:1621 sql_help.c:1622 +#: sql_help.c:3201 msgid "attribute_name" msgstr "属性名" -#: sql_help.c:1591 +#: sql_help.c:1605 msgid "new_attribute_name" msgstr "新しい属性名" -#: sql_help.c:1595 sql_help.c:1599 +#: sql_help.c:1609 sql_help.c:1613 msgid "new_enum_value" msgstr "新しい列挙値" -#: sql_help.c:1596 +#: sql_help.c:1610 msgid "neighbor_enum_value" msgstr "隣接した列挙値" -#: sql_help.c:1598 +#: sql_help.c:1612 msgid "existing_enum_value" msgstr "既存の列挙値" -#: sql_help.c:1601 +#: sql_help.c:1615 msgid "property" msgstr "プロパティ" -#: sql_help.c:1677 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3916 sql_help.c:3962 -#: sql_help.c:4369 +#: sql_help.c:1691 sql_help.c:2359 sql_help.c:2368 sql_help.c:2780 +#: sql_help.c:3281 sql_help.c:3732 sql_help.c:3936 sql_help.c:3982 +#: sql_help.c:4389 msgid "server_name" msgstr "サーバー名" -#: sql_help.c:1709 sql_help.c:1712 sql_help.c:3276 +#: sql_help.c:1723 sql_help.c:1726 sql_help.c:3296 msgid "view_option_name" msgstr "ビューのオプション名" -#: sql_help.c:1710 sql_help.c:3277 +#: sql_help.c:1724 sql_help.c:3297 msgid "view_option_value" msgstr "ビューオプションの値" -#: sql_help.c:1731 sql_help.c:1732 sql_help.c:4976 sql_help.c:4977 -msgid "table_and_columns" -msgstr "テーブルおよび列" - -#: sql_help.c:1733 sql_help.c:1796 sql_help.c:1987 sql_help.c:3760 -#: sql_help.c:4204 sql_help.c:4978 +#: sql_help.c:1747 sql_help.c:1810 sql_help.c:2001 sql_help.c:3780 +#: sql_help.c:4224 sql_help.c:4998 msgid "where option can be one of:" msgstr "オプションには以下のうちのいずれかを指定します:" -#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1797 sql_help.c:1989 -#: sql_help.c:1992 sql_help.c:2171 sql_help.c:3761 sql_help.c:3762 -#: sql_help.c:3763 sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 -#: sql_help.c:3767 sql_help.c:3768 sql_help.c:4205 sql_help.c:4207 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1748 sql_help.c:1749 sql_help.c:1811 sql_help.c:2003 +#: sql_help.c:2006 sql_help.c:2185 sql_help.c:3781 sql_help.c:3782 +#: sql_help.c:3783 sql_help.c:3784 sql_help.c:3785 sql_help.c:3786 +#: sql_help.c:3787 sql_help.c:3788 sql_help.c:4225 sql_help.c:4227 +#: sql_help.c:4999 sql_help.c:5000 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 msgid "boolean" msgstr "真偽値" -#: sql_help.c:1736 sql_help.c:4988 -msgid "and table_and_columns is:" -msgstr "そしてテーブルと列の指定は以下の通りです:" - -#: sql_help.c:1752 sql_help.c:4742 sql_help.c:4744 sql_help.c:4768 +#: sql_help.c:1766 sql_help.c:4762 sql_help.c:4764 sql_help.c:4788 msgid "transaction_mode" msgstr "トランザクションのモード" -#: sql_help.c:1753 sql_help.c:4745 sql_help.c:4769 +#: sql_help.c:1767 sql_help.c:4765 sql_help.c:4789 msgid "where transaction_mode is one of:" msgstr "トランザクションのモードは以下の通りです:" -#: sql_help.c:1762 sql_help.c:4588 sql_help.c:4597 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4608 sql_help.c:4845 sql_help.c:4854 -#: sql_help.c:4858 sql_help.c:4862 sql_help.c:4865 sql_help.c:5083 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:1776 sql_help.c:4608 sql_help.c:4617 sql_help.c:4621 +#: sql_help.c:4625 sql_help.c:4628 sql_help.c:4865 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4882 sql_help.c:4885 sql_help.c:5103 +#: sql_help.c:5112 sql_help.c:5116 sql_help.c:5120 sql_help.c:5123 msgid "argument" msgstr "引数" -#: sql_help.c:1862 +#: sql_help.c:1876 msgid "relation_name" msgstr "リレーション名" -#: sql_help.c:1867 sql_help.c:3910 sql_help.c:4363 +#: sql_help.c:1881 sql_help.c:3930 sql_help.c:4383 msgid "domain_name" msgstr "ドメイン名" -#: sql_help.c:1889 +#: sql_help.c:1903 msgid "policy_name" msgstr "ポリシー名" -#: sql_help.c:1902 +#: sql_help.c:1916 msgid "rule_name" msgstr "ルール名" -#: sql_help.c:1921 sql_help.c:4502 +#: sql_help.c:1935 sql_help.c:4522 msgid "string_literal" msgstr "文字列リテラル" -#: sql_help.c:1946 sql_help.c:4169 sql_help.c:4416 +#: sql_help.c:1960 sql_help.c:4189 sql_help.c:4436 msgid "transaction_id" msgstr "トランザクションID" -#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4032 +#: sql_help.c:1991 sql_help.c:1998 sql_help.c:4052 msgid "filename" msgstr "ファイル名" -#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1992 sql_help.c:1999 sql_help.c:2719 sql_help.c:2720 +#: sql_help.c:2721 msgid "command" msgstr "コマンド" -#: sql_help.c:1980 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4016 sql_help.c:4095 sql_help.c:4098 sql_help.c:4571 -#: sql_help.c:4573 sql_help.c:4674 sql_help.c:4676 sql_help.c:4828 -#: sql_help.c:4830 sql_help.c:4946 sql_help.c:5066 sql_help.c:5068 +#: sql_help.c:1994 sql_help.c:2718 sql_help.c:3151 sql_help.c:3332 +#: sql_help.c:4036 sql_help.c:4115 sql_help.c:4118 sql_help.c:4591 +#: sql_help.c:4593 sql_help.c:4694 sql_help.c:4696 sql_help.c:4848 +#: sql_help.c:4850 sql_help.c:4966 sql_help.c:5086 sql_help.c:5088 msgid "condition" msgstr "条件" -#: sql_help.c:1983 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3997 +#: sql_help.c:1997 sql_help.c:2529 sql_help.c:3034 sql_help.c:3298 +#: sql_help.c:3316 sql_help.c:4017 msgid "query" msgstr "問い合わせ" -#: sql_help.c:1988 +#: sql_help.c:2002 msgid "format_name" msgstr "フォーマット名" -#: sql_help.c:1990 +#: sql_help.c:2004 msgid "delimiter_character" msgstr "区切り文字" -#: sql_help.c:1991 +#: sql_help.c:2005 msgid "null_string" msgstr "NULL文字列" -#: sql_help.c:1993 +#: sql_help.c:2007 msgid "quote_character" msgstr "引用符文字" -#: sql_help.c:1994 +#: sql_help.c:2008 msgid "escape_character" msgstr "エスケープ文字" -#: sql_help.c:1998 +#: sql_help.c:2012 msgid "encoding_name" msgstr "エンコーディング名" -#: sql_help.c:2009 +#: sql_help.c:2023 msgid "access_method_type" msgstr "アクセスメソッドの型" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2102 +#: sql_help.c:2094 sql_help.c:2113 sql_help.c:2116 msgid "arg_data_type" msgstr "入力データ型" -#: sql_help.c:2081 sql_help.c:2103 sql_help.c:2111 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "sfunc" msgstr "状態遷移関数" -#: sql_help.c:2082 sql_help.c:2104 sql_help.c:2112 +#: sql_help.c:2096 sql_help.c:2118 sql_help.c:2126 msgid "state_data_type" msgstr "状態データの型" -#: sql_help.c:2083 sql_help.c:2105 sql_help.c:2113 +#: sql_help.c:2097 sql_help.c:2119 sql_help.c:2127 msgid "state_data_size" msgstr "状態データのサイズ" -#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 +#: sql_help.c:2098 sql_help.c:2120 sql_help.c:2128 msgid "ffunc" msgstr "終了関数" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2099 sql_help.c:2129 msgid "combinefunc" msgstr "結合関数" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2100 sql_help.c:2130 msgid "serialfunc" msgstr "シリアライズ関数" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2101 sql_help.c:2131 msgid "deserialfunc" msgstr "デシリアライズ関数" -#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2118 +#: sql_help.c:2102 sql_help.c:2121 sql_help.c:2132 msgid "initial_condition" msgstr "初期条件" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2103 sql_help.c:2133 msgid "msfunc" msgstr "前方状態遷移関数" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2104 sql_help.c:2134 msgid "minvfunc" msgstr "逆状態遷移関数" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2105 sql_help.c:2135 msgid "mstate_data_type" msgstr "移動集約モード時の状態値のデータ型" -#: sql_help.c:2092 sql_help.c:2122 +#: sql_help.c:2106 sql_help.c:2136 msgid "mstate_data_size" msgstr "移動集約モード時の状態値のデータサイズ" -#: sql_help.c:2093 sql_help.c:2123 +#: sql_help.c:2107 sql_help.c:2137 msgid "mffunc" msgstr "移動集約モード時の終了関数" -#: sql_help.c:2094 sql_help.c:2124 +#: sql_help.c:2108 sql_help.c:2138 msgid "minitial_condition" msgstr "移動集約モード時の初期条件" -#: sql_help.c:2095 sql_help.c:2125 +#: sql_help.c:2109 sql_help.c:2139 msgid "sort_operator" msgstr "ソート演算子" -#: sql_help.c:2108 +#: sql_help.c:2122 msgid "or the old syntax" msgstr "または古い構文" -#: sql_help.c:2110 +#: sql_help.c:2124 msgid "base_type" msgstr "基本の型" -#: sql_help.c:2167 sql_help.c:2214 +#: sql_help.c:2181 sql_help.c:2228 msgid "locale" msgstr "ロケール" -#: sql_help.c:2168 sql_help.c:2215 +#: sql_help.c:2182 sql_help.c:2229 msgid "lc_collate" msgstr "照合順序" -#: sql_help.c:2169 sql_help.c:2216 +#: sql_help.c:2183 sql_help.c:2230 msgid "lc_ctype" msgstr "Ctype(変換演算子)" -#: sql_help.c:2170 sql_help.c:4469 +#: sql_help.c:2184 sql_help.c:4489 msgid "provider" msgstr "プロバイダ" -#: sql_help.c:2172 sql_help.c:2275 +#: sql_help.c:2186 sql_help.c:2289 msgid "version" msgstr "バージョン" -#: sql_help.c:2174 +#: sql_help.c:2188 msgid "existing_collation" msgstr "既存の照合順序" -#: sql_help.c:2184 +#: sql_help.c:2198 msgid "source_encoding" msgstr "変換元のエンコーディング" -#: sql_help.c:2185 +#: sql_help.c:2199 msgid "dest_encoding" msgstr "変換先のエンコーディング" -#: sql_help.c:2211 sql_help.c:3054 +#: sql_help.c:2225 sql_help.c:3074 msgid "template" msgstr "テンプレート" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "encoding" msgstr "エンコード" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "strategy" msgstr "ストラテジ" -#: sql_help.c:2217 +#: sql_help.c:2231 msgid "icu_locale" msgstr "ICUロケール" -#: sql_help.c:2218 +#: sql_help.c:2232 msgid "locale_provider" msgstr "ロケールプロバイダ" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "collation_version" msgstr "照合順序バージョン" -#: sql_help.c:2224 +#: sql_help.c:2238 msgid "oid" msgstr "オブジェクトID" -#: sql_help.c:2244 +#: sql_help.c:2258 msgid "constraint" msgstr "制約条件" -#: sql_help.c:2245 +#: sql_help.c:2259 msgid "where constraint is:" msgstr "制約条件は以下の通りです:" -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2273 sql_help.c:2716 sql_help.c:3147 msgid "event" msgstr "イベント" -#: sql_help.c:2260 +#: sql_help.c:2274 msgid "filter_variable" msgstr "フィルター変数" -#: sql_help.c:2261 +#: sql_help.c:2275 msgid "filter_value" msgstr "フィルター値" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2371 sql_help.c:2963 msgid "where column_constraint is:" msgstr "カラム制約は以下の通りです:" -#: sql_help.c:2402 +#: sql_help.c:2416 msgid "rettype" msgstr "戻り値の型" -#: sql_help.c:2404 +#: sql_help.c:2418 msgid "column_type" msgstr "列の型" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2427 sql_help.c:2630 msgid "definition" msgstr "定義" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2428 sql_help.c:2631 msgid "obj_file" msgstr "オブジェクトファイル名" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2429 sql_help.c:2632 msgid "link_symbol" msgstr "リンクシンボル" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2430 sql_help.c:2633 msgid "sql_body" msgstr "SQL本体" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2468 sql_help.c:2701 sql_help.c:3270 msgid "uid" msgstr "UID" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2484 sql_help.c:2525 sql_help.c:2932 sql_help.c:2945 +#: sql_help.c:2959 sql_help.c:3030 msgid "method" msgstr "インデックスメソッド" -#: sql_help.c:2492 +#: sql_help.c:2506 msgid "call_handler" msgstr "呼び出しハンドラー" -#: sql_help.c:2493 +#: sql_help.c:2507 msgid "inline_handler" msgstr "インラインハンドラー" -#: sql_help.c:2494 +#: sql_help.c:2508 msgid "valfunction" msgstr "バリデーション関数" -#: sql_help.c:2533 +#: sql_help.c:2547 msgid "com_op" msgstr "交代演算子" -#: sql_help.c:2534 +#: sql_help.c:2548 msgid "neg_op" msgstr "否定演算子" -#: sql_help.c:2552 +#: sql_help.c:2566 msgid "family_name" msgstr "演算子族の名前" -#: sql_help.c:2563 +#: sql_help.c:2577 msgid "storage_type" msgstr "ストレージタイプ" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2722 sql_help.c:3154 msgid "where event can be one of:" msgstr "イベントは以下のいずれかです:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2742 sql_help.c:2744 msgid "schema_element" msgstr "スキーマ要素" -#: sql_help.c:2761 +#: sql_help.c:2781 msgid "server_type" msgstr "サーバーのタイプ" -#: sql_help.c:2762 +#: sql_help.c:2782 msgid "server_version" msgstr "サーバーのバージョン" -#: sql_help.c:2763 sql_help.c:3913 sql_help.c:4366 +#: sql_help.c:2783 sql_help.c:3933 sql_help.c:4386 msgid "fdw_name" msgstr "外部データラッパ名" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2800 sql_help.c:2803 msgid "statistics_name" msgstr "統計オブジェクト名" -#: sql_help.c:2784 +#: sql_help.c:2804 msgid "statistics_kind" msgstr "統計種別" -#: sql_help.c:2800 +#: sql_help.c:2820 msgid "subscription_name" msgstr "サブスクリプション名" -#: sql_help.c:2905 +#: sql_help.c:2925 msgid "source_table" msgstr "コピー元のテーブル" -#: sql_help.c:2906 +#: sql_help.c:2926 msgid "like_option" msgstr "LIKEオプション" -#: sql_help.c:2972 +#: sql_help.c:2992 msgid "and like_option is:" msgstr "LIKE オプションは以下の通りです:" -#: sql_help.c:3027 +#: sql_help.c:3047 msgid "directory" msgstr "ディレクトリ" -#: sql_help.c:3041 +#: sql_help.c:3061 msgid "parser_name" msgstr "パーサ名" -#: sql_help.c:3042 +#: sql_help.c:3062 msgid "source_config" msgstr "複製元の設定" -#: sql_help.c:3071 +#: sql_help.c:3091 msgid "start_function" msgstr "開始関数" -#: sql_help.c:3072 +#: sql_help.c:3092 msgid "gettoken_function" msgstr "トークン取得関数" -#: sql_help.c:3073 +#: sql_help.c:3093 msgid "end_function" msgstr "終了関数" -#: sql_help.c:3074 +#: sql_help.c:3094 msgid "lextypes_function" msgstr "LEXTYPE関数" -#: sql_help.c:3075 +#: sql_help.c:3095 msgid "headline_function" msgstr "見出し関数" -#: sql_help.c:3087 +#: sql_help.c:3107 msgid "init_function" msgstr "初期処理関数" -#: sql_help.c:3088 +#: sql_help.c:3108 msgid "lexize_function" msgstr "LEXIZE関数" -#: sql_help.c:3101 +#: sql_help.c:3121 msgid "from_sql_function_name" msgstr "{FROM SQL 関数名}" -#: sql_help.c:3103 +#: sql_help.c:3123 msgid "to_sql_function_name" msgstr "{TO SQL 関数名}" -#: sql_help.c:3129 +#: sql_help.c:3149 msgid "referenced_table_name" msgstr "被参照テーブル名" -#: sql_help.c:3130 +#: sql_help.c:3150 msgid "transition_relation_name" msgstr "移行用リレーション名" -#: sql_help.c:3133 +#: sql_help.c:3153 msgid "arguments" msgstr "引数" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "label" msgstr "ラベル" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "subtype" msgstr "当該範囲のデータ型" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "subtype_operator_class" msgstr "当該範囲のデータ型の演算子クラス" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "canonical_function" msgstr "正規化関数" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "subtype_diff_function" msgstr "当該範囲のデータ型の差分抽出関数" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "multirange_type_name" msgstr "複範囲型名" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "input_function" msgstr "入力関数" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "output_function" msgstr "出力関数" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "receive_function" msgstr "受信関数" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "send_function" msgstr "送信関数" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "type_modifier_input_function" msgstr "型修飾子の入力関数" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "type_modifier_output_function" msgstr "型修飾子の出力関数" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "analyze_function" msgstr "分析関数" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "subscript_function" msgstr "添字関数" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "internallength" msgstr "内部長" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "alignment" msgstr "バイト境界" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "storage" msgstr "ストレージ" -#: sql_help.c:3205 +#: sql_help.c:3225 msgid "like_type" msgstr "LIKEの型" -#: sql_help.c:3206 +#: sql_help.c:3226 msgid "category" msgstr "カテゴリー" -#: sql_help.c:3207 +#: sql_help.c:3227 msgid "preferred" msgstr "優先データ型かどうか(真偽値)" -#: sql_help.c:3208 +#: sql_help.c:3228 msgid "default" msgstr "デフォルト" -#: sql_help.c:3209 +#: sql_help.c:3229 msgid "element" msgstr "要素のデータ型" -#: sql_help.c:3210 +#: sql_help.c:3230 msgid "delimiter" msgstr "区切り記号" -#: sql_help.c:3211 +#: sql_help.c:3231 msgid "collatable" msgstr "照合可能" -#: sql_help.c:3308 sql_help.c:3992 sql_help.c:4084 sql_help.c:4566 -#: sql_help.c:4668 sql_help.c:4823 sql_help.c:4936 sql_help.c:5061 +#: sql_help.c:3328 sql_help.c:4012 sql_help.c:4104 sql_help.c:4586 +#: sql_help.c:4688 sql_help.c:4843 sql_help.c:4956 sql_help.c:5081 msgid "with_query" msgstr "WITH問い合わせ" -#: sql_help.c:3310 sql_help.c:3994 sql_help.c:4585 sql_help.c:4591 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4602 sql_help.c:4610 -#: sql_help.c:4842 sql_help.c:4848 sql_help.c:4851 sql_help.c:4855 -#: sql_help.c:4859 sql_help.c:4867 sql_help.c:4938 sql_help.c:5080 -#: sql_help.c:5086 sql_help.c:5089 sql_help.c:5093 sql_help.c:5097 -#: sql_help.c:5105 +#: sql_help.c:3330 sql_help.c:4014 sql_help.c:4605 sql_help.c:4611 +#: sql_help.c:4614 sql_help.c:4618 sql_help.c:4622 sql_help.c:4630 +#: sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 sql_help.c:4875 +#: sql_help.c:4879 sql_help.c:4887 sql_help.c:4958 sql_help.c:5100 +#: sql_help.c:5106 sql_help.c:5109 sql_help.c:5113 sql_help.c:5117 +#: sql_help.c:5125 msgid "alias" msgstr "別名" -#: sql_help.c:3311 sql_help.c:4570 sql_help.c:4612 sql_help.c:4614 -#: sql_help.c:4618 sql_help.c:4620 sql_help.c:4621 sql_help.c:4622 -#: sql_help.c:4673 sql_help.c:4827 sql_help.c:4869 sql_help.c:4871 -#: sql_help.c:4875 sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 -#: sql_help.c:4945 sql_help.c:5065 sql_help.c:5107 sql_help.c:5109 -#: sql_help.c:5113 sql_help.c:5115 sql_help.c:5116 sql_help.c:5117 +#: sql_help.c:3331 sql_help.c:4590 sql_help.c:4632 sql_help.c:4634 +#: sql_help.c:4638 sql_help.c:4640 sql_help.c:4641 sql_help.c:4642 +#: sql_help.c:4693 sql_help.c:4847 sql_help.c:4889 sql_help.c:4891 +#: sql_help.c:4895 sql_help.c:4897 sql_help.c:4898 sql_help.c:4899 +#: sql_help.c:4965 sql_help.c:5085 sql_help.c:5127 sql_help.c:5129 +#: sql_help.c:5133 sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "from_item" msgstr "FROM項目" -#: sql_help.c:3313 sql_help.c:3794 sql_help.c:4136 sql_help.c:4947 +#: sql_help.c:3333 sql_help.c:3814 sql_help.c:4156 sql_help.c:4967 msgid "cursor_name" msgstr "カーソル名" -#: sql_help.c:3314 sql_help.c:4000 sql_help.c:4948 +#: sql_help.c:3334 sql_help.c:4020 sql_help.c:4968 msgid "output_expression" msgstr "出力表現" -#: sql_help.c:3315 sql_help.c:4001 sql_help.c:4569 sql_help.c:4671 -#: sql_help.c:4826 sql_help.c:4949 sql_help.c:5064 +#: sql_help.c:3335 sql_help.c:4021 sql_help.c:4589 sql_help.c:4691 +#: sql_help.c:4846 sql_help.c:4969 sql_help.c:5084 msgid "output_name" msgstr "出力名" -#: sql_help.c:3331 +#: sql_help.c:3351 msgid "code" msgstr "コードブロック" -#: sql_help.c:3736 +#: sql_help.c:3756 msgid "parameter" msgstr "パラメータ" -#: sql_help.c:3758 sql_help.c:3759 sql_help.c:4161 +#: sql_help.c:3778 sql_help.c:3779 sql_help.c:4181 msgid "statement" msgstr "文" -#: sql_help.c:3793 sql_help.c:4135 +#: sql_help.c:3813 sql_help.c:4155 msgid "direction" msgstr "方向" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3815 sql_help.c:4157 msgid "where direction can be one of:" msgstr "方向 は以下のうちのいずれか:" -#: sql_help.c:3796 sql_help.c:3797 sql_help.c:3798 sql_help.c:3799 -#: sql_help.c:3800 sql_help.c:4138 sql_help.c:4139 sql_help.c:4140 -#: sql_help.c:4141 sql_help.c:4142 sql_help.c:4579 sql_help.c:4581 -#: sql_help.c:4682 sql_help.c:4684 sql_help.c:4836 sql_help.c:4838 -#: sql_help.c:5005 sql_help.c:5007 sql_help.c:5074 sql_help.c:5076 +#: sql_help.c:3816 sql_help.c:3817 sql_help.c:3818 sql_help.c:3819 +#: sql_help.c:3820 sql_help.c:4158 sql_help.c:4159 sql_help.c:4160 +#: sql_help.c:4161 sql_help.c:4162 sql_help.c:4599 sql_help.c:4601 +#: sql_help.c:4702 sql_help.c:4704 sql_help.c:4856 sql_help.c:4858 +#: sql_help.c:5025 sql_help.c:5027 sql_help.c:5094 sql_help.c:5096 msgid "count" msgstr "取り出す位置や行数" -#: sql_help.c:3903 sql_help.c:4356 +#: sql_help.c:3923 sql_help.c:4376 msgid "sequence_name" msgstr "シーケンス名" -#: sql_help.c:3921 sql_help.c:4374 +#: sql_help.c:3941 sql_help.c:4394 msgid "arg_name" msgstr "引数名" -#: sql_help.c:3922 sql_help.c:4375 +#: sql_help.c:3942 sql_help.c:4395 msgid "arg_type" msgstr "引数の型" -#: sql_help.c:3929 sql_help.c:4382 +#: sql_help.c:3949 sql_help.c:4402 msgid "loid" msgstr "ラージオブジェクトid" -#: sql_help.c:3960 +#: sql_help.c:3980 msgid "remote_schema" msgstr "リモートスキーマ" -#: sql_help.c:3963 +#: sql_help.c:3983 msgid "local_schema" msgstr "ローカルスキーマ" -#: sql_help.c:3998 +#: sql_help.c:4018 msgid "conflict_target" msgstr "競合ターゲット" -#: sql_help.c:3999 +#: sql_help.c:4019 msgid "conflict_action" msgstr "競合時アクション" -#: sql_help.c:4002 +#: sql_help.c:4022 msgid "where conflict_target can be one of:" msgstr "競合ターゲットは以下のいずれかです:" -#: sql_help.c:4003 +#: sql_help.c:4023 msgid "index_column_name" msgstr "インデックスのカラム名" -#: sql_help.c:4004 +#: sql_help.c:4024 msgid "index_expression" msgstr "インデックス表現" -#: sql_help.c:4007 +#: sql_help.c:4027 msgid "index_predicate" msgstr "インデックスの述語" -#: sql_help.c:4009 +#: sql_help.c:4029 msgid "and conflict_action is one of:" msgstr "競合時アクションは以下のいずれかです:" -#: sql_help.c:4015 sql_help.c:4109 sql_help.c:4944 +#: sql_help.c:4035 sql_help.c:4129 sql_help.c:4964 msgid "sub-SELECT" msgstr "副問い合わせ句" -#: sql_help.c:4024 sql_help.c:4150 sql_help.c:4920 +#: sql_help.c:4044 sql_help.c:4170 sql_help.c:4940 msgid "channel" msgstr "チャネル" -#: sql_help.c:4046 +#: sql_help.c:4066 msgid "lockmode" msgstr "ロックモード" -#: sql_help.c:4047 +#: sql_help.c:4067 msgid "where lockmode is one of:" msgstr "ロックモードは以下のいずれかです:" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "target_table_name" msgstr "ターゲットテーブル名" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "target_alias" msgstr "ターゲット別名" -#: sql_help.c:4087 +#: sql_help.c:4107 msgid "data_source" msgstr "データ源" -#: sql_help.c:4088 sql_help.c:4615 sql_help.c:4872 sql_help.c:5110 +#: sql_help.c:4108 sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 msgid "join_condition" msgstr "JOIN条件" -#: sql_help.c:4089 +#: sql_help.c:4109 msgid "when_clause" msgstr "WHEN句" -#: sql_help.c:4090 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "ここで\"データ源\"は以下の通り:" -#: sql_help.c:4091 +#: sql_help.c:4111 msgid "source_table_name" msgstr "データ源テーブル名" -#: sql_help.c:4092 +#: sql_help.c:4112 msgid "source_query" msgstr "データ源問い合わせ" -#: sql_help.c:4093 +#: sql_help.c:4113 msgid "source_alias" msgstr "データ源別名" -#: sql_help.c:4094 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "WHEN句は以下の通り:" -#: sql_help.c:4096 +#: sql_help.c:4116 msgid "merge_update" msgstr "マージ更新" -#: sql_help.c:4097 +#: sql_help.c:4117 msgid "merge_delete" msgstr "マージ削除" -#: sql_help.c:4099 +#: sql_help.c:4119 msgid "merge_insert" msgstr "マージ挿入" -#: sql_help.c:4100 +#: sql_help.c:4120 msgid "and merge_insert is:" msgstr "そして\"マージ挿入\"は以下の通り:" -#: sql_help.c:4103 +#: sql_help.c:4123 msgid "and merge_update is:" msgstr "そして\"マージ更新\"は以下の通り:" -#: sql_help.c:4110 +#: sql_help.c:4130 msgid "and merge_delete is:" msgstr "そして\"マージ削除\"は以下の通り:" -#: sql_help.c:4151 +#: sql_help.c:4171 msgid "payload" msgstr "ペイロード" -#: sql_help.c:4178 +#: sql_help.c:4198 msgid "old_role" msgstr "元のロール" -#: sql_help.c:4179 +#: sql_help.c:4199 msgid "new_role" msgstr "新しいロール" -#: sql_help.c:4215 sql_help.c:4424 sql_help.c:4432 +#: sql_help.c:4235 sql_help.c:4444 sql_help.c:4452 msgid "savepoint_name" msgstr "セーブポイント名" -#: sql_help.c:4572 sql_help.c:4630 sql_help.c:4829 sql_help.c:4887 -#: sql_help.c:5067 sql_help.c:5125 +#: sql_help.c:4592 sql_help.c:4650 sql_help.c:4849 sql_help.c:4907 +#: sql_help.c:5087 sql_help.c:5145 msgid "grouping_element" msgstr "グルーピング要素" -#: sql_help.c:4574 sql_help.c:4677 sql_help.c:4831 sql_help.c:5069 +#: sql_help.c:4594 sql_help.c:4697 sql_help.c:4851 sql_help.c:5089 msgid "window_name" msgstr "ウィンドウ名" -#: sql_help.c:4575 sql_help.c:4678 sql_help.c:4832 sql_help.c:5070 +#: sql_help.c:4595 sql_help.c:4698 sql_help.c:4852 sql_help.c:5090 msgid "window_definition" msgstr "ウィンドウ定義" -#: sql_help.c:4576 sql_help.c:4590 sql_help.c:4634 sql_help.c:4679 -#: sql_help.c:4833 sql_help.c:4847 sql_help.c:4891 sql_help.c:5071 -#: sql_help.c:5085 sql_help.c:5129 +#: sql_help.c:4596 sql_help.c:4610 sql_help.c:4654 sql_help.c:4699 +#: sql_help.c:4853 sql_help.c:4867 sql_help.c:4911 sql_help.c:5091 +#: sql_help.c:5105 sql_help.c:5149 msgid "select" msgstr "SELECT句" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5078 +#: sql_help.c:4603 sql_help.c:4860 sql_help.c:5098 msgid "where from_item can be one of:" msgstr "FROM項目は以下のいずれかです:" -#: sql_help.c:4586 sql_help.c:4592 sql_help.c:4595 sql_help.c:4599 -#: sql_help.c:4611 sql_help.c:4843 sql_help.c:4849 sql_help.c:4852 -#: sql_help.c:4856 sql_help.c:4868 sql_help.c:5081 sql_help.c:5087 -#: sql_help.c:5090 sql_help.c:5094 sql_help.c:5106 +#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4631 sql_help.c:4863 sql_help.c:4869 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4888 sql_help.c:5101 sql_help.c:5107 +#: sql_help.c:5110 sql_help.c:5114 sql_help.c:5126 msgid "column_alias" msgstr "列別名" -#: sql_help.c:4587 sql_help.c:4844 sql_help.c:5082 +#: sql_help.c:4607 sql_help.c:4864 sql_help.c:5102 msgid "sampling_method" msgstr "サンプリングメソッド" -#: sql_help.c:4589 sql_help.c:4846 sql_help.c:5084 +#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5104 msgid "seed" msgstr "乱数シード" -#: sql_help.c:4593 sql_help.c:4632 sql_help.c:4850 sql_help.c:4889 -#: sql_help.c:5088 sql_help.c:5127 +#: sql_help.c:4613 sql_help.c:4652 sql_help.c:4870 sql_help.c:4909 +#: sql_help.c:5108 sql_help.c:5147 msgid "with_query_name" msgstr "WITH問い合わせ名" -#: sql_help.c:4603 sql_help.c:4606 sql_help.c:4609 sql_help.c:4860 -#: sql_help.c:4863 sql_help.c:4866 sql_help.c:5098 sql_help.c:5101 -#: sql_help.c:5104 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4629 sql_help.c:4880 +#: sql_help.c:4883 sql_help.c:4886 sql_help.c:5118 sql_help.c:5121 +#: sql_help.c:5124 msgid "column_definition" msgstr "カラム定義" -#: sql_help.c:4613 sql_help.c:4619 sql_help.c:4870 sql_help.c:4876 -#: sql_help.c:5108 sql_help.c:5114 +#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4890 sql_help.c:4896 +#: sql_help.c:5128 sql_help.c:5134 msgid "join_type" msgstr "JOINタイプ" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5111 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 msgid "join_column" msgstr "JOINカラム" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5112 +#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 msgid "join_using_alias" msgstr "JOIN用別名" -#: sql_help.c:4623 sql_help.c:4880 sql_help.c:5118 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 msgid "and grouping_element can be one of:" msgstr "グルーピング要素は以下のいずれかです:" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5126 +#: sql_help.c:4651 sql_help.c:4908 sql_help.c:5146 msgid "and with_query is:" msgstr "WITH問い合わせは以下のいずれかです:" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 +#: sql_help.c:4655 sql_help.c:4912 sql_help.c:5150 msgid "values" msgstr "VALUES句" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 +#: sql_help.c:4656 sql_help.c:4913 sql_help.c:5151 msgid "insert" msgstr "INSERT句" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 +#: sql_help.c:4657 sql_help.c:4914 sql_help.c:5152 msgid "update" msgstr "UPDATE句" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5133 +#: sql_help.c:4658 sql_help.c:4915 sql_help.c:5153 msgid "delete" msgstr "DELETE句" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5135 +#: sql_help.c:4660 sql_help.c:4917 sql_help.c:5155 msgid "search_seq_col_name" msgstr "SEARCH順序列名" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5137 +#: sql_help.c:4662 sql_help.c:4919 sql_help.c:5157 msgid "cycle_mark_col_name" msgstr "循環識別列名" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 +#: sql_help.c:4663 sql_help.c:4920 sql_help.c:5158 msgid "cycle_mark_value" msgstr "循環識別値" -#: sql_help.c:4644 sql_help.c:4901 sql_help.c:5139 +#: sql_help.c:4664 sql_help.c:4921 sql_help.c:5159 msgid "cycle_mark_default" msgstr "循環識別デフォルト" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5140 +#: sql_help.c:4665 sql_help.c:4922 sql_help.c:5160 msgid "cycle_path_col_name" msgstr "循環パス列名" -#: sql_help.c:4672 +#: sql_help.c:4692 msgid "new_table" msgstr "新しいテーブル" -#: sql_help.c:4743 +#: sql_help.c:4763 msgid "snapshot_id" msgstr "スナップショットID" -#: sql_help.c:5003 +#: sql_help.c:5023 msgid "sort_expression" msgstr "ソート表現" -#: sql_help.c:5147 sql_help.c:6131 +#: sql_help.c:5167 sql_help.c:6151 msgid "abort the current transaction" msgstr "現在のトランザクションを中止します" -#: sql_help.c:5153 +#: sql_help.c:5173 msgid "change the definition of an aggregate function" msgstr "集約関数の定義を変更します" -#: sql_help.c:5159 +#: sql_help.c:5179 msgid "change the definition of a collation" msgstr "照合順序の定義を変更します" -#: sql_help.c:5165 +#: sql_help.c:5185 msgid "change the definition of a conversion" msgstr "エンコーディング変換ルールの定義を変更します" -#: sql_help.c:5171 +#: sql_help.c:5191 msgid "change a database" msgstr "データベースを変更します" -#: sql_help.c:5177 +#: sql_help.c:5197 msgid "define default access privileges" msgstr "デフォルトのアクセス権限を定義します" -#: sql_help.c:5183 +#: sql_help.c:5203 msgid "change the definition of a domain" msgstr "ドメインの定義を変更します" -#: sql_help.c:5189 +#: sql_help.c:5209 msgid "change the definition of an event trigger" msgstr "イベントトリガーの定義を変更します" -#: sql_help.c:5195 +#: sql_help.c:5215 msgid "change the definition of an extension" msgstr "機能拡張の定義を変更します" -#: sql_help.c:5201 +#: sql_help.c:5221 msgid "change the definition of a foreign-data wrapper" msgstr "外部データラッパの定義を変更します" -#: sql_help.c:5207 +#: sql_help.c:5227 msgid "change the definition of a foreign table" msgstr "外部テーブルの定義を変更します" -#: sql_help.c:5213 +#: sql_help.c:5233 msgid "change the definition of a function" msgstr "関数の定義を変更します" -#: sql_help.c:5219 +#: sql_help.c:5239 msgid "change role name or membership" msgstr "ロール名またはメンバーシップを変更します" -#: sql_help.c:5225 +#: sql_help.c:5245 msgid "change the definition of an index" msgstr "インデックスの定義を変更します" -#: sql_help.c:5231 +#: sql_help.c:5251 msgid "change the definition of a procedural language" msgstr "手続き言語の定義を変更します" -#: sql_help.c:5237 +#: sql_help.c:5257 msgid "change the definition of a large object" msgstr "ラージオブジェクトの定義を変更します" -#: sql_help.c:5243 +#: sql_help.c:5263 msgid "change the definition of a materialized view" msgstr "実体化ビューの定義を変更します" -#: sql_help.c:5249 +#: sql_help.c:5269 msgid "change the definition of an operator" msgstr "演算子の定義を変更します" -#: sql_help.c:5255 +#: sql_help.c:5275 msgid "change the definition of an operator class" msgstr "演算子クラスの定義を変更します" -#: sql_help.c:5261 +#: sql_help.c:5281 msgid "change the definition of an operator family" msgstr "演算子族の定義を変更します" -#: sql_help.c:5267 +#: sql_help.c:5287 msgid "change the definition of a row-level security policy" msgstr "行レベルのセキュリティ ポリシーの定義を変更します" -#: sql_help.c:5273 +#: sql_help.c:5293 msgid "change the definition of a procedure" msgstr "プロシージャの定義を変更します" -#: sql_help.c:5279 +#: sql_help.c:5299 msgid "change the definition of a publication" msgstr "パブリケーションの定義を変更します" -#: sql_help.c:5285 sql_help.c:5387 +#: sql_help.c:5305 sql_help.c:5407 msgid "change a database role" msgstr "データベースロールを変更します" -#: sql_help.c:5291 +#: sql_help.c:5311 msgid "change the definition of a routine" msgstr "ルーチンの定義を変更します" -#: sql_help.c:5297 +#: sql_help.c:5317 msgid "change the definition of a rule" msgstr "ルールの定義を変更します" -#: sql_help.c:5303 +#: sql_help.c:5323 msgid "change the definition of a schema" msgstr "スキーマの定義を変更します" -#: sql_help.c:5309 +#: sql_help.c:5329 msgid "change the definition of a sequence generator" msgstr "シーケンス生成器の定義を変更します" -#: sql_help.c:5315 +#: sql_help.c:5335 msgid "change the definition of a foreign server" msgstr "外部サーバーの定義を変更します" -#: sql_help.c:5321 +#: sql_help.c:5341 msgid "change the definition of an extended statistics object" msgstr "拡張統計情報オブジェクトの定義を変更します" -#: sql_help.c:5327 +#: sql_help.c:5347 msgid "change the definition of a subscription" msgstr "サブスクリプションの定義を変更します" -#: sql_help.c:5333 +#: sql_help.c:5353 msgid "change a server configuration parameter" msgstr "サーバーの設定パラメータを変更します" -#: sql_help.c:5339 +#: sql_help.c:5359 msgid "change the definition of a table" msgstr "テーブルの定義を変更します。" -#: sql_help.c:5345 +#: sql_help.c:5365 msgid "change the definition of a tablespace" msgstr "テーブル空間の定義を変更します" -#: sql_help.c:5351 +#: sql_help.c:5371 msgid "change the definition of a text search configuration" msgstr "テキスト検索設定の定義を変更します" -#: sql_help.c:5357 +#: sql_help.c:5377 msgid "change the definition of a text search dictionary" msgstr "テキスト検索辞書の定義を変更します" -#: sql_help.c:5363 +#: sql_help.c:5383 msgid "change the definition of a text search parser" msgstr "テキスト検索パーサーの定義を変更します" -#: sql_help.c:5369 +#: sql_help.c:5389 msgid "change the definition of a text search template" msgstr "テキスト検索テンプレートの定義を変更します" -#: sql_help.c:5375 +#: sql_help.c:5395 msgid "change the definition of a trigger" msgstr "トリガーの定義を変更します" -#: sql_help.c:5381 +#: sql_help.c:5401 msgid "change the definition of a type" msgstr "型の定義を変更します" -#: sql_help.c:5393 +#: sql_help.c:5413 msgid "change the definition of a user mapping" msgstr "ユーザーマッピングの定義を変更します" -#: sql_help.c:5399 +#: sql_help.c:5419 msgid "change the definition of a view" msgstr "ビューの定義を変更します" -#: sql_help.c:5405 +#: sql_help.c:5425 msgid "collect statistics about a database" msgstr "データベースの統計情報を収集します" -#: sql_help.c:5411 sql_help.c:6209 +#: sql_help.c:5431 sql_help.c:6229 msgid "start a transaction block" msgstr "トランザクション区間を開始します" -#: sql_help.c:5417 +#: sql_help.c:5437 msgid "invoke a procedure" msgstr "プロシージャを実行します" -#: sql_help.c:5423 +#: sql_help.c:5443 msgid "force a write-ahead log checkpoint" msgstr "先行書き込みログのチェックポイントを強制的に実行します" -#: sql_help.c:5429 +#: sql_help.c:5449 msgid "close a cursor" msgstr "カーソルを閉じます" -#: sql_help.c:5435 +#: sql_help.c:5455 msgid "cluster a table according to an index" msgstr "インデックスに従ってテーブルをクラスタ化します" -#: sql_help.c:5441 +#: sql_help.c:5461 msgid "define or change the comment of an object" msgstr "オブジェクトのコメントを定義または変更します" -#: sql_help.c:5447 sql_help.c:6005 +#: sql_help.c:5467 sql_help.c:6025 msgid "commit the current transaction" msgstr "現在のトランザクションをコミットします" -#: sql_help.c:5453 +#: sql_help.c:5473 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "二相コミットのために事前に準備されたトランザクションをコミットします" -#: sql_help.c:5459 +#: sql_help.c:5479 msgid "copy data between a file and a table" msgstr "ファイルとテーブルとの間でデータをコピーします" -#: sql_help.c:5465 +#: sql_help.c:5485 msgid "define a new access method" msgstr "新しいアクセスメソッドを定義します" -#: sql_help.c:5471 +#: sql_help.c:5491 msgid "define a new aggregate function" msgstr "新しい集約関数を定義します" -#: sql_help.c:5477 +#: sql_help.c:5497 msgid "define a new cast" msgstr "新しい型変換を定義します" -#: sql_help.c:5483 +#: sql_help.c:5503 msgid "define a new collation" msgstr "新しい照合順序を定義します" -#: sql_help.c:5489 +#: sql_help.c:5509 msgid "define a new encoding conversion" msgstr "新しいエンコーディング変換を定義します" -#: sql_help.c:5495 +#: sql_help.c:5515 msgid "create a new database" msgstr "新しいデータベースを作成します" -#: sql_help.c:5501 +#: sql_help.c:5521 msgid "define a new domain" msgstr "新しいドメインを定義します" -#: sql_help.c:5507 +#: sql_help.c:5527 msgid "define a new event trigger" msgstr "新しいイベントトリガーを定義します" -#: sql_help.c:5513 +#: sql_help.c:5533 msgid "install an extension" msgstr "機能拡張をインストールします" -#: sql_help.c:5519 +#: sql_help.c:5539 msgid "define a new foreign-data wrapper" msgstr "新しい外部データラッパを定義します" -#: sql_help.c:5525 +#: sql_help.c:5545 msgid "define a new foreign table" msgstr "新しい外部テーブルを定義します" -#: sql_help.c:5531 +#: sql_help.c:5551 msgid "define a new function" msgstr "新しい関数を定義します" -#: sql_help.c:5537 sql_help.c:5597 sql_help.c:5699 +#: sql_help.c:5557 sql_help.c:5617 sql_help.c:5719 msgid "define a new database role" msgstr "新しいデータベースロールを定義します" -#: sql_help.c:5543 +#: sql_help.c:5563 msgid "define a new index" msgstr "新しいインデックスを定義します" -#: sql_help.c:5549 +#: sql_help.c:5569 msgid "define a new procedural language" msgstr "新しい手続き言語を定義します" -#: sql_help.c:5555 +#: sql_help.c:5575 msgid "define a new materialized view" msgstr "新しい実体化ビューを定義します" -#: sql_help.c:5561 +#: sql_help.c:5581 msgid "define a new operator" msgstr "新しい演算子を定義します" -#: sql_help.c:5567 +#: sql_help.c:5587 msgid "define a new operator class" msgstr "新しい演算子クラスを定義します" -#: sql_help.c:5573 +#: sql_help.c:5593 msgid "define a new operator family" msgstr "新しい演算子族を定義します" -#: sql_help.c:5579 +#: sql_help.c:5599 msgid "define a new row-level security policy for a table" msgstr "テーブルに対して新しい行レベルセキュリティポリシーを定義します" -#: sql_help.c:5585 +#: sql_help.c:5605 msgid "define a new procedure" msgstr "新しいプロシージャを定義します" -#: sql_help.c:5591 +#: sql_help.c:5611 msgid "define a new publication" msgstr "新しいパブリケーションを定義します" -#: sql_help.c:5603 +#: sql_help.c:5623 msgid "define a new rewrite rule" msgstr "新しい書き換えルールを定義します" -#: sql_help.c:5609 +#: sql_help.c:5629 msgid "define a new schema" msgstr "新しいスキーマを定義します" -#: sql_help.c:5615 +#: sql_help.c:5635 msgid "define a new sequence generator" msgstr "新しいシーケンス生成器を定義します。" -#: sql_help.c:5621 +#: sql_help.c:5641 msgid "define a new foreign server" msgstr "新しい外部サーバーを定義します" -#: sql_help.c:5627 +#: sql_help.c:5647 msgid "define extended statistics" msgstr "拡張統計情報を定義します" -#: sql_help.c:5633 +#: sql_help.c:5653 msgid "define a new subscription" msgstr "新しいサブスクリプションを定義します" -#: sql_help.c:5639 +#: sql_help.c:5659 msgid "define a new table" msgstr "新しいテーブルを定義します" -#: sql_help.c:5645 sql_help.c:6167 +#: sql_help.c:5665 sql_help.c:6187 msgid "define a new table from the results of a query" msgstr "問い合わせの結果から新しいテーブルを定義します" -#: sql_help.c:5651 +#: sql_help.c:5671 msgid "define a new tablespace" msgstr "新しいテーブル空間を定義します" -#: sql_help.c:5657 +#: sql_help.c:5677 msgid "define a new text search configuration" msgstr "新しいテキスト検索設定を定義します" -#: sql_help.c:5663 +#: sql_help.c:5683 msgid "define a new text search dictionary" msgstr "新しいテキスト検索辞書を定義します" -#: sql_help.c:5669 +#: sql_help.c:5689 msgid "define a new text search parser" msgstr "新しいテキスト検索パーサーを定義します" -#: sql_help.c:5675 +#: sql_help.c:5695 msgid "define a new text search template" msgstr "新しいテキスト検索テンプレートを定義します" -#: sql_help.c:5681 +#: sql_help.c:5701 msgid "define a new transform" msgstr "新しいデータ変換を定義します" -#: sql_help.c:5687 +#: sql_help.c:5707 msgid "define a new trigger" msgstr "新しいトリガーを定義します" -#: sql_help.c:5693 +#: sql_help.c:5713 msgid "define a new data type" msgstr "新しいデータ型を定義します" -#: sql_help.c:5705 +#: sql_help.c:5725 msgid "define a new mapping of a user to a foreign server" msgstr "外部サーバーに対するユーザーの新しいマッピングを定義します。" -#: sql_help.c:5711 +#: sql_help.c:5731 msgid "define a new view" msgstr "新しいビューを定義します" -#: sql_help.c:5717 +#: sql_help.c:5737 msgid "deallocate a prepared statement" msgstr "準備した文を解放します" -#: sql_help.c:5723 +#: sql_help.c:5743 msgid "define a cursor" msgstr "カーソルを定義します" -#: sql_help.c:5729 +#: sql_help.c:5749 msgid "delete rows of a table" msgstr "テーブルの行を削除します" -#: sql_help.c:5735 +#: sql_help.c:5755 msgid "discard session state" msgstr "セッション状態を破棄します" -#: sql_help.c:5741 +#: sql_help.c:5761 msgid "execute an anonymous code block" msgstr "無名コードブロックを実行します" -#: sql_help.c:5747 +#: sql_help.c:5767 msgid "remove an access method" msgstr "アクセスメソッドを削除します" -#: sql_help.c:5753 +#: sql_help.c:5773 msgid "remove an aggregate function" msgstr "集約関数を削除します" -#: sql_help.c:5759 +#: sql_help.c:5779 msgid "remove a cast" msgstr "型変換を削除します" -#: sql_help.c:5765 +#: sql_help.c:5785 msgid "remove a collation" msgstr "照合順序を削除します" -#: sql_help.c:5771 +#: sql_help.c:5791 msgid "remove a conversion" msgstr "符号化方式変換を削除します" -#: sql_help.c:5777 +#: sql_help.c:5797 msgid "remove a database" msgstr "データベースを削除します" -#: sql_help.c:5783 +#: sql_help.c:5803 msgid "remove a domain" msgstr "ドメインを削除します" -#: sql_help.c:5789 +#: sql_help.c:5809 msgid "remove an event trigger" msgstr "イベントトリガーを削除します" -#: sql_help.c:5795 +#: sql_help.c:5815 msgid "remove an extension" msgstr "機能拡張を削除します" -#: sql_help.c:5801 +#: sql_help.c:5821 msgid "remove a foreign-data wrapper" msgstr "外部データラッパを削除します" -#: sql_help.c:5807 +#: sql_help.c:5827 msgid "remove a foreign table" msgstr "外部テーブルを削除します" -#: sql_help.c:5813 +#: sql_help.c:5833 msgid "remove a function" msgstr "関数を削除します" -#: sql_help.c:5819 sql_help.c:5885 sql_help.c:5987 +#: sql_help.c:5839 sql_help.c:5905 sql_help.c:6007 msgid "remove a database role" msgstr "データベースロールを削除します" -#: sql_help.c:5825 +#: sql_help.c:5845 msgid "remove an index" msgstr "インデックスを削除します" -#: sql_help.c:5831 +#: sql_help.c:5851 msgid "remove a procedural language" msgstr "手続き言語を削除します" -#: sql_help.c:5837 +#: sql_help.c:5857 msgid "remove a materialized view" msgstr "実体化ビューを削除します" -#: sql_help.c:5843 +#: sql_help.c:5863 msgid "remove an operator" msgstr "演算子を削除します" -#: sql_help.c:5849 +#: sql_help.c:5869 msgid "remove an operator class" msgstr "演算子クラスを削除します" -#: sql_help.c:5855 +#: sql_help.c:5875 msgid "remove an operator family" msgstr "演算子族を削除します" -#: sql_help.c:5861 +#: sql_help.c:5881 msgid "remove database objects owned by a database role" msgstr "データベースロールが所有するデータベースオブジェクトを削除します" -#: sql_help.c:5867 +#: sql_help.c:5887 msgid "remove a row-level security policy from a table" msgstr "テーブルから行レベルのセキュリティポリシーを削除します" -#: sql_help.c:5873 +#: sql_help.c:5893 msgid "remove a procedure" msgstr "プロシージャを削除します" -#: sql_help.c:5879 +#: sql_help.c:5899 msgid "remove a publication" msgstr "パブリケーションを削除します" -#: sql_help.c:5891 +#: sql_help.c:5911 msgid "remove a routine" msgstr "ルーチンを削除します" -#: sql_help.c:5897 +#: sql_help.c:5917 msgid "remove a rewrite rule" msgstr "書き換えルールを削除します" -#: sql_help.c:5903 +#: sql_help.c:5923 msgid "remove a schema" msgstr "スキーマを削除します" -#: sql_help.c:5909 +#: sql_help.c:5929 msgid "remove a sequence" msgstr "シーケンスを削除します" -#: sql_help.c:5915 +#: sql_help.c:5935 msgid "remove a foreign server descriptor" msgstr "外部サーバー記述子を削除します" -#: sql_help.c:5921 +#: sql_help.c:5941 msgid "remove extended statistics" msgstr "拡張統計情報を削除します" -#: sql_help.c:5927 +#: sql_help.c:5947 msgid "remove a subscription" msgstr "サブスクリプションを削除します" -#: sql_help.c:5933 +#: sql_help.c:5953 msgid "remove a table" msgstr "テーブルを削除します" -#: sql_help.c:5939 +#: sql_help.c:5959 msgid "remove a tablespace" msgstr "テーブル空間を削除します" -#: sql_help.c:5945 +#: sql_help.c:5965 msgid "remove a text search configuration" msgstr "テキスト検索設定を削除します" -#: sql_help.c:5951 +#: sql_help.c:5971 msgid "remove a text search dictionary" msgstr "テキスト検索辞書を削除します" -#: sql_help.c:5957 +#: sql_help.c:5977 msgid "remove a text search parser" msgstr "テキスト検索パーサーを削除します" -#: sql_help.c:5963 +#: sql_help.c:5983 msgid "remove a text search template" msgstr "テキスト検索テンプレートを削除します" -#: sql_help.c:5969 +#: sql_help.c:5989 msgid "remove a transform" msgstr "データ変換を削除します" -#: sql_help.c:5975 +#: sql_help.c:5995 msgid "remove a trigger" msgstr "トリガーを削除します" -#: sql_help.c:5981 +#: sql_help.c:6001 msgid "remove a data type" msgstr "データ型を削除します" -#: sql_help.c:5993 +#: sql_help.c:6013 msgid "remove a user mapping for a foreign server" msgstr "外部サーバーのユーザーマッピングを削除します" -#: sql_help.c:5999 +#: sql_help.c:6019 msgid "remove a view" msgstr "ビューを削除します" -#: sql_help.c:6011 +#: sql_help.c:6031 msgid "execute a prepared statement" msgstr "準備した文を実行します" -#: sql_help.c:6017 +#: sql_help.c:6037 msgid "show the execution plan of a statement" msgstr "文の実行計画を表示します" -#: sql_help.c:6023 +#: sql_help.c:6043 msgid "retrieve rows from a query using a cursor" msgstr "カーソルを使って問い合わせから行を取り出します" -#: sql_help.c:6029 +#: sql_help.c:6049 msgid "define access privileges" msgstr "アクセス権限を定義します" -#: sql_help.c:6035 +#: sql_help.c:6055 msgid "import table definitions from a foreign server" msgstr "外部サーバーからテーブル定義をインポートします" -#: sql_help.c:6041 +#: sql_help.c:6061 msgid "create new rows in a table" msgstr "テーブルに新しい行を作成します" -#: sql_help.c:6047 +#: sql_help.c:6067 msgid "listen for a notification" msgstr "通知メッセージを監視します" -#: sql_help.c:6053 +#: sql_help.c:6073 msgid "load a shared library file" msgstr "共有ライブラリファイルをロードします" -#: sql_help.c:6059 +#: sql_help.c:6079 msgid "lock a table" msgstr "テーブルをロックします" -#: sql_help.c:6065 +#: sql_help.c:6085 msgid "conditionally insert, update, or delete rows of a table" msgstr "条件によってテーブルの行を挿入、更新または削除する" -#: sql_help.c:6071 +#: sql_help.c:6091 msgid "position a cursor" msgstr "カーソルを位置づけます" -#: sql_help.c:6077 +#: sql_help.c:6097 msgid "generate a notification" msgstr "通知を生成します" -#: sql_help.c:6083 +#: sql_help.c:6103 msgid "prepare a statement for execution" msgstr "実行に備えて文を準備します" -#: sql_help.c:6089 +#: sql_help.c:6109 msgid "prepare the current transaction for two-phase commit" msgstr "二相コミットに備えて現在のトランザクションを準備します" -#: sql_help.c:6095 +#: sql_help.c:6115 msgid "change the ownership of database objects owned by a database role" msgstr "データベースロールが所有するデータベースオブジェクトの所有権を変更します" -#: sql_help.c:6101 +#: sql_help.c:6121 msgid "replace the contents of a materialized view" msgstr "実体化ビューの内容を置き換えます" -#: sql_help.c:6107 +#: sql_help.c:6127 msgid "rebuild indexes" msgstr "インデックスを再構築します" -#: sql_help.c:6113 +#: sql_help.c:6133 msgid "destroy a previously defined savepoint" msgstr "以前に定義されたセーブポイントを破棄します" -#: sql_help.c:6119 +#: sql_help.c:6139 msgid "restore the value of a run-time parameter to the default value" msgstr "実行時パラメータの値をデフォルト値に戻します" -#: sql_help.c:6125 +#: sql_help.c:6145 msgid "remove access privileges" msgstr "アクセス権限を削除します" -#: sql_help.c:6137 +#: sql_help.c:6157 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "二相コミットのために事前に準備されたトランザクションをキャンセルします" -#: sql_help.c:6143 +#: sql_help.c:6163 msgid "roll back to a savepoint" msgstr "セーブポイントまでロールバックします" -#: sql_help.c:6149 +#: sql_help.c:6169 msgid "define a new savepoint within the current transaction" msgstr "現在のトランザクション内で新しいセーブポイントを定義します" -#: sql_help.c:6155 +#: sql_help.c:6175 msgid "define or change a security label applied to an object" msgstr "オブジェクトに適用されるセキュリティラベルを定義または変更します" -#: sql_help.c:6161 sql_help.c:6215 sql_help.c:6251 +#: sql_help.c:6181 sql_help.c:6235 sql_help.c:6271 msgid "retrieve rows from a table or view" msgstr "テーブルまたはビューから行を取得します" -#: sql_help.c:6173 +#: sql_help.c:6193 msgid "change a run-time parameter" msgstr "実行時パラメータを変更します" -#: sql_help.c:6179 +#: sql_help.c:6199 msgid "set constraint check timing for the current transaction" msgstr "現在のトランザクションについて、制約チェックのタイミングを設定します" -#: sql_help.c:6185 +#: sql_help.c:6205 msgid "set the current user identifier of the current session" msgstr "現在のセッションの現在のユーザー識別子を設定します" -#: sql_help.c:6191 +#: sql_help.c:6211 msgid "set the session user identifier and the current user identifier of the current session" msgstr "セッションのユーザー識別子および現在のセッションの現在のユーザー識別子を設定します" -#: sql_help.c:6197 +#: sql_help.c:6217 msgid "set the characteristics of the current transaction" msgstr "現在のトランザクションの特性を設定します" -#: sql_help.c:6203 +#: sql_help.c:6223 msgid "show the value of a run-time parameter" msgstr "実行時パラメータの値を表示します" -#: sql_help.c:6221 +#: sql_help.c:6241 msgid "empty a table or set of tables" msgstr "一つの、または複数のテーブルを空にします" -#: sql_help.c:6227 +#: sql_help.c:6247 msgid "stop listening for a notification" msgstr "通知メッセージの監視を中止します" -#: sql_help.c:6233 +#: sql_help.c:6253 msgid "update rows of a table" msgstr "テーブルの行を更新します" -#: sql_help.c:6239 +#: sql_help.c:6259 msgid "garbage-collect and optionally analyze a database" msgstr "ガーベッジコレクションを行い、また必要に応じてデータベースを分析します" -#: sql_help.c:6245 +#: sql_help.c:6265 msgid "compute a set of rows" msgstr "行セットを計算します" diff --git a/src/bin/psql/po/ru.po b/src/bin/psql/po/ru.po index f8743a24670..1350a3e0103 100644 --- a/src/bin/psql/po/ru.po +++ b/src/bin/psql/po/ru.po @@ -4,14 +4,14 @@ # Serguei A. Mokhov , 2001-2005. # Oleg Bartunov , 2004-2005. # Sergey Burladyan , 2012. -# SPDX-FileCopyrightText: 2012-2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2012-2025, 2026 Alexander Lakhin # Maxim Yablokov , 2021. msgid "" msgstr "" "Project-Id-Version: psql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-09 06:29+0200\n" -"PO-Revision-Date: 2025-11-09 08:23+0200\n" +"POT-Creation-Date: 2026-02-07 08:58+0200\n" +"PO-Revision-Date: 2026-02-07 09:12+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -4316,189 +4316,189 @@ msgstr "%s: нехватка памяти" #: sql_help.c:728 sql_help.c:732 sql_help.c:751 sql_help.c:754 sql_help.c:757 #: sql_help.c:786 sql_help.c:798 sql_help.c:806 sql_help.c:809 sql_help.c:812 #: sql_help.c:827 sql_help.c:830 sql_help.c:859 sql_help.c:864 sql_help.c:869 -#: sql_help.c:874 sql_help.c:879 sql_help.c:906 sql_help.c:908 sql_help.c:910 -#: sql_help.c:912 sql_help.c:915 sql_help.c:917 sql_help.c:964 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1048 sql_help.c:1059 sql_help.c:1061 sql_help.c:1081 -#: sql_help.c:1091 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1108 sql_help.c:1112 sql_help.c:1114 sql_help.c:1126 -#: sql_help.c:1128 sql_help.c:1130 sql_help.c:1132 sql_help.c:1151 -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1169 sql_help.c:1170 sql_help.c:1173 -#: sql_help.c:1176 sql_help.c:1178 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1327 sql_help.c:1329 -#: sql_help.c:1332 sql_help.c:1335 sql_help.c:1455 sql_help.c:1457 -#: sql_help.c:1459 sql_help.c:1462 sql_help.c:1483 sql_help.c:1486 -#: sql_help.c:1489 sql_help.c:1492 sql_help.c:1496 sql_help.c:1498 -#: sql_help.c:1500 sql_help.c:1502 sql_help.c:1516 sql_help.c:1519 -#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1533 sql_help.c:1535 -#: sql_help.c:1545 sql_help.c:1547 sql_help.c:1557 sql_help.c:1560 -#: sql_help.c:1583 sql_help.c:1585 sql_help.c:1587 sql_help.c:1589 -#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 -#: sql_help.c:1651 sql_help.c:1694 sql_help.c:1697 sql_help.c:1699 -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:1706 sql_help.c:1708 -#: sql_help.c:1711 sql_help.c:1761 sql_help.c:1777 sql_help.c:2008 -#: sql_help.c:2077 sql_help.c:2096 sql_help.c:2109 sql_help.c:2166 -#: sql_help.c:2173 sql_help.c:2183 sql_help.c:2209 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4045 -#: sql_help.c:4159 sql_help.c:4188 sql_help.c:4203 sql_help.c:4706 -#: sql_help.c:4754 sql_help.c:4912 +#: sql_help.c:874 sql_help.c:879 sql_help.c:915 sql_help.c:917 sql_help.c:919 +#: sql_help.c:921 sql_help.c:924 sql_help.c:926 sql_help.c:978 sql_help.c:1023 +#: sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 sql_help.c:1043 +#: sql_help.c:1062 sql_help.c:1073 sql_help.c:1075 sql_help.c:1095 +#: sql_help.c:1105 sql_help.c:1106 sql_help.c:1108 sql_help.c:1110 +#: sql_help.c:1122 sql_help.c:1126 sql_help.c:1128 sql_help.c:1140 +#: sql_help.c:1142 sql_help.c:1144 sql_help.c:1146 sql_help.c:1165 +#: sql_help.c:1167 sql_help.c:1171 sql_help.c:1175 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1183 sql_help.c:1184 sql_help.c:1187 +#: sql_help.c:1190 sql_help.c:1192 sql_help.c:1331 sql_help.c:1333 +#: sql_help.c:1336 sql_help.c:1339 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1469 sql_help.c:1471 +#: sql_help.c:1473 sql_help.c:1476 sql_help.c:1497 sql_help.c:1500 +#: sql_help.c:1503 sql_help.c:1506 sql_help.c:1510 sql_help.c:1512 +#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1530 sql_help.c:1533 +#: sql_help.c:1535 sql_help.c:1537 sql_help.c:1547 sql_help.c:1549 +#: sql_help.c:1559 sql_help.c:1561 sql_help.c:1571 sql_help.c:1574 +#: sql_help.c:1597 sql_help.c:1599 sql_help.c:1601 sql_help.c:1603 +#: sql_help.c:1606 sql_help.c:1608 sql_help.c:1611 sql_help.c:1614 +#: sql_help.c:1665 sql_help.c:1708 sql_help.c:1711 sql_help.c:1713 +#: sql_help.c:1715 sql_help.c:1718 sql_help.c:1720 sql_help.c:1722 +#: sql_help.c:1725 sql_help.c:1775 sql_help.c:1791 sql_help.c:2022 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2123 sql_help.c:2180 +#: sql_help.c:2187 sql_help.c:2197 sql_help.c:2223 sql_help.c:2254 +#: sql_help.c:2272 sql_help.c:2300 sql_help.c:2411 sql_help.c:2457 +#: sql_help.c:2482 sql_help.c:2505 sql_help.c:2509 sql_help.c:2543 +#: sql_help.c:2563 sql_help.c:2585 sql_help.c:2599 sql_help.c:2620 +#: sql_help.c:2653 sql_help.c:2690 sql_help.c:2715 sql_help.c:2762 +#: sql_help.c:3060 sql_help.c:3073 sql_help.c:3090 sql_help.c:3106 +#: sql_help.c:3146 sql_help.c:3200 sql_help.c:3204 sql_help.c:3206 +#: sql_help.c:3213 sql_help.c:3232 sql_help.c:3259 sql_help.c:3294 +#: sql_help.c:3306 sql_help.c:3315 sql_help.c:3359 sql_help.c:3373 +#: sql_help.c:3401 sql_help.c:3409 sql_help.c:3421 sql_help.c:3431 +#: sql_help.c:3439 sql_help.c:3447 sql_help.c:3455 sql_help.c:3463 +#: sql_help.c:3472 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 +#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3525 sql_help.c:3534 +#: sql_help.c:3543 sql_help.c:3551 sql_help.c:3561 sql_help.c:3572 +#: sql_help.c:3580 sql_help.c:3589 sql_help.c:3600 sql_help.c:3609 +#: sql_help.c:3617 sql_help.c:3625 sql_help.c:3633 sql_help.c:3641 +#: sql_help.c:3649 sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 +#: sql_help.c:3681 sql_help.c:3689 sql_help.c:3706 sql_help.c:3715 +#: sql_help.c:3723 sql_help.c:3740 sql_help.c:3755 sql_help.c:4065 +#: sql_help.c:4179 sql_help.c:4208 sql_help.c:4223 sql_help.c:4726 +#: sql_help.c:4774 sql_help.c:4932 msgid "name" msgstr "имя" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1858 -#: sql_help.c:3354 sql_help.c:4474 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1872 +#: sql_help.c:3374 sql_help.c:4494 msgid "aggregate_signature" msgstr "сигнатура_агр_функции" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 #: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 #: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:753 sql_help.c:808 -#: sql_help.c:829 sql_help.c:868 sql_help.c:918 sql_help.c:965 sql_help.c:1018 -#: sql_help.c:1050 sql_help.c:1060 sql_help.c:1095 sql_help.c:1115 -#: sql_help.c:1129 sql_help.c:1179 sql_help.c:1326 sql_help.c:1456 -#: sql_help.c:1499 sql_help.c:1520 sql_help.c:1534 sql_help.c:1546 -#: sql_help.c:1559 sql_help.c:1586 sql_help.c:1652 sql_help.c:1705 +#: sql_help.c:829 sql_help.c:868 sql_help.c:927 sql_help.c:979 sql_help.c:1032 +#: sql_help.c:1064 sql_help.c:1074 sql_help.c:1109 sql_help.c:1129 +#: sql_help.c:1143 sql_help.c:1193 sql_help.c:1340 sql_help.c:1470 +#: sql_help.c:1513 sql_help.c:1534 sql_help.c:1548 sql_help.c:1560 +#: sql_help.c:1573 sql_help.c:1600 sql_help.c:1666 sql_help.c:1719 msgid "new_name" msgstr "новое_имя" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 #: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 #: sql_help.c:642 sql_help.c:707 sql_help.c:727 sql_help.c:756 sql_help.c:811 -#: sql_help.c:873 sql_help.c:916 sql_help.c:1023 sql_help.c:1062 -#: sql_help.c:1093 sql_help.c:1113 sql_help.c:1127 sql_help.c:1177 -#: sql_help.c:1390 sql_help.c:1458 sql_help.c:1501 sql_help.c:1522 -#: sql_help.c:1584 sql_help.c:1700 sql_help.c:3026 +#: sql_help.c:873 sql_help.c:925 sql_help.c:1037 sql_help.c:1076 +#: sql_help.c:1107 sql_help.c:1127 sql_help.c:1141 sql_help.c:1191 +#: sql_help.c:1404 sql_help.c:1472 sql_help.c:1515 sql_help.c:1536 +#: sql_help.c:1598 sql_help.c:1714 sql_help.c:3046 msgid "new_owner" msgstr "новый_владелец" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 #: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:731 sql_help.c:759 -#: sql_help.c:814 sql_help.c:878 sql_help.c:1028 sql_help.c:1097 -#: sql_help.c:1131 sql_help.c:1328 sql_help.c:1503 sql_help.c:1524 -#: sql_help.c:1536 sql_help.c:1548 sql_help.c:1588 sql_help.c:1707 +#: sql_help.c:814 sql_help.c:878 sql_help.c:1042 sql_help.c:1111 +#: sql_help.c:1145 sql_help.c:1342 sql_help.c:1517 sql_help.c:1538 +#: sql_help.c:1550 sql_help.c:1562 sql_help.c:1602 sql_help.c:1721 msgid "new_schema" msgstr "новая_схема" -#: sql_help.c:44 sql_help.c:1922 sql_help.c:3355 sql_help.c:4503 +#: sql_help.c:44 sql_help.c:1936 sql_help.c:3375 sql_help.c:4523 msgid "where aggregate_signature is:" msgstr "где сигнатура_агр_функции:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 #: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 #: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1876 sql_help.c:1893 sql_help.c:1899 sql_help.c:1923 -#: sql_help.c:1926 sql_help.c:1929 sql_help.c:2078 sql_help.c:2097 -#: sql_help.c:2100 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3920 sql_help.c:4373 sql_help.c:4480 -#: sql_help.c:4487 sql_help.c:4493 sql_help.c:4504 sql_help.c:4507 -#: sql_help.c:4510 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1024 +#: sql_help.c:1029 sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 +#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 +#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2092 sql_help.c:2111 +#: sql_help.c:2114 sql_help.c:2412 sql_help.c:2621 sql_help.c:3376 +#: sql_help.c:3379 sql_help.c:3382 sql_help.c:3473 sql_help.c:3562 +#: sql_help.c:3590 sql_help.c:3940 sql_help.c:4393 sql_help.c:4500 +#: sql_help.c:4507 sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 +#: sql_help.c:4530 msgid "argmode" msgstr "режим_аргумента" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 #: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 #: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1011 -#: sql_help.c:1016 sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 -#: sql_help.c:1877 sql_help.c:1894 sql_help.c:1900 sql_help.c:1924 -#: sql_help.c:1927 sql_help.c:1930 sql_help.c:2079 sql_help.c:2098 -#: sql_help.c:2101 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4481 sql_help.c:4488 sql_help.c:4494 -#: sql_help.c:4505 sql_help.c:4508 sql_help.c:4511 +#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1025 +#: sql_help.c:1030 sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 +#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 +#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2093 sql_help.c:2112 +#: sql_help.c:2115 sql_help.c:2413 sql_help.c:2622 sql_help.c:3377 +#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3474 sql_help.c:3563 +#: sql_help.c:3591 sql_help.c:4501 sql_help.c:4508 sql_help.c:4514 +#: sql_help.c:4525 sql_help.c:4528 sql_help.c:4531 msgid "argname" msgstr "имя_аргумента" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 #: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 #: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:862 -#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1012 -#: sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 -#: sql_help.c:1878 sql_help.c:1895 sql_help.c:1901 sql_help.c:1925 -#: sql_help.c:1928 sql_help.c:1931 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4482 sql_help.c:4489 -#: sql_help.c:4495 sql_help.c:4506 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1026 +#: sql_help.c:1031 sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 +#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 +#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2414 sql_help.c:2623 +#: sql_help.c:3378 sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 +#: sql_help.c:3564 sql_help.c:3592 sql_help.c:4502 sql_help.c:4509 +#: sql_help.c:4515 sql_help.c:4526 sql_help.c:4529 sql_help.c:4532 msgid "argtype" msgstr "тип_аргумента" -#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:959 -#: sql_help.c:1110 sql_help.c:1517 sql_help.c:1646 sql_help.c:1678 -#: sql_help.c:1730 sql_help.c:1793 sql_help.c:1979 sql_help.c:1986 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3757 -#: sql_help.c:3964 sql_help.c:4202 sql_help.c:4975 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:973 +#: sql_help.c:1124 sql_help.c:1531 sql_help.c:1660 sql_help.c:1692 +#: sql_help.c:1744 sql_help.c:1807 sql_help.c:1993 sql_help.c:2000 +#: sql_help.c:2303 sql_help.c:2353 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2458 sql_help.c:2691 sql_help.c:2784 sql_help.c:3075 +#: sql_help.c:3260 sql_help.c:3282 sql_help.c:3422 sql_help.c:3777 +#: sql_help.c:3984 sql_help.c:4222 sql_help.c:4995 msgid "option" msgstr "параметр" -#: sql_help.c:115 sql_help.c:960 sql_help.c:1647 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:974 sql_help.c:1661 sql_help.c:2459 +#: sql_help.c:2692 sql_help.c:3261 sql_help.c:3423 msgid "where option can be:" msgstr "где допустимые параметры:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2235 msgid "allowconn" msgstr "разр_подключения" -#: sql_help.c:117 sql_help.c:961 sql_help.c:1648 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:975 sql_help.c:1662 sql_help.c:2236 +#: sql_help.c:2460 sql_help.c:2693 sql_help.c:3262 msgid "connlimit" msgstr "предел_подключений" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2237 msgid "istemplate" msgstr "это_шаблон" -#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1331 -#: sql_help.c:1383 sql_help.c:4206 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1345 +#: sql_help.c:1397 sql_help.c:4226 msgid "new_tablespace" msgstr "новое_табл_пространство" #: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 -#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:968 -#: sql_help.c:972 sql_help.c:975 sql_help.c:1037 sql_help.c:1039 -#: sql_help.c:1040 sql_help.c:1190 sql_help.c:1192 sql_help.c:1655 -#: sql_help.c:1659 sql_help.c:1662 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3932 sql_help.c:4224 sql_help.c:4385 sql_help.c:4694 +#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:982 +#: sql_help.c:986 sql_help.c:989 sql_help.c:1051 sql_help.c:1053 +#: sql_help.c:1054 sql_help.c:1204 sql_help.c:1206 sql_help.c:1669 +#: sql_help.c:1673 sql_help.c:1676 sql_help.c:2424 sql_help.c:2627 +#: sql_help.c:3952 sql_help.c:4244 sql_help.c:4405 sql_help.c:4714 msgid "configuration_parameter" msgstr "параметр_конфигурации" #: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 #: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:886 -#: sql_help.c:914 sql_help.c:969 sql_help.c:1038 sql_help.c:1111 -#: sql_help.c:1156 sql_help.c:1160 sql_help.c:1164 sql_help.c:1167 -#: sql_help.c:1172 sql_help.c:1175 sql_help.c:1191 sql_help.c:1362 -#: sql_help.c:1385 sql_help.c:1433 sql_help.c:1441 sql_help.c:1461 -#: sql_help.c:1518 sql_help.c:1602 sql_help.c:1656 sql_help.c:1679 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3965 -#: sql_help.c:4695 sql_help.c:4696 sql_help.c:4697 sql_help.c:4698 +#: sql_help.c:923 sql_help.c:983 sql_help.c:1052 sql_help.c:1125 +#: sql_help.c:1170 sql_help.c:1174 sql_help.c:1178 sql_help.c:1181 +#: sql_help.c:1186 sql_help.c:1189 sql_help.c:1205 sql_help.c:1376 +#: sql_help.c:1399 sql_help.c:1447 sql_help.c:1455 sql_help.c:1475 +#: sql_help.c:1532 sql_help.c:1616 sql_help.c:1670 sql_help.c:1693 +#: sql_help.c:2304 sql_help.c:2354 sql_help.c:2361 sql_help.c:2370 +#: sql_help.c:2425 sql_help.c:2426 sql_help.c:2490 sql_help.c:2493 +#: sql_help.c:2527 sql_help.c:2628 sql_help.c:2629 sql_help.c:2656 +#: sql_help.c:2785 sql_help.c:2824 sql_help.c:2934 sql_help.c:2947 +#: sql_help.c:2961 sql_help.c:3002 sql_help.c:3010 sql_help.c:3032 +#: sql_help.c:3049 sql_help.c:3076 sql_help.c:3283 sql_help.c:3985 +#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718 msgid "value" msgstr "значение" @@ -4506,10 +4506,10 @@ msgstr "значение" msgid "target_role" msgstr "целевая_роль" -#: sql_help.c:203 sql_help.c:923 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3895 sql_help.c:3904 -#: sql_help.c:3923 sql_help.c:3935 sql_help.c:4348 sql_help.c:4357 -#: sql_help.c:4376 sql_help.c:4388 +#: sql_help.c:203 sql_help.c:930 sql_help.c:933 sql_help.c:2288 sql_help.c:2659 +#: sql_help.c:2740 sql_help.c:2745 sql_help.c:3915 sql_help.c:3924 +#: sql_help.c:3943 sql_help.c:3955 sql_help.c:4368 sql_help.c:4377 +#: sql_help.c:4396 sql_help.c:4408 msgid "schema_name" msgstr "имя_схемы" @@ -4523,32 +4523,32 @@ msgstr "где допустимое предложение_GRANT_или_REVOKE:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:979 -#: sql_help.c:1330 sql_help.c:1666 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3944 sql_help.c:3948 -#: sql_help.c:4397 sql_help.c:4401 sql_help.c:4716 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:993 +#: sql_help.c:1344 sql_help.c:1680 sql_help.c:2463 sql_help.c:2464 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2467 sql_help.c:2601 +#: sql_help.c:2696 sql_help.c:2697 sql_help.c:2698 sql_help.c:2699 +#: sql_help.c:2700 sql_help.c:3265 sql_help.c:3266 sql_help.c:3267 +#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3964 sql_help.c:3968 +#: sql_help.c:4417 sql_help.c:4421 sql_help.c:4736 msgid "role_name" msgstr "имя_роли" -#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:922 sql_help.c:1346 -#: sql_help.c:1348 sql_help.c:1400 sql_help.c:1412 sql_help.c:1437 -#: sql_help.c:1696 sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 -#: sql_help.c:2364 sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 -#: sql_help.c:2786 sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 -#: sql_help.c:2936 sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 -#: sql_help.c:3996 sql_help.c:4011 sql_help.c:4013 sql_help.c:4102 -#: sql_help.c:4105 sql_help.c:4107 sql_help.c:4567 sql_help.c:4568 -#: sql_help.c:4577 sql_help.c:4624 sql_help.c:4625 sql_help.c:4626 -#: sql_help.c:4627 sql_help.c:4628 sql_help.c:4629 sql_help.c:4669 -#: sql_help.c:4670 sql_help.c:4675 sql_help.c:4680 sql_help.c:4824 -#: sql_help.c:4825 sql_help.c:4834 sql_help.c:4881 sql_help.c:4882 -#: sql_help.c:4883 sql_help.c:4884 sql_help.c:4885 sql_help.c:4886 -#: sql_help.c:4940 sql_help.c:4942 sql_help.c:5002 sql_help.c:5062 -#: sql_help.c:5063 sql_help.c:5072 sql_help.c:5119 sql_help.c:5120 -#: sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 sql_help.c:5124 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:937 sql_help.c:1360 +#: sql_help.c:1362 sql_help.c:1414 sql_help.c:1426 sql_help.c:1451 +#: sql_help.c:1710 sql_help.c:2257 sql_help.c:2261 sql_help.c:2373 +#: sql_help.c:2378 sql_help.c:2486 sql_help.c:2663 sql_help.c:2801 +#: sql_help.c:2806 sql_help.c:2808 sql_help.c:2929 sql_help.c:2942 +#: sql_help.c:2956 sql_help.c:2965 sql_help.c:2977 sql_help.c:3006 +#: sql_help.c:4016 sql_help.c:4031 sql_help.c:4033 sql_help.c:4122 +#: sql_help.c:4125 sql_help.c:4127 sql_help.c:4587 sql_help.c:4588 +#: sql_help.c:4597 sql_help.c:4644 sql_help.c:4645 sql_help.c:4646 +#: sql_help.c:4647 sql_help.c:4648 sql_help.c:4649 sql_help.c:4689 +#: sql_help.c:4690 sql_help.c:4695 sql_help.c:4700 sql_help.c:4844 +#: sql_help.c:4845 sql_help.c:4854 sql_help.c:4901 sql_help.c:4902 +#: sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5022 sql_help.c:5082 +#: sql_help.c:5083 sql_help.c:5092 sql_help.c:5139 sql_help.c:5140 +#: sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 sql_help.c:5144 msgid "expression" msgstr "выражение" @@ -4557,14 +4557,14 @@ msgid "domain_constraint" msgstr "ограничение_домена" #: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 -#: sql_help.c:488 sql_help.c:1323 sql_help.c:1370 sql_help.c:1371 -#: sql_help.c:1372 sql_help.c:1399 sql_help.c:1411 sql_help.c:1428 -#: sql_help.c:1864 sql_help.c:1866 sql_help.c:2246 sql_help.c:2358 -#: sql_help.c:2363 sql_help.c:2944 sql_help.c:2956 sql_help.c:4008 +#: sql_help.c:488 sql_help.c:1337 sql_help.c:1384 sql_help.c:1385 +#: sql_help.c:1386 sql_help.c:1413 sql_help.c:1425 sql_help.c:1442 +#: sql_help.c:1878 sql_help.c:1880 sql_help.c:2260 sql_help.c:2372 +#: sql_help.c:2377 sql_help.c:2964 sql_help.c:2976 sql_help.c:4028 msgid "constraint_name" msgstr "имя_ограничения" -#: sql_help.c:254 sql_help.c:1324 +#: sql_help.c:254 sql_help.c:1338 msgid "new_constraint_name" msgstr "имя_нового_ограничения" @@ -4572,7 +4572,7 @@ msgstr "имя_нового_ограничения" msgid "where domain_constraint is:" msgstr "где ограничение_домена может быть следующим:" -#: sql_help.c:330 sql_help.c:1109 +#: sql_help.c:330 sql_help.c:1123 msgid "new_version" msgstr "новая_версия" @@ -4588,83 +4588,83 @@ msgstr "где элемент_объект:" #: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 #: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 #: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 -#: sql_help.c:381 sql_help.c:1856 sql_help.c:1861 sql_help.c:1868 -#: sql_help.c:1869 sql_help.c:1870 sql_help.c:1871 sql_help.c:1872 -#: sql_help.c:1873 sql_help.c:1874 sql_help.c:1879 sql_help.c:1881 -#: sql_help.c:1885 sql_help.c:1887 sql_help.c:1891 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 -#: sql_help.c:1907 sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 -#: sql_help.c:1919 sql_help.c:1920 sql_help.c:4470 sql_help.c:4475 -#: sql_help.c:4476 sql_help.c:4477 sql_help.c:4478 sql_help.c:4484 -#: sql_help.c:4485 sql_help.c:4490 sql_help.c:4491 sql_help.c:4496 -#: sql_help.c:4497 sql_help.c:4498 sql_help.c:4499 sql_help.c:4500 -#: sql_help.c:4501 +#: sql_help.c:381 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 +#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 +#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 +#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 +#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 +#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 +#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4490 sql_help.c:4495 +#: sql_help.c:4496 sql_help.c:4497 sql_help.c:4498 sql_help.c:4504 +#: sql_help.c:4505 sql_help.c:4510 sql_help.c:4511 sql_help.c:4516 +#: sql_help.c:4517 sql_help.c:4518 sql_help.c:4519 sql_help.c:4520 +#: sql_help.c:4521 msgid "object_name" msgstr "имя_объекта" # well-spelled: агр -#: sql_help.c:339 sql_help.c:1857 sql_help.c:4473 +#: sql_help.c:339 sql_help.c:1871 sql_help.c:4493 msgid "aggregate_name" msgstr "имя_агр_функции" -#: sql_help.c:341 sql_help.c:1859 sql_help.c:2143 sql_help.c:2147 -#: sql_help.c:2149 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1873 sql_help.c:2157 sql_help.c:2161 +#: sql_help.c:2163 sql_help.c:3392 msgid "source_type" msgstr "исходный_тип" -#: sql_help.c:342 sql_help.c:1860 sql_help.c:2144 sql_help.c:2148 -#: sql_help.c:2150 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1874 sql_help.c:2158 sql_help.c:2162 +#: sql_help.c:2164 sql_help.c:3393 msgid "target_type" msgstr "целевой_тип" -#: sql_help.c:349 sql_help.c:796 sql_help.c:1875 sql_help.c:2145 -#: sql_help.c:2186 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4372 sql_help.c:4479 sql_help.c:4596 -#: sql_help.c:4600 sql_help.c:4604 sql_help.c:4607 sql_help.c:4853 -#: sql_help.c:4857 sql_help.c:4861 sql_help.c:4864 sql_help.c:5091 -#: sql_help.c:5095 sql_help.c:5099 sql_help.c:5102 +#: sql_help.c:349 sql_help.c:796 sql_help.c:1889 sql_help.c:2159 +#: sql_help.c:2200 sql_help.c:2276 sql_help.c:2544 sql_help.c:2575 +#: sql_help.c:3152 sql_help.c:4392 sql_help.c:4499 sql_help.c:4616 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4627 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5111 +#: sql_help.c:5115 sql_help.c:5119 sql_help.c:5122 msgid "function_name" msgstr "имя_функции" -#: sql_help.c:354 sql_help.c:789 sql_help.c:1882 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:789 sql_help.c:1896 sql_help.c:2568 msgid "operator_name" msgstr "имя_оператора" -#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1883 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1897 +#: sql_help.c:2545 sql_help.c:3516 msgid "left_type" msgstr "тип_слева" -#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1884 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1898 +#: sql_help.c:2546 sql_help.c:3517 msgid "right_type" msgstr "тип_справа" #: sql_help.c:358 sql_help.c:360 sql_help.c:752 sql_help.c:755 sql_help.c:758 #: sql_help.c:787 sql_help.c:799 sql_help.c:807 sql_help.c:810 sql_help.c:813 -#: sql_help.c:1417 sql_help.c:1886 sql_help.c:1888 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:1431 sql_help.c:1900 sql_help.c:1902 sql_help.c:2565 +#: sql_help.c:2586 sql_help.c:2982 sql_help.c:3526 sql_help.c:3535 msgid "index_method" msgstr "метод_индекса" -#: sql_help.c:362 sql_help.c:1892 sql_help.c:4486 +#: sql_help.c:362 sql_help.c:1906 sql_help.c:4506 msgid "procedure_name" msgstr "имя_процедуры" -#: sql_help.c:366 sql_help.c:1898 sql_help.c:3919 sql_help.c:4492 +#: sql_help.c:366 sql_help.c:1912 sql_help.c:3939 sql_help.c:4512 msgid "routine_name" msgstr "имя_подпрограммы" -#: sql_help.c:378 sql_help.c:1389 sql_help.c:1915 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3941 sql_help.c:4394 +#: sql_help.c:378 sql_help.c:1403 sql_help.c:1929 sql_help.c:2420 +#: sql_help.c:2626 sql_help.c:2937 sql_help.c:3119 sql_help.c:3697 +#: sql_help.c:3961 sql_help.c:4414 msgid "type_name" msgstr "имя_типа" -#: sql_help.c:379 sql_help.c:1916 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3926 -#: sql_help.c:4379 +#: sql_help.c:379 sql_help.c:1930 sql_help.c:2419 sql_help.c:2625 +#: sql_help.c:3120 sql_help.c:3350 sql_help.c:3698 sql_help.c:3946 +#: sql_help.c:4399 msgid "lang_name" msgstr "имя_языка" @@ -4672,147 +4672,147 @@ msgstr "имя_языка" msgid "and aggregate_signature is:" msgstr "и сигнатура_агр_функции:" -#: sql_help.c:405 sql_help.c:2010 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2024 sql_help.c:2301 msgid "handler_function" msgstr "функция_обработчик" -#: sql_help.c:406 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2302 msgid "validator_function" msgstr "функция_проверки" -#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1013 -#: sql_help.c:1318 sql_help.c:1593 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1027 +#: sql_help.c:1332 sql_help.c:1607 msgid "action" msgstr "действие" #: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 #: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 #: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 -#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:921 sql_help.c:1090 -#: sql_help.c:1320 sql_help.c:1338 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1347 sql_help.c:1349 sql_help.c:1350 sql_help.c:1351 -#: sql_help.c:1352 sql_help.c:1354 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1360 sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 -#: sql_help.c:1413 sql_help.c:1415 sql_help.c:1422 sql_help.c:1431 -#: sql_help.c:1436 sql_help.c:1443 sql_help.c:1444 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1702 sql_help.c:1738 sql_help.c:1863 -#: sql_help.c:1976 sql_help.c:1982 sql_help.c:1995 sql_help.c:1996 -#: sql_help.c:1997 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3995 sql_help.c:4010 sql_help.c:4012 -#: sql_help.c:4014 sql_help.c:4101 sql_help.c:4104 sql_help.c:4106 -#: sql_help.c:4108 sql_help.c:4351 sql_help.c:4352 sql_help.c:4472 -#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4641 sql_help.c:4890 -#: sql_help.c:4896 sql_help.c:4898 sql_help.c:4939 sql_help.c:4941 -#: sql_help.c:4943 sql_help.c:4990 sql_help.c:5128 sql_help.c:5134 -#: sql_help.c:5136 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:936 sql_help.c:1104 +#: sql_help.c:1334 sql_help.c:1352 sql_help.c:1356 sql_help.c:1357 +#: sql_help.c:1361 sql_help.c:1363 sql_help.c:1364 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1368 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1374 sql_help.c:1377 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1436 sql_help.c:1445 +#: sql_help.c:1450 sql_help.c:1457 sql_help.c:1458 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1716 sql_help.c:1752 sql_help.c:1877 +#: sql_help.c:1990 sql_help.c:1996 sql_help.c:2009 sql_help.c:2010 +#: sql_help.c:2011 sql_help.c:2351 sql_help.c:2364 sql_help.c:2417 +#: sql_help.c:2485 sql_help.c:2491 sql_help.c:2524 sql_help.c:2662 +#: sql_help.c:2770 sql_help.c:2805 sql_help.c:2807 sql_help.c:2919 +#: sql_help.c:2928 sql_help.c:2938 sql_help.c:2941 sql_help.c:2951 +#: sql_help.c:2955 sql_help.c:2978 sql_help.c:2980 sql_help.c:2987 +#: sql_help.c:3000 sql_help.c:3005 sql_help.c:3012 sql_help.c:3013 +#: sql_help.c:3029 sql_help.c:3155 sql_help.c:3295 sql_help.c:3918 +#: sql_help.c:3919 sql_help.c:4015 sql_help.c:4030 sql_help.c:4032 +#: sql_help.c:4034 sql_help.c:4121 sql_help.c:4124 sql_help.c:4126 +#: sql_help.c:4128 sql_help.c:4371 sql_help.c:4372 sql_help.c:4492 +#: sql_help.c:4653 sql_help.c:4659 sql_help.c:4661 sql_help.c:4910 +#: sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 sql_help.c:4961 +#: sql_help.c:4963 sql_help.c:5010 sql_help.c:5148 sql_help.c:5154 +#: sql_help.c:5156 msgid "column_name" msgstr "имя_столбца" -#: sql_help.c:457 sql_help.c:682 sql_help.c:1321 sql_help.c:1703 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1335 sql_help.c:1717 msgid "new_column_name" msgstr "новое_имя_столбца" -#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1034 -#: sql_help.c:1337 sql_help.c:1603 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1048 +#: sql_help.c:1351 sql_help.c:1617 msgid "where action is one of:" msgstr "где допустимое действие:" -#: sql_help.c:464 sql_help.c:469 sql_help.c:1082 sql_help.c:1339 -#: sql_help.c:1344 sql_help.c:1605 sql_help.c:1609 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4160 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1096 sql_help.c:1353 +#: sql_help.c:1358 sql_help.c:1619 sql_help.c:1623 sql_help.c:2255 +#: sql_help.c:2352 sql_help.c:2564 sql_help.c:2763 sql_help.c:2920 +#: sql_help.c:3202 sql_help.c:4180 msgid "data_type" msgstr "тип_данных" -#: sql_help.c:465 sql_help.c:470 sql_help.c:1340 sql_help.c:1345 -#: sql_help.c:1438 sql_help.c:1606 sql_help.c:1610 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4005 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1354 sql_help.c:1359 +#: sql_help.c:1452 sql_help.c:1620 sql_help.c:1624 sql_help.c:2256 +#: sql_help.c:2355 sql_help.c:2487 sql_help.c:2922 sql_help.c:2930 +#: sql_help.c:2943 sql_help.c:2957 sql_help.c:3007 sql_help.c:3203 +#: sql_help.c:3209 sql_help.c:4025 msgid "collation" msgstr "правило_сортировки" -#: sql_help.c:466 sql_help.c:1341 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1355 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2923 sql_help.c:2939 sql_help.c:2952 msgid "column_constraint" msgstr "ограничение_столбца" -#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1359 sql_help.c:4987 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1373 sql_help.c:5007 msgid "integer" msgstr "целое" -#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1361 -#: sql_help.c:1364 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1375 +#: sql_help.c:1378 msgid "attribute_option" msgstr "атрибут" -#: sql_help.c:486 sql_help.c:1368 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1382 sql_help.c:2357 sql_help.c:2366 +#: sql_help.c:2924 sql_help.c:2940 sql_help.c:2953 msgid "table_constraint" msgstr "ограничение_таблицы" -#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1373 -#: sql_help.c:1374 sql_help.c:1375 sql_help.c:1376 sql_help.c:1917 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1387 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 sql_help.c:1931 msgid "trigger_name" msgstr "имя_триггера" -#: sql_help.c:493 sql_help.c:494 sql_help.c:1387 sql_help.c:1388 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1401 sql_help.c:1402 +#: sql_help.c:2358 sql_help.c:2363 sql_help.c:2927 sql_help.c:2950 msgid "parent_table" msgstr "таблица_родитель" -#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1033 -#: sql_help.c:1562 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1047 +#: sql_help.c:1576 sql_help.c:2287 msgid "extension_name" msgstr "имя_расширения" -#: sql_help.c:555 sql_help.c:1035 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1049 sql_help.c:2421 msgid "execution_cost" msgstr "стоимость_выполнения" -#: sql_help.c:556 sql_help.c:1036 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1050 sql_help.c:2422 msgid "result_rows" msgstr "строк_в_результате" -#: sql_help.c:557 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2423 msgid "support_function" msgstr "вспомогательная_функция" -#: sql_help.c:579 sql_help.c:581 sql_help.c:958 sql_help.c:966 sql_help.c:970 -#: sql_help.c:973 sql_help.c:976 sql_help.c:1645 sql_help.c:1653 -#: sql_help.c:1657 sql_help.c:1660 sql_help.c:1663 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3896 -#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3902 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3914 sql_help.c:3915 sql_help.c:3917 -#: sql_help.c:3918 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:3942 sql_help.c:3943 sql_help.c:3945 -#: sql_help.c:3946 sql_help.c:4349 sql_help.c:4350 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4367 -#: sql_help.c:4368 sql_help.c:4370 sql_help.c:4371 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 sql_help.c:4395 -#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 +#: sql_help.c:579 sql_help.c:581 sql_help.c:972 sql_help.c:980 sql_help.c:984 +#: sql_help.c:987 sql_help.c:990 sql_help.c:1659 sql_help.c:1667 +#: sql_help.c:1671 sql_help.c:1674 sql_help.c:1677 sql_help.c:2741 +#: sql_help.c:2743 sql_help.c:2746 sql_help.c:2747 sql_help.c:3916 +#: sql_help.c:3917 sql_help.c:3921 sql_help.c:3922 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3928 sql_help.c:3929 sql_help.c:3931 +#: sql_help.c:3932 sql_help.c:3934 sql_help.c:3935 sql_help.c:3937 +#: sql_help.c:3938 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:3956 sql_help.c:3957 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3962 sql_help.c:3963 sql_help.c:3965 +#: sql_help.c:3966 sql_help.c:4369 sql_help.c:4370 sql_help.c:4374 +#: sql_help.c:4375 sql_help.c:4378 sql_help.c:4379 sql_help.c:4381 +#: sql_help.c:4382 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4397 +#: sql_help.c:4398 sql_help.c:4400 sql_help.c:4401 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 msgid "role_specification" msgstr "указание_роли" -#: sql_help.c:580 sql_help.c:582 sql_help.c:1676 sql_help.c:2210 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4726 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1690 sql_help.c:2224 +#: sql_help.c:2749 sql_help.c:3280 sql_help.c:3731 sql_help.c:4746 msgid "user_name" msgstr "имя_пользователя" -#: sql_help.c:583 sql_help.c:978 sql_help.c:1665 sql_help.c:2728 -#: sql_help.c:3947 sql_help.c:4400 +#: sql_help.c:583 sql_help.c:992 sql_help.c:1679 sql_help.c:2748 +#: sql_help.c:3967 sql_help.c:4420 msgid "where role_specification can be:" msgstr "где допустимое указание_роли:" @@ -4820,22 +4820,22 @@ msgstr "где допустимое указание_роли:" msgid "group_name" msgstr "имя_группы" -#: sql_help.c:606 sql_help.c:1434 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3938 -#: sql_help.c:4391 +#: sql_help.c:606 sql_help.c:1448 sql_help.c:2234 sql_help.c:2494 +#: sql_help.c:2528 sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 +#: sql_help.c:3003 sql_help.c:3033 sql_help.c:3045 sql_help.c:3958 +#: sql_help.c:4411 msgid "tablespace_name" msgstr "табл_пространство" -#: sql_help.c:608 sql_help.c:701 sql_help.c:1381 sql_help.c:1391 -#: sql_help.c:1429 sql_help.c:1792 sql_help.c:1795 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1395 sql_help.c:1405 +#: sql_help.c:1443 sql_help.c:1806 sql_help.c:1809 msgid "index_name" msgstr "имя_индекса" -#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1384 -#: sql_help.c:1386 sql_help.c:1432 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1398 +#: sql_help.c:1400 sql_help.c:1446 sql_help.c:2492 sql_help.c:2526 +#: sql_help.c:2933 sql_help.c:2946 sql_help.c:2960 sql_help.c:3001 +#: sql_help.c:3031 msgid "storage_parameter" msgstr "параметр_хранения" @@ -4843,1849 +4843,1858 @@ msgstr "параметр_хранения" msgid "column_number" msgstr "номер_столбца" -#: sql_help.c:641 sql_help.c:1880 sql_help.c:4483 +#: sql_help.c:641 sql_help.c:1894 sql_help.c:4503 msgid "large_object_oid" msgstr "oid_большого_объекта" -#: sql_help.c:700 sql_help.c:1367 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1381 sql_help.c:2921 msgid "compression_method" msgstr "метод_сжатия" -#: sql_help.c:702 sql_help.c:1382 +#: sql_help.c:702 sql_help.c:1396 msgid "new_access_method" msgstr "новый_метод_доступа" -#: sql_help.c:735 sql_help.c:2535 +#: sql_help.c:735 sql_help.c:2549 msgid "res_proc" msgstr "процедура_ограничения" -#: sql_help.c:736 sql_help.c:2536 +#: sql_help.c:736 sql_help.c:2550 msgid "join_proc" msgstr "процедура_соединения" -#: sql_help.c:788 sql_help.c:800 sql_help.c:2553 +#: sql_help.c:788 sql_help.c:800 sql_help.c:2567 msgid "strategy_number" msgstr "номер_стратегии" #: sql_help.c:790 sql_help.c:791 sql_help.c:794 sql_help.c:795 sql_help.c:801 -#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2569 sql_help.c:2570 +#: sql_help.c:2573 sql_help.c:2574 msgid "op_type" msgstr "тип_операции" -#: sql_help.c:792 sql_help.c:2557 +#: sql_help.c:792 sql_help.c:2571 msgid "sort_family_name" msgstr "семейство_сортировки" -#: sql_help.c:793 sql_help.c:803 sql_help.c:2558 +#: sql_help.c:793 sql_help.c:803 sql_help.c:2572 msgid "support_number" msgstr "номер_опорной_процедуры" -#: sql_help.c:797 sql_help.c:2146 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:797 sql_help.c:2160 sql_help.c:2576 sql_help.c:3122 +#: sql_help.c:3124 msgid "argument_type" msgstr "тип_аргумента" -#: sql_help.c:828 sql_help.c:831 sql_help.c:920 sql_help.c:1049 sql_help.c:1089 -#: sql_help.c:1558 sql_help.c:1561 sql_help.c:1737 sql_help.c:1791 -#: sql_help.c:1794 sql_help.c:1865 sql_help.c:1890 sql_help.c:1903 -#: sql_help.c:1918 sql_help.c:1975 sql_help.c:1981 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3894 sql_help.c:3900 -#: sql_help.c:3961 sql_help.c:3993 sql_help.c:4347 sql_help.c:4353 -#: sql_help.c:4471 sql_help.c:4582 sql_help.c:4584 sql_help.c:4646 -#: sql_help.c:4685 sql_help.c:4839 sql_help.c:4841 sql_help.c:4903 -#: sql_help.c:4937 sql_help.c:4989 sql_help.c:5077 sql_help.c:5079 -#: sql_help.c:5141 +#: sql_help.c:828 sql_help.c:831 sql_help.c:932 sql_help.c:935 sql_help.c:1063 +#: sql_help.c:1103 sql_help.c:1572 sql_help.c:1575 sql_help.c:1751 +#: sql_help.c:1805 sql_help.c:1808 sql_help.c:1879 sql_help.c:1904 +#: sql_help.c:1917 sql_help.c:1932 sql_help.c:1989 sql_help.c:1995 +#: sql_help.c:2350 sql_help.c:2362 sql_help.c:2483 sql_help.c:2523 +#: sql_help.c:2600 sql_help.c:2661 sql_help.c:2717 sql_help.c:2769 +#: sql_help.c:2802 sql_help.c:2809 sql_help.c:2918 sql_help.c:2936 +#: sql_help.c:2949 sql_help.c:3028 sql_help.c:3148 sql_help.c:3329 +#: sql_help.c:3552 sql_help.c:3601 sql_help.c:3707 sql_help.c:3914 +#: sql_help.c:3920 sql_help.c:3981 sql_help.c:4013 sql_help.c:4367 +#: sql_help.c:4373 sql_help.c:4491 sql_help.c:4602 sql_help.c:4604 +#: sql_help.c:4666 sql_help.c:4705 sql_help.c:4859 sql_help.c:4861 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5009 sql_help.c:5097 +#: sql_help.c:5099 sql_help.c:5161 msgid "table_name" msgstr "имя_таблицы" -#: sql_help.c:833 sql_help.c:2588 +#: sql_help.c:833 sql_help.c:2602 msgid "using_expression" msgstr "выражение_использования" -#: sql_help.c:834 sql_help.c:2589 +#: sql_help.c:834 sql_help.c:2603 msgid "check_expression" msgstr "выражение_проверки" -#: sql_help.c:907 sql_help.c:909 sql_help.c:911 sql_help.c:2636 +#: sql_help.c:916 sql_help.c:918 sql_help.c:2654 msgid "publication_object" msgstr "объект_публикации" -#: sql_help.c:913 sql_help.c:2637 +#: sql_help.c:920 +msgid "publication_drop_object" +msgstr "удаляемый_объект_публикации" + +#: sql_help.c:922 sql_help.c:2655 msgid "publication_parameter" msgstr "параметр_публикации" -#: sql_help.c:919 sql_help.c:2639 +#: sql_help.c:928 sql_help.c:2657 msgid "where publication_object is one of:" msgstr "где объект_публикации:" -#: sql_help.c:962 sql_help.c:1649 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:929 sql_help.c:1745 sql_help.c:1746 sql_help.c:2658 +#: sql_help.c:4996 sql_help.c:4997 +msgid "table_and_columns" +msgstr "таблица_и_столбцы" + +#: sql_help.c:931 +msgid "and publication_drop_object is one of:" +msgstr "и удаляемый_объект_публикации:" + +#: sql_help.c:934 sql_help.c:1750 sql_help.c:2660 sql_help.c:5008 +msgid "and table_and_columns is:" +msgstr "и таблица_и_столбцы:" + +#: sql_help.c:976 sql_help.c:1663 sql_help.c:2461 sql_help.c:2694 +#: sql_help.c:3263 msgid "password" msgstr "пароль" -#: sql_help.c:963 sql_help.c:1650 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:977 sql_help.c:1664 sql_help.c:2462 sql_help.c:2695 +#: sql_help.c:3264 msgid "timestamp" msgstr "timestamp" -#: sql_help.c:967 sql_help.c:971 sql_help.c:974 sql_help.c:977 sql_help.c:1654 -#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:3907 -#: sql_help.c:4360 +#: sql_help.c:981 sql_help.c:985 sql_help.c:988 sql_help.c:991 sql_help.c:1668 +#: sql_help.c:1672 sql_help.c:1675 sql_help.c:1678 sql_help.c:3927 +#: sql_help.c:4380 msgid "database_name" msgstr "имя_БД" -#: sql_help.c:1083 sql_help.c:2744 +#: sql_help.c:1097 sql_help.c:2764 msgid "increment" msgstr "шаг" -#: sql_help.c:1084 sql_help.c:2745 +#: sql_help.c:1098 sql_help.c:2765 msgid "minvalue" msgstr "мин_значение" -#: sql_help.c:1085 sql_help.c:2746 +#: sql_help.c:1099 sql_help.c:2766 msgid "maxvalue" msgstr "макс_значение" -#: sql_help.c:1086 sql_help.c:2747 sql_help.c:4580 sql_help.c:4683 -#: sql_help.c:4837 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1100 sql_help.c:2767 sql_help.c:4600 sql_help.c:4703 +#: sql_help.c:4857 sql_help.c:5026 sql_help.c:5095 msgid "start" msgstr "начальное_значение" -#: sql_help.c:1087 sql_help.c:1356 +#: sql_help.c:1101 sql_help.c:1370 msgid "restart" msgstr "значение_перезапуска" -#: sql_help.c:1088 sql_help.c:2748 +#: sql_help.c:1102 sql_help.c:2768 msgid "cache" msgstr "кеш" -#: sql_help.c:1133 +#: sql_help.c:1147 msgid "new_target" msgstr "новое_имя" -#: sql_help.c:1152 sql_help.c:2801 +#: sql_help.c:1166 sql_help.c:2821 msgid "conninfo" msgstr "строка_подключения" -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:2802 +#: sql_help.c:1168 sql_help.c:1172 sql_help.c:1176 sql_help.c:2822 msgid "publication_name" msgstr "имя_публикации" -#: sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1169 sql_help.c:1173 sql_help.c:1177 msgid "publication_option" msgstr "параметр_публикации" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "refresh_option" msgstr "параметр_обновления" -#: sql_help.c:1171 sql_help.c:2803 +#: sql_help.c:1185 sql_help.c:2823 msgid "subscription_parameter" msgstr "параметр_подписки" -#: sql_help.c:1174 +#: sql_help.c:1188 msgid "skip_option" msgstr "параметр_пропуска" -#: sql_help.c:1333 sql_help.c:1336 +#: sql_help.c:1347 sql_help.c:1350 msgid "partition_name" msgstr "имя_секции" -#: sql_help.c:1334 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1348 sql_help.c:2367 sql_help.c:2954 msgid "partition_bound_spec" msgstr "указание_границ_секции" -#: sql_help.c:1353 sql_help.c:1403 sql_help.c:2948 +#: sql_help.c:1367 sql_help.c:1417 sql_help.c:2968 msgid "sequence_options" msgstr "параметры_последовательности" -#: sql_help.c:1355 +#: sql_help.c:1369 msgid "sequence_option" msgstr "параметр_последовательности" -#: sql_help.c:1369 +#: sql_help.c:1383 msgid "table_constraint_using_index" msgstr "ограничение_таблицы_с_индексом" -#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1391 sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 msgid "rewrite_rule_name" msgstr "имя_правила_перезаписи" -#: sql_help.c:1392 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1406 sql_help.c:2379 sql_help.c:2993 msgid "and partition_bound_spec is:" msgstr "и указание_границ_секции:" -#: sql_help.c:1393 sql_help.c:1394 sql_help.c:1395 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1407 sql_help.c:1408 sql_help.c:1409 sql_help.c:2380 +#: sql_help.c:2381 sql_help.c:2382 sql_help.c:2994 sql_help.c:2995 +#: sql_help.c:2996 msgid "partition_bound_expr" msgstr "выражение_границ_секции" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1410 sql_help.c:1411 sql_help.c:2383 sql_help.c:2384 +#: sql_help.c:2997 sql_help.c:2998 msgid "numeric_literal" msgstr "числовая_константа" -#: sql_help.c:1398 +#: sql_help.c:1412 msgid "and column_constraint is:" msgstr "и ограничение_столбца:" -#: sql_help.c:1401 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1415 sql_help.c:2374 sql_help.c:2415 sql_help.c:2624 +#: sql_help.c:2966 msgid "default_expr" msgstr "выражение_по_умолчанию" -#: sql_help.c:1402 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1416 sql_help.c:2375 sql_help.c:2967 msgid "generation_expr" msgstr "генерирующее_выражение" -#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1414 sql_help.c:1416 -#: sql_help.c:1420 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1418 sql_help.c:1419 sql_help.c:1428 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:2969 sql_help.c:2970 sql_help.c:2979 +#: sql_help.c:2981 sql_help.c:2985 msgid "index_parameters" msgstr "параметры_индекса" -#: sql_help.c:1406 sql_help.c:1423 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1420 sql_help.c:1437 sql_help.c:2971 sql_help.c:2988 msgid "reftable" msgstr "целевая_таблица" -#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1421 sql_help.c:1438 sql_help.c:2972 sql_help.c:2989 msgid "refcolumn" msgstr "целевой_столбец" -#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1425 sql_help.c:1426 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1439 sql_help.c:1440 +#: sql_help.c:2973 sql_help.c:2974 sql_help.c:2990 sql_help.c:2991 msgid "referential_action" msgstr "ссылочное_действие" -#: sql_help.c:1410 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1424 sql_help.c:2376 sql_help.c:2975 msgid "and table_constraint is:" msgstr "и ограничение_таблицы:" -#: sql_help.c:1418 sql_help.c:2963 +#: sql_help.c:1432 sql_help.c:2983 msgid "exclude_element" msgstr "объект_исключения" -#: sql_help.c:1419 sql_help.c:2964 sql_help.c:4578 sql_help.c:4681 -#: sql_help.c:4835 sql_help.c:5004 sql_help.c:5073 +#: sql_help.c:1433 sql_help.c:2984 sql_help.c:4598 sql_help.c:4701 +#: sql_help.c:4855 sql_help.c:5024 sql_help.c:5093 msgid "operator" msgstr "оператор" -#: sql_help.c:1421 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1435 sql_help.c:2495 sql_help.c:2986 msgid "predicate" msgstr "предикат" -#: sql_help.c:1427 +#: sql_help.c:1441 msgid "and table_constraint_using_index is:" msgstr "и ограничение_таблицы_с_индексом:" -#: sql_help.c:1430 sql_help.c:2979 +#: sql_help.c:1444 sql_help.c:2999 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "параметры_индекса в ограничениях UNIQUE, PRIMARY KEY и EXCLUDE:" -#: sql_help.c:1435 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:3004 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "объект_исключения в ограничении EXCLUDE:" -#: sql_help.c:1439 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4006 +#: sql_help.c:1453 sql_help.c:2488 sql_help.c:2931 sql_help.c:2944 +#: sql_help.c:2958 sql_help.c:3008 sql_help.c:4026 msgid "opclass" msgstr "класс_оператора" -#: sql_help.c:1440 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1454 sql_help.c:2489 sql_help.c:3009 msgid "opclass_parameter" msgstr "параметр_класса_оп" -#: sql_help.c:1442 sql_help.c:2991 +#: sql_help.c:1456 sql_help.c:3011 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "ссылочное действие в ограничении FOREIGN KEY/REFERENCES:" -#: sql_help.c:1460 sql_help.c:1463 sql_help.c:3028 +#: sql_help.c:1474 sql_help.c:1477 sql_help.c:3048 msgid "tablespace_option" msgstr "параметр_табл_пространства" -#: sql_help.c:1484 sql_help.c:1487 sql_help.c:1493 sql_help.c:1497 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1507 sql_help.c:1511 msgid "token_type" msgstr "тип_фрагмента" -#: sql_help.c:1485 sql_help.c:1488 +#: sql_help.c:1499 sql_help.c:1502 msgid "dictionary_name" msgstr "имя_словаря" -#: sql_help.c:1490 sql_help.c:1494 +#: sql_help.c:1504 sql_help.c:1508 msgid "old_dictionary" msgstr "старый_словарь" -#: sql_help.c:1491 sql_help.c:1495 +#: sql_help.c:1505 sql_help.c:1509 msgid "new_dictionary" msgstr "новый_словарь" -#: sql_help.c:1590 sql_help.c:1604 sql_help.c:1607 sql_help.c:1608 -#: sql_help.c:3181 +#: sql_help.c:1604 sql_help.c:1618 sql_help.c:1621 sql_help.c:1622 +#: sql_help.c:3201 msgid "attribute_name" msgstr "имя_атрибута" -#: sql_help.c:1591 +#: sql_help.c:1605 msgid "new_attribute_name" msgstr "новое_имя_атрибута" -#: sql_help.c:1595 sql_help.c:1599 +#: sql_help.c:1609 sql_help.c:1613 msgid "new_enum_value" msgstr "новое_значение_перечисления" -#: sql_help.c:1596 +#: sql_help.c:1610 msgid "neighbor_enum_value" msgstr "соседнее_значение_перечисления" -#: sql_help.c:1598 +#: sql_help.c:1612 msgid "existing_enum_value" msgstr "существующее_значение_перечисления" -#: sql_help.c:1601 +#: sql_help.c:1615 msgid "property" msgstr "свойство" -#: sql_help.c:1677 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3916 sql_help.c:3962 -#: sql_help.c:4369 +#: sql_help.c:1691 sql_help.c:2359 sql_help.c:2368 sql_help.c:2780 +#: sql_help.c:3281 sql_help.c:3732 sql_help.c:3936 sql_help.c:3982 +#: sql_help.c:4389 msgid "server_name" msgstr "имя_сервера" -#: sql_help.c:1709 sql_help.c:1712 sql_help.c:3276 +#: sql_help.c:1723 sql_help.c:1726 sql_help.c:3296 msgid "view_option_name" msgstr "имя_параметра_представления" -#: sql_help.c:1710 sql_help.c:3277 +#: sql_help.c:1724 sql_help.c:3297 msgid "view_option_value" msgstr "значение_параметра_представления" -#: sql_help.c:1731 sql_help.c:1732 sql_help.c:4976 sql_help.c:4977 -msgid "table_and_columns" -msgstr "таблица_и_столбцы" - -#: sql_help.c:1733 sql_help.c:1796 sql_help.c:1987 sql_help.c:3760 -#: sql_help.c:4204 sql_help.c:4978 +#: sql_help.c:1747 sql_help.c:1810 sql_help.c:2001 sql_help.c:3780 +#: sql_help.c:4224 sql_help.c:4998 msgid "where option can be one of:" msgstr "где допустимый параметр:" -#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1797 sql_help.c:1989 -#: sql_help.c:1992 sql_help.c:2171 sql_help.c:3761 sql_help.c:3762 -#: sql_help.c:3763 sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 -#: sql_help.c:3767 sql_help.c:3768 sql_help.c:4205 sql_help.c:4207 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1748 sql_help.c:1749 sql_help.c:1811 sql_help.c:2003 +#: sql_help.c:2006 sql_help.c:2185 sql_help.c:3781 sql_help.c:3782 +#: sql_help.c:3783 sql_help.c:3784 sql_help.c:3785 sql_help.c:3786 +#: sql_help.c:3787 sql_help.c:3788 sql_help.c:4225 sql_help.c:4227 +#: sql_help.c:4999 sql_help.c:5000 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 msgid "boolean" msgstr "логическое_значение" -#: sql_help.c:1736 sql_help.c:4988 -msgid "and table_and_columns is:" -msgstr "и таблица_и_столбцы:" - -#: sql_help.c:1752 sql_help.c:4742 sql_help.c:4744 sql_help.c:4768 +#: sql_help.c:1766 sql_help.c:4762 sql_help.c:4764 sql_help.c:4788 msgid "transaction_mode" msgstr "режим_транзакции" -#: sql_help.c:1753 sql_help.c:4745 sql_help.c:4769 +#: sql_help.c:1767 sql_help.c:4765 sql_help.c:4789 msgid "where transaction_mode is one of:" msgstr "где допустимый режим_транзакции:" -#: sql_help.c:1762 sql_help.c:4588 sql_help.c:4597 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4608 sql_help.c:4845 sql_help.c:4854 -#: sql_help.c:4858 sql_help.c:4862 sql_help.c:4865 sql_help.c:5083 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:1776 sql_help.c:4608 sql_help.c:4617 sql_help.c:4621 +#: sql_help.c:4625 sql_help.c:4628 sql_help.c:4865 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4882 sql_help.c:4885 sql_help.c:5103 +#: sql_help.c:5112 sql_help.c:5116 sql_help.c:5120 sql_help.c:5123 msgid "argument" msgstr "аргумент" -#: sql_help.c:1862 +#: sql_help.c:1876 msgid "relation_name" msgstr "имя_отношения" -#: sql_help.c:1867 sql_help.c:3910 sql_help.c:4363 +#: sql_help.c:1881 sql_help.c:3930 sql_help.c:4383 msgid "domain_name" msgstr "имя_домена" -#: sql_help.c:1889 +#: sql_help.c:1903 msgid "policy_name" msgstr "имя_политики" -#: sql_help.c:1902 +#: sql_help.c:1916 msgid "rule_name" msgstr "имя_правила" -#: sql_help.c:1921 sql_help.c:4502 +#: sql_help.c:1935 sql_help.c:4522 msgid "string_literal" msgstr "строковая_константа" -#: sql_help.c:1946 sql_help.c:4169 sql_help.c:4416 +#: sql_help.c:1960 sql_help.c:4189 sql_help.c:4436 msgid "transaction_id" msgstr "код_транзакции" -#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4032 +#: sql_help.c:1991 sql_help.c:1998 sql_help.c:4052 msgid "filename" msgstr "имя_файла" -#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1992 sql_help.c:1999 sql_help.c:2719 sql_help.c:2720 +#: sql_help.c:2721 msgid "command" msgstr "команда" -#: sql_help.c:1980 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4016 sql_help.c:4095 sql_help.c:4098 sql_help.c:4571 -#: sql_help.c:4573 sql_help.c:4674 sql_help.c:4676 sql_help.c:4828 -#: sql_help.c:4830 sql_help.c:4946 sql_help.c:5066 sql_help.c:5068 +#: sql_help.c:1994 sql_help.c:2718 sql_help.c:3151 sql_help.c:3332 +#: sql_help.c:4036 sql_help.c:4115 sql_help.c:4118 sql_help.c:4591 +#: sql_help.c:4593 sql_help.c:4694 sql_help.c:4696 sql_help.c:4848 +#: sql_help.c:4850 sql_help.c:4966 sql_help.c:5086 sql_help.c:5088 msgid "condition" msgstr "условие" -#: sql_help.c:1983 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3997 +#: sql_help.c:1997 sql_help.c:2529 sql_help.c:3034 sql_help.c:3298 +#: sql_help.c:3316 sql_help.c:4017 msgid "query" msgstr "запрос" -#: sql_help.c:1988 +#: sql_help.c:2002 msgid "format_name" msgstr "имя_формата" -#: sql_help.c:1990 +#: sql_help.c:2004 msgid "delimiter_character" msgstr "символ_разделитель" -#: sql_help.c:1991 +#: sql_help.c:2005 msgid "null_string" msgstr "представление_NULL" -#: sql_help.c:1993 +#: sql_help.c:2007 msgid "quote_character" msgstr "символ_кавычек" -#: sql_help.c:1994 +#: sql_help.c:2008 msgid "escape_character" msgstr "спецсимвол" -#: sql_help.c:1998 +#: sql_help.c:2012 msgid "encoding_name" msgstr "имя_кодировки" -#: sql_help.c:2009 +#: sql_help.c:2023 msgid "access_method_type" msgstr "тип_метода_доступа" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2102 +#: sql_help.c:2094 sql_help.c:2113 sql_help.c:2116 msgid "arg_data_type" msgstr "тип_данных_аргумента" -#: sql_help.c:2081 sql_help.c:2103 sql_help.c:2111 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "sfunc" msgstr "функция_состояния" -#: sql_help.c:2082 sql_help.c:2104 sql_help.c:2112 +#: sql_help.c:2096 sql_help.c:2118 sql_help.c:2126 msgid "state_data_type" msgstr "тип_данных_состояния" -#: sql_help.c:2083 sql_help.c:2105 sql_help.c:2113 +#: sql_help.c:2097 sql_help.c:2119 sql_help.c:2127 msgid "state_data_size" msgstr "размер_данных_состояния" -#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 +#: sql_help.c:2098 sql_help.c:2120 sql_help.c:2128 msgid "ffunc" msgstr "функция_завершения" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2099 sql_help.c:2129 msgid "combinefunc" msgstr "комбинирующая_функция" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2100 sql_help.c:2130 msgid "serialfunc" msgstr "функция_сериализации" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2101 sql_help.c:2131 msgid "deserialfunc" msgstr "функция_десериализации" -#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2118 +#: sql_help.c:2102 sql_help.c:2121 sql_help.c:2132 msgid "initial_condition" msgstr "начальное_условие" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2103 sql_help.c:2133 msgid "msfunc" msgstr "функция_состояния_движ" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2104 sql_help.c:2134 msgid "minvfunc" msgstr "обратная_функция_движ" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2105 sql_help.c:2135 msgid "mstate_data_type" msgstr "тип_данных_состояния_движ" -#: sql_help.c:2092 sql_help.c:2122 +#: sql_help.c:2106 sql_help.c:2136 msgid "mstate_data_size" msgstr "размер_данных_состояния_движ" -#: sql_help.c:2093 sql_help.c:2123 +#: sql_help.c:2107 sql_help.c:2137 msgid "mffunc" msgstr "функция_завершения_движ" -#: sql_help.c:2094 sql_help.c:2124 +#: sql_help.c:2108 sql_help.c:2138 msgid "minitial_condition" msgstr "начальное_условие_движ" -#: sql_help.c:2095 sql_help.c:2125 +#: sql_help.c:2109 sql_help.c:2139 msgid "sort_operator" msgstr "оператор_сортировки" -#: sql_help.c:2108 +#: sql_help.c:2122 msgid "or the old syntax" msgstr "или старый синтаксис" -#: sql_help.c:2110 +#: sql_help.c:2124 msgid "base_type" msgstr "базовый_тип" -#: sql_help.c:2167 sql_help.c:2214 +#: sql_help.c:2181 sql_help.c:2228 msgid "locale" msgstr "код_локали" -#: sql_help.c:2168 sql_help.c:2215 +#: sql_help.c:2182 sql_help.c:2229 msgid "lc_collate" msgstr "код_правила_сортировки" -#: sql_help.c:2169 sql_help.c:2216 +#: sql_help.c:2183 sql_help.c:2230 msgid "lc_ctype" msgstr "код_классификации_символов" -#: sql_help.c:2170 sql_help.c:4469 +#: sql_help.c:2184 sql_help.c:4489 msgid "provider" msgstr "провайдер" -#: sql_help.c:2172 sql_help.c:2275 +#: sql_help.c:2186 sql_help.c:2289 msgid "version" msgstr "версия" -#: sql_help.c:2174 +#: sql_help.c:2188 msgid "existing_collation" msgstr "существующее_правило_сортировки" -#: sql_help.c:2184 +#: sql_help.c:2198 msgid "source_encoding" msgstr "исходная_кодировка" -#: sql_help.c:2185 +#: sql_help.c:2199 msgid "dest_encoding" msgstr "целевая_кодировка" -#: sql_help.c:2211 sql_help.c:3054 +#: sql_help.c:2225 sql_help.c:3074 msgid "template" msgstr "шаблон" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "encoding" msgstr "кодировка" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "strategy" msgstr "стратегия" -#: sql_help.c:2217 +#: sql_help.c:2231 msgid "icu_locale" msgstr "локаль_icu" -#: sql_help.c:2218 +#: sql_help.c:2232 msgid "locale_provider" msgstr "провайдер_локали" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "collation_version" msgstr "версия_правила_сортировки" -#: sql_help.c:2224 +#: sql_help.c:2238 msgid "oid" msgstr "oid" -#: sql_help.c:2244 +#: sql_help.c:2258 msgid "constraint" msgstr "ограничение" -#: sql_help.c:2245 +#: sql_help.c:2259 msgid "where constraint is:" msgstr "где ограничение:" -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2273 sql_help.c:2716 sql_help.c:3147 msgid "event" msgstr "событие" -#: sql_help.c:2260 +#: sql_help.c:2274 msgid "filter_variable" msgstr "переменная_фильтра" -#: sql_help.c:2261 +#: sql_help.c:2275 msgid "filter_value" msgstr "значение_фильтра" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2371 sql_help.c:2963 msgid "where column_constraint is:" msgstr "где ограничение_столбца:" -#: sql_help.c:2402 +#: sql_help.c:2416 msgid "rettype" msgstr "тип_возврата" -#: sql_help.c:2404 +#: sql_help.c:2418 msgid "column_type" msgstr "тип_столбца" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2427 sql_help.c:2630 msgid "definition" msgstr "определение" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2428 sql_help.c:2631 msgid "obj_file" msgstr "объектный_файл" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2429 sql_help.c:2632 msgid "link_symbol" msgstr "символ_в_экспорте" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2430 sql_help.c:2633 msgid "sql_body" msgstr "тело_sql" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2468 sql_help.c:2701 sql_help.c:3270 msgid "uid" msgstr "uid" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2484 sql_help.c:2525 sql_help.c:2932 sql_help.c:2945 +#: sql_help.c:2959 sql_help.c:3030 msgid "method" msgstr "метод" -#: sql_help.c:2492 +#: sql_help.c:2506 msgid "call_handler" msgstr "обработчик_вызова" -#: sql_help.c:2493 +#: sql_help.c:2507 msgid "inline_handler" msgstr "обработчик_внедрённого_кода" -#: sql_help.c:2494 +#: sql_help.c:2508 msgid "valfunction" msgstr "функция_проверки" -#: sql_help.c:2533 +#: sql_help.c:2547 msgid "com_op" msgstr "коммут_оператор" -#: sql_help.c:2534 +#: sql_help.c:2548 msgid "neg_op" msgstr "обратный_оператор" -#: sql_help.c:2552 +#: sql_help.c:2566 msgid "family_name" msgstr "имя_семейства" -#: sql_help.c:2563 +#: sql_help.c:2577 msgid "storage_type" msgstr "тип_хранения" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2722 sql_help.c:3154 msgid "where event can be one of:" msgstr "где допустимое событие:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2742 sql_help.c:2744 msgid "schema_element" msgstr "элемент_схемы" -#: sql_help.c:2761 +#: sql_help.c:2781 msgid "server_type" msgstr "тип_сервера" -#: sql_help.c:2762 +#: sql_help.c:2782 msgid "server_version" msgstr "версия_сервера" -#: sql_help.c:2763 sql_help.c:3913 sql_help.c:4366 +#: sql_help.c:2783 sql_help.c:3933 sql_help.c:4386 msgid "fdw_name" msgstr "имя_обёртки_сторонних_данных" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2800 sql_help.c:2803 msgid "statistics_name" msgstr "имя_статистики" -#: sql_help.c:2784 +#: sql_help.c:2804 msgid "statistics_kind" msgstr "вид_статистики" -#: sql_help.c:2800 +#: sql_help.c:2820 msgid "subscription_name" msgstr "имя_подписки" -#: sql_help.c:2905 +#: sql_help.c:2925 msgid "source_table" msgstr "исходная_таблица" -#: sql_help.c:2906 +#: sql_help.c:2926 msgid "like_option" msgstr "параметр_порождения" -#: sql_help.c:2972 +#: sql_help.c:2992 msgid "and like_option is:" msgstr "и параметр_порождения:" -#: sql_help.c:3027 +#: sql_help.c:3047 msgid "directory" msgstr "каталог" -#: sql_help.c:3041 +#: sql_help.c:3061 msgid "parser_name" msgstr "имя_анализатора" -#: sql_help.c:3042 +#: sql_help.c:3062 msgid "source_config" msgstr "исходная_конфигурация" -#: sql_help.c:3071 +#: sql_help.c:3091 msgid "start_function" msgstr "функция_начала" -#: sql_help.c:3072 +#: sql_help.c:3092 msgid "gettoken_function" msgstr "функция_выдачи_фрагмента" -#: sql_help.c:3073 +#: sql_help.c:3093 msgid "end_function" msgstr "функция_окончания" -#: sql_help.c:3074 +#: sql_help.c:3094 msgid "lextypes_function" msgstr "функция_лекс_типов" -#: sql_help.c:3075 +#: sql_help.c:3095 msgid "headline_function" msgstr "функция_создания_выдержек" -#: sql_help.c:3087 +#: sql_help.c:3107 msgid "init_function" msgstr "функция_инициализации" -#: sql_help.c:3088 +#: sql_help.c:3108 msgid "lexize_function" msgstr "функция_выделения_лексем" -#: sql_help.c:3101 +#: sql_help.c:3121 msgid "from_sql_function_name" msgstr "имя_функции_из_sql" -#: sql_help.c:3103 +#: sql_help.c:3123 msgid "to_sql_function_name" msgstr "имя_функции_в_sql" -#: sql_help.c:3129 +#: sql_help.c:3149 msgid "referenced_table_name" msgstr "целевая_таблица" -#: sql_help.c:3130 +#: sql_help.c:3150 msgid "transition_relation_name" msgstr "имя_переходного_отношения" -#: sql_help.c:3133 +#: sql_help.c:3153 msgid "arguments" msgstr "аргументы" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "label" msgstr "метка" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "subtype" msgstr "подтип" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "subtype_operator_class" msgstr "класс_оператора_подтипа" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "canonical_function" msgstr "каноническая_функция" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "subtype_diff_function" msgstr "функция_различий_подтипа" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "multirange_type_name" msgstr "имя_мультидиапазонного_типа" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "input_function" msgstr "функция_ввода" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "output_function" msgstr "функция_вывода" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "receive_function" msgstr "функция_получения" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "send_function" msgstr "функция_отправки" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "type_modifier_input_function" msgstr "функция_ввода_модификатора_типа" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "type_modifier_output_function" msgstr "функция_вывода_модификатора_типа" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "analyze_function" msgstr "функция_анализа" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "subscript_function" msgstr "функция_обращения_по_индексу" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "internallength" msgstr "внутр_длина" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "alignment" msgstr "выравнивание" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "storage" msgstr "хранение" -#: sql_help.c:3205 +#: sql_help.c:3225 msgid "like_type" msgstr "тип_образец" -#: sql_help.c:3206 +#: sql_help.c:3226 msgid "category" msgstr "категория" -#: sql_help.c:3207 +#: sql_help.c:3227 msgid "preferred" msgstr "предпочитаемый" -#: sql_help.c:3208 +#: sql_help.c:3228 msgid "default" msgstr "по_умолчанию" -#: sql_help.c:3209 +#: sql_help.c:3229 msgid "element" msgstr "элемент" -#: sql_help.c:3210 +#: sql_help.c:3230 msgid "delimiter" msgstr "разделитель" -#: sql_help.c:3211 +#: sql_help.c:3231 msgid "collatable" msgstr "сортируемый" -#: sql_help.c:3308 sql_help.c:3992 sql_help.c:4084 sql_help.c:4566 -#: sql_help.c:4668 sql_help.c:4823 sql_help.c:4936 sql_help.c:5061 +#: sql_help.c:3328 sql_help.c:4012 sql_help.c:4104 sql_help.c:4586 +#: sql_help.c:4688 sql_help.c:4843 sql_help.c:4956 sql_help.c:5081 msgid "with_query" msgstr "запрос_WITH" -#: sql_help.c:3310 sql_help.c:3994 sql_help.c:4585 sql_help.c:4591 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4602 sql_help.c:4610 -#: sql_help.c:4842 sql_help.c:4848 sql_help.c:4851 sql_help.c:4855 -#: sql_help.c:4859 sql_help.c:4867 sql_help.c:4938 sql_help.c:5080 -#: sql_help.c:5086 sql_help.c:5089 sql_help.c:5093 sql_help.c:5097 -#: sql_help.c:5105 +#: sql_help.c:3330 sql_help.c:4014 sql_help.c:4605 sql_help.c:4611 +#: sql_help.c:4614 sql_help.c:4618 sql_help.c:4622 sql_help.c:4630 +#: sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 sql_help.c:4875 +#: sql_help.c:4879 sql_help.c:4887 sql_help.c:4958 sql_help.c:5100 +#: sql_help.c:5106 sql_help.c:5109 sql_help.c:5113 sql_help.c:5117 +#: sql_help.c:5125 msgid "alias" msgstr "псевдоним" -#: sql_help.c:3311 sql_help.c:4570 sql_help.c:4612 sql_help.c:4614 -#: sql_help.c:4618 sql_help.c:4620 sql_help.c:4621 sql_help.c:4622 -#: sql_help.c:4673 sql_help.c:4827 sql_help.c:4869 sql_help.c:4871 -#: sql_help.c:4875 sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 -#: sql_help.c:4945 sql_help.c:5065 sql_help.c:5107 sql_help.c:5109 -#: sql_help.c:5113 sql_help.c:5115 sql_help.c:5116 sql_help.c:5117 +#: sql_help.c:3331 sql_help.c:4590 sql_help.c:4632 sql_help.c:4634 +#: sql_help.c:4638 sql_help.c:4640 sql_help.c:4641 sql_help.c:4642 +#: sql_help.c:4693 sql_help.c:4847 sql_help.c:4889 sql_help.c:4891 +#: sql_help.c:4895 sql_help.c:4897 sql_help.c:4898 sql_help.c:4899 +#: sql_help.c:4965 sql_help.c:5085 sql_help.c:5127 sql_help.c:5129 +#: sql_help.c:5133 sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "from_item" msgstr "источник_данных" -#: sql_help.c:3313 sql_help.c:3794 sql_help.c:4136 sql_help.c:4947 +#: sql_help.c:3333 sql_help.c:3814 sql_help.c:4156 sql_help.c:4967 msgid "cursor_name" msgstr "имя_курсора" -#: sql_help.c:3314 sql_help.c:4000 sql_help.c:4948 +#: sql_help.c:3334 sql_help.c:4020 sql_help.c:4968 msgid "output_expression" msgstr "выражение_результата" -#: sql_help.c:3315 sql_help.c:4001 sql_help.c:4569 sql_help.c:4671 -#: sql_help.c:4826 sql_help.c:4949 sql_help.c:5064 +#: sql_help.c:3335 sql_help.c:4021 sql_help.c:4589 sql_help.c:4691 +#: sql_help.c:4846 sql_help.c:4969 sql_help.c:5084 msgid "output_name" msgstr "имя_результата" -#: sql_help.c:3331 +#: sql_help.c:3351 msgid "code" msgstr "внедрённый_код" -#: sql_help.c:3736 +#: sql_help.c:3756 msgid "parameter" msgstr "параметр" -#: sql_help.c:3758 sql_help.c:3759 sql_help.c:4161 +#: sql_help.c:3778 sql_help.c:3779 sql_help.c:4181 msgid "statement" msgstr "оператор" -#: sql_help.c:3793 sql_help.c:4135 +#: sql_help.c:3813 sql_help.c:4155 msgid "direction" msgstr "направление" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3815 sql_help.c:4157 msgid "where direction can be one of:" msgstr "где допустимое направление:" -#: sql_help.c:3796 sql_help.c:3797 sql_help.c:3798 sql_help.c:3799 -#: sql_help.c:3800 sql_help.c:4138 sql_help.c:4139 sql_help.c:4140 -#: sql_help.c:4141 sql_help.c:4142 sql_help.c:4579 sql_help.c:4581 -#: sql_help.c:4682 sql_help.c:4684 sql_help.c:4836 sql_help.c:4838 -#: sql_help.c:5005 sql_help.c:5007 sql_help.c:5074 sql_help.c:5076 +#: sql_help.c:3816 sql_help.c:3817 sql_help.c:3818 sql_help.c:3819 +#: sql_help.c:3820 sql_help.c:4158 sql_help.c:4159 sql_help.c:4160 +#: sql_help.c:4161 sql_help.c:4162 sql_help.c:4599 sql_help.c:4601 +#: sql_help.c:4702 sql_help.c:4704 sql_help.c:4856 sql_help.c:4858 +#: sql_help.c:5025 sql_help.c:5027 sql_help.c:5094 sql_help.c:5096 msgid "count" msgstr "число" -#: sql_help.c:3903 sql_help.c:4356 +#: sql_help.c:3923 sql_help.c:4376 msgid "sequence_name" msgstr "имя_последовательности" -#: sql_help.c:3921 sql_help.c:4374 +#: sql_help.c:3941 sql_help.c:4394 msgid "arg_name" msgstr "имя_аргумента" -#: sql_help.c:3922 sql_help.c:4375 +#: sql_help.c:3942 sql_help.c:4395 msgid "arg_type" msgstr "тип_аргумента" -#: sql_help.c:3929 sql_help.c:4382 +#: sql_help.c:3949 sql_help.c:4402 msgid "loid" msgstr "код_БО" -#: sql_help.c:3960 +#: sql_help.c:3980 msgid "remote_schema" msgstr "удалённая_схема" -#: sql_help.c:3963 +#: sql_help.c:3983 msgid "local_schema" msgstr "локальная_схема" -#: sql_help.c:3998 +#: sql_help.c:4018 msgid "conflict_target" msgstr "объект_конфликта" -#: sql_help.c:3999 +#: sql_help.c:4019 msgid "conflict_action" msgstr "действие_при_конфликте" -#: sql_help.c:4002 +#: sql_help.c:4022 msgid "where conflict_target can be one of:" msgstr "где допустимый объект_конфликта:" -#: sql_help.c:4003 +#: sql_help.c:4023 msgid "index_column_name" msgstr "имя_столбца_индекса" -#: sql_help.c:4004 +#: sql_help.c:4024 msgid "index_expression" msgstr "выражение_индекса" -#: sql_help.c:4007 +#: sql_help.c:4027 msgid "index_predicate" msgstr "предикат_индекса" -#: sql_help.c:4009 +#: sql_help.c:4029 msgid "and conflict_action is one of:" msgstr "а допустимое действие_при_конфликте:" -#: sql_help.c:4015 sql_help.c:4109 sql_help.c:4944 +#: sql_help.c:4035 sql_help.c:4129 sql_help.c:4964 msgid "sub-SELECT" msgstr "вложенный_SELECT" -#: sql_help.c:4024 sql_help.c:4150 sql_help.c:4920 +#: sql_help.c:4044 sql_help.c:4170 sql_help.c:4940 msgid "channel" msgstr "канал" -#: sql_help.c:4046 +#: sql_help.c:4066 msgid "lockmode" msgstr "режим_блокировки" -#: sql_help.c:4047 +#: sql_help.c:4067 msgid "where lockmode is one of:" msgstr "где допустимый режим_блокировки:" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "target_table_name" msgstr "имя_целевой_таблицы" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "target_alias" msgstr "псевдоним_назначения" -#: sql_help.c:4087 +#: sql_help.c:4107 msgid "data_source" msgstr "источник_данных" -#: sql_help.c:4088 sql_help.c:4615 sql_help.c:4872 sql_help.c:5110 +#: sql_help.c:4108 sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 msgid "join_condition" msgstr "условие_соединения" -#: sql_help.c:4089 +#: sql_help.c:4109 msgid "when_clause" msgstr "предложение_when" -#: sql_help.c:4090 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "где источник_данных:" -#: sql_help.c:4091 +#: sql_help.c:4111 msgid "source_table_name" msgstr "имя_исходной_таблицы" -#: sql_help.c:4092 +#: sql_help.c:4112 msgid "source_query" msgstr "исходный_запрос" -#: sql_help.c:4093 +#: sql_help.c:4113 msgid "source_alias" msgstr "псевдоним_источника" -#: sql_help.c:4094 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "и предложение_when:" -#: sql_help.c:4096 +#: sql_help.c:4116 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4097 +#: sql_help.c:4117 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4099 +#: sql_help.c:4119 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4100 +#: sql_help.c:4120 msgid "and merge_insert is:" msgstr "и merge_insert:" -#: sql_help.c:4103 +#: sql_help.c:4123 msgid "and merge_update is:" msgstr "и merge_update:" -#: sql_help.c:4110 +#: sql_help.c:4130 msgid "and merge_delete is:" msgstr "и merge_delete:" -#: sql_help.c:4151 +#: sql_help.c:4171 msgid "payload" msgstr "сообщение_нагрузка" -#: sql_help.c:4178 +#: sql_help.c:4198 msgid "old_role" msgstr "старая_роль" -#: sql_help.c:4179 +#: sql_help.c:4199 msgid "new_role" msgstr "новая_роль" -#: sql_help.c:4215 sql_help.c:4424 sql_help.c:4432 +#: sql_help.c:4235 sql_help.c:4444 sql_help.c:4452 msgid "savepoint_name" msgstr "имя_точки_сохранения" -#: sql_help.c:4572 sql_help.c:4630 sql_help.c:4829 sql_help.c:4887 -#: sql_help.c:5067 sql_help.c:5125 +#: sql_help.c:4592 sql_help.c:4650 sql_help.c:4849 sql_help.c:4907 +#: sql_help.c:5087 sql_help.c:5145 msgid "grouping_element" msgstr "элемент_группирования" -#: sql_help.c:4574 sql_help.c:4677 sql_help.c:4831 sql_help.c:5069 +#: sql_help.c:4594 sql_help.c:4697 sql_help.c:4851 sql_help.c:5089 msgid "window_name" msgstr "имя_окна" -#: sql_help.c:4575 sql_help.c:4678 sql_help.c:4832 sql_help.c:5070 +#: sql_help.c:4595 sql_help.c:4698 sql_help.c:4852 sql_help.c:5090 msgid "window_definition" msgstr "определение_окна" -#: sql_help.c:4576 sql_help.c:4590 sql_help.c:4634 sql_help.c:4679 -#: sql_help.c:4833 sql_help.c:4847 sql_help.c:4891 sql_help.c:5071 -#: sql_help.c:5085 sql_help.c:5129 +#: sql_help.c:4596 sql_help.c:4610 sql_help.c:4654 sql_help.c:4699 +#: sql_help.c:4853 sql_help.c:4867 sql_help.c:4911 sql_help.c:5091 +#: sql_help.c:5105 sql_help.c:5149 msgid "select" msgstr "select" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5078 +#: sql_help.c:4603 sql_help.c:4860 sql_help.c:5098 msgid "where from_item can be one of:" msgstr "где допустимый источник_данных:" -#: sql_help.c:4586 sql_help.c:4592 sql_help.c:4595 sql_help.c:4599 -#: sql_help.c:4611 sql_help.c:4843 sql_help.c:4849 sql_help.c:4852 -#: sql_help.c:4856 sql_help.c:4868 sql_help.c:5081 sql_help.c:5087 -#: sql_help.c:5090 sql_help.c:5094 sql_help.c:5106 +#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4631 sql_help.c:4863 sql_help.c:4869 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4888 sql_help.c:5101 sql_help.c:5107 +#: sql_help.c:5110 sql_help.c:5114 sql_help.c:5126 msgid "column_alias" msgstr "псевдоним_столбца" -#: sql_help.c:4587 sql_help.c:4844 sql_help.c:5082 +#: sql_help.c:4607 sql_help.c:4864 sql_help.c:5102 msgid "sampling_method" msgstr "метод_выборки" -#: sql_help.c:4589 sql_help.c:4846 sql_help.c:5084 +#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5104 msgid "seed" msgstr "начальное_число" -#: sql_help.c:4593 sql_help.c:4632 sql_help.c:4850 sql_help.c:4889 -#: sql_help.c:5088 sql_help.c:5127 +#: sql_help.c:4613 sql_help.c:4652 sql_help.c:4870 sql_help.c:4909 +#: sql_help.c:5108 sql_help.c:5147 msgid "with_query_name" msgstr "имя_запроса_WITH" -#: sql_help.c:4603 sql_help.c:4606 sql_help.c:4609 sql_help.c:4860 -#: sql_help.c:4863 sql_help.c:4866 sql_help.c:5098 sql_help.c:5101 -#: sql_help.c:5104 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4629 sql_help.c:4880 +#: sql_help.c:4883 sql_help.c:4886 sql_help.c:5118 sql_help.c:5121 +#: sql_help.c:5124 msgid "column_definition" msgstr "определение_столбца" -#: sql_help.c:4613 sql_help.c:4619 sql_help.c:4870 sql_help.c:4876 -#: sql_help.c:5108 sql_help.c:5114 +#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4890 sql_help.c:4896 +#: sql_help.c:5128 sql_help.c:5134 msgid "join_type" msgstr "тип_соединения" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5111 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 msgid "join_column" msgstr "столбец_соединения" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5112 +#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 msgid "join_using_alias" msgstr "псевдоним_использования_соединения" -#: sql_help.c:4623 sql_help.c:4880 sql_help.c:5118 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 msgid "and grouping_element can be one of:" msgstr "где допустимый элемент_группирования:" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5126 +#: sql_help.c:4651 sql_help.c:4908 sql_help.c:5146 msgid "and with_query is:" msgstr "и запрос_WITH:" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 +#: sql_help.c:4655 sql_help.c:4912 sql_help.c:5150 msgid "values" msgstr "значения" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 +#: sql_help.c:4656 sql_help.c:4913 sql_help.c:5151 msgid "insert" msgstr "insert" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 +#: sql_help.c:4657 sql_help.c:4914 sql_help.c:5152 msgid "update" msgstr "update" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5133 +#: sql_help.c:4658 sql_help.c:4915 sql_help.c:5153 msgid "delete" msgstr "delete" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5135 +#: sql_help.c:4660 sql_help.c:4917 sql_help.c:5155 msgid "search_seq_col_name" msgstr "имя_столбца_послед_поиска" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5137 +#: sql_help.c:4662 sql_help.c:4919 sql_help.c:5157 msgid "cycle_mark_col_name" msgstr "имя_столбца_пометки_цикла" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 +#: sql_help.c:4663 sql_help.c:4920 sql_help.c:5158 msgid "cycle_mark_value" msgstr "значение_пометки_цикла" -#: sql_help.c:4644 sql_help.c:4901 sql_help.c:5139 +#: sql_help.c:4664 sql_help.c:4921 sql_help.c:5159 msgid "cycle_mark_default" msgstr "пометка_цикла_по_умолчанию" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5140 +#: sql_help.c:4665 sql_help.c:4922 sql_help.c:5160 msgid "cycle_path_col_name" msgstr "имя_столбца_пути_цикла" -#: sql_help.c:4672 +#: sql_help.c:4692 msgid "new_table" msgstr "новая_таблица" -#: sql_help.c:4743 +#: sql_help.c:4763 msgid "snapshot_id" msgstr "код_снимка" -#: sql_help.c:5003 +#: sql_help.c:5023 msgid "sort_expression" msgstr "выражение_сортировки" -#: sql_help.c:5147 sql_help.c:6131 +#: sql_help.c:5167 sql_help.c:6151 msgid "abort the current transaction" msgstr "прервать текущую транзакцию" -#: sql_help.c:5153 +#: sql_help.c:5173 msgid "change the definition of an aggregate function" msgstr "изменить определение агрегатной функции" -#: sql_help.c:5159 +#: sql_help.c:5179 msgid "change the definition of a collation" msgstr "изменить определение правила сортировки" -#: sql_help.c:5165 +#: sql_help.c:5185 msgid "change the definition of a conversion" msgstr "изменить определение преобразования" -#: sql_help.c:5171 +#: sql_help.c:5191 msgid "change a database" msgstr "изменить атрибуты базы данных" -#: sql_help.c:5177 +#: sql_help.c:5197 msgid "define default access privileges" msgstr "определить права доступа по умолчанию" -#: sql_help.c:5183 +#: sql_help.c:5203 msgid "change the definition of a domain" msgstr "изменить определение домена" -#: sql_help.c:5189 +#: sql_help.c:5209 msgid "change the definition of an event trigger" msgstr "изменить определение событийного триггера" -#: sql_help.c:5195 +#: sql_help.c:5215 msgid "change the definition of an extension" msgstr "изменить определение расширения" -#: sql_help.c:5201 +#: sql_help.c:5221 msgid "change the definition of a foreign-data wrapper" msgstr "изменить определение обёртки сторонних данных" -#: sql_help.c:5207 +#: sql_help.c:5227 msgid "change the definition of a foreign table" msgstr "изменить определение сторонней таблицы" -#: sql_help.c:5213 +#: sql_help.c:5233 msgid "change the definition of a function" msgstr "изменить определение функции" -#: sql_help.c:5219 +#: sql_help.c:5239 msgid "change role name or membership" msgstr "изменить имя роли или членство" -#: sql_help.c:5225 +#: sql_help.c:5245 msgid "change the definition of an index" msgstr "изменить определение индекса" -#: sql_help.c:5231 +#: sql_help.c:5251 msgid "change the definition of a procedural language" msgstr "изменить определение процедурного языка" -#: sql_help.c:5237 +#: sql_help.c:5257 msgid "change the definition of a large object" msgstr "изменить определение большого объекта" -#: sql_help.c:5243 +#: sql_help.c:5263 msgid "change the definition of a materialized view" msgstr "изменить определение материализованного представления" -#: sql_help.c:5249 +#: sql_help.c:5269 msgid "change the definition of an operator" msgstr "изменить определение оператора" -#: sql_help.c:5255 +#: sql_help.c:5275 msgid "change the definition of an operator class" msgstr "изменить определение класса операторов" -#: sql_help.c:5261 +#: sql_help.c:5281 msgid "change the definition of an operator family" msgstr "изменить определение семейства операторов" -#: sql_help.c:5267 +#: sql_help.c:5287 msgid "change the definition of a row-level security policy" msgstr "изменить определение политики защиты на уровне строк" -#: sql_help.c:5273 +#: sql_help.c:5293 msgid "change the definition of a procedure" msgstr "изменить определение процедуры" -#: sql_help.c:5279 +#: sql_help.c:5299 msgid "change the definition of a publication" msgstr "изменить определение публикации" -#: sql_help.c:5285 sql_help.c:5387 +#: sql_help.c:5305 sql_help.c:5407 msgid "change a database role" msgstr "изменить роль пользователя БД" -#: sql_help.c:5291 +#: sql_help.c:5311 msgid "change the definition of a routine" msgstr "изменить определение подпрограммы" -#: sql_help.c:5297 +#: sql_help.c:5317 msgid "change the definition of a rule" msgstr "изменить определение правила" -#: sql_help.c:5303 +#: sql_help.c:5323 msgid "change the definition of a schema" msgstr "изменить определение схемы" -#: sql_help.c:5309 +#: sql_help.c:5329 msgid "change the definition of a sequence generator" msgstr "изменить определение генератора последовательности" -#: sql_help.c:5315 +#: sql_help.c:5335 msgid "change the definition of a foreign server" msgstr "изменить определение стороннего сервера" -#: sql_help.c:5321 +#: sql_help.c:5341 msgid "change the definition of an extended statistics object" msgstr "изменить определение объекта расширенной статистики" -#: sql_help.c:5327 +#: sql_help.c:5347 msgid "change the definition of a subscription" msgstr "изменить определение подписки" -#: sql_help.c:5333 +#: sql_help.c:5353 msgid "change a server configuration parameter" msgstr "изменить параметр конфигурации сервера" -#: sql_help.c:5339 +#: sql_help.c:5359 msgid "change the definition of a table" msgstr "изменить определение таблицы" -#: sql_help.c:5345 +#: sql_help.c:5365 msgid "change the definition of a tablespace" msgstr "изменить определение табличного пространства" -#: sql_help.c:5351 +#: sql_help.c:5371 msgid "change the definition of a text search configuration" msgstr "изменить определение конфигурации текстового поиска" -#: sql_help.c:5357 +#: sql_help.c:5377 msgid "change the definition of a text search dictionary" msgstr "изменить определение словаря текстового поиска" -#: sql_help.c:5363 +#: sql_help.c:5383 msgid "change the definition of a text search parser" msgstr "изменить определение анализатора текстового поиска" -#: sql_help.c:5369 +#: sql_help.c:5389 msgid "change the definition of a text search template" msgstr "изменить определение шаблона текстового поиска" -#: sql_help.c:5375 +#: sql_help.c:5395 msgid "change the definition of a trigger" msgstr "изменить определение триггера" -#: sql_help.c:5381 +#: sql_help.c:5401 msgid "change the definition of a type" msgstr "изменить определение типа" -#: sql_help.c:5393 +#: sql_help.c:5413 msgid "change the definition of a user mapping" msgstr "изменить сопоставление пользователей" -#: sql_help.c:5399 +#: sql_help.c:5419 msgid "change the definition of a view" msgstr "изменить определение представления" -#: sql_help.c:5405 +#: sql_help.c:5425 msgid "collect statistics about a database" msgstr "собрать статистику о базе данных" -#: sql_help.c:5411 sql_help.c:6209 +#: sql_help.c:5431 sql_help.c:6229 msgid "start a transaction block" msgstr "начать транзакцию" -#: sql_help.c:5417 +#: sql_help.c:5437 msgid "invoke a procedure" msgstr "вызвать процедуру" -#: sql_help.c:5423 +#: sql_help.c:5443 msgid "force a write-ahead log checkpoint" msgstr "произвести контрольную точку в журнале предзаписи" -#: sql_help.c:5429 +#: sql_help.c:5449 msgid "close a cursor" msgstr "закрыть курсор" -#: sql_help.c:5435 +#: sql_help.c:5455 msgid "cluster a table according to an index" msgstr "перегруппировать таблицу по индексу" -#: sql_help.c:5441 +#: sql_help.c:5461 msgid "define or change the comment of an object" msgstr "задать или изменить комментарий объекта" -#: sql_help.c:5447 sql_help.c:6005 +#: sql_help.c:5467 sql_help.c:6025 msgid "commit the current transaction" msgstr "зафиксировать текущую транзакцию" -#: sql_help.c:5453 +#: sql_help.c:5473 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "зафиксировать транзакцию, ранее подготовленную для двухфазной фиксации" -#: sql_help.c:5459 +#: sql_help.c:5479 msgid "copy data between a file and a table" msgstr "импорт/экспорт данных в файл" -#: sql_help.c:5465 +#: sql_help.c:5485 msgid "define a new access method" msgstr "создать новый метод доступа" -#: sql_help.c:5471 +#: sql_help.c:5491 msgid "define a new aggregate function" msgstr "создать агрегатную функцию" -#: sql_help.c:5477 +#: sql_help.c:5497 msgid "define a new cast" msgstr "создать приведение типов" -#: sql_help.c:5483 +#: sql_help.c:5503 msgid "define a new collation" msgstr "создать правило сортировки" -#: sql_help.c:5489 +#: sql_help.c:5509 msgid "define a new encoding conversion" msgstr "создать преобразование кодировки" -#: sql_help.c:5495 +#: sql_help.c:5515 msgid "create a new database" msgstr "создать базу данных" -#: sql_help.c:5501 +#: sql_help.c:5521 msgid "define a new domain" msgstr "создать домен" -#: sql_help.c:5507 +#: sql_help.c:5527 msgid "define a new event trigger" msgstr "создать событийный триггер" -#: sql_help.c:5513 +#: sql_help.c:5533 msgid "install an extension" msgstr "установить расширение" -#: sql_help.c:5519 +#: sql_help.c:5539 msgid "define a new foreign-data wrapper" msgstr "создать обёртку сторонних данных" -#: sql_help.c:5525 +#: sql_help.c:5545 msgid "define a new foreign table" msgstr "создать стороннюю таблицу" -#: sql_help.c:5531 +#: sql_help.c:5551 msgid "define a new function" msgstr "создать функцию" -#: sql_help.c:5537 sql_help.c:5597 sql_help.c:5699 +#: sql_help.c:5557 sql_help.c:5617 sql_help.c:5719 msgid "define a new database role" msgstr "создать роль пользователя БД" -#: sql_help.c:5543 +#: sql_help.c:5563 msgid "define a new index" msgstr "создать индекс" -#: sql_help.c:5549 +#: sql_help.c:5569 msgid "define a new procedural language" msgstr "создать процедурный язык" -#: sql_help.c:5555 +#: sql_help.c:5575 msgid "define a new materialized view" msgstr "создать материализованное представление" -#: sql_help.c:5561 +#: sql_help.c:5581 msgid "define a new operator" msgstr "создать оператор" -#: sql_help.c:5567 +#: sql_help.c:5587 msgid "define a new operator class" msgstr "создать класс операторов" -#: sql_help.c:5573 +#: sql_help.c:5593 msgid "define a new operator family" msgstr "создать семейство операторов" -#: sql_help.c:5579 +#: sql_help.c:5599 msgid "define a new row-level security policy for a table" msgstr "создать новую политику защиты на уровне строк для таблицы" -#: sql_help.c:5585 +#: sql_help.c:5605 msgid "define a new procedure" msgstr "создать процедуру" -#: sql_help.c:5591 +#: sql_help.c:5611 msgid "define a new publication" msgstr "создать публикацию" -#: sql_help.c:5603 +#: sql_help.c:5623 msgid "define a new rewrite rule" msgstr "создать правило перезаписи" -#: sql_help.c:5609 +#: sql_help.c:5629 msgid "define a new schema" msgstr "создать схему" -#: sql_help.c:5615 +#: sql_help.c:5635 msgid "define a new sequence generator" msgstr "создать генератор последовательностей" -#: sql_help.c:5621 +#: sql_help.c:5641 msgid "define a new foreign server" msgstr "создать сторонний сервер" -#: sql_help.c:5627 +#: sql_help.c:5647 msgid "define extended statistics" msgstr "создать расширенную статистику" -#: sql_help.c:5633 +#: sql_help.c:5653 msgid "define a new subscription" msgstr "создать подписку" -#: sql_help.c:5639 +#: sql_help.c:5659 msgid "define a new table" msgstr "создать таблицу" -#: sql_help.c:5645 sql_help.c:6167 +#: sql_help.c:5665 sql_help.c:6187 msgid "define a new table from the results of a query" msgstr "создать таблицу из результатов запроса" -#: sql_help.c:5651 +#: sql_help.c:5671 msgid "define a new tablespace" msgstr "создать табличное пространство" -#: sql_help.c:5657 +#: sql_help.c:5677 msgid "define a new text search configuration" msgstr "создать конфигурацию текстового поиска" -#: sql_help.c:5663 +#: sql_help.c:5683 msgid "define a new text search dictionary" msgstr "создать словарь текстового поиска" -#: sql_help.c:5669 +#: sql_help.c:5689 msgid "define a new text search parser" msgstr "создать анализатор текстового поиска" -#: sql_help.c:5675 +#: sql_help.c:5695 msgid "define a new text search template" msgstr "создать шаблон текстового поиска" -#: sql_help.c:5681 +#: sql_help.c:5701 msgid "define a new transform" msgstr "создать преобразование" -#: sql_help.c:5687 +#: sql_help.c:5707 msgid "define a new trigger" msgstr "создать триггер" -#: sql_help.c:5693 +#: sql_help.c:5713 msgid "define a new data type" msgstr "создать тип данных" -#: sql_help.c:5705 +#: sql_help.c:5725 msgid "define a new mapping of a user to a foreign server" msgstr "создать сопоставление пользователя для стороннего сервера" -#: sql_help.c:5711 +#: sql_help.c:5731 msgid "define a new view" msgstr "создать представление" -#: sql_help.c:5717 +#: sql_help.c:5737 msgid "deallocate a prepared statement" msgstr "освободить подготовленный оператор" -#: sql_help.c:5723 +#: sql_help.c:5743 msgid "define a cursor" msgstr "создать курсор" -#: sql_help.c:5729 +#: sql_help.c:5749 msgid "delete rows of a table" msgstr "удалить записи таблицы" -#: sql_help.c:5735 +#: sql_help.c:5755 msgid "discard session state" msgstr "очистить состояние сеанса" -#: sql_help.c:5741 +#: sql_help.c:5761 msgid "execute an anonymous code block" msgstr "выполнить анонимный блок кода" -#: sql_help.c:5747 +#: sql_help.c:5767 msgid "remove an access method" msgstr "удалить метод доступа" -#: sql_help.c:5753 +#: sql_help.c:5773 msgid "remove an aggregate function" msgstr "удалить агрегатную функцию" -#: sql_help.c:5759 +#: sql_help.c:5779 msgid "remove a cast" msgstr "удалить приведение типа" -#: sql_help.c:5765 +#: sql_help.c:5785 msgid "remove a collation" msgstr "удалить правило сортировки" -#: sql_help.c:5771 +#: sql_help.c:5791 msgid "remove a conversion" msgstr "удалить преобразование" -#: sql_help.c:5777 +#: sql_help.c:5797 msgid "remove a database" msgstr "удалить базу данных" -#: sql_help.c:5783 +#: sql_help.c:5803 msgid "remove a domain" msgstr "удалить домен" -#: sql_help.c:5789 +#: sql_help.c:5809 msgid "remove an event trigger" msgstr "удалить событийный триггер" -#: sql_help.c:5795 +#: sql_help.c:5815 msgid "remove an extension" msgstr "удалить расширение" -#: sql_help.c:5801 +#: sql_help.c:5821 msgid "remove a foreign-data wrapper" msgstr "удалить обёртку сторонних данных" -#: sql_help.c:5807 +#: sql_help.c:5827 msgid "remove a foreign table" msgstr "удалить стороннюю таблицу" -#: sql_help.c:5813 +#: sql_help.c:5833 msgid "remove a function" msgstr "удалить функцию" -#: sql_help.c:5819 sql_help.c:5885 sql_help.c:5987 +#: sql_help.c:5839 sql_help.c:5905 sql_help.c:6007 msgid "remove a database role" msgstr "удалить роль пользователя БД" -#: sql_help.c:5825 +#: sql_help.c:5845 msgid "remove an index" msgstr "удалить индекс" -#: sql_help.c:5831 +#: sql_help.c:5851 msgid "remove a procedural language" msgstr "удалить процедурный язык" -#: sql_help.c:5837 +#: sql_help.c:5857 msgid "remove a materialized view" msgstr "удалить материализованное представление" -#: sql_help.c:5843 +#: sql_help.c:5863 msgid "remove an operator" msgstr "удалить оператор" -#: sql_help.c:5849 +#: sql_help.c:5869 msgid "remove an operator class" msgstr "удалить класс операторов" -#: sql_help.c:5855 +#: sql_help.c:5875 msgid "remove an operator family" msgstr "удалить семейство операторов" -#: sql_help.c:5861 +#: sql_help.c:5881 msgid "remove database objects owned by a database role" msgstr "удалить объекты базы данных, принадлежащие роли" -#: sql_help.c:5867 +#: sql_help.c:5887 msgid "remove a row-level security policy from a table" msgstr "удалить из таблицы политику защиты на уровне строк" -#: sql_help.c:5873 +#: sql_help.c:5893 msgid "remove a procedure" msgstr "удалить процедуру" -#: sql_help.c:5879 +#: sql_help.c:5899 msgid "remove a publication" msgstr "удалить публикацию" -#: sql_help.c:5891 +#: sql_help.c:5911 msgid "remove a routine" msgstr "удалить подпрограмму" -#: sql_help.c:5897 +#: sql_help.c:5917 msgid "remove a rewrite rule" msgstr "удалить правило перезаписи" -#: sql_help.c:5903 +#: sql_help.c:5923 msgid "remove a schema" msgstr "удалить схему" -#: sql_help.c:5909 +#: sql_help.c:5929 msgid "remove a sequence" msgstr "удалить последовательность" -#: sql_help.c:5915 +#: sql_help.c:5935 msgid "remove a foreign server descriptor" msgstr "удалить описание стороннего сервера" -#: sql_help.c:5921 +#: sql_help.c:5941 msgid "remove extended statistics" msgstr "удалить расширенную статистику" -#: sql_help.c:5927 +#: sql_help.c:5947 msgid "remove a subscription" msgstr "удалить подписку" -#: sql_help.c:5933 +#: sql_help.c:5953 msgid "remove a table" msgstr "удалить таблицу" -#: sql_help.c:5939 +#: sql_help.c:5959 msgid "remove a tablespace" msgstr "удалить табличное пространство" -#: sql_help.c:5945 +#: sql_help.c:5965 msgid "remove a text search configuration" msgstr "удалить конфигурацию текстового поиска" -#: sql_help.c:5951 +#: sql_help.c:5971 msgid "remove a text search dictionary" msgstr "удалить словарь текстового поиска" -#: sql_help.c:5957 +#: sql_help.c:5977 msgid "remove a text search parser" msgstr "удалить анализатор текстового поиска" -#: sql_help.c:5963 +#: sql_help.c:5983 msgid "remove a text search template" msgstr "удалить шаблон текстового поиска" -#: sql_help.c:5969 +#: sql_help.c:5989 msgid "remove a transform" msgstr "удалить преобразование" -#: sql_help.c:5975 +#: sql_help.c:5995 msgid "remove a trigger" msgstr "удалить триггер" -#: sql_help.c:5981 +#: sql_help.c:6001 msgid "remove a data type" msgstr "удалить тип данных" -#: sql_help.c:5993 +#: sql_help.c:6013 msgid "remove a user mapping for a foreign server" msgstr "удалить сопоставление пользователя для стороннего сервера" -#: sql_help.c:5999 +#: sql_help.c:6019 msgid "remove a view" msgstr "удалить представление" -#: sql_help.c:6011 +#: sql_help.c:6031 msgid "execute a prepared statement" msgstr "выполнить подготовленный оператор" -#: sql_help.c:6017 +#: sql_help.c:6037 msgid "show the execution plan of a statement" msgstr "показать план выполнения оператора" -#: sql_help.c:6023 +#: sql_help.c:6043 msgid "retrieve rows from a query using a cursor" msgstr "получить результат запроса через курсор" -#: sql_help.c:6029 +#: sql_help.c:6049 msgid "define access privileges" msgstr "определить права доступа" -#: sql_help.c:6035 +#: sql_help.c:6055 msgid "import table definitions from a foreign server" msgstr "импортировать определения таблиц со стороннего сервера" -#: sql_help.c:6041 +#: sql_help.c:6061 msgid "create new rows in a table" msgstr "добавить строки в таблицу" -#: sql_help.c:6047 +#: sql_help.c:6067 msgid "listen for a notification" msgstr "ожидать уведомления" -#: sql_help.c:6053 +#: sql_help.c:6073 msgid "load a shared library file" msgstr "загрузить файл разделяемой библиотеки" -#: sql_help.c:6059 +#: sql_help.c:6079 msgid "lock a table" msgstr "заблокировать таблицу" -#: sql_help.c:6065 +#: sql_help.c:6085 msgid "conditionally insert, update, or delete rows of a table" msgstr "добавление, изменение или удаление строк таблицы по условию" -#: sql_help.c:6071 +#: sql_help.c:6091 msgid "position a cursor" msgstr "установить курсор" -#: sql_help.c:6077 +#: sql_help.c:6097 msgid "generate a notification" msgstr "сгенерировать уведомление" -#: sql_help.c:6083 +#: sql_help.c:6103 msgid "prepare a statement for execution" msgstr "подготовить оператор для выполнения" -#: sql_help.c:6089 +#: sql_help.c:6109 msgid "prepare the current transaction for two-phase commit" msgstr "подготовить текущую транзакцию для двухфазной фиксации" -#: sql_help.c:6095 +#: sql_help.c:6115 msgid "change the ownership of database objects owned by a database role" msgstr "изменить владельца объектов БД, принадлежащих заданной роли" -#: sql_help.c:6101 +#: sql_help.c:6121 msgid "replace the contents of a materialized view" msgstr "заменить содержимое материализованного представления" -#: sql_help.c:6107 +#: sql_help.c:6127 msgid "rebuild indexes" msgstr "перестроить индексы" -#: sql_help.c:6113 +#: sql_help.c:6133 msgid "destroy a previously defined savepoint" msgstr "удалить ранее определённую точку сохранения" -#: sql_help.c:6119 +#: sql_help.c:6139 msgid "restore the value of a run-time parameter to the default value" msgstr "восстановить исходное значение параметра выполнения" -#: sql_help.c:6125 +#: sql_help.c:6145 msgid "remove access privileges" msgstr "удалить права доступа" -#: sql_help.c:6137 +#: sql_help.c:6157 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "отменить транзакцию, подготовленную ранее для двухфазной фиксации" -#: sql_help.c:6143 +#: sql_help.c:6163 msgid "roll back to a savepoint" msgstr "откатиться к точке сохранения" -#: sql_help.c:6149 +#: sql_help.c:6169 msgid "define a new savepoint within the current transaction" msgstr "определить новую точку сохранения в текущей транзакции" -#: sql_help.c:6155 +#: sql_help.c:6175 msgid "define or change a security label applied to an object" msgstr "задать или изменить метку безопасности, применённую к объекту" -#: sql_help.c:6161 sql_help.c:6215 sql_help.c:6251 +#: sql_help.c:6181 sql_help.c:6235 sql_help.c:6271 msgid "retrieve rows from a table or view" msgstr "выбрать строки из таблицы или представления" -#: sql_help.c:6173 +#: sql_help.c:6193 msgid "change a run-time parameter" msgstr "изменить параметр выполнения" -#: sql_help.c:6179 +#: sql_help.c:6199 msgid "set constraint check timing for the current transaction" msgstr "установить время проверки ограничений для текущей транзакции" -#: sql_help.c:6185 +#: sql_help.c:6205 msgid "set the current user identifier of the current session" msgstr "задать идентификатор текущего пользователя в текущем сеансе" -#: sql_help.c:6191 +#: sql_help.c:6211 msgid "" "set the session user identifier and the current user identifier of the " "current session" @@ -6693,31 +6702,31 @@ msgstr "" "задать идентификатор пользователя сеанса и идентификатор текущего " "пользователя в текущем сеансе" -#: sql_help.c:6197 +#: sql_help.c:6217 msgid "set the characteristics of the current transaction" msgstr "задать свойства текущей транзакции" -#: sql_help.c:6203 +#: sql_help.c:6223 msgid "show the value of a run-time parameter" msgstr "показать значение параметра выполнения" -#: sql_help.c:6221 +#: sql_help.c:6241 msgid "empty a table or set of tables" msgstr "опустошить таблицу или набор таблиц" -#: sql_help.c:6227 +#: sql_help.c:6247 msgid "stop listening for a notification" msgstr "прекратить ожидание уведомлений" -#: sql_help.c:6233 +#: sql_help.c:6253 msgid "update rows of a table" msgstr "изменить строки таблицы" -#: sql_help.c:6239 +#: sql_help.c:6259 msgid "garbage-collect and optionally analyze a database" msgstr "произвести сборку мусора и проанализировать базу данных" -#: sql_help.c:6245 +#: sql_help.c:6265 msgid "compute a set of rows" msgstr "получить набор строк" diff --git a/src/bin/psql/po/sv.po b/src/bin/psql/po/sv.po index 462e9cad07f..698a1c8f488 100644 --- a/src/bin/psql/po/sv.po +++ b/src/bin/psql/po/sv.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-08-17 12:07+0000\n" -"PO-Revision-Date: 2025-08-17 09:01+0200\n" +"POT-Creation-Date: 2026-01-30 21:39+0000\n" +"PO-Revision-Date: 2026-02-02 23:07+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -2438,7 +2438,7 @@ msgstr "" "psql är den interaktiva PostgreSQL-terminalen.\n" "\n" -#: help.c:76 help.c:397 help.c:477 help.c:520 +#: help.c:76 help.c:397 help.c:477 help.c:523 msgid "Usage:\n" msgstr "Användning:\n" @@ -3575,6 +3575,15 @@ msgstr "" " målvidd för wrappade format\n" #: help.c:484 +#, c-format +msgid "" +" csv_fieldsep\n" +" field separator for CSV output format (default \"%c\")\n" +msgstr "" +" csv_fieldsep\n" +" fältseparator för utdataformatet CSV (standard \"%c\")\n" + +#: help.c:487 msgid "" " expanded (or x)\n" " expanded output [on, off, auto]\n" @@ -3582,7 +3591,7 @@ msgstr "" " expanded (eller x)\n" " expanderat utmatningsläge [on, off, auto]\n" -#: help.c:486 +#: help.c:489 #, c-format msgid "" " fieldsep\n" @@ -3591,7 +3600,7 @@ msgstr "" " fieldsep\n" " fältseparator för ej justerad utdata (standard \"%s\")\n" -#: help.c:489 +#: help.c:492 msgid "" " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" @@ -3599,7 +3608,7 @@ msgstr "" " fieldsep_zero\n" " sätt fältseparator för ej justerad utdata till noll-byte\n" -#: help.c:491 +#: help.c:494 msgid "" " footer\n" " enable or disable display of the table footer [on, off]\n" @@ -3607,7 +3616,7 @@ msgstr "" " footer\n" " slå på/av visning av tabellfot [on, off]\n" -#: help.c:493 +#: help.c:496 msgid "" " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" @@ -3615,7 +3624,7 @@ msgstr "" " format\n" " sätt utdataformat [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:495 +#: help.c:498 msgid "" " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" @@ -3623,7 +3632,7 @@ msgstr "" " linestyle\n" " sätt ramlinjestil [ascii, old-ascii, unicode]\n" -#: help.c:497 +#: help.c:500 msgid "" " null\n" " set the string to be printed in place of a null value\n" @@ -3631,7 +3640,7 @@ msgstr "" " null\n" " sätt sträng som visas istället för null-värden\n" -#: help.c:499 +#: help.c:502 msgid "" " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" @@ -3639,7 +3648,7 @@ msgstr "" " numericlocale\n" " slå på visning av lokalspecifika tecken för gruppering av siffror\n" -#: help.c:501 +#: help.c:504 msgid "" " pager\n" " control when an external pager is used [yes, no, always]\n" @@ -3647,7 +3656,7 @@ msgstr "" " pager\n" " styr när en extern pagenerare används [yes, no, always]\n" -#: help.c:503 +#: help.c:506 msgid "" " recordsep\n" " record (line) separator for unaligned output\n" @@ -3655,7 +3664,7 @@ msgstr "" " recordsep\n" " post (rad) separator för ej justerad utdata\n" -#: help.c:505 +#: help.c:508 msgid "" " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" @@ -3663,7 +3672,7 @@ msgstr "" " recordsep_zero\n" " sätt postseparator för ej justerad utdata till noll-byte\n" -#: help.c:507 +#: help.c:510 msgid "" " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" @@ -3673,7 +3682,7 @@ msgstr "" " ange attribut för tabelltaggen i html-format eller proportionella\n" " kolumnvidder för vänsterjusterade datatypet i latex-longtable-format\n" -#: help.c:510 +#: help.c:513 msgid "" " title\n" " set the table title for subsequently printed tables\n" @@ -3681,7 +3690,7 @@ msgstr "" " title\n" " sätt tabelltitel för efterkommande tabellutskrifter\n" -#: help.c:512 +#: help.c:515 msgid "" " tuples_only\n" " if set, only actual table data is shown\n" @@ -3689,7 +3698,7 @@ msgstr "" " tuples_only\n" " om satt, bara tabelldatan visas\n" -#: help.c:514 +#: help.c:517 msgid "" " unicode_border_linestyle\n" " unicode_column_linestyle\n" @@ -3701,7 +3710,7 @@ msgstr "" " unicode_header_linestyle\n" " sätter stilen på Unicode-linjer [single, double]\n" -#: help.c:519 +#: help.c:522 msgid "" "\n" "Environment variables:\n" @@ -3709,7 +3718,7 @@ msgstr "" "\n" "Omgivningsvariabler:\n" -#: help.c:523 +#: help.c:526 msgid "" " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n" @@ -3719,7 +3728,7 @@ msgstr "" " eller \\setenv NAMN [VÄRDE] inne psql\n" "\n" -#: help.c:525 +#: help.c:528 msgid "" " set NAME=VALUE\n" " psql ...\n" @@ -3731,7 +3740,7 @@ msgstr "" " eller \\setenv NAMN [VÄRDE] inne i psql\n" "\n" -#: help.c:528 +#: help.c:531 msgid "" " COLUMNS\n" " number of columns for wrapped format\n" @@ -3739,7 +3748,7 @@ msgstr "" " COLUMNS\n" " antal kolumner i wrappade format\n" -#: help.c:530 +#: help.c:533 msgid "" " PGAPPNAME\n" " same as the application_name connection parameter\n" @@ -3747,7 +3756,7 @@ msgstr "" " PGAPPNAME\n" " samma som anslutningsparametern \"application_name\"\n" -#: help.c:532 +#: help.c:535 msgid "" " PGDATABASE\n" " same as the dbname connection parameter\n" @@ -3755,7 +3764,7 @@ msgstr "" " PGDATABASE\n" " samma som anslutningsparametern \"dbname\"\n" -#: help.c:534 +#: help.c:537 msgid "" " PGHOST\n" " same as the host connection parameter\n" @@ -3763,7 +3772,7 @@ msgstr "" " PGHOST\n" " samma som anslutningsparametern \"host\"\n" -#: help.c:536 +#: help.c:539 msgid "" " PGPASSFILE\n" " password file name\n" @@ -3771,7 +3780,7 @@ msgstr "" " PGPASSFILE\n" " lösenordsfilnamn\n" -#: help.c:538 +#: help.c:541 msgid "" " PGPASSWORD\n" " connection password (not recommended)\n" @@ -3779,7 +3788,7 @@ msgstr "" " PGPASSWORD\n" " uppkoppingens lösenord (rekommenderas inte)\n" -#: help.c:540 +#: help.c:543 msgid "" " PGPORT\n" " same as the port connection parameter\n" @@ -3787,7 +3796,7 @@ msgstr "" " PGPORT\n" " samma som anslutingsparametern \"port\"\n" -#: help.c:542 +#: help.c:545 msgid "" " PGUSER\n" " same as the user connection parameter\n" @@ -3795,7 +3804,7 @@ msgstr "" " PGUSER\n" " samma som anslutningsparametern \"user\"\n" -#: help.c:544 +#: help.c:547 msgid "" " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" @@ -3803,7 +3812,7 @@ msgstr "" " PSQL_EDITOR, EDITOR, VISUAL\n" " redigerare som används av kommanona \\e, \\ef och \\ev\n" -#: help.c:546 +#: help.c:549 msgid "" " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" @@ -3811,7 +3820,7 @@ msgstr "" " PSQL_EDITOR_LINENUMBER_ARG\n" " hur radnummer anges när redigerare startas\n" -#: help.c:548 +#: help.c:551 msgid "" " PSQL_HISTORY\n" " alternative location for the command history file\n" @@ -3819,7 +3828,7 @@ msgstr "" " PSQL_HISTORY\n" " alternativ plats för kommandohistorikfilen\n" -#: help.c:550 +#: help.c:553 msgid "" " PSQL_PAGER, PAGER\n" " name of external pager program\n" @@ -3827,7 +3836,7 @@ msgstr "" " PAGER\n" " namnet på den externa pageneraren\n" -#: help.c:553 +#: help.c:556 msgid "" " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" @@ -3835,7 +3844,7 @@ msgstr "" " PSQL_WATCH_PAGER\n" " namn på externt paginerarprogram för \\watch\n" -#: help.c:556 +#: help.c:559 msgid "" " PSQLRC\n" " alternative location for the user's .psqlrc file\n" @@ -3843,7 +3852,7 @@ msgstr "" " PSQLRC\n" " alternativ plats för användarens \".psqlrc\"-fil\n" -#: help.c:558 +#: help.c:561 msgid "" " SHELL\n" " shell used by the \\! command\n" @@ -3851,7 +3860,7 @@ msgstr "" " SHELL\n" " skalet som används av kommandot \\!\n" -#: help.c:560 +#: help.c:563 msgid "" " TMPDIR\n" " directory for temporary files\n" @@ -3859,11 +3868,11 @@ msgstr "" " TMPDIR\n" " katalog för temporärfiler\n" -#: help.c:620 +#: help.c:623 msgid "Available help:\n" msgstr "Tillgänglig hjälp:\n" -#: help.c:715 +#: help.c:718 #, c-format msgid "" "Command: %s\n" @@ -3882,7 +3891,7 @@ msgstr "" "URL: %s\n" "\n" -#: help.c:738 +#: help.c:741 #, c-format msgid "" "No help available for \"%s\".\n" @@ -4014,189 +4023,189 @@ msgstr "%s: slut på minne" #: sql_help.c:728 sql_help.c:732 sql_help.c:751 sql_help.c:754 sql_help.c:757 #: sql_help.c:786 sql_help.c:798 sql_help.c:806 sql_help.c:809 sql_help.c:812 #: sql_help.c:827 sql_help.c:830 sql_help.c:859 sql_help.c:864 sql_help.c:869 -#: sql_help.c:874 sql_help.c:879 sql_help.c:906 sql_help.c:908 sql_help.c:910 -#: sql_help.c:912 sql_help.c:915 sql_help.c:917 sql_help.c:964 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1048 sql_help.c:1059 sql_help.c:1061 sql_help.c:1081 -#: sql_help.c:1091 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1108 sql_help.c:1112 sql_help.c:1114 sql_help.c:1126 -#: sql_help.c:1128 sql_help.c:1130 sql_help.c:1132 sql_help.c:1151 -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1169 sql_help.c:1170 sql_help.c:1173 -#: sql_help.c:1176 sql_help.c:1178 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1327 sql_help.c:1329 -#: sql_help.c:1332 sql_help.c:1335 sql_help.c:1455 sql_help.c:1457 -#: sql_help.c:1459 sql_help.c:1462 sql_help.c:1483 sql_help.c:1486 -#: sql_help.c:1489 sql_help.c:1492 sql_help.c:1496 sql_help.c:1498 -#: sql_help.c:1500 sql_help.c:1502 sql_help.c:1516 sql_help.c:1519 -#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1533 sql_help.c:1535 -#: sql_help.c:1545 sql_help.c:1547 sql_help.c:1557 sql_help.c:1560 -#: sql_help.c:1583 sql_help.c:1585 sql_help.c:1587 sql_help.c:1589 -#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 -#: sql_help.c:1651 sql_help.c:1694 sql_help.c:1697 sql_help.c:1699 -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:1706 sql_help.c:1708 -#: sql_help.c:1711 sql_help.c:1761 sql_help.c:1777 sql_help.c:2008 -#: sql_help.c:2077 sql_help.c:2096 sql_help.c:2109 sql_help.c:2166 -#: sql_help.c:2173 sql_help.c:2183 sql_help.c:2209 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4045 -#: sql_help.c:4159 sql_help.c:4188 sql_help.c:4203 sql_help.c:4706 -#: sql_help.c:4754 sql_help.c:4912 +#: sql_help.c:874 sql_help.c:879 sql_help.c:915 sql_help.c:917 sql_help.c:919 +#: sql_help.c:921 sql_help.c:924 sql_help.c:926 sql_help.c:978 sql_help.c:1023 +#: sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 sql_help.c:1043 +#: sql_help.c:1062 sql_help.c:1073 sql_help.c:1075 sql_help.c:1095 +#: sql_help.c:1105 sql_help.c:1106 sql_help.c:1108 sql_help.c:1110 +#: sql_help.c:1122 sql_help.c:1126 sql_help.c:1128 sql_help.c:1140 +#: sql_help.c:1142 sql_help.c:1144 sql_help.c:1146 sql_help.c:1165 +#: sql_help.c:1167 sql_help.c:1171 sql_help.c:1175 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1183 sql_help.c:1184 sql_help.c:1187 +#: sql_help.c:1190 sql_help.c:1192 sql_help.c:1331 sql_help.c:1333 +#: sql_help.c:1336 sql_help.c:1339 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1469 sql_help.c:1471 +#: sql_help.c:1473 sql_help.c:1476 sql_help.c:1497 sql_help.c:1500 +#: sql_help.c:1503 sql_help.c:1506 sql_help.c:1510 sql_help.c:1512 +#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1530 sql_help.c:1533 +#: sql_help.c:1535 sql_help.c:1537 sql_help.c:1547 sql_help.c:1549 +#: sql_help.c:1559 sql_help.c:1561 sql_help.c:1571 sql_help.c:1574 +#: sql_help.c:1597 sql_help.c:1599 sql_help.c:1601 sql_help.c:1603 +#: sql_help.c:1606 sql_help.c:1608 sql_help.c:1611 sql_help.c:1614 +#: sql_help.c:1665 sql_help.c:1708 sql_help.c:1711 sql_help.c:1713 +#: sql_help.c:1715 sql_help.c:1718 sql_help.c:1720 sql_help.c:1722 +#: sql_help.c:1725 sql_help.c:1775 sql_help.c:1791 sql_help.c:2022 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2123 sql_help.c:2180 +#: sql_help.c:2187 sql_help.c:2197 sql_help.c:2223 sql_help.c:2254 +#: sql_help.c:2272 sql_help.c:2300 sql_help.c:2411 sql_help.c:2457 +#: sql_help.c:2482 sql_help.c:2505 sql_help.c:2509 sql_help.c:2543 +#: sql_help.c:2563 sql_help.c:2585 sql_help.c:2599 sql_help.c:2620 +#: sql_help.c:2653 sql_help.c:2690 sql_help.c:2715 sql_help.c:2762 +#: sql_help.c:3060 sql_help.c:3073 sql_help.c:3090 sql_help.c:3106 +#: sql_help.c:3146 sql_help.c:3200 sql_help.c:3204 sql_help.c:3206 +#: sql_help.c:3213 sql_help.c:3232 sql_help.c:3259 sql_help.c:3294 +#: sql_help.c:3306 sql_help.c:3315 sql_help.c:3359 sql_help.c:3373 +#: sql_help.c:3401 sql_help.c:3409 sql_help.c:3421 sql_help.c:3431 +#: sql_help.c:3439 sql_help.c:3447 sql_help.c:3455 sql_help.c:3463 +#: sql_help.c:3472 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 +#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3525 sql_help.c:3534 +#: sql_help.c:3543 sql_help.c:3551 sql_help.c:3561 sql_help.c:3572 +#: sql_help.c:3580 sql_help.c:3589 sql_help.c:3600 sql_help.c:3609 +#: sql_help.c:3617 sql_help.c:3625 sql_help.c:3633 sql_help.c:3641 +#: sql_help.c:3649 sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 +#: sql_help.c:3681 sql_help.c:3689 sql_help.c:3706 sql_help.c:3715 +#: sql_help.c:3723 sql_help.c:3740 sql_help.c:3755 sql_help.c:4065 +#: sql_help.c:4179 sql_help.c:4208 sql_help.c:4223 sql_help.c:4726 +#: sql_help.c:4774 sql_help.c:4932 msgid "name" msgstr "namn" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1858 -#: sql_help.c:3354 sql_help.c:4474 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1872 +#: sql_help.c:3374 sql_help.c:4494 msgid "aggregate_signature" msgstr "aggregatsignatur" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 #: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 #: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:753 sql_help.c:808 -#: sql_help.c:829 sql_help.c:868 sql_help.c:918 sql_help.c:965 sql_help.c:1018 -#: sql_help.c:1050 sql_help.c:1060 sql_help.c:1095 sql_help.c:1115 -#: sql_help.c:1129 sql_help.c:1179 sql_help.c:1326 sql_help.c:1456 -#: sql_help.c:1499 sql_help.c:1520 sql_help.c:1534 sql_help.c:1546 -#: sql_help.c:1559 sql_help.c:1586 sql_help.c:1652 sql_help.c:1705 +#: sql_help.c:829 sql_help.c:868 sql_help.c:927 sql_help.c:979 sql_help.c:1032 +#: sql_help.c:1064 sql_help.c:1074 sql_help.c:1109 sql_help.c:1129 +#: sql_help.c:1143 sql_help.c:1193 sql_help.c:1340 sql_help.c:1470 +#: sql_help.c:1513 sql_help.c:1534 sql_help.c:1548 sql_help.c:1560 +#: sql_help.c:1573 sql_help.c:1600 sql_help.c:1666 sql_help.c:1719 msgid "new_name" msgstr "nytt_namn" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 #: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 #: sql_help.c:642 sql_help.c:707 sql_help.c:727 sql_help.c:756 sql_help.c:811 -#: sql_help.c:873 sql_help.c:916 sql_help.c:1023 sql_help.c:1062 -#: sql_help.c:1093 sql_help.c:1113 sql_help.c:1127 sql_help.c:1177 -#: sql_help.c:1390 sql_help.c:1458 sql_help.c:1501 sql_help.c:1522 -#: sql_help.c:1584 sql_help.c:1700 sql_help.c:3026 +#: sql_help.c:873 sql_help.c:925 sql_help.c:1037 sql_help.c:1076 +#: sql_help.c:1107 sql_help.c:1127 sql_help.c:1141 sql_help.c:1191 +#: sql_help.c:1404 sql_help.c:1472 sql_help.c:1515 sql_help.c:1536 +#: sql_help.c:1598 sql_help.c:1714 sql_help.c:3046 msgid "new_owner" msgstr "ny_ägare" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 #: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:731 sql_help.c:759 -#: sql_help.c:814 sql_help.c:878 sql_help.c:1028 sql_help.c:1097 -#: sql_help.c:1131 sql_help.c:1328 sql_help.c:1503 sql_help.c:1524 -#: sql_help.c:1536 sql_help.c:1548 sql_help.c:1588 sql_help.c:1707 +#: sql_help.c:814 sql_help.c:878 sql_help.c:1042 sql_help.c:1111 +#: sql_help.c:1145 sql_help.c:1342 sql_help.c:1517 sql_help.c:1538 +#: sql_help.c:1550 sql_help.c:1562 sql_help.c:1602 sql_help.c:1721 msgid "new_schema" msgstr "nytt_schema" -#: sql_help.c:44 sql_help.c:1922 sql_help.c:3355 sql_help.c:4503 +#: sql_help.c:44 sql_help.c:1936 sql_help.c:3375 sql_help.c:4523 msgid "where aggregate_signature is:" msgstr "där aggregatsignatur är:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 #: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 #: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1876 sql_help.c:1893 sql_help.c:1899 sql_help.c:1923 -#: sql_help.c:1926 sql_help.c:1929 sql_help.c:2078 sql_help.c:2097 -#: sql_help.c:2100 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3920 sql_help.c:4373 sql_help.c:4480 -#: sql_help.c:4487 sql_help.c:4493 sql_help.c:4504 sql_help.c:4507 -#: sql_help.c:4510 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1024 +#: sql_help.c:1029 sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 +#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 +#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2092 sql_help.c:2111 +#: sql_help.c:2114 sql_help.c:2412 sql_help.c:2621 sql_help.c:3376 +#: sql_help.c:3379 sql_help.c:3382 sql_help.c:3473 sql_help.c:3562 +#: sql_help.c:3590 sql_help.c:3940 sql_help.c:4393 sql_help.c:4500 +#: sql_help.c:4507 sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 +#: sql_help.c:4530 msgid "argmode" msgstr "arg_läge" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 #: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 #: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1011 -#: sql_help.c:1016 sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 -#: sql_help.c:1877 sql_help.c:1894 sql_help.c:1900 sql_help.c:1924 -#: sql_help.c:1927 sql_help.c:1930 sql_help.c:2079 sql_help.c:2098 -#: sql_help.c:2101 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4481 sql_help.c:4488 sql_help.c:4494 -#: sql_help.c:4505 sql_help.c:4508 sql_help.c:4511 +#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1025 +#: sql_help.c:1030 sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 +#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 +#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2093 sql_help.c:2112 +#: sql_help.c:2115 sql_help.c:2413 sql_help.c:2622 sql_help.c:3377 +#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3474 sql_help.c:3563 +#: sql_help.c:3591 sql_help.c:4501 sql_help.c:4508 sql_help.c:4514 +#: sql_help.c:4525 sql_help.c:4528 sql_help.c:4531 msgid "argname" msgstr "arg_namn" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 #: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 #: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:862 -#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1012 -#: sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 -#: sql_help.c:1878 sql_help.c:1895 sql_help.c:1901 sql_help.c:1925 -#: sql_help.c:1928 sql_help.c:1931 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4482 sql_help.c:4489 -#: sql_help.c:4495 sql_help.c:4506 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1026 +#: sql_help.c:1031 sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 +#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 +#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2414 sql_help.c:2623 +#: sql_help.c:3378 sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 +#: sql_help.c:3564 sql_help.c:3592 sql_help.c:4502 sql_help.c:4509 +#: sql_help.c:4515 sql_help.c:4526 sql_help.c:4529 sql_help.c:4532 msgid "argtype" msgstr "arg_typ" -#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:959 -#: sql_help.c:1110 sql_help.c:1517 sql_help.c:1646 sql_help.c:1678 -#: sql_help.c:1730 sql_help.c:1793 sql_help.c:1979 sql_help.c:1986 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3757 -#: sql_help.c:3964 sql_help.c:4202 sql_help.c:4975 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:973 +#: sql_help.c:1124 sql_help.c:1531 sql_help.c:1660 sql_help.c:1692 +#: sql_help.c:1744 sql_help.c:1807 sql_help.c:1993 sql_help.c:2000 +#: sql_help.c:2303 sql_help.c:2353 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2458 sql_help.c:2691 sql_help.c:2784 sql_help.c:3075 +#: sql_help.c:3260 sql_help.c:3282 sql_help.c:3422 sql_help.c:3777 +#: sql_help.c:3984 sql_help.c:4222 sql_help.c:4995 msgid "option" msgstr "flaggor" -#: sql_help.c:115 sql_help.c:960 sql_help.c:1647 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:974 sql_help.c:1661 sql_help.c:2459 +#: sql_help.c:2692 sql_help.c:3261 sql_help.c:3423 msgid "where option can be:" msgstr "där flaggor kan vara:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2235 msgid "allowconn" msgstr "tillåtansl" -#: sql_help.c:117 sql_help.c:961 sql_help.c:1648 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:975 sql_help.c:1662 sql_help.c:2236 +#: sql_help.c:2460 sql_help.c:2693 sql_help.c:3262 msgid "connlimit" msgstr "anslutningstak" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2237 msgid "istemplate" msgstr "ärmall" -#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1331 -#: sql_help.c:1383 sql_help.c:4206 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1345 +#: sql_help.c:1397 sql_help.c:4226 msgid "new_tablespace" msgstr "nytt_tabellutrymme" #: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 -#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:968 -#: sql_help.c:972 sql_help.c:975 sql_help.c:1037 sql_help.c:1039 -#: sql_help.c:1040 sql_help.c:1190 sql_help.c:1192 sql_help.c:1655 -#: sql_help.c:1659 sql_help.c:1662 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3932 sql_help.c:4224 sql_help.c:4385 sql_help.c:4694 +#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:982 +#: sql_help.c:986 sql_help.c:989 sql_help.c:1051 sql_help.c:1053 +#: sql_help.c:1054 sql_help.c:1204 sql_help.c:1206 sql_help.c:1669 +#: sql_help.c:1673 sql_help.c:1676 sql_help.c:2424 sql_help.c:2627 +#: sql_help.c:3952 sql_help.c:4244 sql_help.c:4405 sql_help.c:4714 msgid "configuration_parameter" msgstr "konfigurationsparameter" #: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 #: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:886 -#: sql_help.c:914 sql_help.c:969 sql_help.c:1038 sql_help.c:1111 -#: sql_help.c:1156 sql_help.c:1160 sql_help.c:1164 sql_help.c:1167 -#: sql_help.c:1172 sql_help.c:1175 sql_help.c:1191 sql_help.c:1362 -#: sql_help.c:1385 sql_help.c:1433 sql_help.c:1441 sql_help.c:1461 -#: sql_help.c:1518 sql_help.c:1602 sql_help.c:1656 sql_help.c:1679 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3965 -#: sql_help.c:4695 sql_help.c:4696 sql_help.c:4697 sql_help.c:4698 +#: sql_help.c:923 sql_help.c:983 sql_help.c:1052 sql_help.c:1125 +#: sql_help.c:1170 sql_help.c:1174 sql_help.c:1178 sql_help.c:1181 +#: sql_help.c:1186 sql_help.c:1189 sql_help.c:1205 sql_help.c:1376 +#: sql_help.c:1399 sql_help.c:1447 sql_help.c:1455 sql_help.c:1475 +#: sql_help.c:1532 sql_help.c:1616 sql_help.c:1670 sql_help.c:1693 +#: sql_help.c:2304 sql_help.c:2354 sql_help.c:2361 sql_help.c:2370 +#: sql_help.c:2425 sql_help.c:2426 sql_help.c:2490 sql_help.c:2493 +#: sql_help.c:2527 sql_help.c:2628 sql_help.c:2629 sql_help.c:2656 +#: sql_help.c:2785 sql_help.c:2824 sql_help.c:2934 sql_help.c:2947 +#: sql_help.c:2961 sql_help.c:3002 sql_help.c:3010 sql_help.c:3032 +#: sql_help.c:3049 sql_help.c:3076 sql_help.c:3283 sql_help.c:3985 +#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718 msgid "value" msgstr "värde" @@ -4204,10 +4213,10 @@ msgstr "värde" msgid "target_role" msgstr "målroll" -#: sql_help.c:203 sql_help.c:923 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3895 sql_help.c:3904 -#: sql_help.c:3923 sql_help.c:3935 sql_help.c:4348 sql_help.c:4357 -#: sql_help.c:4376 sql_help.c:4388 +#: sql_help.c:203 sql_help.c:930 sql_help.c:933 sql_help.c:2288 sql_help.c:2659 +#: sql_help.c:2740 sql_help.c:2745 sql_help.c:3915 sql_help.c:3924 +#: sql_help.c:3943 sql_help.c:3955 sql_help.c:4368 sql_help.c:4377 +#: sql_help.c:4396 sql_help.c:4408 msgid "schema_name" msgstr "schemanamn" @@ -4221,32 +4230,32 @@ msgstr "där förkortad_grant_eller_revok är en av:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:979 -#: sql_help.c:1330 sql_help.c:1666 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3944 sql_help.c:3948 -#: sql_help.c:4397 sql_help.c:4401 sql_help.c:4716 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:993 +#: sql_help.c:1344 sql_help.c:1680 sql_help.c:2463 sql_help.c:2464 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2467 sql_help.c:2601 +#: sql_help.c:2696 sql_help.c:2697 sql_help.c:2698 sql_help.c:2699 +#: sql_help.c:2700 sql_help.c:3265 sql_help.c:3266 sql_help.c:3267 +#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3964 sql_help.c:3968 +#: sql_help.c:4417 sql_help.c:4421 sql_help.c:4736 msgid "role_name" msgstr "rollnamn" -#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:922 sql_help.c:1346 -#: sql_help.c:1348 sql_help.c:1400 sql_help.c:1412 sql_help.c:1437 -#: sql_help.c:1696 sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 -#: sql_help.c:2364 sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 -#: sql_help.c:2786 sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 -#: sql_help.c:2936 sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 -#: sql_help.c:3996 sql_help.c:4011 sql_help.c:4013 sql_help.c:4102 -#: sql_help.c:4105 sql_help.c:4107 sql_help.c:4567 sql_help.c:4568 -#: sql_help.c:4577 sql_help.c:4624 sql_help.c:4625 sql_help.c:4626 -#: sql_help.c:4627 sql_help.c:4628 sql_help.c:4629 sql_help.c:4669 -#: sql_help.c:4670 sql_help.c:4675 sql_help.c:4680 sql_help.c:4824 -#: sql_help.c:4825 sql_help.c:4834 sql_help.c:4881 sql_help.c:4882 -#: sql_help.c:4883 sql_help.c:4884 sql_help.c:4885 sql_help.c:4886 -#: sql_help.c:4940 sql_help.c:4942 sql_help.c:5002 sql_help.c:5062 -#: sql_help.c:5063 sql_help.c:5072 sql_help.c:5119 sql_help.c:5120 -#: sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 sql_help.c:5124 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:937 sql_help.c:1360 +#: sql_help.c:1362 sql_help.c:1414 sql_help.c:1426 sql_help.c:1451 +#: sql_help.c:1710 sql_help.c:2257 sql_help.c:2261 sql_help.c:2373 +#: sql_help.c:2378 sql_help.c:2486 sql_help.c:2663 sql_help.c:2801 +#: sql_help.c:2806 sql_help.c:2808 sql_help.c:2929 sql_help.c:2942 +#: sql_help.c:2956 sql_help.c:2965 sql_help.c:2977 sql_help.c:3006 +#: sql_help.c:4016 sql_help.c:4031 sql_help.c:4033 sql_help.c:4122 +#: sql_help.c:4125 sql_help.c:4127 sql_help.c:4587 sql_help.c:4588 +#: sql_help.c:4597 sql_help.c:4644 sql_help.c:4645 sql_help.c:4646 +#: sql_help.c:4647 sql_help.c:4648 sql_help.c:4649 sql_help.c:4689 +#: sql_help.c:4690 sql_help.c:4695 sql_help.c:4700 sql_help.c:4844 +#: sql_help.c:4845 sql_help.c:4854 sql_help.c:4901 sql_help.c:4902 +#: sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5022 sql_help.c:5082 +#: sql_help.c:5083 sql_help.c:5092 sql_help.c:5139 sql_help.c:5140 +#: sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 sql_help.c:5144 msgid "expression" msgstr "uttryck" @@ -4255,14 +4264,14 @@ msgid "domain_constraint" msgstr "domain_villkor" #: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 -#: sql_help.c:488 sql_help.c:1323 sql_help.c:1370 sql_help.c:1371 -#: sql_help.c:1372 sql_help.c:1399 sql_help.c:1411 sql_help.c:1428 -#: sql_help.c:1864 sql_help.c:1866 sql_help.c:2246 sql_help.c:2358 -#: sql_help.c:2363 sql_help.c:2944 sql_help.c:2956 sql_help.c:4008 +#: sql_help.c:488 sql_help.c:1337 sql_help.c:1384 sql_help.c:1385 +#: sql_help.c:1386 sql_help.c:1413 sql_help.c:1425 sql_help.c:1442 +#: sql_help.c:1878 sql_help.c:1880 sql_help.c:2260 sql_help.c:2372 +#: sql_help.c:2377 sql_help.c:2964 sql_help.c:2976 sql_help.c:4028 msgid "constraint_name" msgstr "villkorsnamn" -#: sql_help.c:254 sql_help.c:1324 +#: sql_help.c:254 sql_help.c:1338 msgid "new_constraint_name" msgstr "nyy_villkorsnamn" @@ -4270,7 +4279,7 @@ msgstr "nyy_villkorsnamn" msgid "where domain_constraint is:" msgstr "där domän_villkor är:" -#: sql_help.c:330 sql_help.c:1109 +#: sql_help.c:330 sql_help.c:1123 msgid "new_version" msgstr "ny_version" @@ -4286,82 +4295,82 @@ msgstr "där medlemsobjekt är:" #: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 #: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 #: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 -#: sql_help.c:381 sql_help.c:1856 sql_help.c:1861 sql_help.c:1868 -#: sql_help.c:1869 sql_help.c:1870 sql_help.c:1871 sql_help.c:1872 -#: sql_help.c:1873 sql_help.c:1874 sql_help.c:1879 sql_help.c:1881 -#: sql_help.c:1885 sql_help.c:1887 sql_help.c:1891 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 -#: sql_help.c:1907 sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 -#: sql_help.c:1919 sql_help.c:1920 sql_help.c:4470 sql_help.c:4475 -#: sql_help.c:4476 sql_help.c:4477 sql_help.c:4478 sql_help.c:4484 -#: sql_help.c:4485 sql_help.c:4490 sql_help.c:4491 sql_help.c:4496 -#: sql_help.c:4497 sql_help.c:4498 sql_help.c:4499 sql_help.c:4500 -#: sql_help.c:4501 +#: sql_help.c:381 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 +#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 +#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 +#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 +#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 +#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 +#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4490 sql_help.c:4495 +#: sql_help.c:4496 sql_help.c:4497 sql_help.c:4498 sql_help.c:4504 +#: sql_help.c:4505 sql_help.c:4510 sql_help.c:4511 sql_help.c:4516 +#: sql_help.c:4517 sql_help.c:4518 sql_help.c:4519 sql_help.c:4520 +#: sql_help.c:4521 msgid "object_name" msgstr "objektnamn" -#: sql_help.c:339 sql_help.c:1857 sql_help.c:4473 +#: sql_help.c:339 sql_help.c:1871 sql_help.c:4493 msgid "aggregate_name" msgstr "aggregatnamn" -#: sql_help.c:341 sql_help.c:1859 sql_help.c:2143 sql_help.c:2147 -#: sql_help.c:2149 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1873 sql_help.c:2157 sql_help.c:2161 +#: sql_help.c:2163 sql_help.c:3392 msgid "source_type" msgstr "källtyp" -#: sql_help.c:342 sql_help.c:1860 sql_help.c:2144 sql_help.c:2148 -#: sql_help.c:2150 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1874 sql_help.c:2158 sql_help.c:2162 +#: sql_help.c:2164 sql_help.c:3393 msgid "target_type" msgstr "måltyp" -#: sql_help.c:349 sql_help.c:796 sql_help.c:1875 sql_help.c:2145 -#: sql_help.c:2186 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4372 sql_help.c:4479 sql_help.c:4596 -#: sql_help.c:4600 sql_help.c:4604 sql_help.c:4607 sql_help.c:4853 -#: sql_help.c:4857 sql_help.c:4861 sql_help.c:4864 sql_help.c:5091 -#: sql_help.c:5095 sql_help.c:5099 sql_help.c:5102 +#: sql_help.c:349 sql_help.c:796 sql_help.c:1889 sql_help.c:2159 +#: sql_help.c:2200 sql_help.c:2276 sql_help.c:2544 sql_help.c:2575 +#: sql_help.c:3152 sql_help.c:4392 sql_help.c:4499 sql_help.c:4616 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4627 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5111 +#: sql_help.c:5115 sql_help.c:5119 sql_help.c:5122 msgid "function_name" msgstr "funktionsnamn" -#: sql_help.c:354 sql_help.c:789 sql_help.c:1882 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:789 sql_help.c:1896 sql_help.c:2568 msgid "operator_name" msgstr "operatornamn" -#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1883 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1897 +#: sql_help.c:2545 sql_help.c:3516 msgid "left_type" msgstr "vänster_typ" -#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1884 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1898 +#: sql_help.c:2546 sql_help.c:3517 msgid "right_type" msgstr "höger_typ" #: sql_help.c:358 sql_help.c:360 sql_help.c:752 sql_help.c:755 sql_help.c:758 #: sql_help.c:787 sql_help.c:799 sql_help.c:807 sql_help.c:810 sql_help.c:813 -#: sql_help.c:1417 sql_help.c:1886 sql_help.c:1888 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:1431 sql_help.c:1900 sql_help.c:1902 sql_help.c:2565 +#: sql_help.c:2586 sql_help.c:2982 sql_help.c:3526 sql_help.c:3535 msgid "index_method" msgstr "indexmetod" -#: sql_help.c:362 sql_help.c:1892 sql_help.c:4486 +#: sql_help.c:362 sql_help.c:1906 sql_help.c:4506 msgid "procedure_name" msgstr "procedurnamn" -#: sql_help.c:366 sql_help.c:1898 sql_help.c:3919 sql_help.c:4492 +#: sql_help.c:366 sql_help.c:1912 sql_help.c:3939 sql_help.c:4512 msgid "routine_name" msgstr "rutinnamn" -#: sql_help.c:378 sql_help.c:1389 sql_help.c:1915 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3941 sql_help.c:4394 +#: sql_help.c:378 sql_help.c:1403 sql_help.c:1929 sql_help.c:2420 +#: sql_help.c:2626 sql_help.c:2937 sql_help.c:3119 sql_help.c:3697 +#: sql_help.c:3961 sql_help.c:4414 msgid "type_name" msgstr "typnamn" -#: sql_help.c:379 sql_help.c:1916 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3926 -#: sql_help.c:4379 +#: sql_help.c:379 sql_help.c:1930 sql_help.c:2419 sql_help.c:2625 +#: sql_help.c:3120 sql_help.c:3350 sql_help.c:3698 sql_help.c:3946 +#: sql_help.c:4399 msgid "lang_name" msgstr "språknamn" @@ -4369,147 +4378,147 @@ msgstr "språknamn" msgid "and aggregate_signature is:" msgstr "och aggregatsignatur är:" -#: sql_help.c:405 sql_help.c:2010 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2024 sql_help.c:2301 msgid "handler_function" msgstr "hanterarfunktion" -#: sql_help.c:406 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2302 msgid "validator_function" msgstr "valideringsfunktion" -#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1013 -#: sql_help.c:1318 sql_help.c:1593 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1027 +#: sql_help.c:1332 sql_help.c:1607 msgid "action" msgstr "aktion" #: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 #: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 #: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 -#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:921 sql_help.c:1090 -#: sql_help.c:1320 sql_help.c:1338 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1347 sql_help.c:1349 sql_help.c:1350 sql_help.c:1351 -#: sql_help.c:1352 sql_help.c:1354 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1360 sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 -#: sql_help.c:1413 sql_help.c:1415 sql_help.c:1422 sql_help.c:1431 -#: sql_help.c:1436 sql_help.c:1443 sql_help.c:1444 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1702 sql_help.c:1738 sql_help.c:1863 -#: sql_help.c:1976 sql_help.c:1982 sql_help.c:1995 sql_help.c:1996 -#: sql_help.c:1997 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3995 sql_help.c:4010 sql_help.c:4012 -#: sql_help.c:4014 sql_help.c:4101 sql_help.c:4104 sql_help.c:4106 -#: sql_help.c:4108 sql_help.c:4351 sql_help.c:4352 sql_help.c:4472 -#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4641 sql_help.c:4890 -#: sql_help.c:4896 sql_help.c:4898 sql_help.c:4939 sql_help.c:4941 -#: sql_help.c:4943 sql_help.c:4990 sql_help.c:5128 sql_help.c:5134 -#: sql_help.c:5136 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:936 sql_help.c:1104 +#: sql_help.c:1334 sql_help.c:1352 sql_help.c:1356 sql_help.c:1357 +#: sql_help.c:1361 sql_help.c:1363 sql_help.c:1364 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1368 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1374 sql_help.c:1377 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1436 sql_help.c:1445 +#: sql_help.c:1450 sql_help.c:1457 sql_help.c:1458 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1716 sql_help.c:1752 sql_help.c:1877 +#: sql_help.c:1990 sql_help.c:1996 sql_help.c:2009 sql_help.c:2010 +#: sql_help.c:2011 sql_help.c:2351 sql_help.c:2364 sql_help.c:2417 +#: sql_help.c:2485 sql_help.c:2491 sql_help.c:2524 sql_help.c:2662 +#: sql_help.c:2770 sql_help.c:2805 sql_help.c:2807 sql_help.c:2919 +#: sql_help.c:2928 sql_help.c:2938 sql_help.c:2941 sql_help.c:2951 +#: sql_help.c:2955 sql_help.c:2978 sql_help.c:2980 sql_help.c:2987 +#: sql_help.c:3000 sql_help.c:3005 sql_help.c:3012 sql_help.c:3013 +#: sql_help.c:3029 sql_help.c:3155 sql_help.c:3295 sql_help.c:3918 +#: sql_help.c:3919 sql_help.c:4015 sql_help.c:4030 sql_help.c:4032 +#: sql_help.c:4034 sql_help.c:4121 sql_help.c:4124 sql_help.c:4126 +#: sql_help.c:4128 sql_help.c:4371 sql_help.c:4372 sql_help.c:4492 +#: sql_help.c:4653 sql_help.c:4659 sql_help.c:4661 sql_help.c:4910 +#: sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 sql_help.c:4961 +#: sql_help.c:4963 sql_help.c:5010 sql_help.c:5148 sql_help.c:5154 +#: sql_help.c:5156 msgid "column_name" msgstr "kolumnnamn" -#: sql_help.c:457 sql_help.c:682 sql_help.c:1321 sql_help.c:1703 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1335 sql_help.c:1717 msgid "new_column_name" msgstr "nytt_kolumnnamn" -#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1034 -#: sql_help.c:1337 sql_help.c:1603 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1048 +#: sql_help.c:1351 sql_help.c:1617 msgid "where action is one of:" msgstr "där aktion är en av:" -#: sql_help.c:464 sql_help.c:469 sql_help.c:1082 sql_help.c:1339 -#: sql_help.c:1344 sql_help.c:1605 sql_help.c:1609 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4160 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1096 sql_help.c:1353 +#: sql_help.c:1358 sql_help.c:1619 sql_help.c:1623 sql_help.c:2255 +#: sql_help.c:2352 sql_help.c:2564 sql_help.c:2763 sql_help.c:2920 +#: sql_help.c:3202 sql_help.c:4180 msgid "data_type" msgstr "datatyp" -#: sql_help.c:465 sql_help.c:470 sql_help.c:1340 sql_help.c:1345 -#: sql_help.c:1438 sql_help.c:1606 sql_help.c:1610 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4005 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1354 sql_help.c:1359 +#: sql_help.c:1452 sql_help.c:1620 sql_help.c:1624 sql_help.c:2256 +#: sql_help.c:2355 sql_help.c:2487 sql_help.c:2922 sql_help.c:2930 +#: sql_help.c:2943 sql_help.c:2957 sql_help.c:3007 sql_help.c:3203 +#: sql_help.c:3209 sql_help.c:4025 msgid "collation" msgstr "jämförelse" -#: sql_help.c:466 sql_help.c:1341 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1355 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2923 sql_help.c:2939 sql_help.c:2952 msgid "column_constraint" msgstr "kolumnvillkor" -#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1359 sql_help.c:4987 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1373 sql_help.c:5007 msgid "integer" msgstr "heltal" -#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1361 -#: sql_help.c:1364 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1375 +#: sql_help.c:1378 msgid "attribute_option" msgstr "attributalternativ" -#: sql_help.c:486 sql_help.c:1368 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1382 sql_help.c:2357 sql_help.c:2366 +#: sql_help.c:2924 sql_help.c:2940 sql_help.c:2953 msgid "table_constraint" msgstr "tabellvillkor" -#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1373 -#: sql_help.c:1374 sql_help.c:1375 sql_help.c:1376 sql_help.c:1917 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1387 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 sql_help.c:1931 msgid "trigger_name" msgstr "triggernamn" -#: sql_help.c:493 sql_help.c:494 sql_help.c:1387 sql_help.c:1388 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1401 sql_help.c:1402 +#: sql_help.c:2358 sql_help.c:2363 sql_help.c:2927 sql_help.c:2950 msgid "parent_table" msgstr "föräldertabell" -#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1033 -#: sql_help.c:1562 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1047 +#: sql_help.c:1576 sql_help.c:2287 msgid "extension_name" msgstr "utökningsnamn" -#: sql_help.c:555 sql_help.c:1035 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1049 sql_help.c:2421 msgid "execution_cost" msgstr "körkostnad" -#: sql_help.c:556 sql_help.c:1036 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1050 sql_help.c:2422 msgid "result_rows" msgstr "resultatrader" -#: sql_help.c:557 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2423 msgid "support_function" msgstr "supportfunktion" -#: sql_help.c:579 sql_help.c:581 sql_help.c:958 sql_help.c:966 sql_help.c:970 -#: sql_help.c:973 sql_help.c:976 sql_help.c:1645 sql_help.c:1653 -#: sql_help.c:1657 sql_help.c:1660 sql_help.c:1663 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3896 -#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3902 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3914 sql_help.c:3915 sql_help.c:3917 -#: sql_help.c:3918 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:3942 sql_help.c:3943 sql_help.c:3945 -#: sql_help.c:3946 sql_help.c:4349 sql_help.c:4350 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4367 -#: sql_help.c:4368 sql_help.c:4370 sql_help.c:4371 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 sql_help.c:4395 -#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 +#: sql_help.c:579 sql_help.c:581 sql_help.c:972 sql_help.c:980 sql_help.c:984 +#: sql_help.c:987 sql_help.c:990 sql_help.c:1659 sql_help.c:1667 +#: sql_help.c:1671 sql_help.c:1674 sql_help.c:1677 sql_help.c:2741 +#: sql_help.c:2743 sql_help.c:2746 sql_help.c:2747 sql_help.c:3916 +#: sql_help.c:3917 sql_help.c:3921 sql_help.c:3922 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3928 sql_help.c:3929 sql_help.c:3931 +#: sql_help.c:3932 sql_help.c:3934 sql_help.c:3935 sql_help.c:3937 +#: sql_help.c:3938 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:3956 sql_help.c:3957 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3962 sql_help.c:3963 sql_help.c:3965 +#: sql_help.c:3966 sql_help.c:4369 sql_help.c:4370 sql_help.c:4374 +#: sql_help.c:4375 sql_help.c:4378 sql_help.c:4379 sql_help.c:4381 +#: sql_help.c:4382 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4397 +#: sql_help.c:4398 sql_help.c:4400 sql_help.c:4401 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 msgid "role_specification" msgstr "rollspecifikation" -#: sql_help.c:580 sql_help.c:582 sql_help.c:1676 sql_help.c:2210 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4726 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1690 sql_help.c:2224 +#: sql_help.c:2749 sql_help.c:3280 sql_help.c:3731 sql_help.c:4746 msgid "user_name" msgstr "användarnamn" -#: sql_help.c:583 sql_help.c:978 sql_help.c:1665 sql_help.c:2728 -#: sql_help.c:3947 sql_help.c:4400 +#: sql_help.c:583 sql_help.c:992 sql_help.c:1679 sql_help.c:2748 +#: sql_help.c:3967 sql_help.c:4420 msgid "where role_specification can be:" msgstr "där rollspecifikation kan vara:" @@ -4517,22 +4526,22 @@ msgstr "där rollspecifikation kan vara:" msgid "group_name" msgstr "gruppnamn" -#: sql_help.c:606 sql_help.c:1434 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3938 -#: sql_help.c:4391 +#: sql_help.c:606 sql_help.c:1448 sql_help.c:2234 sql_help.c:2494 +#: sql_help.c:2528 sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 +#: sql_help.c:3003 sql_help.c:3033 sql_help.c:3045 sql_help.c:3958 +#: sql_help.c:4411 msgid "tablespace_name" msgstr "tabellutrymmesnamn" -#: sql_help.c:608 sql_help.c:701 sql_help.c:1381 sql_help.c:1391 -#: sql_help.c:1429 sql_help.c:1792 sql_help.c:1795 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1395 sql_help.c:1405 +#: sql_help.c:1443 sql_help.c:1806 sql_help.c:1809 msgid "index_name" msgstr "indexnamn" -#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1384 -#: sql_help.c:1386 sql_help.c:1432 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1398 +#: sql_help.c:1400 sql_help.c:1446 sql_help.c:2492 sql_help.c:2526 +#: sql_help.c:2933 sql_help.c:2946 sql_help.c:2960 sql_help.c:3001 +#: sql_help.c:3031 msgid "storage_parameter" msgstr "lagringsparameter" @@ -4540,1877 +4549,1886 @@ msgstr "lagringsparameter" msgid "column_number" msgstr "kolumnnummer" -#: sql_help.c:641 sql_help.c:1880 sql_help.c:4483 +#: sql_help.c:641 sql_help.c:1894 sql_help.c:4503 msgid "large_object_oid" msgstr "stort_objekt_oid" -#: sql_help.c:700 sql_help.c:1367 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1381 sql_help.c:2921 msgid "compression_method" msgstr "komprimeringsmetod" -#: sql_help.c:702 sql_help.c:1382 +#: sql_help.c:702 sql_help.c:1396 msgid "new_access_method" msgstr "ny_accessmetod" -#: sql_help.c:735 sql_help.c:2535 +#: sql_help.c:735 sql_help.c:2549 msgid "res_proc" msgstr "res_proc" -#: sql_help.c:736 sql_help.c:2536 +#: sql_help.c:736 sql_help.c:2550 msgid "join_proc" msgstr "join_proc" -#: sql_help.c:788 sql_help.c:800 sql_help.c:2553 +#: sql_help.c:788 sql_help.c:800 sql_help.c:2567 msgid "strategy_number" msgstr "strateginummer" #: sql_help.c:790 sql_help.c:791 sql_help.c:794 sql_help.c:795 sql_help.c:801 -#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2569 sql_help.c:2570 +#: sql_help.c:2573 sql_help.c:2574 msgid "op_type" msgstr "op_typ" -#: sql_help.c:792 sql_help.c:2557 +#: sql_help.c:792 sql_help.c:2571 msgid "sort_family_name" msgstr "sorteringsfamiljnamn" -#: sql_help.c:793 sql_help.c:803 sql_help.c:2558 +#: sql_help.c:793 sql_help.c:803 sql_help.c:2572 msgid "support_number" msgstr "supportnummer" -#: sql_help.c:797 sql_help.c:2146 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:797 sql_help.c:2160 sql_help.c:2576 sql_help.c:3122 +#: sql_help.c:3124 msgid "argument_type" msgstr "argumenttyp" -#: sql_help.c:828 sql_help.c:831 sql_help.c:920 sql_help.c:1049 sql_help.c:1089 -#: sql_help.c:1558 sql_help.c:1561 sql_help.c:1737 sql_help.c:1791 -#: sql_help.c:1794 sql_help.c:1865 sql_help.c:1890 sql_help.c:1903 -#: sql_help.c:1918 sql_help.c:1975 sql_help.c:1981 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3894 sql_help.c:3900 -#: sql_help.c:3961 sql_help.c:3993 sql_help.c:4347 sql_help.c:4353 -#: sql_help.c:4471 sql_help.c:4582 sql_help.c:4584 sql_help.c:4646 -#: sql_help.c:4685 sql_help.c:4839 sql_help.c:4841 sql_help.c:4903 -#: sql_help.c:4937 sql_help.c:4989 sql_help.c:5077 sql_help.c:5079 -#: sql_help.c:5141 +#: sql_help.c:828 sql_help.c:831 sql_help.c:932 sql_help.c:935 sql_help.c:1063 +#: sql_help.c:1103 sql_help.c:1572 sql_help.c:1575 sql_help.c:1751 +#: sql_help.c:1805 sql_help.c:1808 sql_help.c:1879 sql_help.c:1904 +#: sql_help.c:1917 sql_help.c:1932 sql_help.c:1989 sql_help.c:1995 +#: sql_help.c:2350 sql_help.c:2362 sql_help.c:2483 sql_help.c:2523 +#: sql_help.c:2600 sql_help.c:2661 sql_help.c:2717 sql_help.c:2769 +#: sql_help.c:2802 sql_help.c:2809 sql_help.c:2918 sql_help.c:2936 +#: sql_help.c:2949 sql_help.c:3028 sql_help.c:3148 sql_help.c:3329 +#: sql_help.c:3552 sql_help.c:3601 sql_help.c:3707 sql_help.c:3914 +#: sql_help.c:3920 sql_help.c:3981 sql_help.c:4013 sql_help.c:4367 +#: sql_help.c:4373 sql_help.c:4491 sql_help.c:4602 sql_help.c:4604 +#: sql_help.c:4666 sql_help.c:4705 sql_help.c:4859 sql_help.c:4861 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5009 sql_help.c:5097 +#: sql_help.c:5099 sql_help.c:5161 msgid "table_name" msgstr "tabellnamn" -#: sql_help.c:833 sql_help.c:2588 +#: sql_help.c:833 sql_help.c:2602 msgid "using_expression" msgstr "using-uttryck" -#: sql_help.c:834 sql_help.c:2589 +#: sql_help.c:834 sql_help.c:2603 msgid "check_expression" msgstr "check-uttryck" -#: sql_help.c:907 sql_help.c:909 sql_help.c:911 sql_help.c:2636 +#: sql_help.c:916 sql_help.c:918 sql_help.c:2654 msgid "publication_object" msgstr "publiceringsobject" -#: sql_help.c:913 sql_help.c:2637 +#: sql_help.c:920 +msgid "publication_drop_object" +msgstr "publiceringsslängobject" + +#: sql_help.c:922 sql_help.c:2655 msgid "publication_parameter" msgstr "publiceringsparameter" -#: sql_help.c:919 sql_help.c:2639 +#: sql_help.c:928 sql_help.c:2657 msgid "where publication_object is one of:" msgstr "där publiceringsobjekt är en av:" -#: sql_help.c:962 sql_help.c:1649 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:929 sql_help.c:1745 sql_help.c:1746 sql_help.c:2658 +#: sql_help.c:4996 sql_help.c:4997 +msgid "table_and_columns" +msgstr "tabell_och_kolumner" + +#: sql_help.c:931 +msgid "and publication_drop_object is one of:" +msgstr "där publiceringsslängobjekt är en av:" + +#: sql_help.c:934 sql_help.c:1750 sql_help.c:2660 sql_help.c:5008 +msgid "and table_and_columns is:" +msgstr "och tabell_och_kolumner är:" + +#: sql_help.c:976 sql_help.c:1663 sql_help.c:2461 sql_help.c:2694 +#: sql_help.c:3263 msgid "password" msgstr "lösenord" -#: sql_help.c:963 sql_help.c:1650 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:977 sql_help.c:1664 sql_help.c:2462 sql_help.c:2695 +#: sql_help.c:3264 msgid "timestamp" msgstr "tidsstämpel" -#: sql_help.c:967 sql_help.c:971 sql_help.c:974 sql_help.c:977 sql_help.c:1654 -#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:3907 -#: sql_help.c:4360 +#: sql_help.c:981 sql_help.c:985 sql_help.c:988 sql_help.c:991 sql_help.c:1668 +#: sql_help.c:1672 sql_help.c:1675 sql_help.c:1678 sql_help.c:3927 +#: sql_help.c:4380 msgid "database_name" msgstr "databasnamn" -#: sql_help.c:1083 sql_help.c:2744 +#: sql_help.c:1097 sql_help.c:2764 msgid "increment" msgstr "ökningsvärde" -#: sql_help.c:1084 sql_help.c:2745 +#: sql_help.c:1098 sql_help.c:2765 msgid "minvalue" msgstr "minvärde" -#: sql_help.c:1085 sql_help.c:2746 +#: sql_help.c:1099 sql_help.c:2766 msgid "maxvalue" msgstr "maxvärde" -#: sql_help.c:1086 sql_help.c:2747 sql_help.c:4580 sql_help.c:4683 -#: sql_help.c:4837 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1100 sql_help.c:2767 sql_help.c:4600 sql_help.c:4703 +#: sql_help.c:4857 sql_help.c:5026 sql_help.c:5095 msgid "start" msgstr "start" -#: sql_help.c:1087 sql_help.c:1356 +#: sql_help.c:1101 sql_help.c:1370 msgid "restart" msgstr "starta om" -#: sql_help.c:1088 sql_help.c:2748 +#: sql_help.c:1102 sql_help.c:2768 msgid "cache" msgstr "cache" -#: sql_help.c:1133 +#: sql_help.c:1147 msgid "new_target" msgstr "nytt_mål" -#: sql_help.c:1152 sql_help.c:2801 +#: sql_help.c:1166 sql_help.c:2821 msgid "conninfo" msgstr "anslinfo" -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:2802 +#: sql_help.c:1168 sql_help.c:1172 sql_help.c:1176 sql_help.c:2822 msgid "publication_name" msgstr "publiceringsnamn" -#: sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1169 sql_help.c:1173 sql_help.c:1177 msgid "publication_option" msgstr "publicerings_alternativ" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "refresh_option" msgstr "refresh_alternativ" -#: sql_help.c:1171 sql_help.c:2803 +#: sql_help.c:1185 sql_help.c:2823 msgid "subscription_parameter" msgstr "prenumerationsparameter" -#: sql_help.c:1174 +#: sql_help.c:1188 msgid "skip_option" msgstr "skip_alternativ" -#: sql_help.c:1333 sql_help.c:1336 +#: sql_help.c:1347 sql_help.c:1350 msgid "partition_name" msgstr "partitionsnamn" -#: sql_help.c:1334 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1348 sql_help.c:2367 sql_help.c:2954 msgid "partition_bound_spec" msgstr "partitionsgränsspec" -#: sql_help.c:1353 sql_help.c:1403 sql_help.c:2948 +#: sql_help.c:1367 sql_help.c:1417 sql_help.c:2968 msgid "sequence_options" msgstr "sekvensalternativ" -#: sql_help.c:1355 +#: sql_help.c:1369 msgid "sequence_option" msgstr "sekvensalternativ" -#: sql_help.c:1369 +#: sql_help.c:1383 msgid "table_constraint_using_index" msgstr "tabellvillkor_för_index" -#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1391 sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 msgid "rewrite_rule_name" msgstr "omskrivningsregelnamn" -#: sql_help.c:1392 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1406 sql_help.c:2379 sql_help.c:2993 msgid "and partition_bound_spec is:" msgstr "och partitionsgränsspec är:" -#: sql_help.c:1393 sql_help.c:1394 sql_help.c:1395 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1407 sql_help.c:1408 sql_help.c:1409 sql_help.c:2380 +#: sql_help.c:2381 sql_help.c:2382 sql_help.c:2994 sql_help.c:2995 +#: sql_help.c:2996 msgid "partition_bound_expr" msgstr "partitionsgränsuttryck" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1410 sql_help.c:1411 sql_help.c:2383 sql_help.c:2384 +#: sql_help.c:2997 sql_help.c:2998 msgid "numeric_literal" msgstr "numerisk_literal" -#: sql_help.c:1398 +#: sql_help.c:1412 msgid "and column_constraint is:" msgstr "och kolumnvillkor är:" -#: sql_help.c:1401 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1415 sql_help.c:2374 sql_help.c:2415 sql_help.c:2624 +#: sql_help.c:2966 msgid "default_expr" msgstr "default_uttryck" -#: sql_help.c:1402 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1416 sql_help.c:2375 sql_help.c:2967 msgid "generation_expr" msgstr "generatoruttryck" -#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1414 sql_help.c:1416 -#: sql_help.c:1420 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1418 sql_help.c:1419 sql_help.c:1428 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:2969 sql_help.c:2970 sql_help.c:2979 +#: sql_help.c:2981 sql_help.c:2985 msgid "index_parameters" msgstr "indexparametrar" -#: sql_help.c:1406 sql_help.c:1423 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1420 sql_help.c:1437 sql_help.c:2971 sql_help.c:2988 msgid "reftable" msgstr "reftabell" -#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1421 sql_help.c:1438 sql_help.c:2972 sql_help.c:2989 msgid "refcolumn" msgstr "refkolumn" -#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1425 sql_help.c:1426 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1439 sql_help.c:1440 +#: sql_help.c:2973 sql_help.c:2974 sql_help.c:2990 sql_help.c:2991 msgid "referential_action" msgstr "referentiell_aktion" -#: sql_help.c:1410 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1424 sql_help.c:2376 sql_help.c:2975 msgid "and table_constraint is:" msgstr "och tabellvillkor är:" -#: sql_help.c:1418 sql_help.c:2963 +#: sql_help.c:1432 sql_help.c:2983 msgid "exclude_element" msgstr "uteslutelement" -#: sql_help.c:1419 sql_help.c:2964 sql_help.c:4578 sql_help.c:4681 -#: sql_help.c:4835 sql_help.c:5004 sql_help.c:5073 +#: sql_help.c:1433 sql_help.c:2984 sql_help.c:4598 sql_help.c:4701 +#: sql_help.c:4855 sql_help.c:5024 sql_help.c:5093 msgid "operator" msgstr "operator" -#: sql_help.c:1421 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1435 sql_help.c:2495 sql_help.c:2986 msgid "predicate" msgstr "predikat" -#: sql_help.c:1427 +#: sql_help.c:1441 msgid "and table_constraint_using_index is:" msgstr "och tabellvillkor_för_index är:" -#: sql_help.c:1430 sql_help.c:2979 +#: sql_help.c:1444 sql_help.c:2999 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "indexparametrar i UNIQUE-, PRIMARY KEY- och EXCLUDE-villkor är:" -#: sql_help.c:1435 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:3004 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "uteslutelement i ett EXCLUDE-villkort är:" -#: sql_help.c:1439 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4006 +#: sql_help.c:1453 sql_help.c:2488 sql_help.c:2931 sql_help.c:2944 +#: sql_help.c:2958 sql_help.c:3008 sql_help.c:4026 msgid "opclass" msgstr "op-klass" -#: sql_help.c:1440 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1454 sql_help.c:2489 sql_help.c:3009 msgid "opclass_parameter" msgstr "opclass_parameter" -#: sql_help.c:1442 sql_help.c:2991 +#: sql_help.c:1456 sql_help.c:3011 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "referentiell_aktion i ett FOREIGN KEY/REFERENCES-villkor är:" -#: sql_help.c:1460 sql_help.c:1463 sql_help.c:3028 +#: sql_help.c:1474 sql_help.c:1477 sql_help.c:3048 msgid "tablespace_option" msgstr "tabellutrymmesalternativ" -#: sql_help.c:1484 sql_help.c:1487 sql_help.c:1493 sql_help.c:1497 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1507 sql_help.c:1511 msgid "token_type" msgstr "symboltyp" -#: sql_help.c:1485 sql_help.c:1488 +#: sql_help.c:1499 sql_help.c:1502 msgid "dictionary_name" msgstr "ordlistnamn" -#: sql_help.c:1490 sql_help.c:1494 +#: sql_help.c:1504 sql_help.c:1508 msgid "old_dictionary" msgstr "gammal_ordlista" -#: sql_help.c:1491 sql_help.c:1495 +#: sql_help.c:1505 sql_help.c:1509 msgid "new_dictionary" msgstr "ny_ordlista" -#: sql_help.c:1590 sql_help.c:1604 sql_help.c:1607 sql_help.c:1608 -#: sql_help.c:3181 +#: sql_help.c:1604 sql_help.c:1618 sql_help.c:1621 sql_help.c:1622 +#: sql_help.c:3201 msgid "attribute_name" msgstr "attributnamn" -#: sql_help.c:1591 +#: sql_help.c:1605 msgid "new_attribute_name" msgstr "nytt_attributnamn" -#: sql_help.c:1595 sql_help.c:1599 +#: sql_help.c:1609 sql_help.c:1613 msgid "new_enum_value" msgstr "nytt_enumvärde" -#: sql_help.c:1596 +#: sql_help.c:1610 msgid "neighbor_enum_value" msgstr "närliggande_enumvärde" -#: sql_help.c:1598 +#: sql_help.c:1612 msgid "existing_enum_value" msgstr "existerande_enumvärde" -#: sql_help.c:1601 +#: sql_help.c:1615 msgid "property" msgstr "egenskap" -#: sql_help.c:1677 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3916 sql_help.c:3962 -#: sql_help.c:4369 +#: sql_help.c:1691 sql_help.c:2359 sql_help.c:2368 sql_help.c:2780 +#: sql_help.c:3281 sql_help.c:3732 sql_help.c:3936 sql_help.c:3982 +#: sql_help.c:4389 msgid "server_name" msgstr "servernamn" -#: sql_help.c:1709 sql_help.c:1712 sql_help.c:3276 +#: sql_help.c:1723 sql_help.c:1726 sql_help.c:3296 msgid "view_option_name" msgstr "visningsalternativnamn" -#: sql_help.c:1710 sql_help.c:3277 +#: sql_help.c:1724 sql_help.c:3297 msgid "view_option_value" msgstr "visningsalternativvärde" -#: sql_help.c:1731 sql_help.c:1732 sql_help.c:4976 sql_help.c:4977 -msgid "table_and_columns" -msgstr "tabell_och_kolumner" - -#: sql_help.c:1733 sql_help.c:1796 sql_help.c:1987 sql_help.c:3760 -#: sql_help.c:4204 sql_help.c:4978 +#: sql_help.c:1747 sql_help.c:1810 sql_help.c:2001 sql_help.c:3780 +#: sql_help.c:4224 sql_help.c:4998 msgid "where option can be one of:" msgstr "där flaggor kan vara en av:" -#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1797 sql_help.c:1989 -#: sql_help.c:1992 sql_help.c:2171 sql_help.c:3761 sql_help.c:3762 -#: sql_help.c:3763 sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 -#: sql_help.c:3767 sql_help.c:3768 sql_help.c:4205 sql_help.c:4207 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1748 sql_help.c:1749 sql_help.c:1811 sql_help.c:2003 +#: sql_help.c:2006 sql_help.c:2185 sql_help.c:3781 sql_help.c:3782 +#: sql_help.c:3783 sql_help.c:3784 sql_help.c:3785 sql_help.c:3786 +#: sql_help.c:3787 sql_help.c:3788 sql_help.c:4225 sql_help.c:4227 +#: sql_help.c:4999 sql_help.c:5000 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 msgid "boolean" msgstr "boolean" -#: sql_help.c:1736 sql_help.c:4988 -msgid "and table_and_columns is:" -msgstr "och tabell_och_kolumner är:" - -#: sql_help.c:1752 sql_help.c:4742 sql_help.c:4744 sql_help.c:4768 +#: sql_help.c:1766 sql_help.c:4762 sql_help.c:4764 sql_help.c:4788 msgid "transaction_mode" msgstr "transaktionsläge" -#: sql_help.c:1753 sql_help.c:4745 sql_help.c:4769 +#: sql_help.c:1767 sql_help.c:4765 sql_help.c:4789 msgid "where transaction_mode is one of:" msgstr "där transaktionsläge är en av:" -#: sql_help.c:1762 sql_help.c:4588 sql_help.c:4597 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4608 sql_help.c:4845 sql_help.c:4854 -#: sql_help.c:4858 sql_help.c:4862 sql_help.c:4865 sql_help.c:5083 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:1776 sql_help.c:4608 sql_help.c:4617 sql_help.c:4621 +#: sql_help.c:4625 sql_help.c:4628 sql_help.c:4865 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4882 sql_help.c:4885 sql_help.c:5103 +#: sql_help.c:5112 sql_help.c:5116 sql_help.c:5120 sql_help.c:5123 msgid "argument" msgstr "argument" -#: sql_help.c:1862 +#: sql_help.c:1876 msgid "relation_name" msgstr "relationsnamn" -#: sql_help.c:1867 sql_help.c:3910 sql_help.c:4363 +#: sql_help.c:1881 sql_help.c:3930 sql_help.c:4383 msgid "domain_name" msgstr "domännamn" -#: sql_help.c:1889 +#: sql_help.c:1903 msgid "policy_name" msgstr "policynamn" -#: sql_help.c:1902 +#: sql_help.c:1916 msgid "rule_name" msgstr "regelnamn" -#: sql_help.c:1921 sql_help.c:4502 +#: sql_help.c:1935 sql_help.c:4522 msgid "string_literal" msgstr "sträng_literal" -#: sql_help.c:1946 sql_help.c:4169 sql_help.c:4416 +#: sql_help.c:1960 sql_help.c:4189 sql_help.c:4436 msgid "transaction_id" msgstr "transaktions-id" -#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4032 +#: sql_help.c:1991 sql_help.c:1998 sql_help.c:4052 msgid "filename" msgstr "filnamn" -#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1992 sql_help.c:1999 sql_help.c:2719 sql_help.c:2720 +#: sql_help.c:2721 msgid "command" msgstr "kommando" -#: sql_help.c:1980 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4016 sql_help.c:4095 sql_help.c:4098 sql_help.c:4571 -#: sql_help.c:4573 sql_help.c:4674 sql_help.c:4676 sql_help.c:4828 -#: sql_help.c:4830 sql_help.c:4946 sql_help.c:5066 sql_help.c:5068 +#: sql_help.c:1994 sql_help.c:2718 sql_help.c:3151 sql_help.c:3332 +#: sql_help.c:4036 sql_help.c:4115 sql_help.c:4118 sql_help.c:4591 +#: sql_help.c:4593 sql_help.c:4694 sql_help.c:4696 sql_help.c:4848 +#: sql_help.c:4850 sql_help.c:4966 sql_help.c:5086 sql_help.c:5088 msgid "condition" msgstr "villkor" -#: sql_help.c:1983 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3997 +#: sql_help.c:1997 sql_help.c:2529 sql_help.c:3034 sql_help.c:3298 +#: sql_help.c:3316 sql_help.c:4017 msgid "query" msgstr "fråga" -#: sql_help.c:1988 +#: sql_help.c:2002 msgid "format_name" msgstr "formatnamn" -#: sql_help.c:1990 +#: sql_help.c:2004 msgid "delimiter_character" msgstr "avdelartecken" -#: sql_help.c:1991 +#: sql_help.c:2005 msgid "null_string" msgstr "null-sträng" -#: sql_help.c:1993 +#: sql_help.c:2007 msgid "quote_character" msgstr "citattecken" -#: sql_help.c:1994 +#: sql_help.c:2008 msgid "escape_character" msgstr "escape-tecken" -#: sql_help.c:1998 +#: sql_help.c:2012 msgid "encoding_name" msgstr "kodningsnamn" -#: sql_help.c:2009 +#: sql_help.c:2023 msgid "access_method_type" msgstr "accessmetodtyp" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2102 +#: sql_help.c:2094 sql_help.c:2113 sql_help.c:2116 msgid "arg_data_type" msgstr "arg_datatyp" -#: sql_help.c:2081 sql_help.c:2103 sql_help.c:2111 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "sfunc" msgstr "sfunc" -#: sql_help.c:2082 sql_help.c:2104 sql_help.c:2112 +#: sql_help.c:2096 sql_help.c:2118 sql_help.c:2126 msgid "state_data_type" msgstr "tillståndsdatatyp" -#: sql_help.c:2083 sql_help.c:2105 sql_help.c:2113 +#: sql_help.c:2097 sql_help.c:2119 sql_help.c:2127 msgid "state_data_size" msgstr "tillståndsdatastorlek" -#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 +#: sql_help.c:2098 sql_help.c:2120 sql_help.c:2128 msgid "ffunc" msgstr "ffunc" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2099 sql_help.c:2129 msgid "combinefunc" msgstr "kombinerafunk" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2100 sql_help.c:2130 msgid "serialfunc" msgstr "serialiseringsfunk" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2101 sql_help.c:2131 msgid "deserialfunc" msgstr "deserialiseringsfunk" -#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2118 +#: sql_help.c:2102 sql_help.c:2121 sql_help.c:2132 msgid "initial_condition" msgstr "startvärde" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2103 sql_help.c:2133 msgid "msfunc" msgstr "msfunk" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2104 sql_help.c:2134 msgid "minvfunc" msgstr "minvfunk" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2105 sql_help.c:2135 msgid "mstate_data_type" msgstr "mtillståndsdatatyp" -#: sql_help.c:2092 sql_help.c:2122 +#: sql_help.c:2106 sql_help.c:2136 msgid "mstate_data_size" msgstr "ntillståndsstorlek" -#: sql_help.c:2093 sql_help.c:2123 +#: sql_help.c:2107 sql_help.c:2137 msgid "mffunc" msgstr "mffunk" -#: sql_help.c:2094 sql_help.c:2124 +#: sql_help.c:2108 sql_help.c:2138 msgid "minitial_condition" msgstr "mstartvärde" -#: sql_help.c:2095 sql_help.c:2125 +#: sql_help.c:2109 sql_help.c:2139 msgid "sort_operator" msgstr "sorteringsoperator" -#: sql_help.c:2108 +#: sql_help.c:2122 msgid "or the old syntax" msgstr "eller gamla syntaxen" -#: sql_help.c:2110 +#: sql_help.c:2124 msgid "base_type" msgstr "bastyp" -#: sql_help.c:2167 sql_help.c:2214 +#: sql_help.c:2181 sql_help.c:2228 msgid "locale" msgstr "lokal" -#: sql_help.c:2168 sql_help.c:2215 +#: sql_help.c:2182 sql_help.c:2229 msgid "lc_collate" msgstr "lc_collate" -#: sql_help.c:2169 sql_help.c:2216 +#: sql_help.c:2183 sql_help.c:2230 msgid "lc_ctype" msgstr "lc_ctype" -#: sql_help.c:2170 sql_help.c:4469 +#: sql_help.c:2184 sql_help.c:4489 msgid "provider" msgstr "leverantör" -#: sql_help.c:2172 sql_help.c:2275 +#: sql_help.c:2186 sql_help.c:2289 msgid "version" msgstr "version" -#: sql_help.c:2174 +#: sql_help.c:2188 msgid "existing_collation" msgstr "existerande_jämförelse" -#: sql_help.c:2184 +#: sql_help.c:2198 msgid "source_encoding" msgstr "källkodning" -#: sql_help.c:2185 +#: sql_help.c:2199 msgid "dest_encoding" msgstr "målkodning" -#: sql_help.c:2211 sql_help.c:3054 +#: sql_help.c:2225 sql_help.c:3074 msgid "template" msgstr "mall" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "encoding" msgstr "kodning" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "strategy" msgstr "strategi" -#: sql_help.c:2217 +#: sql_help.c:2231 msgid "icu_locale" msgstr "icu_lokal" -#: sql_help.c:2218 +#: sql_help.c:2232 msgid "locale_provider" msgstr "lokal_leverantör" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "collation_version" msgstr "jämförelse_version" -#: sql_help.c:2224 +#: sql_help.c:2238 msgid "oid" msgstr "oid" -#: sql_help.c:2244 +#: sql_help.c:2258 msgid "constraint" msgstr "villkor" -#: sql_help.c:2245 +#: sql_help.c:2259 msgid "where constraint is:" msgstr "där villkor är:" -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2273 sql_help.c:2716 sql_help.c:3147 msgid "event" msgstr "händelse" -#: sql_help.c:2260 +#: sql_help.c:2274 msgid "filter_variable" msgstr "filtervariabel" -#: sql_help.c:2261 +#: sql_help.c:2275 msgid "filter_value" msgstr "filtervärde" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2371 sql_help.c:2963 msgid "where column_constraint is:" msgstr "där kolumnvillkor är:" -#: sql_help.c:2402 +#: sql_help.c:2416 msgid "rettype" msgstr "rettyp" -#: sql_help.c:2404 +#: sql_help.c:2418 msgid "column_type" msgstr "kolumntyp" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2427 sql_help.c:2630 msgid "definition" msgstr "definition" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2428 sql_help.c:2631 msgid "obj_file" msgstr "obj-fil" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2429 sql_help.c:2632 msgid "link_symbol" msgstr "linksymbol" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2430 sql_help.c:2633 msgid "sql_body" msgstr "sql-kropp" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2468 sql_help.c:2701 sql_help.c:3270 msgid "uid" msgstr "uid" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2484 sql_help.c:2525 sql_help.c:2932 sql_help.c:2945 +#: sql_help.c:2959 sql_help.c:3030 msgid "method" msgstr "metod" -#: sql_help.c:2492 +#: sql_help.c:2506 msgid "call_handler" msgstr "anropshanterare" -#: sql_help.c:2493 +#: sql_help.c:2507 msgid "inline_handler" msgstr "inline-hanterare" -#: sql_help.c:2494 +#: sql_help.c:2508 msgid "valfunction" msgstr "val-funktion" -#: sql_help.c:2533 +#: sql_help.c:2547 msgid "com_op" msgstr "com_op" -#: sql_help.c:2534 +#: sql_help.c:2548 msgid "neg_op" msgstr "neg_op" -#: sql_help.c:2552 +#: sql_help.c:2566 msgid "family_name" msgstr "familjenamn" -#: sql_help.c:2563 +#: sql_help.c:2577 msgid "storage_type" msgstr "lagringstyp" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2722 sql_help.c:3154 msgid "where event can be one of:" msgstr "där händelse kan vara en av:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2742 sql_help.c:2744 msgid "schema_element" msgstr "schema-element" -#: sql_help.c:2761 +#: sql_help.c:2781 msgid "server_type" msgstr "servertyp" -#: sql_help.c:2762 +#: sql_help.c:2782 msgid "server_version" msgstr "serverversion" -#: sql_help.c:2763 sql_help.c:3913 sql_help.c:4366 +#: sql_help.c:2783 sql_help.c:3933 sql_help.c:4386 msgid "fdw_name" msgstr "fdw-namn" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2800 sql_help.c:2803 msgid "statistics_name" msgstr "statistiknamn" -#: sql_help.c:2784 +#: sql_help.c:2804 msgid "statistics_kind" msgstr "statistiksort" -#: sql_help.c:2800 +#: sql_help.c:2820 msgid "subscription_name" msgstr "prenumerationsnamn" -#: sql_help.c:2905 +#: sql_help.c:2925 msgid "source_table" msgstr "källtabell" -#: sql_help.c:2906 +#: sql_help.c:2926 msgid "like_option" msgstr "like_alternativ" -#: sql_help.c:2972 +#: sql_help.c:2992 msgid "and like_option is:" msgstr "och likealternativ är:" -#: sql_help.c:3027 +#: sql_help.c:3047 msgid "directory" msgstr "katalog" -#: sql_help.c:3041 +#: sql_help.c:3061 msgid "parser_name" msgstr "parsernamn" -#: sql_help.c:3042 +#: sql_help.c:3062 msgid "source_config" msgstr "källkonfig" -#: sql_help.c:3071 +#: sql_help.c:3091 msgid "start_function" msgstr "startfunktion" -#: sql_help.c:3072 +#: sql_help.c:3092 msgid "gettoken_function" msgstr "gettoken_funktion" -#: sql_help.c:3073 +#: sql_help.c:3093 msgid "end_function" msgstr "slutfunktion" -#: sql_help.c:3074 +#: sql_help.c:3094 msgid "lextypes_function" msgstr "symboltypfunktion" -#: sql_help.c:3075 +#: sql_help.c:3095 msgid "headline_function" msgstr "rubrikfunktion" -#: sql_help.c:3087 +#: sql_help.c:3107 msgid "init_function" msgstr "init_funktion" -#: sql_help.c:3088 +#: sql_help.c:3108 msgid "lexize_function" msgstr "symboluppdelningsfunktion" -#: sql_help.c:3101 +#: sql_help.c:3121 msgid "from_sql_function_name" msgstr "från_sql_funktionsnamn" -#: sql_help.c:3103 +#: sql_help.c:3123 msgid "to_sql_function_name" msgstr "till_sql_funktionsnamn" -#: sql_help.c:3129 +#: sql_help.c:3149 msgid "referenced_table_name" msgstr "refererat_tabellnamn" -#: sql_help.c:3130 +#: sql_help.c:3150 msgid "transition_relation_name" msgstr "övergångsrelationsnamn" -#: sql_help.c:3133 +#: sql_help.c:3153 msgid "arguments" msgstr "argument" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "label" msgstr "etikett" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "subtype" msgstr "subtyp" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "subtype_operator_class" msgstr "subtypoperatorklass" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "canonical_function" msgstr "kanonisk_funktion" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "subtype_diff_function" msgstr "subtyp_diff_funktion" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "multirange_type_name" msgstr "multirange_typnamn" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "input_function" msgstr "inmatningsfunktion" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "output_function" msgstr "utmatningsfunktion" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "receive_function" msgstr "mottagarfunktion" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "send_function" msgstr "sändfunktion" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "type_modifier_input_function" msgstr "typmodifiering_indatafunktion" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "type_modifier_output_function" msgstr "typmodifiering_utdatafunktion" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "analyze_function" msgstr "analysfunktion" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "subscript_function" msgstr "arrayindexfunktion" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "internallength" msgstr "internlängd" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "alignment" msgstr "justering" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "storage" msgstr "lagring" -#: sql_help.c:3205 +#: sql_help.c:3225 msgid "like_type" msgstr "liketyp" -#: sql_help.c:3206 +#: sql_help.c:3226 msgid "category" msgstr "kategori" -#: sql_help.c:3207 +#: sql_help.c:3227 msgid "preferred" msgstr "föredragen" -#: sql_help.c:3208 +#: sql_help.c:3228 msgid "default" msgstr "standard" -#: sql_help.c:3209 +#: sql_help.c:3229 msgid "element" msgstr "element" -#: sql_help.c:3210 +#: sql_help.c:3230 msgid "delimiter" msgstr "avskiljare" -#: sql_help.c:3211 +#: sql_help.c:3231 msgid "collatable" msgstr "sorterbar" -#: sql_help.c:3308 sql_help.c:3992 sql_help.c:4084 sql_help.c:4566 -#: sql_help.c:4668 sql_help.c:4823 sql_help.c:4936 sql_help.c:5061 +#: sql_help.c:3328 sql_help.c:4012 sql_help.c:4104 sql_help.c:4586 +#: sql_help.c:4688 sql_help.c:4843 sql_help.c:4956 sql_help.c:5081 msgid "with_query" msgstr "with_fråga" -#: sql_help.c:3310 sql_help.c:3994 sql_help.c:4585 sql_help.c:4591 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4602 sql_help.c:4610 -#: sql_help.c:4842 sql_help.c:4848 sql_help.c:4851 sql_help.c:4855 -#: sql_help.c:4859 sql_help.c:4867 sql_help.c:4938 sql_help.c:5080 -#: sql_help.c:5086 sql_help.c:5089 sql_help.c:5093 sql_help.c:5097 -#: sql_help.c:5105 +#: sql_help.c:3330 sql_help.c:4014 sql_help.c:4605 sql_help.c:4611 +#: sql_help.c:4614 sql_help.c:4618 sql_help.c:4622 sql_help.c:4630 +#: sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 sql_help.c:4875 +#: sql_help.c:4879 sql_help.c:4887 sql_help.c:4958 sql_help.c:5100 +#: sql_help.c:5106 sql_help.c:5109 sql_help.c:5113 sql_help.c:5117 +#: sql_help.c:5125 msgid "alias" msgstr "alias" -#: sql_help.c:3311 sql_help.c:4570 sql_help.c:4612 sql_help.c:4614 -#: sql_help.c:4618 sql_help.c:4620 sql_help.c:4621 sql_help.c:4622 -#: sql_help.c:4673 sql_help.c:4827 sql_help.c:4869 sql_help.c:4871 -#: sql_help.c:4875 sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 -#: sql_help.c:4945 sql_help.c:5065 sql_help.c:5107 sql_help.c:5109 -#: sql_help.c:5113 sql_help.c:5115 sql_help.c:5116 sql_help.c:5117 +#: sql_help.c:3331 sql_help.c:4590 sql_help.c:4632 sql_help.c:4634 +#: sql_help.c:4638 sql_help.c:4640 sql_help.c:4641 sql_help.c:4642 +#: sql_help.c:4693 sql_help.c:4847 sql_help.c:4889 sql_help.c:4891 +#: sql_help.c:4895 sql_help.c:4897 sql_help.c:4898 sql_help.c:4899 +#: sql_help.c:4965 sql_help.c:5085 sql_help.c:5127 sql_help.c:5129 +#: sql_help.c:5133 sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "from_item" msgstr "frånval" -#: sql_help.c:3313 sql_help.c:3794 sql_help.c:4136 sql_help.c:4947 +#: sql_help.c:3333 sql_help.c:3814 sql_help.c:4156 sql_help.c:4967 msgid "cursor_name" msgstr "markörnamn" -#: sql_help.c:3314 sql_help.c:4000 sql_help.c:4948 +#: sql_help.c:3334 sql_help.c:4020 sql_help.c:4968 msgid "output_expression" msgstr "utdatauttryck" -#: sql_help.c:3315 sql_help.c:4001 sql_help.c:4569 sql_help.c:4671 -#: sql_help.c:4826 sql_help.c:4949 sql_help.c:5064 +#: sql_help.c:3335 sql_help.c:4021 sql_help.c:4589 sql_help.c:4691 +#: sql_help.c:4846 sql_help.c:4969 sql_help.c:5084 msgid "output_name" msgstr "utdatanamn" -#: sql_help.c:3331 +#: sql_help.c:3351 msgid "code" msgstr "kod" -#: sql_help.c:3736 +#: sql_help.c:3756 msgid "parameter" msgstr "parameter" -#: sql_help.c:3758 sql_help.c:3759 sql_help.c:4161 +#: sql_help.c:3778 sql_help.c:3779 sql_help.c:4181 msgid "statement" msgstr "sats" -#: sql_help.c:3793 sql_help.c:4135 +#: sql_help.c:3813 sql_help.c:4155 msgid "direction" msgstr "riktning" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3815 sql_help.c:4157 msgid "where direction can be one of:" msgstr "där riktning kan vara en av:" -#: sql_help.c:3796 sql_help.c:3797 sql_help.c:3798 sql_help.c:3799 -#: sql_help.c:3800 sql_help.c:4138 sql_help.c:4139 sql_help.c:4140 -#: sql_help.c:4141 sql_help.c:4142 sql_help.c:4579 sql_help.c:4581 -#: sql_help.c:4682 sql_help.c:4684 sql_help.c:4836 sql_help.c:4838 -#: sql_help.c:5005 sql_help.c:5007 sql_help.c:5074 sql_help.c:5076 +#: sql_help.c:3816 sql_help.c:3817 sql_help.c:3818 sql_help.c:3819 +#: sql_help.c:3820 sql_help.c:4158 sql_help.c:4159 sql_help.c:4160 +#: sql_help.c:4161 sql_help.c:4162 sql_help.c:4599 sql_help.c:4601 +#: sql_help.c:4702 sql_help.c:4704 sql_help.c:4856 sql_help.c:4858 +#: sql_help.c:5025 sql_help.c:5027 sql_help.c:5094 sql_help.c:5096 msgid "count" msgstr "antal" -#: sql_help.c:3903 sql_help.c:4356 +#: sql_help.c:3923 sql_help.c:4376 msgid "sequence_name" msgstr "sekvensnamn" -#: sql_help.c:3921 sql_help.c:4374 +#: sql_help.c:3941 sql_help.c:4394 msgid "arg_name" msgstr "arg_namn" -#: sql_help.c:3922 sql_help.c:4375 +#: sql_help.c:3942 sql_help.c:4395 msgid "arg_type" msgstr "arg_typ" -#: sql_help.c:3929 sql_help.c:4382 +#: sql_help.c:3949 sql_help.c:4402 msgid "loid" msgstr "loid" -#: sql_help.c:3960 +#: sql_help.c:3980 msgid "remote_schema" msgstr "externt_schema" -#: sql_help.c:3963 +#: sql_help.c:3983 msgid "local_schema" msgstr "lokalt_schema" -#: sql_help.c:3998 +#: sql_help.c:4018 msgid "conflict_target" msgstr "konfliktmål" -#: sql_help.c:3999 +#: sql_help.c:4019 msgid "conflict_action" msgstr "konfliktaktion" -#: sql_help.c:4002 +#: sql_help.c:4022 msgid "where conflict_target can be one of:" msgstr "där konfliktmål kan vara en av:" -#: sql_help.c:4003 +#: sql_help.c:4023 msgid "index_column_name" msgstr "indexkolumnnamn" -#: sql_help.c:4004 +#: sql_help.c:4024 msgid "index_expression" msgstr "indexuttryck" -#: sql_help.c:4007 +#: sql_help.c:4027 msgid "index_predicate" msgstr "indexpredikat" -#: sql_help.c:4009 +#: sql_help.c:4029 msgid "and conflict_action is one of:" msgstr "och konfliktaktion är en av:" -#: sql_help.c:4015 sql_help.c:4109 sql_help.c:4944 +#: sql_help.c:4035 sql_help.c:4129 sql_help.c:4964 msgid "sub-SELECT" msgstr "sub-SELECT" -#: sql_help.c:4024 sql_help.c:4150 sql_help.c:4920 +#: sql_help.c:4044 sql_help.c:4170 sql_help.c:4940 msgid "channel" msgstr "kanal" -#: sql_help.c:4046 +#: sql_help.c:4066 msgid "lockmode" msgstr "låsläge" -#: sql_help.c:4047 +#: sql_help.c:4067 msgid "where lockmode is one of:" msgstr "där låsläge är en av:" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "target_table_name" msgstr "måltabellnamn" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "target_alias" msgstr "målalias" -#: sql_help.c:4087 +#: sql_help.c:4107 msgid "data_source" msgstr "datakälla" -#: sql_help.c:4088 sql_help.c:4615 sql_help.c:4872 sql_help.c:5110 +#: sql_help.c:4108 sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 msgid "join_condition" msgstr "join-villkor" -#: sql_help.c:4089 +#: sql_help.c:4109 msgid "when_clause" msgstr "when_sats" -#: sql_help.c:4090 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "där datakälla är:" -#: sql_help.c:4091 +#: sql_help.c:4111 msgid "source_table_name" msgstr "källtabellnamn" -#: sql_help.c:4092 +#: sql_help.c:4112 msgid "source_query" msgstr "källfråga" -#: sql_help.c:4093 +#: sql_help.c:4113 msgid "source_alias" msgstr "källalias" -#: sql_help.c:4094 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "och when_sats är:" -#: sql_help.c:4096 +#: sql_help.c:4116 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4097 +#: sql_help.c:4117 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4099 +#: sql_help.c:4119 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4100 +#: sql_help.c:4120 msgid "and merge_insert is:" msgstr "och merge_insert är:" -#: sql_help.c:4103 +#: sql_help.c:4123 msgid "and merge_update is:" msgstr "och merge_update är:" -#: sql_help.c:4110 +#: sql_help.c:4130 msgid "and merge_delete is:" msgstr "och merge_delete är:" -#: sql_help.c:4151 +#: sql_help.c:4171 msgid "payload" msgstr "innehåll" -#: sql_help.c:4178 +#: sql_help.c:4198 msgid "old_role" msgstr "gammal_roll" -#: sql_help.c:4179 +#: sql_help.c:4199 msgid "new_role" msgstr "ny_roll" -#: sql_help.c:4215 sql_help.c:4424 sql_help.c:4432 +#: sql_help.c:4235 sql_help.c:4444 sql_help.c:4452 msgid "savepoint_name" msgstr "sparpunktnamn" -#: sql_help.c:4572 sql_help.c:4630 sql_help.c:4829 sql_help.c:4887 -#: sql_help.c:5067 sql_help.c:5125 +#: sql_help.c:4592 sql_help.c:4650 sql_help.c:4849 sql_help.c:4907 +#: sql_help.c:5087 sql_help.c:5145 msgid "grouping_element" msgstr "gruperingselement" -#: sql_help.c:4574 sql_help.c:4677 sql_help.c:4831 sql_help.c:5069 +#: sql_help.c:4594 sql_help.c:4697 sql_help.c:4851 sql_help.c:5089 msgid "window_name" msgstr "fönsternamn" -#: sql_help.c:4575 sql_help.c:4678 sql_help.c:4832 sql_help.c:5070 +#: sql_help.c:4595 sql_help.c:4698 sql_help.c:4852 sql_help.c:5090 msgid "window_definition" msgstr "fönsterdefinition" -#: sql_help.c:4576 sql_help.c:4590 sql_help.c:4634 sql_help.c:4679 -#: sql_help.c:4833 sql_help.c:4847 sql_help.c:4891 sql_help.c:5071 -#: sql_help.c:5085 sql_help.c:5129 +#: sql_help.c:4596 sql_help.c:4610 sql_help.c:4654 sql_help.c:4699 +#: sql_help.c:4853 sql_help.c:4867 sql_help.c:4911 sql_help.c:5091 +#: sql_help.c:5105 sql_help.c:5149 msgid "select" msgstr "select" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5078 +#: sql_help.c:4603 sql_help.c:4860 sql_help.c:5098 msgid "where from_item can be one of:" msgstr "där frånval kan vara en av:" -#: sql_help.c:4586 sql_help.c:4592 sql_help.c:4595 sql_help.c:4599 -#: sql_help.c:4611 sql_help.c:4843 sql_help.c:4849 sql_help.c:4852 -#: sql_help.c:4856 sql_help.c:4868 sql_help.c:5081 sql_help.c:5087 -#: sql_help.c:5090 sql_help.c:5094 sql_help.c:5106 +#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4631 sql_help.c:4863 sql_help.c:4869 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4888 sql_help.c:5101 sql_help.c:5107 +#: sql_help.c:5110 sql_help.c:5114 sql_help.c:5126 msgid "column_alias" msgstr "kolumnalias" -#: sql_help.c:4587 sql_help.c:4844 sql_help.c:5082 +#: sql_help.c:4607 sql_help.c:4864 sql_help.c:5102 msgid "sampling_method" msgstr "samplingsmetod" -#: sql_help.c:4589 sql_help.c:4846 sql_help.c:5084 +#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5104 msgid "seed" msgstr "frö" -#: sql_help.c:4593 sql_help.c:4632 sql_help.c:4850 sql_help.c:4889 -#: sql_help.c:5088 sql_help.c:5127 +#: sql_help.c:4613 sql_help.c:4652 sql_help.c:4870 sql_help.c:4909 +#: sql_help.c:5108 sql_help.c:5147 msgid "with_query_name" msgstr "with_frågenamn" -#: sql_help.c:4603 sql_help.c:4606 sql_help.c:4609 sql_help.c:4860 -#: sql_help.c:4863 sql_help.c:4866 sql_help.c:5098 sql_help.c:5101 -#: sql_help.c:5104 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4629 sql_help.c:4880 +#: sql_help.c:4883 sql_help.c:4886 sql_help.c:5118 sql_help.c:5121 +#: sql_help.c:5124 msgid "column_definition" msgstr "kolumndefinition" -#: sql_help.c:4613 sql_help.c:4619 sql_help.c:4870 sql_help.c:4876 -#: sql_help.c:5108 sql_help.c:5114 +#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4890 sql_help.c:4896 +#: sql_help.c:5128 sql_help.c:5134 msgid "join_type" msgstr "join-typ" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5111 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 msgid "join_column" msgstr "join-kolumn" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5112 +#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 msgid "join_using_alias" msgstr "join_using_alias" -#: sql_help.c:4623 sql_help.c:4880 sql_help.c:5118 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 msgid "and grouping_element can be one of:" msgstr "och grupperingselement kan vara en av:" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5126 +#: sql_help.c:4651 sql_help.c:4908 sql_help.c:5146 msgid "and with_query is:" msgstr "och with_fråga är:" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 +#: sql_help.c:4655 sql_help.c:4912 sql_help.c:5150 msgid "values" msgstr "värden" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 +#: sql_help.c:4656 sql_help.c:4913 sql_help.c:5151 msgid "insert" msgstr "insert" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 +#: sql_help.c:4657 sql_help.c:4914 sql_help.c:5152 msgid "update" msgstr "update" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5133 +#: sql_help.c:4658 sql_help.c:4915 sql_help.c:5153 msgid "delete" msgstr "delete" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5135 +#: sql_help.c:4660 sql_help.c:4917 sql_help.c:5155 msgid "search_seq_col_name" msgstr "söksekvens_kolumnnamn" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5137 +#: sql_help.c:4662 sql_help.c:4919 sql_help.c:5157 msgid "cycle_mark_col_name" msgstr "cykelmarkering_kolumnnamn" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 +#: sql_help.c:4663 sql_help.c:4920 sql_help.c:5158 msgid "cycle_mark_value" msgstr "cykelmarkering_värde" -#: sql_help.c:4644 sql_help.c:4901 sql_help.c:5139 +#: sql_help.c:4664 sql_help.c:4921 sql_help.c:5159 msgid "cycle_mark_default" msgstr "cykelmarkering_standard" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5140 +#: sql_help.c:4665 sql_help.c:4922 sql_help.c:5160 msgid "cycle_path_col_name" msgstr "cykelväg_kolumnnamn" -#: sql_help.c:4672 +#: sql_help.c:4692 msgid "new_table" msgstr "ny_tabell" -#: sql_help.c:4743 +#: sql_help.c:4763 msgid "snapshot_id" msgstr "snapshot_id" -#: sql_help.c:5003 +#: sql_help.c:5023 msgid "sort_expression" msgstr "sorteringsuttryck" -#: sql_help.c:5147 sql_help.c:6131 +#: sql_help.c:5167 sql_help.c:6151 msgid "abort the current transaction" msgstr "avbryt aktuell transaktion" -#: sql_help.c:5153 +#: sql_help.c:5173 msgid "change the definition of an aggregate function" msgstr "ändra definitionen av en aggregatfunktion" -#: sql_help.c:5159 +#: sql_help.c:5179 msgid "change the definition of a collation" msgstr "ändra definitionen av en jämförelse" -#: sql_help.c:5165 +#: sql_help.c:5185 msgid "change the definition of a conversion" msgstr "ändra definitionen av en konvertering" -#: sql_help.c:5171 +#: sql_help.c:5191 msgid "change a database" msgstr "ändra en databas" -#: sql_help.c:5177 +#: sql_help.c:5197 msgid "define default access privileges" msgstr "definiera standardaccessrättigheter" -#: sql_help.c:5183 +#: sql_help.c:5203 msgid "change the definition of a domain" msgstr "ändra definitionen av en domän" -#: sql_help.c:5189 +#: sql_help.c:5209 msgid "change the definition of an event trigger" msgstr "ändra definitionen av en händelsetrigger" -#: sql_help.c:5195 +#: sql_help.c:5215 msgid "change the definition of an extension" msgstr "ändra definitionen av en utökning" -#: sql_help.c:5201 +#: sql_help.c:5221 msgid "change the definition of a foreign-data wrapper" msgstr "ändra definitionen av en främmande data-omvandlare" -#: sql_help.c:5207 +#: sql_help.c:5227 msgid "change the definition of a foreign table" msgstr "ändra definitionen av en främmande tabell" -#: sql_help.c:5213 +#: sql_help.c:5233 msgid "change the definition of a function" msgstr "ändra definitionen av en funktion" -#: sql_help.c:5219 +#: sql_help.c:5239 msgid "change role name or membership" msgstr "ändra rollnamn eller medlemskap" -#: sql_help.c:5225 +#: sql_help.c:5245 msgid "change the definition of an index" msgstr "ändra definitionen av ett index" -#: sql_help.c:5231 +#: sql_help.c:5251 msgid "change the definition of a procedural language" msgstr "ändra definitionen av ett procedur-språk" -#: sql_help.c:5237 +#: sql_help.c:5257 msgid "change the definition of a large object" msgstr "ändra definitionen av ett stort objekt" -#: sql_help.c:5243 +#: sql_help.c:5263 msgid "change the definition of a materialized view" msgstr "ändra definitionen av en materialiserad vy" -#: sql_help.c:5249 +#: sql_help.c:5269 msgid "change the definition of an operator" msgstr "ändra definitionen av en operator" -#: sql_help.c:5255 +#: sql_help.c:5275 msgid "change the definition of an operator class" msgstr "ändra definitionen av en operatorklass" -#: sql_help.c:5261 +#: sql_help.c:5281 msgid "change the definition of an operator family" msgstr "ändra definitionen av en operatorfamilj" -#: sql_help.c:5267 +#: sql_help.c:5287 msgid "change the definition of a row-level security policy" msgstr "ändra definitionen av en säkerhetspolicy på radnivå" -#: sql_help.c:5273 +#: sql_help.c:5293 msgid "change the definition of a procedure" msgstr "ändra definitionen av en procedur" -#: sql_help.c:5279 +#: sql_help.c:5299 msgid "change the definition of a publication" msgstr "ändra definitionen av en publicering" -#: sql_help.c:5285 sql_help.c:5387 +#: sql_help.c:5305 sql_help.c:5407 msgid "change a database role" msgstr "ändra databasroll" -#: sql_help.c:5291 +#: sql_help.c:5311 msgid "change the definition of a routine" msgstr "ändra definitionen av en rutin" -#: sql_help.c:5297 +#: sql_help.c:5317 msgid "change the definition of a rule" msgstr "ändra definitionen av en regel" -#: sql_help.c:5303 +#: sql_help.c:5323 msgid "change the definition of a schema" msgstr "ändra definitionen av ett schema" -#: sql_help.c:5309 +#: sql_help.c:5329 msgid "change the definition of a sequence generator" msgstr "ändra definitionen av en sekvensgenerator" -#: sql_help.c:5315 +#: sql_help.c:5335 msgid "change the definition of a foreign server" msgstr "ändra definitionen av en främmande server" -#: sql_help.c:5321 +#: sql_help.c:5341 msgid "change the definition of an extended statistics object" msgstr "ändra definitionen av ett utökat statistikobjekt" -#: sql_help.c:5327 +#: sql_help.c:5347 msgid "change the definition of a subscription" msgstr "ändra definitionen av en prenumerering" -#: sql_help.c:5333 +#: sql_help.c:5353 msgid "change a server configuration parameter" msgstr "ändra en servers konfigurationsparameter" -#: sql_help.c:5339 +#: sql_help.c:5359 msgid "change the definition of a table" msgstr "ändra definitionen av en tabell" -#: sql_help.c:5345 +#: sql_help.c:5365 msgid "change the definition of a tablespace" msgstr "ändra definitionen av ett tabellutrymme" -#: sql_help.c:5351 +#: sql_help.c:5371 msgid "change the definition of a text search configuration" msgstr "ändra definitionen av en textsökkonfiguration" -#: sql_help.c:5357 +#: sql_help.c:5377 msgid "change the definition of a text search dictionary" msgstr "ändra definitionen av en textsökordlista" -#: sql_help.c:5363 +#: sql_help.c:5383 msgid "change the definition of a text search parser" msgstr "ändra definitionen av en textsökparser" -#: sql_help.c:5369 +#: sql_help.c:5389 msgid "change the definition of a text search template" msgstr "ändra definitionen av en textsökmall" -#: sql_help.c:5375 +#: sql_help.c:5395 msgid "change the definition of a trigger" msgstr "ändra definitionen av en trigger" -#: sql_help.c:5381 +#: sql_help.c:5401 msgid "change the definition of a type" msgstr "ändra definitionen av en typ" -#: sql_help.c:5393 +#: sql_help.c:5413 msgid "change the definition of a user mapping" msgstr "ändra definitionen av en användarmappning" -#: sql_help.c:5399 +#: sql_help.c:5419 msgid "change the definition of a view" msgstr "ändra definitionen av en vy" -#: sql_help.c:5405 +#: sql_help.c:5425 msgid "collect statistics about a database" msgstr "samla in statistik om en databas" -#: sql_help.c:5411 sql_help.c:6209 +#: sql_help.c:5431 sql_help.c:6229 msgid "start a transaction block" msgstr "starta ett transaktionsblock" -#: sql_help.c:5417 +#: sql_help.c:5437 msgid "invoke a procedure" msgstr "anropa en procedur" -#: sql_help.c:5423 +#: sql_help.c:5443 msgid "force a write-ahead log checkpoint" msgstr "tvinga checkpoint i transaktionsloggen" -#: sql_help.c:5429 +#: sql_help.c:5449 msgid "close a cursor" msgstr "stäng en markör" -#: sql_help.c:5435 +#: sql_help.c:5455 msgid "cluster a table according to an index" msgstr "klustra en tabell efter ett index" -#: sql_help.c:5441 +#: sql_help.c:5461 msgid "define or change the comment of an object" msgstr "definiera eller ändra en kommentar på ett objekt" -#: sql_help.c:5447 sql_help.c:6005 +#: sql_help.c:5467 sql_help.c:6025 msgid "commit the current transaction" msgstr "utför den aktuella transaktionen" -#: sql_help.c:5453 +#: sql_help.c:5473 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "utför commit på en transaktion som tidigare förberetts för två-fas-commit" -#: sql_help.c:5459 +#: sql_help.c:5479 msgid "copy data between a file and a table" msgstr "kopiera data mellan en fil och en tabell" -#: sql_help.c:5465 +#: sql_help.c:5485 msgid "define a new access method" msgstr "definiera en ny accessmetod" -#: sql_help.c:5471 +#: sql_help.c:5491 msgid "define a new aggregate function" msgstr "definiera en ny aggregatfunktion" -#: sql_help.c:5477 +#: sql_help.c:5497 msgid "define a new cast" msgstr "definiera en ny typomvandling" -#: sql_help.c:5483 +#: sql_help.c:5503 msgid "define a new collation" msgstr "definiera en ny jämförelse" -#: sql_help.c:5489 +#: sql_help.c:5509 msgid "define a new encoding conversion" msgstr "definiera en ny teckenkodningskonvertering" -#: sql_help.c:5495 +#: sql_help.c:5515 msgid "create a new database" msgstr "skapa en ny databas" -#: sql_help.c:5501 +#: sql_help.c:5521 msgid "define a new domain" msgstr "definiera en ny domän" -#: sql_help.c:5507 +#: sql_help.c:5527 msgid "define a new event trigger" msgstr "definiera en ny händelsetrigger" -#: sql_help.c:5513 +#: sql_help.c:5533 msgid "install an extension" msgstr "installera en utökning" -#: sql_help.c:5519 +#: sql_help.c:5539 msgid "define a new foreign-data wrapper" msgstr "definiera en ny främmande data-omvandlare" -#: sql_help.c:5525 +#: sql_help.c:5545 msgid "define a new foreign table" msgstr "definiera en ny främmande tabell" -#: sql_help.c:5531 +#: sql_help.c:5551 msgid "define a new function" msgstr "definiera en ny funktion" -#: sql_help.c:5537 sql_help.c:5597 sql_help.c:5699 +#: sql_help.c:5557 sql_help.c:5617 sql_help.c:5719 msgid "define a new database role" msgstr "definiera en ny databasroll" -#: sql_help.c:5543 +#: sql_help.c:5563 msgid "define a new index" msgstr "skapa ett nytt index" -#: sql_help.c:5549 +#: sql_help.c:5569 msgid "define a new procedural language" msgstr "definiera ett nytt procedur-språk" -#: sql_help.c:5555 +#: sql_help.c:5575 msgid "define a new materialized view" msgstr "definiera en ny materialiserad vy" -#: sql_help.c:5561 +#: sql_help.c:5581 msgid "define a new operator" msgstr "definiera en ny operator" -#: sql_help.c:5567 +#: sql_help.c:5587 msgid "define a new operator class" msgstr "definiera en ny operatorklass" -#: sql_help.c:5573 +#: sql_help.c:5593 msgid "define a new operator family" msgstr "definiera en ny operatorfamilj" -#: sql_help.c:5579 +#: sql_help.c:5599 msgid "define a new row-level security policy for a table" msgstr "definiera en ny säkerhetspolicy på radnivå för en tabell" -#: sql_help.c:5585 +#: sql_help.c:5605 msgid "define a new procedure" msgstr "definiera ett ny procedur" -#: sql_help.c:5591 +#: sql_help.c:5611 msgid "define a new publication" msgstr "definiera en ny publicering" -#: sql_help.c:5603 +#: sql_help.c:5623 msgid "define a new rewrite rule" msgstr "definiera en ny omskrivningsregel" -#: sql_help.c:5609 +#: sql_help.c:5629 msgid "define a new schema" msgstr "definiera ett nytt schema" -#: sql_help.c:5615 +#: sql_help.c:5635 msgid "define a new sequence generator" msgstr "definiera en ny sekvensgenerator" -#: sql_help.c:5621 +#: sql_help.c:5641 msgid "define a new foreign server" msgstr "definiera en ny främmande server" -#: sql_help.c:5627 +#: sql_help.c:5647 msgid "define extended statistics" msgstr "definiera utökad statistik" -#: sql_help.c:5633 +#: sql_help.c:5653 msgid "define a new subscription" msgstr "definiera en ny prenumeration" -#: sql_help.c:5639 +#: sql_help.c:5659 msgid "define a new table" msgstr "definiera en ny tabell" -#: sql_help.c:5645 sql_help.c:6167 +#: sql_help.c:5665 sql_help.c:6187 msgid "define a new table from the results of a query" msgstr "definiera en ny tabell utifrån resultatet av en fråga" -#: sql_help.c:5651 +#: sql_help.c:5671 msgid "define a new tablespace" msgstr "definiera ett nytt tabellutrymme" -#: sql_help.c:5657 +#: sql_help.c:5677 msgid "define a new text search configuration" msgstr "definiera en ny textsökkonfiguration" -#: sql_help.c:5663 +#: sql_help.c:5683 msgid "define a new text search dictionary" msgstr "definiera en ny textsökordlista" -#: sql_help.c:5669 +#: sql_help.c:5689 msgid "define a new text search parser" msgstr "definiera en ny textsökparser" -#: sql_help.c:5675 +#: sql_help.c:5695 msgid "define a new text search template" msgstr "definiera en ny textsökmall" -#: sql_help.c:5681 +#: sql_help.c:5701 msgid "define a new transform" msgstr "definiera en ny transform" -#: sql_help.c:5687 +#: sql_help.c:5707 msgid "define a new trigger" msgstr "definiera en ny trigger" -#: sql_help.c:5693 +#: sql_help.c:5713 msgid "define a new data type" msgstr "definiera en ny datatyp" -#: sql_help.c:5705 +#: sql_help.c:5725 msgid "define a new mapping of a user to a foreign server" msgstr "definiera en ny mappning av en användare till en främmande server" -#: sql_help.c:5711 +#: sql_help.c:5731 msgid "define a new view" msgstr "definiera en ny vy" -#: sql_help.c:5717 +#: sql_help.c:5737 msgid "deallocate a prepared statement" msgstr "deallokera en förberedd sats" -#: sql_help.c:5723 +#: sql_help.c:5743 msgid "define a cursor" msgstr "definiera en markör" -#: sql_help.c:5729 +#: sql_help.c:5749 msgid "delete rows of a table" msgstr "radera rader i en tabell" -#: sql_help.c:5735 +#: sql_help.c:5755 msgid "discard session state" msgstr "släng sessionstillstånd" -#: sql_help.c:5741 +#: sql_help.c:5761 msgid "execute an anonymous code block" msgstr "kör ett annonymt kodblock" -#: sql_help.c:5747 +#: sql_help.c:5767 msgid "remove an access method" msgstr "ta bort en accessmetod" -#: sql_help.c:5753 +#: sql_help.c:5773 msgid "remove an aggregate function" msgstr "ta bort en aggregatfunktioner" -#: sql_help.c:5759 +#: sql_help.c:5779 msgid "remove a cast" msgstr "ta bort en typomvandling" -#: sql_help.c:5765 +#: sql_help.c:5785 msgid "remove a collation" msgstr "ta bort en jämförelse" -#: sql_help.c:5771 +#: sql_help.c:5791 msgid "remove a conversion" msgstr "ta bort en konvertering" -#: sql_help.c:5777 +#: sql_help.c:5797 msgid "remove a database" msgstr "ta bort en databas" -#: sql_help.c:5783 +#: sql_help.c:5803 msgid "remove a domain" msgstr "ta bort en domän" -#: sql_help.c:5789 +#: sql_help.c:5809 msgid "remove an event trigger" msgstr "ta bort en händelsetrigger" -#: sql_help.c:5795 +#: sql_help.c:5815 msgid "remove an extension" msgstr "ta bort en utökning" -#: sql_help.c:5801 +#: sql_help.c:5821 msgid "remove a foreign-data wrapper" msgstr "ta bort en frammande data-omvandlare" -#: sql_help.c:5807 +#: sql_help.c:5827 msgid "remove a foreign table" msgstr "ta bort en främmande tabell" -#: sql_help.c:5813 +#: sql_help.c:5833 msgid "remove a function" msgstr "ta bort en funktion" -#: sql_help.c:5819 sql_help.c:5885 sql_help.c:5987 +#: sql_help.c:5839 sql_help.c:5905 sql_help.c:6007 msgid "remove a database role" msgstr "ta bort en databasroll" -#: sql_help.c:5825 +#: sql_help.c:5845 msgid "remove an index" msgstr "ta bort ett index" -#: sql_help.c:5831 +#: sql_help.c:5851 msgid "remove a procedural language" msgstr "ta bort ett procedur-språk" -#: sql_help.c:5837 +#: sql_help.c:5857 msgid "remove a materialized view" msgstr "ta bort en materialiserad vy" -#: sql_help.c:5843 +#: sql_help.c:5863 msgid "remove an operator" msgstr "ta bort en operator" -#: sql_help.c:5849 +#: sql_help.c:5869 msgid "remove an operator class" msgstr "ta bort en operatorklass" -#: sql_help.c:5855 +#: sql_help.c:5875 msgid "remove an operator family" msgstr "ta bort en operatorfamilj" -#: sql_help.c:5861 +#: sql_help.c:5881 msgid "remove database objects owned by a database role" msgstr "ta bort databasobjekt som ägs av databasroll" -#: sql_help.c:5867 +#: sql_help.c:5887 msgid "remove a row-level security policy from a table" msgstr "ta bort en säkerhetspolicy på radnivå från en tabell" -#: sql_help.c:5873 +#: sql_help.c:5893 msgid "remove a procedure" msgstr "ta bort en procedur" -#: sql_help.c:5879 +#: sql_help.c:5899 msgid "remove a publication" msgstr "ta bort en publicering" -#: sql_help.c:5891 +#: sql_help.c:5911 msgid "remove a routine" msgstr "ta bort en rutin" -#: sql_help.c:5897 +#: sql_help.c:5917 msgid "remove a rewrite rule" msgstr "ta bort en omskrivningsregel" -#: sql_help.c:5903 +#: sql_help.c:5923 msgid "remove a schema" msgstr "ta bort ett schema" -#: sql_help.c:5909 +#: sql_help.c:5929 msgid "remove a sequence" msgstr "ta bort en sekvens" -#: sql_help.c:5915 +#: sql_help.c:5935 msgid "remove a foreign server descriptor" msgstr "ta bort en främmande server-deskriptor" -#: sql_help.c:5921 +#: sql_help.c:5941 msgid "remove extended statistics" msgstr "ta bort utökad statistik" -#: sql_help.c:5927 +#: sql_help.c:5947 msgid "remove a subscription" msgstr "ta bort en prenumeration" -#: sql_help.c:5933 +#: sql_help.c:5953 msgid "remove a table" msgstr "ta bort en tabell" -#: sql_help.c:5939 +#: sql_help.c:5959 msgid "remove a tablespace" msgstr "ta bort ett tabellutrymme" -#: sql_help.c:5945 +#: sql_help.c:5965 msgid "remove a text search configuration" msgstr "ta bort en textsökkonfiguration" -#: sql_help.c:5951 +#: sql_help.c:5971 msgid "remove a text search dictionary" msgstr "ta bort en textsökordlista" -#: sql_help.c:5957 +#: sql_help.c:5977 msgid "remove a text search parser" msgstr "ta bort en textsökparser" -#: sql_help.c:5963 +#: sql_help.c:5983 msgid "remove a text search template" msgstr "ta bort en textsökmall" -#: sql_help.c:5969 +#: sql_help.c:5989 msgid "remove a transform" msgstr "ta bort en transform" -#: sql_help.c:5975 +#: sql_help.c:5995 msgid "remove a trigger" msgstr "ta bort en trigger" -#: sql_help.c:5981 +#: sql_help.c:6001 msgid "remove a data type" msgstr "ta bort en datatyp" -#: sql_help.c:5993 +#: sql_help.c:6013 msgid "remove a user mapping for a foreign server" msgstr "ta bort en användarmappning för en främmande server" -#: sql_help.c:5999 +#: sql_help.c:6019 msgid "remove a view" msgstr "ta bort en vy" -#: sql_help.c:6011 +#: sql_help.c:6031 msgid "execute a prepared statement" msgstr "utför en förberedd sats" -#: sql_help.c:6017 +#: sql_help.c:6037 msgid "show the execution plan of a statement" msgstr "visa körningsplanen för en sats" -#: sql_help.c:6023 +#: sql_help.c:6043 msgid "retrieve rows from a query using a cursor" msgstr "hämta rader från en fråga med hjälp av en markör" -#: sql_help.c:6029 +#: sql_help.c:6049 msgid "define access privileges" msgstr "definera åtkomsträttigheter" -#: sql_help.c:6035 +#: sql_help.c:6055 msgid "import table definitions from a foreign server" msgstr "importera tabelldefinitioner från en främmande server" -#: sql_help.c:6041 +#: sql_help.c:6061 msgid "create new rows in a table" msgstr "skapa nya rader i en tabell" -#: sql_help.c:6047 +#: sql_help.c:6067 msgid "listen for a notification" msgstr "lyssna efter notifiering" -#: sql_help.c:6053 +#: sql_help.c:6073 msgid "load a shared library file" msgstr "ladda en delad biblioteksfil (shared library)" -#: sql_help.c:6059 +#: sql_help.c:6079 msgid "lock a table" msgstr "lås en tabell" -#: sql_help.c:6065 +#: sql_help.c:6085 msgid "conditionally insert, update, or delete rows of a table" msgstr "villkorlig insert, updare eller delete av rader i en tabell" -#: sql_help.c:6071 +#: sql_help.c:6091 msgid "position a cursor" msgstr "flytta en markör" -#: sql_help.c:6077 +#: sql_help.c:6097 msgid "generate a notification" msgstr "generera en notifiering" -#: sql_help.c:6083 +#: sql_help.c:6103 msgid "prepare a statement for execution" msgstr "förbered en sats för körning" -#: sql_help.c:6089 +#: sql_help.c:6109 msgid "prepare the current transaction for two-phase commit" msgstr "avbryt aktuell transaktion för två-fas-commit" -#: sql_help.c:6095 +#: sql_help.c:6115 msgid "change the ownership of database objects owned by a database role" msgstr "byt ägare på databasobjekt som ägs av en databasroll" -#: sql_help.c:6101 +#: sql_help.c:6121 msgid "replace the contents of a materialized view" msgstr "ersätt innehållet av en materialiserad vy" -#: sql_help.c:6107 +#: sql_help.c:6127 msgid "rebuild indexes" msgstr "återskapa index" -#: sql_help.c:6113 +#: sql_help.c:6133 msgid "destroy a previously defined savepoint" msgstr "ta bort en tidigare definierad sparpunkt" -#: sql_help.c:6119 +#: sql_help.c:6139 msgid "restore the value of a run-time parameter to the default value" msgstr "återställ värde av körningsparameter till standardvärdet" -#: sql_help.c:6125 +#: sql_help.c:6145 msgid "remove access privileges" msgstr "ta bort åtkomsträttigheter" -#: sql_help.c:6137 +#: sql_help.c:6157 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "avbryt en transaktion som tidigare förberetts för två-fas-commit" -#: sql_help.c:6143 +#: sql_help.c:6163 msgid "roll back to a savepoint" msgstr "rulla tillbaka till sparpunkt" -#: sql_help.c:6149 +#: sql_help.c:6169 msgid "define a new savepoint within the current transaction" msgstr "definera en ny sparpunkt i den aktuella transaktionen" -#: sql_help.c:6155 +#: sql_help.c:6175 msgid "define or change a security label applied to an object" msgstr "definiera eller ändra en säkerhetsetikett på ett objekt" -#: sql_help.c:6161 sql_help.c:6215 sql_help.c:6251 +#: sql_help.c:6181 sql_help.c:6235 sql_help.c:6271 msgid "retrieve rows from a table or view" msgstr "hämta rader från en tabell eller vy" -#: sql_help.c:6173 +#: sql_help.c:6193 msgid "change a run-time parameter" msgstr "ändra en körningsparameter" -#: sql_help.c:6179 +#: sql_help.c:6199 msgid "set constraint check timing for the current transaction" msgstr "sätt integritetsvillkorstiming för nuvarande transaktion" -#: sql_help.c:6185 +#: sql_help.c:6205 msgid "set the current user identifier of the current session" msgstr "sätt användare för den aktiva sessionen" -#: sql_help.c:6191 +#: sql_help.c:6211 msgid "set the session user identifier and the current user identifier of the current session" msgstr "sätt sessionsanvändaridentifierare och nuvarande användaridentifierare för den aktiva sessionen" -#: sql_help.c:6197 +#: sql_help.c:6217 msgid "set the characteristics of the current transaction" msgstr "sätt inställningar för nuvarande transaktionen" -#: sql_help.c:6203 +#: sql_help.c:6223 msgid "show the value of a run-time parameter" msgstr "visa värde på en körningsparameter" -#: sql_help.c:6221 +#: sql_help.c:6241 msgid "empty a table or set of tables" msgstr "töm en eller flera tabeller" -#: sql_help.c:6227 +#: sql_help.c:6247 msgid "stop listening for a notification" msgstr "sluta att lyssna efter notifiering" -#: sql_help.c:6233 +#: sql_help.c:6253 msgid "update rows of a table" msgstr "uppdatera rader i en tabell" -#: sql_help.c:6239 +#: sql_help.c:6259 msgid "garbage-collect and optionally analyze a database" msgstr "skräpsamla och eventuellt analysera en databas" -#: sql_help.c:6245 +#: sql_help.c:6265 msgid "compute a set of rows" msgstr "beräkna en mängd rader" diff --git a/src/bin/psql/po/uk.po b/src/bin/psql/po/uk.po index 1672d06255a..2071d545f4b 100644 --- a/src/bin/psql/po/uk.po +++ b/src/bin/psql/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: 2025-03-29 11:08+0000\n" -"PO-Revision-Date: 2025-04-01 15:40\n" +"POT-Creation-Date: 2025-12-31 03:08+0000\n" +"PO-Revision-Date: 2025-12-31 16:25\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -73,7 +73,7 @@ msgid "%s() failed: %m" msgstr "%s() помилка: %m" #: ../../common/exec.c:560 ../../common/exec.c:605 ../../common/exec.c:697 -#: command.c:1322 command.c:3311 command.c:3360 command.c:3484 input.c:227 +#: command.c:1343 command.c:3401 command.c:3450 command.c:3574 input.c:227 #: mainloop.c:80 mainloop.c:398 #, c-format msgid "out of memory" @@ -95,7 +95,7 @@ msgstr "неможливо дублювати нульовий покажчик msgid "could not look up effective user ID %ld: %s" msgstr "не можу знайти користувача з ефективним ID %ld: %s" -#: ../../common/username.c:45 command.c:575 +#: ../../common/username.c:45 command.c:596 msgid "user does not exist" msgstr "користувача не існує" @@ -186,81 +186,86 @@ msgstr "не вдалося знайти локального користува msgid "local user with ID %d does not exist" msgstr "локального користувача з ідентифікатором %d не існує" -#: command.c:232 +#: command.c:241 +#, c-format +msgid "backslash commands are restricted; only \\unrestrict is allowed" +msgstr "команди зворотнього слешу обмежені; дозволяється лише \\unstrict" + +#: command.c:249 #, c-format msgid "invalid command \\%s" msgstr "Невірна команда \\%s" -#: command.c:234 +#: command.c:251 #, c-format msgid "Try \\? for help." msgstr "Спробуйте \\? для отримання довідки." -#: command.c:252 +#: command.c:269 #, c-format msgid "\\%s: extra argument \"%s\" ignored" msgstr "\\%s: зайвий аргумент \"%s\" проігноровано" -#: command.c:304 +#: command.c:321 #, c-format msgid "\\%s command ignored; use \\endif or Ctrl-C to exit current \\if block" msgstr "\\%s команду проігноровано; скористайтесь \\endif або Ctrl-C, щоб вийти з поточного блоку \\if" -#: command.c:573 +#: command.c:594 #, c-format msgid "could not get home directory for user ID %ld: %s" msgstr "неможливо отримати домашню директорію для користувача ID %ld: %s" -#: command.c:592 +#: command.c:613 #, c-format msgid "\\%s: could not change directory to \"%s\": %m" msgstr "\\%s: неможливо змінити директорію на \"%s\": %m" -#: command.c:617 +#: command.c:638 #, c-format msgid "You are currently not connected to a database.\n" msgstr "На даний момент ви від'єднанні від бази даних.\n" -#: command.c:627 +#: command.c:648 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on address \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" за аресою \"%s\" на порту \"%s\".\n" -#: command.c:630 +#: command.c:651 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" via socket in \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" через сокет в \"%s\" на порту \"%s\".\n" -#: command.c:636 +#: command.c:657 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" (address \"%s\") at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" на хості \"%s\" (за аресою \"%s\") на порту \"%s\".\n" -#: command.c:639 +#: command.c:660 #, c-format msgid "You are connected to database \"%s\" as user \"%s\" on host \"%s\" at port \"%s\".\n" msgstr "Ви під'єднані до бази даних \"%s\" як користувач \"%s\" на хості \"%s\" на порту \"%s\".\n" -#: command.c:1030 command.c:1125 command.c:2655 +#: command.c:1051 command.c:1146 command.c:2745 #, c-format msgid "no query buffer" msgstr "немає буферу запитів" -#: command.c:1063 command.c:5500 +#: command.c:1084 command.c:5590 #, c-format msgid "invalid line number: %s" msgstr "невірний номер рядка: %s" -#: command.c:1203 +#: command.c:1224 msgid "No changes" msgstr "Без змін" -#: command.c:1282 +#: command.c:1303 #, c-format msgid "%s: invalid encoding name or conversion procedure not found" msgstr "%s: невірне ім'я кодування або не знайдено процедуру конверсії" -#: command.c:1318 command.c:2121 command.c:3307 command.c:3506 command.c:5606 +#: command.c:1339 command.c:2142 command.c:3397 command.c:3596 command.c:5696 #: 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:723 help.c:66 large_obj.c:157 large_obj.c:192 @@ -269,198 +274,209 @@ msgstr "%s: невірне ім'я кодування або не знайден msgid "%s" msgstr "%s" -#: command.c:1325 +#: command.c:1346 msgid "There is no previous error." msgstr "Попередня помилка відсутня." -#: command.c:1438 +#: command.c:1459 #, c-format msgid "\\%s: missing right parenthesis" msgstr "\\%s: відсутня права дужка" -#: command.c:1522 command.c:1652 command.c:1957 command.c:1971 command.c:1990 -#: command.c:2174 command.c:2416 command.c:2622 command.c:2662 +#: command.c:1543 command.c:1673 command.c:1978 command.c:1992 command.c:2011 +#: command.c:2195 command.c:2355 command.c:2466 command.c:2670 command.c:2712 +#: command.c:2752 #, c-format msgid "\\%s: missing required argument" msgstr "\\%s: не вистачає обов'язкового аргументу" -#: command.c:1783 +#: command.c:1804 #, c-format msgid "\\elif: cannot occur after \\else" msgstr "\\elif: не може йти після \\else" -#: command.c:1788 +#: command.c:1809 #, c-format msgid "\\elif: no matching \\if" msgstr "\\elif: немає відповідного \\if" -#: command.c:1852 +#: command.c:1873 #, c-format msgid "\\else: cannot occur after \\else" msgstr "\\else: не може йти після \\else" -#: command.c:1857 +#: command.c:1878 #, c-format msgid "\\else: no matching \\if" msgstr "\\else: немає відповідного \\if" -#: command.c:1897 +#: command.c:1918 #, c-format msgid "\\endif: no matching \\if" msgstr "\\endif: немає відповідного \\if" -#: command.c:2054 +#: command.c:2075 msgid "Query buffer is empty." msgstr "Буфер запиту порожній." -#: command.c:2097 +#: command.c:2118 #, c-format msgid "Enter new password for user \"%s\": " msgstr "Введіть новий пароль користувача \"%s\": " -#: command.c:2101 +#: command.c:2122 msgid "Enter it again: " msgstr "Введіть знову: " -#: command.c:2110 +#: command.c:2131 #, c-format msgid "Passwords didn't match." msgstr "Паролі не співпадають." -#: command.c:2209 +#: command.c:2230 #, c-format msgid "\\%s: could not read value for variable" msgstr "\\%s: не вдалося прочитати значення змінної" -#: command.c:2312 +#: command.c:2333 msgid "Query buffer reset (cleared)." msgstr "Буфер запитів скинуто (очищено)." -#: command.c:2334 +#: command.c:2384 #, c-format msgid "Wrote history to file \"%s\".\n" msgstr "Історію записано до файлу \"%s\".\n" -#: command.c:2421 +#: command.c:2471 #, c-format msgid "\\%s: environment variable name must not contain \"=\"" msgstr "\\%s: змінна середовища не повинна містити \"=\"" -#: command.c:2469 +#: command.c:2519 #, c-format msgid "function name is required" msgstr "необхідне ім'я функції" -#: command.c:2471 +#: command.c:2521 #, c-format msgid "view name is required" msgstr "необхідне ім'я подання" -#: command.c:2594 +#: command.c:2644 msgid "Timing is on." msgstr "Таймер увімкнено." -#: command.c:2596 +#: command.c:2646 msgid "Timing is off." msgstr "Таймер вимкнено." -#: command.c:2681 command.c:2709 command.c:3949 command.c:3952 command.c:3955 -#: command.c:3961 command.c:3963 command.c:3989 command.c:3999 command.c:4011 -#: command.c:4025 command.c:4052 command.c:4110 common.c:77 copy.c:331 +#: command.c:2676 +#, c-format +msgid "\\%s: not currently in restricted mode" +msgstr "\\%s: наразі не обмежено" + +#: command.c:2686 +#, c-format +msgid "\\%s: wrong key" +msgstr "\\%s: неправильний ключ" + +#: command.c:2771 command.c:2799 command.c:4039 command.c:4042 command.c:4045 +#: command.c:4051 command.c:4053 command.c:4079 command.c:4089 command.c:4101 +#: command.c:4115 command.c:4142 command.c:4200 common.c:77 copy.c:331 #: copy.c:403 psqlscanslash.l:784 psqlscanslash.l:795 psqlscanslash.l:805 #, c-format msgid "%s: %m" msgstr "%s: %m" -#: command.c:3108 startup.c:243 startup.c:293 +#: command.c:3198 startup.c:243 startup.c:293 msgid "Password: " msgstr "Пароль: " -#: command.c:3113 startup.c:290 +#: command.c:3203 startup.c:290 #, c-format msgid "Password for user %s: " msgstr "Пароль користувача %s:" -#: command.c:3169 +#: command.c:3259 #, c-format msgid "Do not give user, host, or port separately when using a connection string" msgstr "Не надайте користувачеві, хосту або порту окремо під час використання рядка підключення" -#: command.c:3204 +#: command.c:3294 #, c-format msgid "No database connection exists to re-use parameters from" msgstr "Не існує підключення до бази даних для повторного використання параметрів" -#: command.c:3512 +#: command.c:3602 #, c-format msgid "Previous connection kept" msgstr "Попереднє підключення триває" -#: command.c:3518 +#: command.c:3608 #, c-format msgid "\\connect: %s" msgstr "\\connect: %s" -#: command.c:3574 +#: command.c:3664 #, c-format 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:3577 +#: command.c:3667 #, 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:3583 +#: command.c:3673 #, c-format 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\") на порту \"%s\".\n" -#: command.c:3586 +#: command.c:3676 #, 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:3591 +#: command.c:3681 #, c-format msgid "You are now connected to database \"%s\" as user \"%s\".\n" msgstr "Ви тепер під'єднані до бази даних \"%s\" як користувач \"%s\".\n" -#: command.c:3631 +#: command.c:3721 #, c-format msgid "%s (%s, server %s)\n" msgstr "%s (%s, сервер %s)\n" -#: command.c:3644 +#: command.c:3734 #, c-format msgid "WARNING: %s major version %s, server major version %s.\n" " Some psql features might not work.\n" msgstr "УВАГА: мажорна версія %s %s, мажорна версія сервера %s.\n" " Деякі функції psql можуть не працювати.\n" -#: command.c:3681 +#: command.c:3771 #, c-format msgid "SSL connection (protocol: %s, cipher: %s, compression: %s)\n" msgstr "З'єднання SSL (протокол: %s, шифр: %s, компресія: %s)\n" -#: command.c:3682 command.c:3683 +#: command.c:3772 command.c:3773 msgid "unknown" msgstr "невідомо" -#: command.c:3684 help.c:42 +#: command.c:3774 help.c:42 msgid "off" msgstr "вимк" -#: command.c:3684 help.c:42 +#: command.c:3774 help.c:42 msgid "on" msgstr "увімк" -#: command.c:3698 +#: command.c:3788 #, c-format msgid "GSSAPI-encrypted connection\n" msgstr "З'єднання зашифровано GSSAPI\n" -#: command.c:3718 +#: command.c:3808 #, c-format msgid "WARNING: Console code page (%u) differs from Windows code page (%u)\n" " 8-bit characters might not work correctly. See psql reference\n" @@ -469,172 +485,172 @@ msgstr "УВАГА: Кодова сторінка консолі (%u) відрі " 8-бітові символи можуть працювати неправильно. Детальніше у розділі \n" " \"Нотатки для користувачів Windows\" у документації psql.\n" -#: command.c:3825 +#: command.c:3915 #, c-format msgid "environment variable PSQL_EDITOR_LINENUMBER_ARG must be set to specify a line number" msgstr "змінна середовища PSQL_EDITOR_LINENUMBER_ARG має бути встановлена, щоб вказувати номер рядка" -#: command.c:3854 +#: command.c:3944 #, c-format msgid "could not start editor \"%s\"" msgstr "неможливо запустити редактор \"%s\"" -#: command.c:3856 +#: command.c:3946 #, c-format msgid "could not start /bin/sh" msgstr "неможливо запустити /bin/sh" -#: command.c:3906 +#: command.c:3996 #, c-format msgid "could not locate temporary directory: %s" msgstr "неможливо знайти тимчасову директорію: %s" -#: command.c:3933 +#: command.c:4023 #, c-format msgid "could not open temporary file \"%s\": %m" msgstr "неможливо відкрити тимчасовий файл \"%s\": %m" -#: command.c:4269 +#: command.c:4359 #, c-format msgid "\\pset: ambiguous abbreviation \"%s\" matches both \"%s\" and \"%s\"" msgstr "\\pset: неоднозначна абревіатура \"%s\" відповідає обом \"%s\" і \"%s" -#: command.c:4289 +#: command.c:4379 #, c-format msgid "\\pset: allowed formats are aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" msgstr "\\pset: дозволені формати: aligned, asciidoc, csv, html, latex, latex-longtable, troff-ms, unaligned, wrapped" -#: command.c:4308 +#: command.c:4398 #, c-format msgid "\\pset: allowed line styles are ascii, old-ascii, unicode" msgstr "\\pset: дозволені стилі ліній: ascii, old-ascii, unicode" -#: command.c:4323 +#: command.c:4413 #, c-format msgid "\\pset: allowed Unicode border line styles are single, double" msgstr "\\pset: дозволені стилі ліній рамок Unicode: single, double" -#: command.c:4338 +#: command.c:4428 #, c-format msgid "\\pset: allowed Unicode column line styles are single, double" msgstr "\\pset: дозволені стилі ліній стовпців для Unicode: single, double" -#: command.c:4353 +#: command.c:4443 #, c-format msgid "\\pset: allowed Unicode header line styles are single, double" msgstr "\\pset: дозволені стилі ліній заголовків для Unicode: single, double" -#: command.c:4396 +#: command.c:4486 #, c-format msgid "\\pset: csv_fieldsep must be a single one-byte character" msgstr "\\pset: csv_fieldsep повинен бути однобайтовим символом" -#: command.c:4401 +#: command.c:4491 #, c-format msgid "\\pset: csv_fieldsep cannot be a double quote, a newline, or a carriage return" msgstr "\\pset: csv_fieldsep не може бути подвійною лапкою, новим рядком або поверненням каретки" -#: command.c:4538 command.c:4726 +#: command.c:4628 command.c:4816 #, c-format msgid "\\pset: unknown option: %s" msgstr "\\pset: невідомий параметр: %s" -#: command.c:4558 +#: command.c:4648 #, c-format msgid "Border style is %d.\n" msgstr "Стиль рамки %d.\n" -#: command.c:4564 +#: command.c:4654 #, c-format msgid "Target width is unset.\n" msgstr "Цільова ширина не встановлена.\n" -#: command.c:4566 +#: command.c:4656 #, c-format msgid "Target width is %d.\n" msgstr "Цільова ширина %d.\n" -#: command.c:4573 +#: command.c:4663 #, c-format msgid "Expanded display is on.\n" msgstr "Розширене відображення увімкнуто.\n" -#: command.c:4575 +#: command.c:4665 #, c-format msgid "Expanded display is used automatically.\n" msgstr "Розширене відображення використовується автоматично.\n" -#: command.c:4577 +#: command.c:4667 #, c-format msgid "Expanded display is off.\n" msgstr "Розширене відображення вимкнуто.\n" -#: command.c:4583 +#: command.c:4673 #, c-format msgid "Field separator for CSV is \"%s\".\n" msgstr "Розділювач полів CSV: \"%s\".\n" -#: command.c:4591 command.c:4599 +#: command.c:4681 command.c:4689 #, c-format msgid "Field separator is zero byte.\n" msgstr "Розділювач полів - нульовий байт.\n" -#: command.c:4593 +#: command.c:4683 #, c-format msgid "Field separator is \"%s\".\n" msgstr "Розділювач полів \"%s\".\n" -#: command.c:4606 +#: command.c:4696 #, c-format msgid "Default footer is on.\n" msgstr "Нинжній колонтитул увімкнуто за замовчуванням.\n" -#: command.c:4608 +#: command.c:4698 #, c-format msgid "Default footer is off.\n" msgstr "Нинжній колонтитул вимкнуто за замовчуванням.\n" -#: command.c:4614 +#: command.c:4704 #, c-format msgid "Output format is %s.\n" msgstr "Формат виводу %s.\n" -#: command.c:4620 +#: command.c:4710 #, c-format msgid "Line style is %s.\n" msgstr "Стиль лінії %s.\n" -#: command.c:4627 +#: command.c:4717 #, c-format msgid "Null display is \"%s\".\n" msgstr "Null відображається як \"%s\".\n" -#: command.c:4635 +#: command.c:4725 #, c-format msgid "Locale-adjusted numeric output is on.\n" msgstr "Локалізоване виведення чисел ввімкнено.\n" -#: command.c:4637 +#: command.c:4727 #, c-format msgid "Locale-adjusted numeric output is off.\n" msgstr "Локалізоване виведення чисел вимкнено.\n" -#: command.c:4644 +#: command.c:4734 #, c-format msgid "Pager is used for long output.\n" msgstr "Пейджер використовується для виведення довгого тексту.\n" -#: command.c:4646 +#: command.c:4736 #, c-format msgid "Pager is always used.\n" msgstr "Завжди використовується пейджер.\n" -#: command.c:4648 +#: command.c:4738 #, c-format msgid "Pager usage is off.\n" msgstr "Пейджер не використовується.\n" -#: command.c:4654 +#: command.c:4744 #, 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" @@ -643,97 +659,97 @@ msgstr[1] "Пейджер не буде використовуватися дл msgstr[2] "Пейджер не буде використовуватися для менш ніж %d рядків.\n" msgstr[3] "Пейджер не буде використовуватися для менш ніж %d рядка.\n" -#: command.c:4664 command.c:4674 +#: command.c:4754 command.c:4764 #, c-format msgid "Record separator is zero byte.\n" msgstr "Розділювач записів - нульовий байт.\n" -#: command.c:4666 +#: command.c:4756 #, c-format msgid "Record separator is .\n" msgstr "Розділювач записів: .\n" -#: command.c:4668 +#: command.c:4758 #, c-format msgid "Record separator is \"%s\".\n" msgstr "Розділювач записів: \"%s\".\n" -#: command.c:4681 +#: command.c:4771 #, c-format msgid "Table attributes are \"%s\".\n" msgstr "Табличні атрибути \"%s\".\n" -#: command.c:4684 +#: command.c:4774 #, c-format msgid "Table attributes unset.\n" msgstr "Атрибути таблиць не задані.\n" -#: command.c:4691 +#: command.c:4781 #, c-format msgid "Title is \"%s\".\n" msgstr "Заголовок: \"%s\".\n" -#: command.c:4693 +#: command.c:4783 #, c-format msgid "Title is unset.\n" msgstr "Заголовок не встановлено.\n" -#: command.c:4700 +#: command.c:4790 #, c-format msgid "Tuples only is on.\n" msgstr "Увімкнуто тільки кортежі.\n" -#: command.c:4702 +#: command.c:4792 #, c-format msgid "Tuples only is off.\n" msgstr "Вимкнуто тільки кортежі.\n" -#: command.c:4708 +#: command.c:4798 #, c-format msgid "Unicode border line style is \"%s\".\n" msgstr "Стиль ліній рамки для Unicode: \"%s\".\n" -#: command.c:4714 +#: command.c:4804 #, c-format msgid "Unicode column line style is \"%s\".\n" msgstr "Стиль ліній стовпців для Unicode: \"%s\".\n" -#: command.c:4720 +#: command.c:4810 #, c-format msgid "Unicode header line style is \"%s\".\n" msgstr "Стиль ліній заголовків для Unicode: \"%s\".\n" -#: command.c:4953 +#: command.c:5043 #, c-format msgid "\\!: failed" msgstr "\\!: помилка" -#: command.c:4987 +#: command.c:5077 #, c-format msgid "\\watch cannot be used with an empty query" msgstr "\\watch не може бути використано із пустим запитом" -#: command.c:5019 +#: command.c:5109 #, c-format msgid "could not set timer: %m" msgstr "не вдалося встановити таймер: %m" -#: command.c:5087 +#: command.c:5177 #, c-format msgid "%s\t%s (every %gs)\n" msgstr "%s\t%s (кожні %g сек)\n" -#: command.c:5090 +#: command.c:5180 #, c-format msgid "%s (every %gs)\n" msgstr "%s (кожні %g сек)\n" -#: command.c:5151 +#: command.c:5241 #, c-format msgid "could not wait for signals: %m" msgstr "не вдалося дочекатися сигналів: %m" -#: command.c:5209 command.c:5216 common.c:572 common.c:579 common.c:1063 +#: command.c:5299 command.c:5306 common.c:572 common.c:579 common.c:1063 #, c-format msgid "********* QUERY **********\n" "%s\n" @@ -742,12 +758,12 @@ msgstr "********* ЗАПИТ **********\n" "%s\n" "**************************\n\n" -#: command.c:5395 +#: command.c:5485 #, c-format msgid "\"%s.%s\" is not a view" msgstr "\"%s.%s\" не є поданням" -#: command.c:5411 +#: command.c:5501 #, c-format msgid "could not parse reloptions array" msgstr "неможливо розібрати масив reloptions" @@ -2402,7 +2418,7 @@ msgstr "Великі об'єкти" msgid "psql is the PostgreSQL interactive terminal.\n\n" msgstr "psql - це інтерактивний термінал PostgreSQL.\n\n" -#: help.c:76 help.c:393 help.c:473 help.c:516 +#: help.c:76 help.c:397 help.c:477 help.c:523 msgid "Usage:\n" msgstr "Використання:\n" @@ -2666,374 +2682,386 @@ msgid " \\q quit psql\n" msgstr " \\q вийти з psql\n" #: help.c:202 +msgid " \\restrict RESTRICT_KEY\n" +" enter restricted mode with provided key\n" +msgstr " \\restrict RESTRICT_KEY\n" +" увійти в обмежений режим з наданим ключем\n" + +#: help.c:204 +msgid " \\unrestrict RESTRICT_KEY\n" +" exit restricted mode if key matches\n" +msgstr " \\unrestrict RESTRICT_KEY\n" +" вийти з обмеженого режиму, якщо ключ збігається\n" + +#: help.c:206 msgid " \\watch [SEC] execute query every SEC seconds\n" msgstr " \\watch [SEC] виконувати запит кожні SEC секунд\n" -#: help.c:203 help.c:211 help.c:223 help.c:233 help.c:240 help.c:296 help.c:304 -#: help.c:324 help.c:337 help.c:346 +#: help.c:207 help.c:215 help.c:227 help.c:237 help.c:244 help.c:300 help.c:308 +#: help.c:328 help.c:341 help.c:350 msgid "\n" msgstr "\n" -#: help.c:205 +#: help.c:209 msgid "Help\n" msgstr "Довідка\n" -#: help.c:207 +#: help.c:211 msgid " \\? [commands] show help on backslash commands\n" msgstr " \\? [commands] показати довідку по командах з \\\n" -#: help.c:208 +#: help.c:212 msgid " \\? options show help on psql command-line options\n" msgstr " \\? options показати довідку по параметрах командного рядку psql\n" -#: help.c:209 +#: help.c:213 msgid " \\? variables show help on special variables\n" msgstr " \\? variables показати довідку по спеціальних змінних\n" -#: help.c:210 +#: help.c:214 msgid " \\h [NAME] help on syntax of SQL commands, * for all commands\n" msgstr " \\h [NAME] довідка з синтаксису команд SQL, * для всіх команд\n" -#: help.c:213 +#: help.c:217 msgid "Query Buffer\n" msgstr "Буфер запитів\n" -#: help.c:214 +#: help.c:218 msgid " \\e [FILE] [LINE] edit the query buffer (or file) with external editor\n" msgstr " \\e [FILE] [LINE] редагувати буфер запитів (або файл) зовнішнім редактором\n" -#: help.c:215 +#: help.c:219 msgid " \\ef [FUNCNAME [LINE]] edit function definition with external editor\n" msgstr " \\ef [FUNCNAME [LINE]] редагувати визначення функції зовнішнім редактором\n" -#: help.c:216 +#: help.c:220 msgid " \\ev [VIEWNAME [LINE]] edit view definition with external editor\n" msgstr " \\ev [VIEWNAME [LINE]] редагувати визначення подання зовнішнім редактором\n" -#: help.c:217 +#: help.c:221 msgid " \\p show the contents of the query buffer\n" msgstr " \\p показати вміст буфера запитів\n" -#: help.c:218 +#: help.c:222 msgid " \\r reset (clear) the query buffer\n" msgstr " \\r скинути (очистити) буфер запитів\n" -#: help.c:220 +#: help.c:224 msgid " \\s [FILE] display history or save it to file\n" msgstr " \\s [FILE] відобразити історію або зберегти її до файлу\n" -#: help.c:222 +#: help.c:226 msgid " \\w FILE write query buffer to file\n" msgstr " \\w FILE писати буфер запитів до файлу\n" -#: help.c:225 +#: help.c:229 msgid "Input/Output\n" msgstr "Ввід/Вивід\n" -#: help.c:226 +#: help.c:230 msgid " \\copy ... perform SQL COPY with data stream to the client host\n" msgstr " \\copy ... виконати команду SQL COPY з потоком даних на клієнтський хост\n" -#: help.c:227 +#: help.c:231 msgid " \\echo [-n] [STRING] write string to standard output (-n for no newline)\n" msgstr " \\echo [-n] [STRING] записати рядок до стандартного виводу (-n для пропуску нового рядка)\n" -#: help.c:228 +#: help.c:232 msgid " \\i FILE execute commands from file\n" msgstr " \\i FILE виконати команди з файлу\n" -#: help.c:229 +#: help.c:233 msgid " \\ir FILE as \\i, but relative to location of current script\n" msgstr " \\ir ФАЙЛ те саме, що \\i, але відносно розташування поточного сценарію\n" -#: help.c:230 +#: help.c:234 msgid " \\o [FILE] send all query results to file or |pipe\n" msgstr " \\o [FILE] надсилати всі результати запитів до файлу або до каналу |\n" -#: help.c:231 +#: help.c:235 msgid " \\qecho [-n] [STRING] write string to \\o output stream (-n for no newline)\n" msgstr " \\qecho [-n] [STRING] записати рядок до вихідного потоку \\o (-n для пропуску нового рядка)\n" -#: help.c:232 +#: help.c:236 msgid " \\warn [-n] [STRING] write string to standard error (-n for no newline)\n" msgstr " \\warn [-n] [STRING] записати рядок до стандартної помилки (-n для пропуску нового рядка)\n" -#: help.c:235 +#: help.c:239 msgid "Conditional\n" msgstr "Умовний\n" -#: help.c:236 +#: help.c:240 msgid " \\if EXPR begin conditional block\n" msgstr " \\if EXPR початок умовного блоку\n" -#: help.c:237 +#: help.c:241 msgid " \\elif EXPR alternative within current conditional block\n" msgstr " \\elif EXPR альтернатива в рамках поточного блоку\n" -#: help.c:238 +#: help.c:242 msgid " \\else final alternative within current conditional block\n" msgstr " \\else остаточна альтернатива в рамках поточного умовного блоку\n" -#: help.c:239 +#: help.c:243 msgid " \\endif end conditional block\n" msgstr " \\endif кінець умовного блоку\n" -#: help.c:242 +#: help.c:246 msgid "Informational\n" msgstr "Інформаційний\n" -#: help.c:243 +#: help.c:247 msgid " (options: S = show system objects, + = additional detail)\n" msgstr " (параметри: S = показати системні об'єкти, + = додаткові деталі)\n" -#: help.c:244 +#: help.c:248 msgid " \\d[S+] list tables, views, and sequences\n" msgstr " \\d[S+] вивести таблиці, подання і послідовності\n" -#: help.c:245 +#: help.c:249 msgid " \\d[S+] NAME describe table, view, sequence, or index\n" msgstr " \\d[S+] NAME описати таблицю, подання, послідовність або індекс\n" -#: help.c:246 +#: help.c:250 msgid " \\da[S] [PATTERN] list aggregates\n" msgstr " \\da[S] [PATTERN] вивести агрегати\n" -#: help.c:247 +#: help.c:251 msgid " \\dA[+] [PATTERN] list access methods\n" msgstr " \\dA[+] [PATTERN] вивести методи доступу\n" -#: help.c:248 +#: help.c:252 msgid " \\dAc[+] [AMPTRN [TYPEPTRN]] list operator classes\n" msgstr " \\dAc[+] [AMPTRN [TYPEPTRN]] список класів операторів\n" -#: help.c:249 +#: help.c:253 msgid " \\dAf[+] [AMPTRN [TYPEPTRN]] list operator families\n" msgstr " \\dAf[+] [AMPTRN [TYPEPTRN]] список сімейств операторів\n" -#: help.c:250 +#: help.c:254 msgid " \\dAo[+] [AMPTRN [OPFPTRN]] list operators of operator families\n" msgstr " \\dAo[+] [AMPTRN [OPFPTRN]] список операторів сімейств операторів\n" -#: help.c:251 +#: help.c:255 msgid " \\dAp[+] [AMPTRN [OPFPTRN]] list support functions of operator families\n" msgstr " \\dAp[+] [AMPTRN [OPFPTRN]] список функцій підтримки сімейств операторів\n" -#: help.c:252 +#: help.c:256 msgid " \\db[+] [PATTERN] list tablespaces\n" msgstr " \\db[+] [PATTERN] вивести табличні простори\n" -#: help.c:253 +#: help.c:257 msgid " \\dc[S+] [PATTERN] list conversions\n" msgstr " \\dc[S+] [PATTERN] вивести перетворення\n" -#: help.c:254 +#: help.c:258 msgid " \\dconfig[+] [PATTERN] list configuration parameters\n" msgstr " \\dconfig[+] [PATTERN] вивести параметри конфігурації\n" -#: help.c:255 +#: help.c:259 msgid " \\dC[+] [PATTERN] list casts\n" msgstr " \\dC[+] [PATTERN] вивести приведення типів\n" -#: help.c:256 +#: help.c:260 msgid " \\dd[S] [PATTERN] show object descriptions not displayed elsewhere\n" msgstr " \\dd[S] [PATTERN] показати опис об'єкта, що не відображається в іншому місці\n" -#: help.c:257 +#: help.c:261 msgid " \\dD[S+] [PATTERN] list domains\n" msgstr " \\dD[S+] [PATTERN] вивести домени\n" -#: help.c:258 +#: help.c:262 msgid " \\ddp [PATTERN] list default privileges\n" msgstr " \\ddp [PATTERN] вивести привілеї за замовчуванням\n" -#: help.c:259 +#: help.c:263 msgid " \\dE[S+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [PATTERN] вивести зовнішні таблиці\n" -#: help.c:260 +#: help.c:264 msgid " \\des[+] [PATTERN] list foreign servers\n" msgstr " \\des[+] [PATTERN] вивести зовнішні сервери\n" -#: help.c:261 +#: help.c:265 msgid " \\det[+] [PATTERN] list foreign tables\n" msgstr " \\dE[S+] [PATTERN] вивести зовнішні таблиці\n" -#: help.c:262 +#: help.c:266 msgid " \\deu[+] [PATTERN] list user mappings\n" msgstr " \\deu[+] [PATTERN] вивести користувацькі зіставлення\n" -#: help.c:263 +#: help.c:267 msgid " \\dew[+] [PATTERN] list foreign-data wrappers\n" msgstr " \\dew[+] [PATTERN] список джерел сторонніх даних\n" -#: help.c:264 +#: help.c:268 msgid " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " list [only agg/normal/procedure/trigger/window] functions\n" msgstr " \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n" " список [лише агрегатних/нормальних/процедурних/тригерних/віконних] функцій\n" -#: help.c:266 +#: help.c:270 msgid " \\dF[+] [PATTERN] list text search configurations\n" msgstr " \\dF[+] [PATTERN] вивести конфігурації текстового пошуку\n" -#: help.c:267 +#: help.c:271 msgid " \\dFd[+] [PATTERN] list text search dictionaries\n" msgstr " \\dFd[+] [PATTERN] вивести словники текстового пошуку\n" -#: help.c:268 +#: help.c:272 msgid " \\dFp[+] [PATTERN] list text search parsers\n" msgstr " \\dFp[+] [PATTERN] вивести парсери текстового пошуку\n" -#: help.c:269 +#: help.c:273 msgid " \\dFt[+] [PATTERN] list text search templates\n" msgstr " \\dFt[+] [PATTERN] вивести шаблони текстового пошуку\n" -#: help.c:270 +#: help.c:274 msgid " \\dg[S+] [PATTERN] list roles\n" msgstr " \\dg[S+] [PATTERN] вивести ролі\n" -#: help.c:271 +#: help.c:275 msgid " \\di[S+] [PATTERN] list indexes\n" msgstr " \\di[S+] [PATTERN] вивести індекси\n" -#: help.c:272 +#: help.c:276 msgid " \\dl[+] list large objects, same as \\lo_list\n" msgstr " \\dl[+] вивести великі об'єкти, те саме, що \\lo_list\n" -#: help.c:273 +#: help.c:277 msgid " \\dL[S+] [PATTERN] list procedural languages\n" msgstr " \\dL[S+] [PATTERN] вивести процедурні мови\n" -#: help.c:274 +#: help.c:278 msgid " \\dm[S+] [PATTERN] list materialized views\n" msgstr " \\dm[S+] [PATTERN] вивести матеріалізовані подання\n" -#: help.c:275 +#: help.c:279 msgid " \\dn[S+] [PATTERN] list schemas\n" msgstr " \\dn[S+] [PATTERN] вивести схеми\n" -#: help.c:276 +#: help.c:280 msgid " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " list operators\n" msgstr " \\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]\n" " список операторів\n" -#: help.c:278 +#: help.c:282 msgid " \\dO[S+] [PATTERN] list collations\n" msgstr " \\dO[S+] [PATTERN] вивести правила сортування\n" -#: help.c:279 +#: help.c:283 msgid " \\dp [PATTERN] list table, view, and sequence access privileges\n" msgstr " \\dp [PATTERN] вивести привілеї доступу до таблиць, подань або послідновностей \n" -#: help.c:280 +#: help.c:284 msgid " \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n" msgstr " \\dP[itn+] [PATTERN] вивести [тільки індекс/таблицю] секційні відношення [n=вкладені]\n" -#: help.c:281 +#: help.c:285 msgid " \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n" msgstr " \\drds [ROLEPTRN [DBPTRN]] вивести налаштування ролей побазово\n" -#: help.c:282 +#: help.c:286 msgid " \\dRp[+] [PATTERN] list replication publications\n" msgstr " \\dRp[+] [PATTERN] вивести реплікаційні публікації\n" -#: help.c:283 +#: help.c:287 msgid " \\dRs[+] [PATTERN] list replication subscriptions\n" msgstr " \\dRs[+] [PATTERN] вивести реплікаційні підписки\n" -#: help.c:284 +#: help.c:288 msgid " \\ds[S+] [PATTERN] list sequences\n" msgstr " \\ds[S+] [PATTERN] вивести послідовності\n" -#: help.c:285 +#: help.c:289 msgid " \\dt[S+] [PATTERN] list tables\n" msgstr " \\dt[S+] [PATTERN] вивести таблиці\n" -#: help.c:286 +#: help.c:290 msgid " \\dT[S+] [PATTERN] list data types\n" msgstr " \\dT[S+] [PATTERN] вивести типи даних\n" -#: help.c:287 +#: help.c:291 msgid " \\du[S+] [PATTERN] list roles\n" msgstr " \\du[S+] [PATTERN] вивести ролі\n" -#: help.c:288 +#: help.c:292 msgid " \\dv[S+] [PATTERN] list views\n" msgstr " \\dv[S+] [PATTERN] вивести подання\n" -#: help.c:289 +#: help.c:293 msgid " \\dx[+] [PATTERN] list extensions\n" msgstr " \\dx[+] [PATTERN] вивести розширення\n" -#: help.c:290 +#: help.c:294 msgid " \\dX [PATTERN] list extended statistics\n" msgstr " \\dX [PATTERN] список розширеної статистики\n" -#: help.c:291 +#: help.c:295 msgid " \\dy[+] [PATTERN] list event triggers\n" msgstr " \\dy[+] [PATTERN] вивести тригери подій\n" -#: help.c:292 +#: help.c:296 msgid " \\l[+] [PATTERN] list databases\n" msgstr " \\l[+] [PATTERN] вивести бази даних\n" -#: help.c:293 +#: help.c:297 msgid " \\sf[+] FUNCNAME show a function's definition\n" msgstr " \\sf[+] FUNCNAME відобразити визначення функції\n" -#: help.c:294 +#: help.c:298 msgid " \\sv[+] VIEWNAME show a view's definition\n" msgstr " \\sv[+] VIEWNAME відобразити визначення подання\n" -#: help.c:295 +#: help.c:299 msgid " \\z [PATTERN] same as \\dp\n" msgstr " \\z [PATTERN] те саме, що \\dp\n" -#: help.c:298 +#: help.c:302 msgid "Large Objects\n" msgstr "Великі об'єкти\n" -#: help.c:299 +#: help.c:303 msgid " \\lo_export LOBOID FILE write large object to file\n" msgstr " \\lo_export LOBOID FILE записати великий об'єкт в файл\n" -#: help.c:300 +#: help.c:304 msgid " \\lo_import FILE [COMMENT]\n" " read large object from file\n" msgstr " \\lo_import FILE [COMMENT]\n" " читати великий об'єкт з файлу\n" -#: help.c:302 +#: help.c:306 msgid " \\lo_list[+] list large objects\n" msgstr " \\lo_list[+] вивести великі об'єкти\n" -#: help.c:303 +#: help.c:307 msgid " \\lo_unlink LOBOID delete a large object\n" msgstr " \\lo_unlink LOBOID видалити великий об’єкт\n" -#: help.c:306 +#: help.c:310 msgid "Formatting\n" msgstr "Форматування\n" -#: help.c:307 +#: help.c:311 msgid " \\a toggle between unaligned and aligned output mode\n" msgstr " \\a перемикання між режимами виводу: unaligned, aligned\n" -#: help.c:308 +#: help.c:312 msgid " \\C [STRING] set table title, or unset if none\n" msgstr " \\C [STRING] встановити заголовок таблиці або прибрати, якщо не задано\n" -#: help.c:309 +#: help.c:313 msgid " \\f [STRING] show or set field separator for unaligned query output\n" msgstr " \\f [STRING] показати або встановити розділювач полів для не вирівняного виводу запиту\n" -#: help.c:310 +#: help.c:314 #, c-format msgid " \\H toggle HTML output mode (currently %s)\n" msgstr " \\H переключити режим виводу HTML (поточний: %s)\n" -#: help.c:312 +#: help.c:316 msgid " \\pset [NAME [VALUE]] set table output option\n" " (border|columns|csv_fieldsep|expanded|fieldsep|\n" " fieldsep_zero|footer|format|linestyle|null|\n" @@ -3049,113 +3077,113 @@ msgstr " \\pset [NAME [VALUE]] встановити параметр виво " unicode_border_linestyle|unicode_column_linestyle|\n" " unicode_header_linestyle)\n" -#: help.c:319 +#: help.c:323 #, c-format msgid " \\t [on|off] show only rows (currently %s)\n" msgstr " \\t [on|off] показувати лише рядки (поточно %s)\n" -#: help.c:321 +#: help.c:325 msgid " \\T [STRING] set HTML
tag attributes, or unset if none\n" msgstr " \\T [STRING] встановити атрибути для HTML
або прибрати, якщо не задані\n" -#: help.c:322 +#: help.c:326 #, c-format msgid " \\x [on|off|auto] toggle expanded output (currently %s)\n" msgstr " \\x [on|off|auto] переключити розширений вивід (поточний: %s)\n" -#: help.c:323 +#: help.c:327 msgid "auto" msgstr "авто" -#: help.c:326 +#: help.c:330 msgid "Connection\n" msgstr "Підключення\n" -#: help.c:328 +#: help.c:332 #, c-format msgid " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently \"%s\")\n" msgstr " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} під'єднатися до нової бази даних (поточно \"%s\")\n" -#: help.c:332 +#: help.c:336 msgid " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}\n" " connect to new database (currently no connection)\n" msgstr " \\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo} під'єднатися до нової бази даних (зараз з'єднання відсутнє)\n" -#: help.c:334 +#: help.c:338 msgid " \\conninfo display information about current connection\n" msgstr " \\conninfo показати інформацію про поточне з'єднання\n" -#: help.c:335 +#: help.c:339 msgid " \\encoding [ENCODING] show or set client encoding\n" msgstr " \\encoding [ENCODING] показати або встановити кодування клієнта\n" -#: help.c:336 +#: help.c:340 msgid " \\password [USERNAME] securely change the password for a user\n" msgstr " \\password [USERNAME] безпечно змінити пароль користувача \n" -#: help.c:339 +#: help.c:343 msgid "Operating System\n" msgstr "Операційна система\n" -#: help.c:340 +#: help.c:344 msgid " \\cd [DIR] change the current working directory\n" msgstr " \\cd [DIR] змінити поточний робочий каталог\n" -#: help.c:341 +#: help.c:345 msgid " \\getenv PSQLVAR ENVVAR fetch environment variable\n" msgstr " \\getenv PSQLVAR ENVAR отримати змінну середовища\n" -#: help.c:342 +#: help.c:346 msgid " \\setenv NAME [VALUE] set or unset environment variable\n" msgstr " \\setenv NAME [VALUE] встановити або скинути змінну середовища\n" -#: help.c:343 +#: help.c:347 #, c-format msgid " \\timing [on|off] toggle timing of commands (currently %s)\n" msgstr " \\timing [on|off] переключити таймер команд (поточний: %s)\n" -#: help.c:345 +#: help.c:349 msgid " \\! [COMMAND] execute command in shell or start interactive shell\n" msgstr " \\! [COMMAND] виконати команду в оболонці або запустити інтерактивну оболонку\n" -#: help.c:348 +#: help.c:352 msgid "Variables\n" msgstr "Змінні\n" -#: help.c:349 +#: help.c:353 msgid " \\prompt [TEXT] NAME prompt user to set internal variable\n" msgstr " \\prompt [TEXT] NAME запитати користувача значення внутрішньої змінної\n" -#: help.c:350 +#: help.c:354 msgid " \\set [NAME [VALUE]] set internal variable, or list all if no parameters\n" msgstr " \\set [NAME [VALUE]] встановити внутрішню змінну або вивести всі, якщо не задані параметри\n" -#: help.c:351 +#: help.c:355 msgid " \\unset NAME unset (delete) internal variable\n" msgstr " \\unset NAME скинути (видалити) значення внутрішньої змінної\n" -#: help.c:390 +#: help.c:394 msgid "List of specially treated variables\n\n" msgstr "Список спеціальних змінних\n\n" -#: help.c:392 +#: help.c:396 msgid "psql variables:\n" msgstr "змінні psql:\n" -#: help.c:394 +#: help.c:398 msgid " psql --set=NAME=VALUE\n" " or \\set NAME VALUE inside psql\n\n" msgstr " psql --set=ІМ'Я=ЗНАЧЕННЯ\n" " або \\set ІМ'Я ЗНАЧЕННЯ усередині psql\n\n" -#: help.c:396 +#: help.c:400 msgid " AUTOCOMMIT\n" " if set, successful SQL commands are automatically committed\n" msgstr " AUTOCOMMIT\n" " якщо встановлений, успішні SQL-команди підтверджуються автоматично\n" -#: help.c:398 +#: help.c:402 msgid " COMP_KEYWORD_CASE\n" " determines the case used to complete SQL key words\n" " [lower, upper, preserve-lower, preserve-upper]\n" @@ -3163,18 +3191,18 @@ msgstr " COMP_KEYWORD_CASE\n" " визначає регістр для автодоповнення ключових слів SQL\n" " [lower, upper, preserve-lower, preserve-upper]\n" -#: help.c:401 +#: help.c:405 msgid " DBNAME\n" " the currently connected database name\n" msgstr " DBNAME назва під'єднаної бази даних\n" -#: help.c:403 +#: help.c:407 msgid " ECHO\n" " controls what input is written to standard output\n" " [all, errors, none, queries]\n" msgstr " ECHO контролює ввід, що виводиться на стандартний вивід [all, errors, none, queries]\n" -#: help.c:406 +#: help.c:410 msgid " ECHO_HIDDEN\n" " if set, display internal queries executed by backslash commands;\n" " if set to \"noexec\", just show them without execution\n" @@ -3182,67 +3210,67 @@ msgstr " ECHO_HIDDEN\n" " якщо ввімкнено, виводить внутрішні запити, виконані за допомогою \"\\\";\n" " якщо встановлено значення \"noexec\", тільки виводяться, але не виконуються\n" -#: help.c:409 +#: help.c:413 msgid " ENCODING\n" " current client character set encoding\n" msgstr " ENCODING\n" " поточне кодування набору символів клієнта\n" -#: help.c:411 +#: help.c:415 msgid " ERROR\n" " true if last query failed, else false\n" msgstr " ERROR\n" " істина, якщо в останньому запиті є помилка, в іншому разі - хибність\n" -#: help.c:413 +#: help.c:417 msgid " FETCH_COUNT\n" " the number of result rows to fetch and display at a time (0 = unlimited)\n" msgstr " FETCH_COUNT\n" " число рядків з результатами для передачі та відображення за один раз (0 = необмежено)\n" -#: help.c:415 +#: help.c:419 msgid " HIDE_TABLEAM\n" " if set, table access methods are not displayed\n" msgstr " HIDE_TABLEAM\n" " якщо вказано, методи доступу до таблиць не відображаються\n" -#: help.c:417 +#: help.c:421 msgid " HIDE_TOAST_COMPRESSION\n" " if set, compression methods are not displayed\n" msgstr " HIDE_TOAST_COMPRESSION\n" " якщо встановлено, методи стискання не відображаються\n" -#: help.c:419 +#: help.c:423 msgid " HISTCONTROL\n" " controls command history [ignorespace, ignoredups, ignoreboth]\n" msgstr " HISTCONTROL контролює історію команд [ignorespace, ignoredups, ignoreboth]\n" -#: help.c:421 +#: help.c:425 msgid " HISTFILE\n" " file name used to store the command history\n" msgstr " HISTFILE ім'я файлу для зберігання історії команд\n" -#: help.c:423 +#: help.c:427 msgid " HISTSIZE\n" " maximum number of commands to store in the command history\n" msgstr " HISTSIZE максимальна кількість команд для зберігання в історії команд\n" -#: help.c:425 +#: help.c:429 msgid " HOST\n" " the currently connected database server host\n" msgstr " HOST поточний підключений хост сервера бази даних\n" -#: help.c:427 +#: help.c:431 msgid " IGNOREEOF\n" " number of EOFs needed to terminate an interactive session\n" msgstr " IGNOREEOF кількість EOF для завершення інтерактивної сесії\n" -#: help.c:429 +#: help.c:433 msgid " LASTOID\n" " value of the last affected OID\n" msgstr " LASTOID значення останнього залученого OID\n" -#: help.c:431 +#: help.c:435 msgid " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" " message and SQLSTATE of last error, or empty string and \"00000\" if none\n" @@ -3250,55 +3278,55 @@ msgstr " LAST_ERROR_MESSAGE\n" " LAST_ERROR_SQLSTATE\n" " повідомлення та код SQLSTATE останньої помилки, або пустий рядок та \"00000\", якщо помилки не було\n" -#: help.c:434 +#: help.c:438 msgid " ON_ERROR_ROLLBACK\n" " if set, an error doesn't stop a transaction (uses implicit savepoints)\n" msgstr " ON_ERROR_ROLLBACK\n" " якщо встановлено, транзакція не припиняється у разі помилки (використовуються неявні точки збереження)\n" -#: help.c:436 +#: help.c:440 msgid " ON_ERROR_STOP\n" " stop batch execution after error\n" msgstr " ON_ERROR_STOP\n" " зупиняти виконання пакету команд після помилки\n" -#: help.c:438 +#: help.c:442 msgid " PORT\n" " server port of the current connection\n" msgstr " PORT\n" " порт сервера для поточного з'єднання\n" -#: help.c:440 +#: help.c:444 msgid " PROMPT1\n" " specifies the standard psql prompt\n" msgstr " PROMPT1\n" " визначає стандратне запрошення psql \n" -#: help.c:442 +#: help.c:446 msgid " PROMPT2\n" " specifies the prompt used when a statement continues from a previous line\n" msgstr " PROMPT2\n" " визначає запрошення, яке використовується при продовженні команди з попереднього рядка\n" -#: help.c:444 +#: help.c:448 msgid " PROMPT3\n" " specifies the prompt used during COPY ... FROM STDIN\n" msgstr " PROMPT3\n" " визначає запрошення, яке виконується під час COPY ... FROM STDIN\n" -#: help.c:446 +#: help.c:450 msgid " QUIET\n" " run quietly (same as -q option)\n" msgstr " QUIET\n" " тихий запуск ( як із параметром -q)\n" -#: help.c:448 +#: help.c:452 msgid " ROW_COUNT\n" " number of rows returned or affected by last query, or 0\n" msgstr " ROW_COUNT\n" " число повернених або оброблених рядків останнім запитом, або 0\n" -#: help.c:450 +#: help.c:454 msgid " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" " server's version (in short string or numeric format)\n" @@ -3306,49 +3334,49 @@ msgstr " SERVER_VERSION_NAME\n" " SERVER_VERSION_NUM\n" " версія серевера (у короткому текстовому або числовому форматі)\n" -#: help.c:453 +#: help.c:457 msgid " SHOW_ALL_RESULTS\n" " show all results of a combined query (\\;) instead of only the last\n" msgstr " SHOW_ALL_RESULTS\n" " показати всі результати комбінованого запиту (\\;) замість тільки останнього\n" -#: help.c:455 +#: help.c:459 msgid " SHOW_CONTEXT\n" " controls display of message context fields [never, errors, always]\n" msgstr " SHOW_CONTEXT\n" " керує відображенням полів контексту повідомлень [never, errors, always]\n" -#: help.c:457 +#: help.c:461 msgid " SINGLELINE\n" " if set, end of line terminates SQL commands (same as -S option)\n" msgstr " SINGLELINE\n" " якщо встановлено, кінець рядка завершує режим вводу SQL-команди (як з параметром -S)\n" -#: help.c:459 +#: help.c:463 msgid " SINGLESTEP\n" " single-step mode (same as -s option)\n" msgstr " SINGLESTEP\n" " покроковий режим (як з параметром -s)\n" -#: help.c:461 +#: help.c:465 msgid " SQLSTATE\n" " SQLSTATE of last query, or \"00000\" if no error\n" msgstr " SQLSTATE\n" " SQLSTATE останнього запиту, або \"00000\" якщо немає помилок\n" -#: help.c:463 +#: help.c:467 msgid " USER\n" " the currently connected database user\n" msgstr " USER\n" " поточний користувач, підключений до бази даних\n" -#: help.c:465 +#: help.c:469 msgid " VERBOSITY\n" " controls verbosity of error reports [default, verbose, terse, sqlstate]\n" msgstr " VERBOSITY\n" " контролює докладність звітів про помилку [default, verbose, terse, sqlstate]\n" -#: help.c:467 +#: help.c:471 msgid " VERSION\n" " VERSION_NAME\n" " VERSION_NUM\n" @@ -3358,98 +3386,105 @@ msgstr " VERSION\n" " VERSION_NUM\n" " psql версія (в розгорнутому, в короткому текстовому або числовому форматі)\n" -#: help.c:472 +#: help.c:476 msgid "\n" "Display settings:\n" msgstr "\n" "Налаштування відобреження:\n" -#: help.c:474 +#: help.c:478 msgid " psql --pset=NAME[=VALUE]\n" " or \\pset NAME [VALUE] inside psql\n\n" msgstr " psql --pset=NAME[=VALUE]\n" " або \\pset ІМ'Я [VALUE] всередині psql\n\n" -#: help.c:476 +#: help.c:480 msgid " border\n" " border style (number)\n" msgstr " border\n" " стиль рамки (число)\n" -#: help.c:478 +#: help.c:482 msgid " columns\n" " target width for the wrapped format\n" msgstr " columns\n" " цільова ширина для формату з переносом\n" -#: help.c:480 +#: help.c:484 +#, c-format +msgid " csv_fieldsep\n" +" field separator for CSV output format (default \"%c\")\n" +msgstr " csv_fieldsep\n" +" розділювач полів для виводу CSV (за замовчуванням \"%c\")\n" + +#: help.c:487 msgid " expanded (or x)\n" " expanded output [on, off, auto]\n" msgstr " expanded (or x)\n" " розширений вивід [on, off, auto]\n" -#: help.c:482 +#: help.c:489 #, c-format msgid " fieldsep\n" " field separator for unaligned output (default \"%s\")\n" msgstr " fieldsep\n" " розділювач полів для не вирівняного виводу (за замовчуванням \"%s\")\n" -#: help.c:485 +#: help.c:492 msgid " fieldsep_zero\n" " set field separator for unaligned output to a zero byte\n" msgstr " fieldsep_zero\n" " встановити розділювач полів для невирівняного виводу на нульовий байт\n" -#: help.c:487 +#: help.c:494 msgid " footer\n" " enable or disable display of the table footer [on, off]\n" msgstr " footer\n" " вмикає або вимикає вивід підписів таблиці [on, off]\n" -#: help.c:489 +#: help.c:496 msgid " format\n" " set output format [unaligned, aligned, wrapped, html, asciidoc, ...]\n" msgstr " format\n" " встановити формат виводу [unaligned, aligned, wrapped, html, asciidoc, ...]\n" -#: help.c:491 +#: help.c:498 msgid " linestyle\n" " set the border line drawing style [ascii, old-ascii, unicode]\n" msgstr " linestyle\n" " встановлює стиль малювання ліній рамки [ascii, old-ascii, unicode]\n" -#: help.c:493 +#: help.c:500 msgid " null\n" " set the string to be printed in place of a null value\n" msgstr " null\n" " встановлює рядок, який буде виведено замість значення (null)\n" -#: help.c:495 +#: help.c:502 msgid " numericlocale\n" " enable display of a locale-specific character to separate groups of digits\n" msgstr " numericlocale\n" " вмикає виведення заданого локалью роздільника групи цифр\n" -#: help.c:497 +#: help.c:504 msgid " pager\n" " control when an external pager is used [yes, no, always]\n" msgstr " pager\n" " контролює використання зовнішнього пейджера [yes, no, always]\n" -#: help.c:499 +#: help.c:506 msgid " recordsep\n" " record (line) separator for unaligned output\n" msgstr " recordsep\n" " розділювач записів (рядків) для не вирівняного виводу\n" -#: help.c:501 +#: help.c:508 msgid " recordsep_zero\n" " set record separator for unaligned output to a zero byte\n" msgstr " recordsep_zero\n" " встановлює розділювач записів для невирівняного виводу на нульовий байт\n" -#: help.c:503 +#: help.c:510 msgid " tableattr (or T)\n" " specify attributes for table tag in html format, or proportional\n" " column widths for left-aligned data types in latex-longtable format\n" @@ -3457,19 +3492,19 @@ msgstr " tableattr (або T)\n" " вказує атрибути для тегу table у html форматі або пропорційні \n" " ширини стовпців для вирівняних вліво даних, у latex-longtable форматі\n" -#: help.c:506 +#: help.c:513 msgid " title\n" " set the table title for subsequently printed tables\n" msgstr " title\n" " задає заголовок таблиці для послідовно друкованих таблиць\n" -#: help.c:508 +#: help.c:515 msgid " tuples_only\n" " if set, only actual table data is shown\n" msgstr " tuples_only\n" " якщо встановлено, виводяться лише фактичні табличні дані\n" -#: help.c:510 +#: help.c:517 msgid " unicode_border_linestyle\n" " unicode_column_linestyle\n" " unicode_header_linestyle\n" @@ -3479,19 +3514,19 @@ msgstr " unicode_border_linestyle\n" " unicode_header_linestyle\n" " задає стиль мальювання ліній (Unicode) [single, double]\n" -#: help.c:515 +#: help.c:522 msgid "\n" "Environment variables:\n" msgstr "\n" "Змінні оточення:\n" -#: help.c:519 +#: help.c:526 msgid " NAME=VALUE [NAME=VALUE] psql ...\n" " or \\setenv NAME [VALUE] inside psql\n\n" msgstr " ІМ'Я=ЗНАЧЕННЯ [ІМ'Я=ЗНАЧЕННЯ] psql ...\n" " або \\setenv ІМ'Я [VALUE] всередині psql\n\n" -#: help.c:521 +#: help.c:528 msgid " set NAME=VALUE\n" " psql ...\n" " or \\setenv NAME [VALUE] inside psql\n\n" @@ -3499,107 +3534,107 @@ msgstr " встановлює ІМ'Я=ЗНАЧЕННЯ\n" " psql ...\n" " або \\setenv ІМ'Я [VALUE] всередині psql\n\n" -#: help.c:524 +#: help.c:531 msgid " COLUMNS\n" " number of columns for wrapped format\n" msgstr " COLUMNS\n" " число стовпців для форматування з переносом\n" -#: help.c:526 +#: help.c:533 msgid " PGAPPNAME\n" " same as the application_name connection parameter\n" msgstr " PGAPPNAME\n" " те саме, що параметр підключення application_name\n" -#: help.c:528 +#: help.c:535 msgid " PGDATABASE\n" " same as the dbname connection parameter\n" msgstr " PGDATABASE\n" " те саме, що параметр підключення dbname\n" -#: help.c:530 +#: help.c:537 msgid " PGHOST\n" " same as the host connection parameter\n" msgstr " PGHOST\n" " те саме, що параметр підключення host\n" -#: help.c:532 +#: help.c:539 msgid " PGPASSFILE\n" " password file name\n" msgstr " PGPASSFILE\n" " назва файлу з паролем\n" -#: help.c:534 +#: help.c:541 msgid " PGPASSWORD\n" " connection password (not recommended)\n" msgstr " PGPASSWORD\n" " пароль для підключення (не рекомендується)\n" -#: help.c:536 +#: help.c:543 msgid " PGPORT\n" " same as the port connection parameter\n" msgstr " PGPORT\n" " те саме, що параметр підключення port\n" -#: help.c:538 +#: help.c:545 msgid " PGUSER\n" " same as the user connection parameter\n" msgstr " PGUSER\n" " те саме, що параметр підключення user\n" -#: help.c:540 +#: help.c:547 msgid " PSQL_EDITOR, EDITOR, VISUAL\n" " editor used by the \\e, \\ef, and \\ev commands\n" msgstr " PSQL_EDITOR, EDITOR, VISUAL\n" " редактор для команд \\e, \\ef і \\ev\n" -#: help.c:542 +#: help.c:549 msgid " PSQL_EDITOR_LINENUMBER_ARG\n" " how to specify a line number when invoking the editor\n" msgstr " PSQL_EDITOR_LINENUMBER_ARG\n" " як вказати номер рядка при виклику редактора\n" -#: help.c:544 +#: help.c:551 msgid " PSQL_HISTORY\n" " alternative location for the command history file\n" msgstr " PSQL_HISTORY\n" " альтернативне розміщення файлу з історією команд\n" -#: help.c:546 +#: help.c:553 msgid " PSQL_PAGER, PAGER\n" " name of external pager program\n" msgstr " PSQL_PAGER, PAGER\n" " ім'я програми зовнішнього пейджеру\n" -#: help.c:549 +#: help.c:556 msgid " PSQL_WATCH_PAGER\n" " name of external pager program used for \\watch\n" msgstr " PSQL_WATCH_PAGER\n" " назва зовнішньої програми-пейджера для використання з \\watch\n" -#: help.c:552 +#: help.c:559 msgid " PSQLRC\n" " alternative location for the user's .psqlrc file\n" msgstr " PSQLRC\n" " альтернативне розміщення користувацького файла .psqlrc\n" -#: help.c:554 +#: help.c:561 msgid " SHELL\n" " shell used by the \\! command\n" msgstr " SHELL\n" " оболонка, що використовується командою \\!\n" -#: help.c:556 +#: help.c:563 msgid " TMPDIR\n" " directory for temporary files\n" msgstr " TMPDIR\n" " каталог для тимчасових файлів\n" -#: help.c:616 +#: help.c:623 msgid "Available help:\n" msgstr "Доступна довідка:\n" -#: help.c:711 +#: help.c:718 #, c-format msgid "Command: %s\n" "Description: %s\n" @@ -3612,7 +3647,7 @@ msgstr "Команда: %s\n" "%s\n\n" "URL: %s\n\n" -#: help.c:734 +#: help.c:741 #, c-format msgid "No help available for \"%s\".\n" "Try \\h with no arguments to see available help.\n" @@ -3738,189 +3773,189 @@ msgstr "%s: бракує пам'яті" #: sql_help.c:728 sql_help.c:732 sql_help.c:751 sql_help.c:754 sql_help.c:757 #: sql_help.c:786 sql_help.c:798 sql_help.c:806 sql_help.c:809 sql_help.c:812 #: sql_help.c:827 sql_help.c:830 sql_help.c:859 sql_help.c:864 sql_help.c:869 -#: sql_help.c:874 sql_help.c:879 sql_help.c:906 sql_help.c:908 sql_help.c:910 -#: sql_help.c:912 sql_help.c:915 sql_help.c:917 sql_help.c:964 sql_help.c:1009 -#: sql_help.c:1014 sql_help.c:1019 sql_help.c:1024 sql_help.c:1029 -#: sql_help.c:1048 sql_help.c:1059 sql_help.c:1061 sql_help.c:1081 -#: sql_help.c:1091 sql_help.c:1092 sql_help.c:1094 sql_help.c:1096 -#: sql_help.c:1108 sql_help.c:1112 sql_help.c:1114 sql_help.c:1126 -#: sql_help.c:1128 sql_help.c:1130 sql_help.c:1132 sql_help.c:1151 -#: sql_help.c:1153 sql_help.c:1157 sql_help.c:1161 sql_help.c:1165 -#: sql_help.c:1168 sql_help.c:1169 sql_help.c:1170 sql_help.c:1173 -#: sql_help.c:1176 sql_help.c:1178 sql_help.c:1317 sql_help.c:1319 -#: sql_help.c:1322 sql_help.c:1325 sql_help.c:1327 sql_help.c:1329 -#: sql_help.c:1332 sql_help.c:1335 sql_help.c:1455 sql_help.c:1457 -#: sql_help.c:1459 sql_help.c:1462 sql_help.c:1483 sql_help.c:1486 -#: sql_help.c:1489 sql_help.c:1492 sql_help.c:1496 sql_help.c:1498 -#: sql_help.c:1500 sql_help.c:1502 sql_help.c:1516 sql_help.c:1519 -#: sql_help.c:1521 sql_help.c:1523 sql_help.c:1533 sql_help.c:1535 -#: sql_help.c:1545 sql_help.c:1547 sql_help.c:1557 sql_help.c:1560 -#: sql_help.c:1583 sql_help.c:1585 sql_help.c:1587 sql_help.c:1589 -#: sql_help.c:1592 sql_help.c:1594 sql_help.c:1597 sql_help.c:1600 -#: sql_help.c:1651 sql_help.c:1694 sql_help.c:1697 sql_help.c:1699 -#: sql_help.c:1701 sql_help.c:1704 sql_help.c:1706 sql_help.c:1708 -#: sql_help.c:1711 sql_help.c:1761 sql_help.c:1777 sql_help.c:2008 -#: sql_help.c:2077 sql_help.c:2096 sql_help.c:2109 sql_help.c:2166 -#: sql_help.c:2173 sql_help.c:2183 sql_help.c:2209 sql_help.c:2240 -#: sql_help.c:2258 sql_help.c:2286 sql_help.c:2397 sql_help.c:2443 -#: sql_help.c:2468 sql_help.c:2491 sql_help.c:2495 sql_help.c:2529 -#: sql_help.c:2549 sql_help.c:2571 sql_help.c:2585 sql_help.c:2606 -#: sql_help.c:2635 sql_help.c:2670 sql_help.c:2695 sql_help.c:2742 -#: sql_help.c:3040 sql_help.c:3053 sql_help.c:3070 sql_help.c:3086 -#: sql_help.c:3126 sql_help.c:3180 sql_help.c:3184 sql_help.c:3186 -#: sql_help.c:3193 sql_help.c:3212 sql_help.c:3239 sql_help.c:3274 -#: sql_help.c:3286 sql_help.c:3295 sql_help.c:3339 sql_help.c:3353 -#: sql_help.c:3381 sql_help.c:3389 sql_help.c:3401 sql_help.c:3411 -#: sql_help.c:3419 sql_help.c:3427 sql_help.c:3435 sql_help.c:3443 -#: sql_help.c:3452 sql_help.c:3463 sql_help.c:3471 sql_help.c:3479 -#: sql_help.c:3487 sql_help.c:3495 sql_help.c:3505 sql_help.c:3514 -#: sql_help.c:3523 sql_help.c:3531 sql_help.c:3541 sql_help.c:3552 -#: sql_help.c:3560 sql_help.c:3569 sql_help.c:3580 sql_help.c:3589 -#: sql_help.c:3597 sql_help.c:3605 sql_help.c:3613 sql_help.c:3621 -#: sql_help.c:3629 sql_help.c:3637 sql_help.c:3645 sql_help.c:3653 -#: sql_help.c:3661 sql_help.c:3669 sql_help.c:3686 sql_help.c:3695 -#: sql_help.c:3703 sql_help.c:3720 sql_help.c:3735 sql_help.c:4045 -#: sql_help.c:4159 sql_help.c:4188 sql_help.c:4203 sql_help.c:4706 -#: sql_help.c:4754 sql_help.c:4912 +#: sql_help.c:874 sql_help.c:879 sql_help.c:915 sql_help.c:917 sql_help.c:919 +#: sql_help.c:921 sql_help.c:924 sql_help.c:926 sql_help.c:978 sql_help.c:1023 +#: sql_help.c:1028 sql_help.c:1033 sql_help.c:1038 sql_help.c:1043 +#: sql_help.c:1062 sql_help.c:1073 sql_help.c:1075 sql_help.c:1095 +#: sql_help.c:1105 sql_help.c:1106 sql_help.c:1108 sql_help.c:1110 +#: sql_help.c:1122 sql_help.c:1126 sql_help.c:1128 sql_help.c:1140 +#: sql_help.c:1142 sql_help.c:1144 sql_help.c:1146 sql_help.c:1165 +#: sql_help.c:1167 sql_help.c:1171 sql_help.c:1175 sql_help.c:1179 +#: sql_help.c:1182 sql_help.c:1183 sql_help.c:1184 sql_help.c:1187 +#: sql_help.c:1190 sql_help.c:1192 sql_help.c:1331 sql_help.c:1333 +#: sql_help.c:1336 sql_help.c:1339 sql_help.c:1341 sql_help.c:1343 +#: sql_help.c:1346 sql_help.c:1349 sql_help.c:1469 sql_help.c:1471 +#: sql_help.c:1473 sql_help.c:1476 sql_help.c:1497 sql_help.c:1500 +#: sql_help.c:1503 sql_help.c:1506 sql_help.c:1510 sql_help.c:1512 +#: sql_help.c:1514 sql_help.c:1516 sql_help.c:1530 sql_help.c:1533 +#: sql_help.c:1535 sql_help.c:1537 sql_help.c:1547 sql_help.c:1549 +#: sql_help.c:1559 sql_help.c:1561 sql_help.c:1571 sql_help.c:1574 +#: sql_help.c:1597 sql_help.c:1599 sql_help.c:1601 sql_help.c:1603 +#: sql_help.c:1606 sql_help.c:1608 sql_help.c:1611 sql_help.c:1614 +#: sql_help.c:1665 sql_help.c:1708 sql_help.c:1711 sql_help.c:1713 +#: sql_help.c:1715 sql_help.c:1718 sql_help.c:1720 sql_help.c:1722 +#: sql_help.c:1725 sql_help.c:1775 sql_help.c:1791 sql_help.c:2022 +#: sql_help.c:2091 sql_help.c:2110 sql_help.c:2123 sql_help.c:2180 +#: sql_help.c:2187 sql_help.c:2197 sql_help.c:2223 sql_help.c:2254 +#: sql_help.c:2272 sql_help.c:2300 sql_help.c:2411 sql_help.c:2457 +#: sql_help.c:2482 sql_help.c:2505 sql_help.c:2509 sql_help.c:2543 +#: sql_help.c:2563 sql_help.c:2585 sql_help.c:2599 sql_help.c:2620 +#: sql_help.c:2653 sql_help.c:2690 sql_help.c:2715 sql_help.c:2762 +#: sql_help.c:3060 sql_help.c:3073 sql_help.c:3090 sql_help.c:3106 +#: sql_help.c:3146 sql_help.c:3200 sql_help.c:3204 sql_help.c:3206 +#: sql_help.c:3213 sql_help.c:3232 sql_help.c:3259 sql_help.c:3294 +#: sql_help.c:3306 sql_help.c:3315 sql_help.c:3359 sql_help.c:3373 +#: sql_help.c:3401 sql_help.c:3409 sql_help.c:3421 sql_help.c:3431 +#: sql_help.c:3439 sql_help.c:3447 sql_help.c:3455 sql_help.c:3463 +#: sql_help.c:3472 sql_help.c:3483 sql_help.c:3491 sql_help.c:3499 +#: sql_help.c:3507 sql_help.c:3515 sql_help.c:3525 sql_help.c:3534 +#: sql_help.c:3543 sql_help.c:3551 sql_help.c:3561 sql_help.c:3572 +#: sql_help.c:3580 sql_help.c:3589 sql_help.c:3600 sql_help.c:3609 +#: sql_help.c:3617 sql_help.c:3625 sql_help.c:3633 sql_help.c:3641 +#: sql_help.c:3649 sql_help.c:3657 sql_help.c:3665 sql_help.c:3673 +#: sql_help.c:3681 sql_help.c:3689 sql_help.c:3706 sql_help.c:3715 +#: sql_help.c:3723 sql_help.c:3740 sql_help.c:3755 sql_help.c:4065 +#: sql_help.c:4179 sql_help.c:4208 sql_help.c:4223 sql_help.c:4726 +#: sql_help.c:4774 sql_help.c:4932 msgid "name" msgstr "назва" -#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1858 -#: sql_help.c:3354 sql_help.c:4474 +#: sql_help.c:36 sql_help.c:39 sql_help.c:42 sql_help.c:340 sql_help.c:1872 +#: sql_help.c:3374 sql_help.c:4494 msgid "aggregate_signature" msgstr "сигнатура_агр_функції" #: sql_help.c:37 sql_help.c:67 sql_help.c:82 sql_help.c:120 sql_help.c:260 #: sql_help.c:281 sql_help.c:412 sql_help.c:459 sql_help.c:538 sql_help.c:586 #: sql_help.c:604 sql_help.c:631 sql_help.c:684 sql_help.c:753 sql_help.c:808 -#: sql_help.c:829 sql_help.c:868 sql_help.c:918 sql_help.c:965 sql_help.c:1018 -#: sql_help.c:1050 sql_help.c:1060 sql_help.c:1095 sql_help.c:1115 -#: sql_help.c:1129 sql_help.c:1179 sql_help.c:1326 sql_help.c:1456 -#: sql_help.c:1499 sql_help.c:1520 sql_help.c:1534 sql_help.c:1546 -#: sql_help.c:1559 sql_help.c:1586 sql_help.c:1652 sql_help.c:1705 +#: sql_help.c:829 sql_help.c:868 sql_help.c:927 sql_help.c:979 sql_help.c:1032 +#: sql_help.c:1064 sql_help.c:1074 sql_help.c:1109 sql_help.c:1129 +#: sql_help.c:1143 sql_help.c:1193 sql_help.c:1340 sql_help.c:1470 +#: sql_help.c:1513 sql_help.c:1534 sql_help.c:1548 sql_help.c:1560 +#: sql_help.c:1573 sql_help.c:1600 sql_help.c:1666 sql_help.c:1719 msgid "new_name" msgstr "нова_назва" #: sql_help.c:40 sql_help.c:69 sql_help.c:84 sql_help.c:122 sql_help.c:258 #: sql_help.c:279 sql_help.c:410 sql_help.c:495 sql_help.c:543 sql_help.c:633 #: sql_help.c:642 sql_help.c:707 sql_help.c:727 sql_help.c:756 sql_help.c:811 -#: sql_help.c:873 sql_help.c:916 sql_help.c:1023 sql_help.c:1062 -#: sql_help.c:1093 sql_help.c:1113 sql_help.c:1127 sql_help.c:1177 -#: sql_help.c:1390 sql_help.c:1458 sql_help.c:1501 sql_help.c:1522 -#: sql_help.c:1584 sql_help.c:1700 sql_help.c:3026 +#: sql_help.c:873 sql_help.c:925 sql_help.c:1037 sql_help.c:1076 +#: sql_help.c:1107 sql_help.c:1127 sql_help.c:1141 sql_help.c:1191 +#: sql_help.c:1404 sql_help.c:1472 sql_help.c:1515 sql_help.c:1536 +#: sql_help.c:1598 sql_help.c:1714 sql_help.c:3046 msgid "new_owner" msgstr "новий_власник" #: sql_help.c:43 sql_help.c:71 sql_help.c:86 sql_help.c:262 sql_help.c:332 #: sql_help.c:461 sql_help.c:548 sql_help.c:686 sql_help.c:731 sql_help.c:759 -#: sql_help.c:814 sql_help.c:878 sql_help.c:1028 sql_help.c:1097 -#: sql_help.c:1131 sql_help.c:1328 sql_help.c:1503 sql_help.c:1524 -#: sql_help.c:1536 sql_help.c:1548 sql_help.c:1588 sql_help.c:1707 +#: sql_help.c:814 sql_help.c:878 sql_help.c:1042 sql_help.c:1111 +#: sql_help.c:1145 sql_help.c:1342 sql_help.c:1517 sql_help.c:1538 +#: sql_help.c:1550 sql_help.c:1562 sql_help.c:1602 sql_help.c:1721 msgid "new_schema" msgstr "нова_схема" -#: sql_help.c:44 sql_help.c:1922 sql_help.c:3355 sql_help.c:4503 +#: sql_help.c:44 sql_help.c:1936 sql_help.c:3375 sql_help.c:4523 msgid "where aggregate_signature is:" msgstr "де сигнатура_агр_функції:" #: sql_help.c:45 sql_help.c:48 sql_help.c:51 sql_help.c:350 sql_help.c:363 #: sql_help.c:367 sql_help.c:383 sql_help.c:386 sql_help.c:389 sql_help.c:530 #: sql_help.c:535 sql_help.c:540 sql_help.c:545 sql_help.c:550 sql_help.c:860 -#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1010 -#: sql_help.c:1015 sql_help.c:1020 sql_help.c:1025 sql_help.c:1030 -#: sql_help.c:1876 sql_help.c:1893 sql_help.c:1899 sql_help.c:1923 -#: sql_help.c:1926 sql_help.c:1929 sql_help.c:2078 sql_help.c:2097 -#: sql_help.c:2100 sql_help.c:2398 sql_help.c:2607 sql_help.c:3356 -#: sql_help.c:3359 sql_help.c:3362 sql_help.c:3453 sql_help.c:3542 -#: sql_help.c:3570 sql_help.c:3920 sql_help.c:4373 sql_help.c:4480 -#: sql_help.c:4487 sql_help.c:4493 sql_help.c:4504 sql_help.c:4507 -#: sql_help.c:4510 +#: sql_help.c:865 sql_help.c:870 sql_help.c:875 sql_help.c:880 sql_help.c:1024 +#: sql_help.c:1029 sql_help.c:1034 sql_help.c:1039 sql_help.c:1044 +#: sql_help.c:1890 sql_help.c:1907 sql_help.c:1913 sql_help.c:1937 +#: sql_help.c:1940 sql_help.c:1943 sql_help.c:2092 sql_help.c:2111 +#: sql_help.c:2114 sql_help.c:2412 sql_help.c:2621 sql_help.c:3376 +#: sql_help.c:3379 sql_help.c:3382 sql_help.c:3473 sql_help.c:3562 +#: sql_help.c:3590 sql_help.c:3940 sql_help.c:4393 sql_help.c:4500 +#: sql_help.c:4507 sql_help.c:4513 sql_help.c:4524 sql_help.c:4527 +#: sql_help.c:4530 msgid "argmode" msgstr "режим_аргументу" #: sql_help.c:46 sql_help.c:49 sql_help.c:52 sql_help.c:351 sql_help.c:364 #: sql_help.c:368 sql_help.c:384 sql_help.c:387 sql_help.c:390 sql_help.c:531 #: sql_help.c:536 sql_help.c:541 sql_help.c:546 sql_help.c:551 sql_help.c:861 -#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1011 -#: sql_help.c:1016 sql_help.c:1021 sql_help.c:1026 sql_help.c:1031 -#: sql_help.c:1877 sql_help.c:1894 sql_help.c:1900 sql_help.c:1924 -#: sql_help.c:1927 sql_help.c:1930 sql_help.c:2079 sql_help.c:2098 -#: sql_help.c:2101 sql_help.c:2399 sql_help.c:2608 sql_help.c:3357 -#: sql_help.c:3360 sql_help.c:3363 sql_help.c:3454 sql_help.c:3543 -#: sql_help.c:3571 sql_help.c:4481 sql_help.c:4488 sql_help.c:4494 -#: sql_help.c:4505 sql_help.c:4508 sql_help.c:4511 +#: sql_help.c:866 sql_help.c:871 sql_help.c:876 sql_help.c:881 sql_help.c:1025 +#: sql_help.c:1030 sql_help.c:1035 sql_help.c:1040 sql_help.c:1045 +#: sql_help.c:1891 sql_help.c:1908 sql_help.c:1914 sql_help.c:1938 +#: sql_help.c:1941 sql_help.c:1944 sql_help.c:2093 sql_help.c:2112 +#: sql_help.c:2115 sql_help.c:2413 sql_help.c:2622 sql_help.c:3377 +#: sql_help.c:3380 sql_help.c:3383 sql_help.c:3474 sql_help.c:3563 +#: sql_help.c:3591 sql_help.c:4501 sql_help.c:4508 sql_help.c:4514 +#: sql_help.c:4525 sql_help.c:4528 sql_help.c:4531 msgid "argname" msgstr "ім'я_аргументу" #: sql_help.c:47 sql_help.c:50 sql_help.c:53 sql_help.c:352 sql_help.c:365 #: sql_help.c:369 sql_help.c:385 sql_help.c:388 sql_help.c:391 sql_help.c:532 #: sql_help.c:537 sql_help.c:542 sql_help.c:547 sql_help.c:552 sql_help.c:862 -#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1012 -#: sql_help.c:1017 sql_help.c:1022 sql_help.c:1027 sql_help.c:1032 -#: sql_help.c:1878 sql_help.c:1895 sql_help.c:1901 sql_help.c:1925 -#: sql_help.c:1928 sql_help.c:1931 sql_help.c:2400 sql_help.c:2609 -#: sql_help.c:3358 sql_help.c:3361 sql_help.c:3364 sql_help.c:3455 -#: sql_help.c:3544 sql_help.c:3572 sql_help.c:4482 sql_help.c:4489 -#: sql_help.c:4495 sql_help.c:4506 sql_help.c:4509 sql_help.c:4512 +#: sql_help.c:867 sql_help.c:872 sql_help.c:877 sql_help.c:882 sql_help.c:1026 +#: sql_help.c:1031 sql_help.c:1036 sql_help.c:1041 sql_help.c:1046 +#: sql_help.c:1892 sql_help.c:1909 sql_help.c:1915 sql_help.c:1939 +#: sql_help.c:1942 sql_help.c:1945 sql_help.c:2414 sql_help.c:2623 +#: sql_help.c:3378 sql_help.c:3381 sql_help.c:3384 sql_help.c:3475 +#: sql_help.c:3564 sql_help.c:3592 sql_help.c:4502 sql_help.c:4509 +#: sql_help.c:4515 sql_help.c:4526 sql_help.c:4529 sql_help.c:4532 msgid "argtype" msgstr "тип_аргументу" -#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:959 -#: sql_help.c:1110 sql_help.c:1517 sql_help.c:1646 sql_help.c:1678 -#: sql_help.c:1730 sql_help.c:1793 sql_help.c:1979 sql_help.c:1986 -#: sql_help.c:2289 sql_help.c:2339 sql_help.c:2346 sql_help.c:2355 -#: sql_help.c:2444 sql_help.c:2671 sql_help.c:2764 sql_help.c:3055 -#: sql_help.c:3240 sql_help.c:3262 sql_help.c:3402 sql_help.c:3757 -#: sql_help.c:3964 sql_help.c:4202 sql_help.c:4975 +#: sql_help.c:114 sql_help.c:407 sql_help.c:484 sql_help.c:496 sql_help.c:973 +#: sql_help.c:1124 sql_help.c:1531 sql_help.c:1660 sql_help.c:1692 +#: sql_help.c:1744 sql_help.c:1807 sql_help.c:1993 sql_help.c:2000 +#: sql_help.c:2303 sql_help.c:2353 sql_help.c:2360 sql_help.c:2369 +#: sql_help.c:2458 sql_help.c:2691 sql_help.c:2784 sql_help.c:3075 +#: sql_help.c:3260 sql_help.c:3282 sql_help.c:3422 sql_help.c:3777 +#: sql_help.c:3984 sql_help.c:4222 sql_help.c:4995 msgid "option" msgstr "параметр" -#: sql_help.c:115 sql_help.c:960 sql_help.c:1647 sql_help.c:2445 -#: sql_help.c:2672 sql_help.c:3241 sql_help.c:3403 +#: sql_help.c:115 sql_help.c:974 sql_help.c:1661 sql_help.c:2459 +#: sql_help.c:2692 sql_help.c:3261 sql_help.c:3423 msgid "where option can be:" msgstr "де параметр може бути:" -#: sql_help.c:116 sql_help.c:2221 +#: sql_help.c:116 sql_help.c:2235 msgid "allowconn" msgstr "дозвол_підкл" -#: sql_help.c:117 sql_help.c:961 sql_help.c:1648 sql_help.c:2222 -#: sql_help.c:2446 sql_help.c:2673 sql_help.c:3242 +#: sql_help.c:117 sql_help.c:975 sql_help.c:1662 sql_help.c:2236 +#: sql_help.c:2460 sql_help.c:2693 sql_help.c:3262 msgid "connlimit" msgstr "ліміт_підключень" -#: sql_help.c:118 sql_help.c:2223 +#: sql_help.c:118 sql_help.c:2237 msgid "istemplate" msgstr "чи_шаблон" -#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1331 -#: sql_help.c:1383 sql_help.c:4206 +#: sql_help.c:124 sql_help.c:621 sql_help.c:689 sql_help.c:703 sql_help.c:1345 +#: sql_help.c:1397 sql_help.c:4226 msgid "new_tablespace" msgstr "новий_табл_простір" #: sql_help.c:127 sql_help.c:130 sql_help.c:132 sql_help.c:558 sql_help.c:560 -#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:968 -#: sql_help.c:972 sql_help.c:975 sql_help.c:1037 sql_help.c:1039 -#: sql_help.c:1040 sql_help.c:1190 sql_help.c:1192 sql_help.c:1655 -#: sql_help.c:1659 sql_help.c:1662 sql_help.c:2410 sql_help.c:2613 -#: sql_help.c:3932 sql_help.c:4224 sql_help.c:4385 sql_help.c:4694 +#: sql_help.c:561 sql_help.c:885 sql_help.c:887 sql_help.c:888 sql_help.c:982 +#: sql_help.c:986 sql_help.c:989 sql_help.c:1051 sql_help.c:1053 +#: sql_help.c:1054 sql_help.c:1204 sql_help.c:1206 sql_help.c:1669 +#: sql_help.c:1673 sql_help.c:1676 sql_help.c:2424 sql_help.c:2627 +#: sql_help.c:3952 sql_help.c:4244 sql_help.c:4405 sql_help.c:4714 msgid "configuration_parameter" msgstr "параметр_конфігурації" #: sql_help.c:128 sql_help.c:408 sql_help.c:479 sql_help.c:485 sql_help.c:497 #: sql_help.c:559 sql_help.c:613 sql_help.c:695 sql_help.c:705 sql_help.c:886 -#: sql_help.c:914 sql_help.c:969 sql_help.c:1038 sql_help.c:1111 -#: sql_help.c:1156 sql_help.c:1160 sql_help.c:1164 sql_help.c:1167 -#: sql_help.c:1172 sql_help.c:1175 sql_help.c:1191 sql_help.c:1362 -#: sql_help.c:1385 sql_help.c:1433 sql_help.c:1441 sql_help.c:1461 -#: sql_help.c:1518 sql_help.c:1602 sql_help.c:1656 sql_help.c:1679 -#: sql_help.c:2290 sql_help.c:2340 sql_help.c:2347 sql_help.c:2356 -#: sql_help.c:2411 sql_help.c:2412 sql_help.c:2476 sql_help.c:2479 -#: sql_help.c:2513 sql_help.c:2614 sql_help.c:2615 sql_help.c:2638 -#: sql_help.c:2765 sql_help.c:2804 sql_help.c:2914 sql_help.c:2927 -#: sql_help.c:2941 sql_help.c:2982 sql_help.c:2990 sql_help.c:3012 -#: sql_help.c:3029 sql_help.c:3056 sql_help.c:3263 sql_help.c:3965 -#: sql_help.c:4695 sql_help.c:4696 sql_help.c:4697 sql_help.c:4698 +#: sql_help.c:923 sql_help.c:983 sql_help.c:1052 sql_help.c:1125 +#: sql_help.c:1170 sql_help.c:1174 sql_help.c:1178 sql_help.c:1181 +#: sql_help.c:1186 sql_help.c:1189 sql_help.c:1205 sql_help.c:1376 +#: sql_help.c:1399 sql_help.c:1447 sql_help.c:1455 sql_help.c:1475 +#: sql_help.c:1532 sql_help.c:1616 sql_help.c:1670 sql_help.c:1693 +#: sql_help.c:2304 sql_help.c:2354 sql_help.c:2361 sql_help.c:2370 +#: sql_help.c:2425 sql_help.c:2426 sql_help.c:2490 sql_help.c:2493 +#: sql_help.c:2527 sql_help.c:2628 sql_help.c:2629 sql_help.c:2656 +#: sql_help.c:2785 sql_help.c:2824 sql_help.c:2934 sql_help.c:2947 +#: sql_help.c:2961 sql_help.c:3002 sql_help.c:3010 sql_help.c:3032 +#: sql_help.c:3049 sql_help.c:3076 sql_help.c:3283 sql_help.c:3985 +#: sql_help.c:4715 sql_help.c:4716 sql_help.c:4717 sql_help.c:4718 msgid "value" msgstr "значення" @@ -3928,10 +3963,10 @@ msgstr "значення" msgid "target_role" msgstr "цільова_роль" -#: sql_help.c:203 sql_help.c:923 sql_help.c:2274 sql_help.c:2643 -#: sql_help.c:2720 sql_help.c:2725 sql_help.c:3895 sql_help.c:3904 -#: sql_help.c:3923 sql_help.c:3935 sql_help.c:4348 sql_help.c:4357 -#: sql_help.c:4376 sql_help.c:4388 +#: sql_help.c:203 sql_help.c:930 sql_help.c:933 sql_help.c:2288 sql_help.c:2659 +#: sql_help.c:2740 sql_help.c:2745 sql_help.c:3915 sql_help.c:3924 +#: sql_help.c:3943 sql_help.c:3955 sql_help.c:4368 sql_help.c:4377 +#: sql_help.c:4396 sql_help.c:4408 msgid "schema_name" msgstr "ім'я_схеми" @@ -3945,32 +3980,32 @@ msgstr "де скорочено_GRANT_або_REVOKE є одним з:" #: sql_help.c:206 sql_help.c:207 sql_help.c:208 sql_help.c:209 sql_help.c:210 #: sql_help.c:211 sql_help.c:212 sql_help.c:213 sql_help.c:214 sql_help.c:215 -#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:979 -#: sql_help.c:1330 sql_help.c:1666 sql_help.c:2449 sql_help.c:2450 -#: sql_help.c:2451 sql_help.c:2452 sql_help.c:2453 sql_help.c:2587 -#: sql_help.c:2676 sql_help.c:2677 sql_help.c:2678 sql_help.c:2679 -#: sql_help.c:2680 sql_help.c:3245 sql_help.c:3246 sql_help.c:3247 -#: sql_help.c:3248 sql_help.c:3249 sql_help.c:3944 sql_help.c:3948 -#: sql_help.c:4397 sql_help.c:4401 sql_help.c:4716 +#: sql_help.c:584 sql_help.c:620 sql_help.c:688 sql_help.c:832 sql_help.c:993 +#: sql_help.c:1344 sql_help.c:1680 sql_help.c:2463 sql_help.c:2464 +#: sql_help.c:2465 sql_help.c:2466 sql_help.c:2467 sql_help.c:2601 +#: sql_help.c:2696 sql_help.c:2697 sql_help.c:2698 sql_help.c:2699 +#: sql_help.c:2700 sql_help.c:3265 sql_help.c:3266 sql_help.c:3267 +#: sql_help.c:3268 sql_help.c:3269 sql_help.c:3964 sql_help.c:3968 +#: sql_help.c:4417 sql_help.c:4421 sql_help.c:4736 msgid "role_name" msgstr "ім'я_ролі" -#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:922 sql_help.c:1346 -#: sql_help.c:1348 sql_help.c:1400 sql_help.c:1412 sql_help.c:1437 -#: sql_help.c:1696 sql_help.c:2243 sql_help.c:2247 sql_help.c:2359 -#: sql_help.c:2364 sql_help.c:2472 sql_help.c:2642 sql_help.c:2781 -#: sql_help.c:2786 sql_help.c:2788 sql_help.c:2909 sql_help.c:2922 -#: sql_help.c:2936 sql_help.c:2945 sql_help.c:2957 sql_help.c:2986 -#: sql_help.c:3996 sql_help.c:4011 sql_help.c:4013 sql_help.c:4102 -#: sql_help.c:4105 sql_help.c:4107 sql_help.c:4567 sql_help.c:4568 -#: sql_help.c:4577 sql_help.c:4624 sql_help.c:4625 sql_help.c:4626 -#: sql_help.c:4627 sql_help.c:4628 sql_help.c:4629 sql_help.c:4669 -#: sql_help.c:4670 sql_help.c:4675 sql_help.c:4680 sql_help.c:4824 -#: sql_help.c:4825 sql_help.c:4834 sql_help.c:4881 sql_help.c:4882 -#: sql_help.c:4883 sql_help.c:4884 sql_help.c:4885 sql_help.c:4886 -#: sql_help.c:4940 sql_help.c:4942 sql_help.c:5002 sql_help.c:5062 -#: sql_help.c:5063 sql_help.c:5072 sql_help.c:5119 sql_help.c:5120 -#: sql_help.c:5121 sql_help.c:5122 sql_help.c:5123 sql_help.c:5124 +#: sql_help.c:246 sql_help.c:265 sql_help.c:472 sql_help.c:937 sql_help.c:1360 +#: sql_help.c:1362 sql_help.c:1414 sql_help.c:1426 sql_help.c:1451 +#: sql_help.c:1710 sql_help.c:2257 sql_help.c:2261 sql_help.c:2373 +#: sql_help.c:2378 sql_help.c:2486 sql_help.c:2663 sql_help.c:2801 +#: sql_help.c:2806 sql_help.c:2808 sql_help.c:2929 sql_help.c:2942 +#: sql_help.c:2956 sql_help.c:2965 sql_help.c:2977 sql_help.c:3006 +#: sql_help.c:4016 sql_help.c:4031 sql_help.c:4033 sql_help.c:4122 +#: sql_help.c:4125 sql_help.c:4127 sql_help.c:4587 sql_help.c:4588 +#: sql_help.c:4597 sql_help.c:4644 sql_help.c:4645 sql_help.c:4646 +#: sql_help.c:4647 sql_help.c:4648 sql_help.c:4649 sql_help.c:4689 +#: sql_help.c:4690 sql_help.c:4695 sql_help.c:4700 sql_help.c:4844 +#: sql_help.c:4845 sql_help.c:4854 sql_help.c:4901 sql_help.c:4902 +#: sql_help.c:4903 sql_help.c:4904 sql_help.c:4905 sql_help.c:4906 +#: sql_help.c:4960 sql_help.c:4962 sql_help.c:5022 sql_help.c:5082 +#: sql_help.c:5083 sql_help.c:5092 sql_help.c:5139 sql_help.c:5140 +#: sql_help.c:5141 sql_help.c:5142 sql_help.c:5143 sql_help.c:5144 msgid "expression" msgstr "вираз" @@ -3979,14 +4014,14 @@ msgid "domain_constraint" msgstr "обмеження_домену" #: sql_help.c:251 sql_help.c:253 sql_help.c:256 sql_help.c:264 sql_help.c:487 -#: sql_help.c:488 sql_help.c:1323 sql_help.c:1370 sql_help.c:1371 -#: sql_help.c:1372 sql_help.c:1399 sql_help.c:1411 sql_help.c:1428 -#: sql_help.c:1864 sql_help.c:1866 sql_help.c:2246 sql_help.c:2358 -#: sql_help.c:2363 sql_help.c:2944 sql_help.c:2956 sql_help.c:4008 +#: sql_help.c:488 sql_help.c:1337 sql_help.c:1384 sql_help.c:1385 +#: sql_help.c:1386 sql_help.c:1413 sql_help.c:1425 sql_help.c:1442 +#: sql_help.c:1878 sql_help.c:1880 sql_help.c:2260 sql_help.c:2372 +#: sql_help.c:2377 sql_help.c:2964 sql_help.c:2976 sql_help.c:4028 msgid "constraint_name" msgstr "ім'я_обмеження" -#: sql_help.c:254 sql_help.c:1324 +#: sql_help.c:254 sql_help.c:1338 msgid "new_constraint_name" msgstr "ім'я_нового_обмеження" @@ -3994,7 +4029,7 @@ msgstr "ім'я_нового_обмеження" msgid "where domain_constraint is:" msgstr "де обмеження_домену:" -#: sql_help.c:330 sql_help.c:1109 +#: sql_help.c:330 sql_help.c:1123 msgid "new_version" msgstr "нова_версія" @@ -4010,82 +4045,82 @@ msgstr "де елемент_об'єкт є:" #: sql_help.c:347 sql_help.c:348 sql_help.c:353 sql_help.c:357 sql_help.c:359 #: sql_help.c:361 sql_help.c:370 sql_help.c:371 sql_help.c:372 sql_help.c:373 #: sql_help.c:374 sql_help.c:375 sql_help.c:376 sql_help.c:377 sql_help.c:380 -#: sql_help.c:381 sql_help.c:1856 sql_help.c:1861 sql_help.c:1868 -#: sql_help.c:1869 sql_help.c:1870 sql_help.c:1871 sql_help.c:1872 -#: sql_help.c:1873 sql_help.c:1874 sql_help.c:1879 sql_help.c:1881 -#: sql_help.c:1885 sql_help.c:1887 sql_help.c:1891 sql_help.c:1896 -#: sql_help.c:1897 sql_help.c:1904 sql_help.c:1905 sql_help.c:1906 -#: sql_help.c:1907 sql_help.c:1908 sql_help.c:1909 sql_help.c:1910 -#: sql_help.c:1911 sql_help.c:1912 sql_help.c:1913 sql_help.c:1914 -#: sql_help.c:1919 sql_help.c:1920 sql_help.c:4470 sql_help.c:4475 -#: sql_help.c:4476 sql_help.c:4477 sql_help.c:4478 sql_help.c:4484 -#: sql_help.c:4485 sql_help.c:4490 sql_help.c:4491 sql_help.c:4496 -#: sql_help.c:4497 sql_help.c:4498 sql_help.c:4499 sql_help.c:4500 -#: sql_help.c:4501 +#: sql_help.c:381 sql_help.c:1870 sql_help.c:1875 sql_help.c:1882 +#: sql_help.c:1883 sql_help.c:1884 sql_help.c:1885 sql_help.c:1886 +#: sql_help.c:1887 sql_help.c:1888 sql_help.c:1893 sql_help.c:1895 +#: sql_help.c:1899 sql_help.c:1901 sql_help.c:1905 sql_help.c:1910 +#: sql_help.c:1911 sql_help.c:1918 sql_help.c:1919 sql_help.c:1920 +#: sql_help.c:1921 sql_help.c:1922 sql_help.c:1923 sql_help.c:1924 +#: sql_help.c:1925 sql_help.c:1926 sql_help.c:1927 sql_help.c:1928 +#: sql_help.c:1933 sql_help.c:1934 sql_help.c:4490 sql_help.c:4495 +#: sql_help.c:4496 sql_help.c:4497 sql_help.c:4498 sql_help.c:4504 +#: sql_help.c:4505 sql_help.c:4510 sql_help.c:4511 sql_help.c:4516 +#: sql_help.c:4517 sql_help.c:4518 sql_help.c:4519 sql_help.c:4520 +#: sql_help.c:4521 msgid "object_name" msgstr "ім'я_об'єкту" -#: sql_help.c:339 sql_help.c:1857 sql_help.c:4473 +#: sql_help.c:339 sql_help.c:1871 sql_help.c:4493 msgid "aggregate_name" msgstr "ім'я_агр_функції" -#: sql_help.c:341 sql_help.c:1859 sql_help.c:2143 sql_help.c:2147 -#: sql_help.c:2149 sql_help.c:3372 +#: sql_help.c:341 sql_help.c:1873 sql_help.c:2157 sql_help.c:2161 +#: sql_help.c:2163 sql_help.c:3392 msgid "source_type" msgstr "початковий_тип" -#: sql_help.c:342 sql_help.c:1860 sql_help.c:2144 sql_help.c:2148 -#: sql_help.c:2150 sql_help.c:3373 +#: sql_help.c:342 sql_help.c:1874 sql_help.c:2158 sql_help.c:2162 +#: sql_help.c:2164 sql_help.c:3393 msgid "target_type" msgstr "тип_цілі" -#: sql_help.c:349 sql_help.c:796 sql_help.c:1875 sql_help.c:2145 -#: sql_help.c:2186 sql_help.c:2262 sql_help.c:2530 sql_help.c:2561 -#: sql_help.c:3132 sql_help.c:4372 sql_help.c:4479 sql_help.c:4596 -#: sql_help.c:4600 sql_help.c:4604 sql_help.c:4607 sql_help.c:4853 -#: sql_help.c:4857 sql_help.c:4861 sql_help.c:4864 sql_help.c:5091 -#: sql_help.c:5095 sql_help.c:5099 sql_help.c:5102 +#: sql_help.c:349 sql_help.c:796 sql_help.c:1889 sql_help.c:2159 +#: sql_help.c:2200 sql_help.c:2276 sql_help.c:2544 sql_help.c:2575 +#: sql_help.c:3152 sql_help.c:4392 sql_help.c:4499 sql_help.c:4616 +#: sql_help.c:4620 sql_help.c:4624 sql_help.c:4627 sql_help.c:4873 +#: sql_help.c:4877 sql_help.c:4881 sql_help.c:4884 sql_help.c:5111 +#: sql_help.c:5115 sql_help.c:5119 sql_help.c:5122 msgid "function_name" msgstr "ім'я_функції" -#: sql_help.c:354 sql_help.c:789 sql_help.c:1882 sql_help.c:2554 +#: sql_help.c:354 sql_help.c:789 sql_help.c:1896 sql_help.c:2568 msgid "operator_name" msgstr "ім'я_оператора" -#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1883 -#: sql_help.c:2531 sql_help.c:3496 +#: sql_help.c:355 sql_help.c:725 sql_help.c:729 sql_help.c:733 sql_help.c:1897 +#: sql_help.c:2545 sql_help.c:3516 msgid "left_type" msgstr "тип_ліворуч" -#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1884 -#: sql_help.c:2532 sql_help.c:3497 +#: sql_help.c:356 sql_help.c:726 sql_help.c:730 sql_help.c:734 sql_help.c:1898 +#: sql_help.c:2546 sql_help.c:3517 msgid "right_type" msgstr "тип_праворуч" #: sql_help.c:358 sql_help.c:360 sql_help.c:752 sql_help.c:755 sql_help.c:758 #: sql_help.c:787 sql_help.c:799 sql_help.c:807 sql_help.c:810 sql_help.c:813 -#: sql_help.c:1417 sql_help.c:1886 sql_help.c:1888 sql_help.c:2551 -#: sql_help.c:2572 sql_help.c:2962 sql_help.c:3506 sql_help.c:3515 +#: sql_help.c:1431 sql_help.c:1900 sql_help.c:1902 sql_help.c:2565 +#: sql_help.c:2586 sql_help.c:2982 sql_help.c:3526 sql_help.c:3535 msgid "index_method" msgstr "метод_індексу" -#: sql_help.c:362 sql_help.c:1892 sql_help.c:4486 +#: sql_help.c:362 sql_help.c:1906 sql_help.c:4506 msgid "procedure_name" msgstr "назва_процедури" -#: sql_help.c:366 sql_help.c:1898 sql_help.c:3919 sql_help.c:4492 +#: sql_help.c:366 sql_help.c:1912 sql_help.c:3939 sql_help.c:4512 msgid "routine_name" msgstr "ім'я_підпрограми" -#: sql_help.c:378 sql_help.c:1389 sql_help.c:1915 sql_help.c:2406 -#: sql_help.c:2612 sql_help.c:2917 sql_help.c:3099 sql_help.c:3677 -#: sql_help.c:3941 sql_help.c:4394 +#: sql_help.c:378 sql_help.c:1403 sql_help.c:1929 sql_help.c:2420 +#: sql_help.c:2626 sql_help.c:2937 sql_help.c:3119 sql_help.c:3697 +#: sql_help.c:3961 sql_help.c:4414 msgid "type_name" msgstr "назва_типу" -#: sql_help.c:379 sql_help.c:1916 sql_help.c:2405 sql_help.c:2611 -#: sql_help.c:3100 sql_help.c:3330 sql_help.c:3678 sql_help.c:3926 -#: sql_help.c:4379 +#: sql_help.c:379 sql_help.c:1930 sql_help.c:2419 sql_help.c:2625 +#: sql_help.c:3120 sql_help.c:3350 sql_help.c:3698 sql_help.c:3946 +#: sql_help.c:4399 msgid "lang_name" msgstr "назва_мови" @@ -4093,147 +4128,147 @@ msgstr "назва_мови" msgid "and aggregate_signature is:" msgstr "і сигнатура_агр_функції:" -#: sql_help.c:405 sql_help.c:2010 sql_help.c:2287 +#: sql_help.c:405 sql_help.c:2024 sql_help.c:2301 msgid "handler_function" msgstr "функція_обробник" -#: sql_help.c:406 sql_help.c:2288 +#: sql_help.c:406 sql_help.c:2302 msgid "validator_function" msgstr "функція_перевірки" -#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1013 -#: sql_help.c:1318 sql_help.c:1593 +#: sql_help.c:454 sql_help.c:533 sql_help.c:677 sql_help.c:863 sql_help.c:1027 +#: sql_help.c:1332 sql_help.c:1607 msgid "action" msgstr "дія" #: sql_help.c:456 sql_help.c:463 sql_help.c:467 sql_help.c:468 sql_help.c:471 #: sql_help.c:473 sql_help.c:474 sql_help.c:475 sql_help.c:477 sql_help.c:480 #: sql_help.c:482 sql_help.c:483 sql_help.c:681 sql_help.c:691 sql_help.c:693 -#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:921 sql_help.c:1090 -#: sql_help.c:1320 sql_help.c:1338 sql_help.c:1342 sql_help.c:1343 -#: sql_help.c:1347 sql_help.c:1349 sql_help.c:1350 sql_help.c:1351 -#: sql_help.c:1352 sql_help.c:1354 sql_help.c:1357 sql_help.c:1358 -#: sql_help.c:1360 sql_help.c:1363 sql_help.c:1365 sql_help.c:1366 -#: sql_help.c:1413 sql_help.c:1415 sql_help.c:1422 sql_help.c:1431 -#: sql_help.c:1436 sql_help.c:1443 sql_help.c:1444 sql_help.c:1695 -#: sql_help.c:1698 sql_help.c:1702 sql_help.c:1738 sql_help.c:1863 -#: sql_help.c:1976 sql_help.c:1982 sql_help.c:1995 sql_help.c:1996 -#: sql_help.c:1997 sql_help.c:2337 sql_help.c:2350 sql_help.c:2403 -#: sql_help.c:2471 sql_help.c:2477 sql_help.c:2510 sql_help.c:2641 -#: sql_help.c:2750 sql_help.c:2785 sql_help.c:2787 sql_help.c:2899 -#: sql_help.c:2908 sql_help.c:2918 sql_help.c:2921 sql_help.c:2931 -#: sql_help.c:2935 sql_help.c:2958 sql_help.c:2960 sql_help.c:2967 -#: sql_help.c:2980 sql_help.c:2985 sql_help.c:2992 sql_help.c:2993 -#: sql_help.c:3009 sql_help.c:3135 sql_help.c:3275 sql_help.c:3898 -#: sql_help.c:3899 sql_help.c:3995 sql_help.c:4010 sql_help.c:4012 -#: sql_help.c:4014 sql_help.c:4101 sql_help.c:4104 sql_help.c:4106 -#: sql_help.c:4108 sql_help.c:4351 sql_help.c:4352 sql_help.c:4472 -#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4641 sql_help.c:4890 -#: sql_help.c:4896 sql_help.c:4898 sql_help.c:4939 sql_help.c:4941 -#: sql_help.c:4943 sql_help.c:4990 sql_help.c:5128 sql_help.c:5134 -#: sql_help.c:5136 +#: sql_help.c:696 sql_help.c:698 sql_help.c:699 sql_help.c:936 sql_help.c:1104 +#: sql_help.c:1334 sql_help.c:1352 sql_help.c:1356 sql_help.c:1357 +#: sql_help.c:1361 sql_help.c:1363 sql_help.c:1364 sql_help.c:1365 +#: sql_help.c:1366 sql_help.c:1368 sql_help.c:1371 sql_help.c:1372 +#: sql_help.c:1374 sql_help.c:1377 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1427 sql_help.c:1429 sql_help.c:1436 sql_help.c:1445 +#: sql_help.c:1450 sql_help.c:1457 sql_help.c:1458 sql_help.c:1709 +#: sql_help.c:1712 sql_help.c:1716 sql_help.c:1752 sql_help.c:1877 +#: sql_help.c:1990 sql_help.c:1996 sql_help.c:2009 sql_help.c:2010 +#: sql_help.c:2011 sql_help.c:2351 sql_help.c:2364 sql_help.c:2417 +#: sql_help.c:2485 sql_help.c:2491 sql_help.c:2524 sql_help.c:2662 +#: sql_help.c:2770 sql_help.c:2805 sql_help.c:2807 sql_help.c:2919 +#: sql_help.c:2928 sql_help.c:2938 sql_help.c:2941 sql_help.c:2951 +#: sql_help.c:2955 sql_help.c:2978 sql_help.c:2980 sql_help.c:2987 +#: sql_help.c:3000 sql_help.c:3005 sql_help.c:3012 sql_help.c:3013 +#: sql_help.c:3029 sql_help.c:3155 sql_help.c:3295 sql_help.c:3918 +#: sql_help.c:3919 sql_help.c:4015 sql_help.c:4030 sql_help.c:4032 +#: sql_help.c:4034 sql_help.c:4121 sql_help.c:4124 sql_help.c:4126 +#: sql_help.c:4128 sql_help.c:4371 sql_help.c:4372 sql_help.c:4492 +#: sql_help.c:4653 sql_help.c:4659 sql_help.c:4661 sql_help.c:4910 +#: sql_help.c:4916 sql_help.c:4918 sql_help.c:4959 sql_help.c:4961 +#: sql_help.c:4963 sql_help.c:5010 sql_help.c:5148 sql_help.c:5154 +#: sql_help.c:5156 msgid "column_name" msgstr "назва_стовпця" -#: sql_help.c:457 sql_help.c:682 sql_help.c:1321 sql_help.c:1703 +#: sql_help.c:457 sql_help.c:682 sql_help.c:1335 sql_help.c:1717 msgid "new_column_name" msgstr "нова_назва_стовпця" -#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1034 -#: sql_help.c:1337 sql_help.c:1603 +#: sql_help.c:462 sql_help.c:554 sql_help.c:690 sql_help.c:884 sql_help.c:1048 +#: sql_help.c:1351 sql_help.c:1617 msgid "where action is one of:" msgstr "де допустима дія:" -#: sql_help.c:464 sql_help.c:469 sql_help.c:1082 sql_help.c:1339 -#: sql_help.c:1344 sql_help.c:1605 sql_help.c:1609 sql_help.c:2241 -#: sql_help.c:2338 sql_help.c:2550 sql_help.c:2743 sql_help.c:2900 -#: sql_help.c:3182 sql_help.c:4160 +#: sql_help.c:464 sql_help.c:469 sql_help.c:1096 sql_help.c:1353 +#: sql_help.c:1358 sql_help.c:1619 sql_help.c:1623 sql_help.c:2255 +#: sql_help.c:2352 sql_help.c:2564 sql_help.c:2763 sql_help.c:2920 +#: sql_help.c:3202 sql_help.c:4180 msgid "data_type" msgstr "тип_даних" -#: sql_help.c:465 sql_help.c:470 sql_help.c:1340 sql_help.c:1345 -#: sql_help.c:1438 sql_help.c:1606 sql_help.c:1610 sql_help.c:2242 -#: sql_help.c:2341 sql_help.c:2473 sql_help.c:2902 sql_help.c:2910 -#: sql_help.c:2923 sql_help.c:2937 sql_help.c:2987 sql_help.c:3183 -#: sql_help.c:3189 sql_help.c:4005 +#: sql_help.c:465 sql_help.c:470 sql_help.c:1354 sql_help.c:1359 +#: sql_help.c:1452 sql_help.c:1620 sql_help.c:1624 sql_help.c:2256 +#: sql_help.c:2355 sql_help.c:2487 sql_help.c:2922 sql_help.c:2930 +#: sql_help.c:2943 sql_help.c:2957 sql_help.c:3007 sql_help.c:3203 +#: sql_help.c:3209 sql_help.c:4025 msgid "collation" msgstr "правила_сортування" -#: sql_help.c:466 sql_help.c:1341 sql_help.c:2342 sql_help.c:2351 -#: sql_help.c:2903 sql_help.c:2919 sql_help.c:2932 +#: sql_help.c:466 sql_help.c:1355 sql_help.c:2356 sql_help.c:2365 +#: sql_help.c:2923 sql_help.c:2939 sql_help.c:2952 msgid "column_constraint" msgstr "обмеження_стовпця" -#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1359 sql_help.c:4987 +#: sql_help.c:476 sql_help.c:618 sql_help.c:692 sql_help.c:1373 sql_help.c:5007 msgid "integer" msgstr "ціле" -#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1361 -#: sql_help.c:1364 +#: sql_help.c:478 sql_help.c:481 sql_help.c:694 sql_help.c:697 sql_help.c:1375 +#: sql_help.c:1378 msgid "attribute_option" msgstr "параметр_атрибуту" -#: sql_help.c:486 sql_help.c:1368 sql_help.c:2343 sql_help.c:2352 -#: sql_help.c:2904 sql_help.c:2920 sql_help.c:2933 +#: sql_help.c:486 sql_help.c:1382 sql_help.c:2357 sql_help.c:2366 +#: sql_help.c:2924 sql_help.c:2940 sql_help.c:2953 msgid "table_constraint" msgstr "обмеження_таблиці" -#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1373 -#: sql_help.c:1374 sql_help.c:1375 sql_help.c:1376 sql_help.c:1917 +#: sql_help.c:489 sql_help.c:490 sql_help.c:491 sql_help.c:492 sql_help.c:1387 +#: sql_help.c:1388 sql_help.c:1389 sql_help.c:1390 sql_help.c:1931 msgid "trigger_name" msgstr "ім'я_тригеру" -#: sql_help.c:493 sql_help.c:494 sql_help.c:1387 sql_help.c:1388 -#: sql_help.c:2344 sql_help.c:2349 sql_help.c:2907 sql_help.c:2930 +#: sql_help.c:493 sql_help.c:494 sql_help.c:1401 sql_help.c:1402 +#: sql_help.c:2358 sql_help.c:2363 sql_help.c:2927 sql_help.c:2950 msgid "parent_table" msgstr "батьківська_таблиця" -#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1033 -#: sql_help.c:1562 sql_help.c:2273 +#: sql_help.c:553 sql_help.c:610 sql_help.c:679 sql_help.c:883 sql_help.c:1047 +#: sql_help.c:1576 sql_help.c:2287 msgid "extension_name" msgstr "ім'я_розширення" -#: sql_help.c:555 sql_help.c:1035 sql_help.c:2407 +#: sql_help.c:555 sql_help.c:1049 sql_help.c:2421 msgid "execution_cost" msgstr "вартість_виконання" -#: sql_help.c:556 sql_help.c:1036 sql_help.c:2408 +#: sql_help.c:556 sql_help.c:1050 sql_help.c:2422 msgid "result_rows" msgstr "рядки_результату" -#: sql_help.c:557 sql_help.c:2409 +#: sql_help.c:557 sql_help.c:2423 msgid "support_function" msgstr "функція_підтримки" -#: sql_help.c:579 sql_help.c:581 sql_help.c:958 sql_help.c:966 sql_help.c:970 -#: sql_help.c:973 sql_help.c:976 sql_help.c:1645 sql_help.c:1653 -#: sql_help.c:1657 sql_help.c:1660 sql_help.c:1663 sql_help.c:2721 -#: sql_help.c:2723 sql_help.c:2726 sql_help.c:2727 sql_help.c:3896 -#: sql_help.c:3897 sql_help.c:3901 sql_help.c:3902 sql_help.c:3905 -#: sql_help.c:3906 sql_help.c:3908 sql_help.c:3909 sql_help.c:3911 -#: sql_help.c:3912 sql_help.c:3914 sql_help.c:3915 sql_help.c:3917 -#: sql_help.c:3918 sql_help.c:3924 sql_help.c:3925 sql_help.c:3927 -#: sql_help.c:3928 sql_help.c:3930 sql_help.c:3931 sql_help.c:3933 -#: sql_help.c:3934 sql_help.c:3936 sql_help.c:3937 sql_help.c:3939 -#: sql_help.c:3940 sql_help.c:3942 sql_help.c:3943 sql_help.c:3945 -#: sql_help.c:3946 sql_help.c:4349 sql_help.c:4350 sql_help.c:4354 -#: sql_help.c:4355 sql_help.c:4358 sql_help.c:4359 sql_help.c:4361 -#: sql_help.c:4362 sql_help.c:4364 sql_help.c:4365 sql_help.c:4367 -#: sql_help.c:4368 sql_help.c:4370 sql_help.c:4371 sql_help.c:4377 -#: sql_help.c:4378 sql_help.c:4380 sql_help.c:4381 sql_help.c:4383 -#: sql_help.c:4384 sql_help.c:4386 sql_help.c:4387 sql_help.c:4389 -#: sql_help.c:4390 sql_help.c:4392 sql_help.c:4393 sql_help.c:4395 -#: sql_help.c:4396 sql_help.c:4398 sql_help.c:4399 +#: sql_help.c:579 sql_help.c:581 sql_help.c:972 sql_help.c:980 sql_help.c:984 +#: sql_help.c:987 sql_help.c:990 sql_help.c:1659 sql_help.c:1667 +#: sql_help.c:1671 sql_help.c:1674 sql_help.c:1677 sql_help.c:2741 +#: sql_help.c:2743 sql_help.c:2746 sql_help.c:2747 sql_help.c:3916 +#: sql_help.c:3917 sql_help.c:3921 sql_help.c:3922 sql_help.c:3925 +#: sql_help.c:3926 sql_help.c:3928 sql_help.c:3929 sql_help.c:3931 +#: sql_help.c:3932 sql_help.c:3934 sql_help.c:3935 sql_help.c:3937 +#: sql_help.c:3938 sql_help.c:3944 sql_help.c:3945 sql_help.c:3947 +#: sql_help.c:3948 sql_help.c:3950 sql_help.c:3951 sql_help.c:3953 +#: sql_help.c:3954 sql_help.c:3956 sql_help.c:3957 sql_help.c:3959 +#: sql_help.c:3960 sql_help.c:3962 sql_help.c:3963 sql_help.c:3965 +#: sql_help.c:3966 sql_help.c:4369 sql_help.c:4370 sql_help.c:4374 +#: sql_help.c:4375 sql_help.c:4378 sql_help.c:4379 sql_help.c:4381 +#: sql_help.c:4382 sql_help.c:4384 sql_help.c:4385 sql_help.c:4387 +#: sql_help.c:4388 sql_help.c:4390 sql_help.c:4391 sql_help.c:4397 +#: sql_help.c:4398 sql_help.c:4400 sql_help.c:4401 sql_help.c:4403 +#: sql_help.c:4404 sql_help.c:4406 sql_help.c:4407 sql_help.c:4409 +#: sql_help.c:4410 sql_help.c:4412 sql_help.c:4413 sql_help.c:4415 +#: sql_help.c:4416 sql_help.c:4418 sql_help.c:4419 msgid "role_specification" msgstr "вказання_ролі" -#: sql_help.c:580 sql_help.c:582 sql_help.c:1676 sql_help.c:2210 -#: sql_help.c:2729 sql_help.c:3260 sql_help.c:3711 sql_help.c:4726 +#: sql_help.c:580 sql_help.c:582 sql_help.c:1690 sql_help.c:2224 +#: sql_help.c:2749 sql_help.c:3280 sql_help.c:3731 sql_help.c:4746 msgid "user_name" msgstr "ім'я_користувача" -#: sql_help.c:583 sql_help.c:978 sql_help.c:1665 sql_help.c:2728 -#: sql_help.c:3947 sql_help.c:4400 +#: sql_help.c:583 sql_help.c:992 sql_help.c:1679 sql_help.c:2748 +#: sql_help.c:3967 sql_help.c:4420 msgid "where role_specification can be:" msgstr "де вказання_ролі може бути:" @@ -4241,22 +4276,22 @@ msgstr "де вказання_ролі може бути:" msgid "group_name" msgstr "ім'я_групи" -#: sql_help.c:606 sql_help.c:1434 sql_help.c:2220 sql_help.c:2480 -#: sql_help.c:2514 sql_help.c:2915 sql_help.c:2928 sql_help.c:2942 -#: sql_help.c:2983 sql_help.c:3013 sql_help.c:3025 sql_help.c:3938 -#: sql_help.c:4391 +#: sql_help.c:606 sql_help.c:1448 sql_help.c:2234 sql_help.c:2494 +#: sql_help.c:2528 sql_help.c:2935 sql_help.c:2948 sql_help.c:2962 +#: sql_help.c:3003 sql_help.c:3033 sql_help.c:3045 sql_help.c:3958 +#: sql_help.c:4411 msgid "tablespace_name" msgstr "ім'я_табличного_простору" -#: sql_help.c:608 sql_help.c:701 sql_help.c:1381 sql_help.c:1391 -#: sql_help.c:1429 sql_help.c:1792 sql_help.c:1795 +#: sql_help.c:608 sql_help.c:701 sql_help.c:1395 sql_help.c:1405 +#: sql_help.c:1443 sql_help.c:1806 sql_help.c:1809 msgid "index_name" msgstr "назва_індексу" -#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1384 -#: sql_help.c:1386 sql_help.c:1432 sql_help.c:2478 sql_help.c:2512 -#: sql_help.c:2913 sql_help.c:2926 sql_help.c:2940 sql_help.c:2981 -#: sql_help.c:3011 +#: sql_help.c:612 sql_help.c:615 sql_help.c:704 sql_help.c:706 sql_help.c:1398 +#: sql_help.c:1400 sql_help.c:1446 sql_help.c:2492 sql_help.c:2526 +#: sql_help.c:2933 sql_help.c:2946 sql_help.c:2960 sql_help.c:3001 +#: sql_help.c:3031 msgid "storage_parameter" msgstr "параметр_зберігання" @@ -4264,1877 +4299,1886 @@ msgstr "параметр_зберігання" msgid "column_number" msgstr "номер_стовпця" -#: sql_help.c:641 sql_help.c:1880 sql_help.c:4483 +#: sql_help.c:641 sql_help.c:1894 sql_help.c:4503 msgid "large_object_oid" msgstr "oid_великого_об'єкта" -#: sql_help.c:700 sql_help.c:1367 sql_help.c:2901 +#: sql_help.c:700 sql_help.c:1381 sql_help.c:2921 msgid "compression_method" msgstr "compression_method" -#: sql_help.c:702 sql_help.c:1382 +#: sql_help.c:702 sql_help.c:1396 msgid "new_access_method" msgstr "новий_метод_доступа" -#: sql_help.c:735 sql_help.c:2535 +#: sql_help.c:735 sql_help.c:2549 msgid "res_proc" msgstr "res_процедура" -#: sql_help.c:736 sql_help.c:2536 +#: sql_help.c:736 sql_help.c:2550 msgid "join_proc" msgstr "процедура_приєднання" -#: sql_help.c:788 sql_help.c:800 sql_help.c:2553 +#: sql_help.c:788 sql_help.c:800 sql_help.c:2567 msgid "strategy_number" msgstr "номер_стратегії" #: sql_help.c:790 sql_help.c:791 sql_help.c:794 sql_help.c:795 sql_help.c:801 -#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2555 sql_help.c:2556 -#: sql_help.c:2559 sql_help.c:2560 +#: sql_help.c:802 sql_help.c:804 sql_help.c:805 sql_help.c:2569 sql_help.c:2570 +#: sql_help.c:2573 sql_help.c:2574 msgid "op_type" msgstr "тип_операції" -#: sql_help.c:792 sql_help.c:2557 +#: sql_help.c:792 sql_help.c:2571 msgid "sort_family_name" msgstr "ім'я_родини_сортування" -#: sql_help.c:793 sql_help.c:803 sql_help.c:2558 +#: sql_help.c:793 sql_help.c:803 sql_help.c:2572 msgid "support_number" msgstr "номер_підтримки" -#: sql_help.c:797 sql_help.c:2146 sql_help.c:2562 sql_help.c:3102 -#: sql_help.c:3104 +#: sql_help.c:797 sql_help.c:2160 sql_help.c:2576 sql_help.c:3122 +#: sql_help.c:3124 msgid "argument_type" msgstr "тип_аргументу" -#: sql_help.c:828 sql_help.c:831 sql_help.c:920 sql_help.c:1049 sql_help.c:1089 -#: sql_help.c:1558 sql_help.c:1561 sql_help.c:1737 sql_help.c:1791 -#: sql_help.c:1794 sql_help.c:1865 sql_help.c:1890 sql_help.c:1903 -#: sql_help.c:1918 sql_help.c:1975 sql_help.c:1981 sql_help.c:2336 -#: sql_help.c:2348 sql_help.c:2469 sql_help.c:2509 sql_help.c:2586 -#: sql_help.c:2640 sql_help.c:2697 sql_help.c:2749 sql_help.c:2782 -#: sql_help.c:2789 sql_help.c:2898 sql_help.c:2916 sql_help.c:2929 -#: sql_help.c:3008 sql_help.c:3128 sql_help.c:3309 sql_help.c:3532 -#: sql_help.c:3581 sql_help.c:3687 sql_help.c:3894 sql_help.c:3900 -#: sql_help.c:3961 sql_help.c:3993 sql_help.c:4347 sql_help.c:4353 -#: sql_help.c:4471 sql_help.c:4582 sql_help.c:4584 sql_help.c:4646 -#: sql_help.c:4685 sql_help.c:4839 sql_help.c:4841 sql_help.c:4903 -#: sql_help.c:4937 sql_help.c:4989 sql_help.c:5077 sql_help.c:5079 -#: sql_help.c:5141 +#: sql_help.c:828 sql_help.c:831 sql_help.c:932 sql_help.c:935 sql_help.c:1063 +#: sql_help.c:1103 sql_help.c:1572 sql_help.c:1575 sql_help.c:1751 +#: sql_help.c:1805 sql_help.c:1808 sql_help.c:1879 sql_help.c:1904 +#: sql_help.c:1917 sql_help.c:1932 sql_help.c:1989 sql_help.c:1995 +#: sql_help.c:2350 sql_help.c:2362 sql_help.c:2483 sql_help.c:2523 +#: sql_help.c:2600 sql_help.c:2661 sql_help.c:2717 sql_help.c:2769 +#: sql_help.c:2802 sql_help.c:2809 sql_help.c:2918 sql_help.c:2936 +#: sql_help.c:2949 sql_help.c:3028 sql_help.c:3148 sql_help.c:3329 +#: sql_help.c:3552 sql_help.c:3601 sql_help.c:3707 sql_help.c:3914 +#: sql_help.c:3920 sql_help.c:3981 sql_help.c:4013 sql_help.c:4367 +#: sql_help.c:4373 sql_help.c:4491 sql_help.c:4602 sql_help.c:4604 +#: sql_help.c:4666 sql_help.c:4705 sql_help.c:4859 sql_help.c:4861 +#: sql_help.c:4923 sql_help.c:4957 sql_help.c:5009 sql_help.c:5097 +#: sql_help.c:5099 sql_help.c:5161 msgid "table_name" msgstr "ім'я_таблиці" -#: sql_help.c:833 sql_help.c:2588 +#: sql_help.c:833 sql_help.c:2602 msgid "using_expression" msgstr "вираз_використання" -#: sql_help.c:834 sql_help.c:2589 +#: sql_help.c:834 sql_help.c:2603 msgid "check_expression" msgstr "вираз_перевірки" -#: sql_help.c:907 sql_help.c:909 sql_help.c:911 sql_help.c:2636 +#: sql_help.c:916 sql_help.c:918 sql_help.c:2654 msgid "publication_object" msgstr "об'єкт_публікація" -#: sql_help.c:913 sql_help.c:2637 +#: sql_help.c:920 +msgid "publication_drop_object" +msgstr "publication_drop_object" + +#: sql_help.c:922 sql_help.c:2655 msgid "publication_parameter" msgstr "параметр_публікації" -#: sql_help.c:919 sql_help.c:2639 +#: sql_help.c:928 sql_help.c:2657 msgid "where publication_object is one of:" msgstr "де об'єкт_публікація є одним з:" -#: sql_help.c:962 sql_help.c:1649 sql_help.c:2447 sql_help.c:2674 -#: sql_help.c:3243 +#: sql_help.c:929 sql_help.c:1745 sql_help.c:1746 sql_help.c:2658 +#: sql_help.c:4996 sql_help.c:4997 +msgid "table_and_columns" +msgstr "таблиця_і_стовпці" + +#: sql_help.c:931 +msgid "and publication_drop_object is one of:" +msgstr "і publication_drop_object є одним з:" + +#: sql_help.c:934 sql_help.c:1750 sql_help.c:2660 sql_help.c:5008 +msgid "and table_and_columns is:" +msgstr "і таблиця_і_стовпці:" + +#: sql_help.c:976 sql_help.c:1663 sql_help.c:2461 sql_help.c:2694 +#: sql_help.c:3263 msgid "password" msgstr "пароль" -#: sql_help.c:963 sql_help.c:1650 sql_help.c:2448 sql_help.c:2675 -#: sql_help.c:3244 +#: sql_help.c:977 sql_help.c:1664 sql_help.c:2462 sql_help.c:2695 +#: sql_help.c:3264 msgid "timestamp" msgstr "мітка часу" -#: sql_help.c:967 sql_help.c:971 sql_help.c:974 sql_help.c:977 sql_help.c:1654 -#: sql_help.c:1658 sql_help.c:1661 sql_help.c:1664 sql_help.c:3907 -#: sql_help.c:4360 +#: sql_help.c:981 sql_help.c:985 sql_help.c:988 sql_help.c:991 sql_help.c:1668 +#: sql_help.c:1672 sql_help.c:1675 sql_help.c:1678 sql_help.c:3927 +#: sql_help.c:4380 msgid "database_name" msgstr "назва_бази_даних" -#: sql_help.c:1083 sql_help.c:2744 +#: sql_help.c:1097 sql_help.c:2764 msgid "increment" msgstr "інкремент" -#: sql_help.c:1084 sql_help.c:2745 +#: sql_help.c:1098 sql_help.c:2765 msgid "minvalue" msgstr "мін_значення" -#: sql_help.c:1085 sql_help.c:2746 +#: sql_help.c:1099 sql_help.c:2766 msgid "maxvalue" msgstr "макс_значення" -#: sql_help.c:1086 sql_help.c:2747 sql_help.c:4580 sql_help.c:4683 -#: sql_help.c:4837 sql_help.c:5006 sql_help.c:5075 +#: sql_help.c:1100 sql_help.c:2767 sql_help.c:4600 sql_help.c:4703 +#: sql_help.c:4857 sql_help.c:5026 sql_help.c:5095 msgid "start" msgstr "початок" -#: sql_help.c:1087 sql_help.c:1356 +#: sql_help.c:1101 sql_help.c:1370 msgid "restart" msgstr "перезапуск" -#: sql_help.c:1088 sql_help.c:2748 +#: sql_help.c:1102 sql_help.c:2768 msgid "cache" msgstr "кеш" -#: sql_help.c:1133 +#: sql_help.c:1147 msgid "new_target" msgstr "нова_ціль" -#: sql_help.c:1152 sql_help.c:2801 +#: sql_help.c:1166 sql_help.c:2821 msgid "conninfo" msgstr "інформація_підключення" -#: sql_help.c:1154 sql_help.c:1158 sql_help.c:1162 sql_help.c:2802 +#: sql_help.c:1168 sql_help.c:1172 sql_help.c:1176 sql_help.c:2822 msgid "publication_name" msgstr "назва_публікації" -#: sql_help.c:1155 sql_help.c:1159 sql_help.c:1163 +#: sql_help.c:1169 sql_help.c:1173 sql_help.c:1177 msgid "publication_option" msgstr "publication_option" -#: sql_help.c:1166 +#: sql_help.c:1180 msgid "refresh_option" msgstr "опція_оновлення" -#: sql_help.c:1171 sql_help.c:2803 +#: sql_help.c:1185 sql_help.c:2823 msgid "subscription_parameter" msgstr "параметр_підписки" -#: sql_help.c:1174 +#: sql_help.c:1188 msgid "skip_option" msgstr "опція_пропуска" -#: sql_help.c:1333 sql_help.c:1336 +#: sql_help.c:1347 sql_help.c:1350 msgid "partition_name" msgstr "ім'я_розділу" -#: sql_help.c:1334 sql_help.c:2353 sql_help.c:2934 +#: sql_help.c:1348 sql_help.c:2367 sql_help.c:2954 msgid "partition_bound_spec" msgstr "специфікація_рамок_розділу" -#: sql_help.c:1353 sql_help.c:1403 sql_help.c:2948 +#: sql_help.c:1367 sql_help.c:1417 sql_help.c:2968 msgid "sequence_options" msgstr "опції_послідовності" -#: sql_help.c:1355 +#: sql_help.c:1369 msgid "sequence_option" msgstr "опція_послідовності" -#: sql_help.c:1369 +#: sql_help.c:1383 msgid "table_constraint_using_index" msgstr "індекс_обмеження_таблиці" -#: sql_help.c:1377 sql_help.c:1378 sql_help.c:1379 sql_help.c:1380 +#: sql_help.c:1391 sql_help.c:1392 sql_help.c:1393 sql_help.c:1394 msgid "rewrite_rule_name" msgstr "ім'я_правила_перезапису" -#: sql_help.c:1392 sql_help.c:2365 sql_help.c:2973 +#: sql_help.c:1406 sql_help.c:2379 sql_help.c:2993 msgid "and partition_bound_spec is:" msgstr "і специфікація_рамок_розділу:" -#: sql_help.c:1393 sql_help.c:1394 sql_help.c:1395 sql_help.c:2366 -#: sql_help.c:2367 sql_help.c:2368 sql_help.c:2974 sql_help.c:2975 -#: sql_help.c:2976 +#: sql_help.c:1407 sql_help.c:1408 sql_help.c:1409 sql_help.c:2380 +#: sql_help.c:2381 sql_help.c:2382 sql_help.c:2994 sql_help.c:2995 +#: sql_help.c:2996 msgid "partition_bound_expr" msgstr "код_секції" -#: sql_help.c:1396 sql_help.c:1397 sql_help.c:2369 sql_help.c:2370 -#: sql_help.c:2977 sql_help.c:2978 +#: sql_help.c:1410 sql_help.c:1411 sql_help.c:2383 sql_help.c:2384 +#: sql_help.c:2997 sql_help.c:2998 msgid "numeric_literal" msgstr "числовий_літерал" -#: sql_help.c:1398 +#: sql_help.c:1412 msgid "and column_constraint is:" msgstr "і обмеження_стовпця:" -#: sql_help.c:1401 sql_help.c:2360 sql_help.c:2401 sql_help.c:2610 -#: sql_help.c:2946 +#: sql_help.c:1415 sql_help.c:2374 sql_help.c:2415 sql_help.c:2624 +#: sql_help.c:2966 msgid "default_expr" msgstr "вираз_за_замовчуванням" -#: sql_help.c:1402 sql_help.c:2361 sql_help.c:2947 +#: sql_help.c:1416 sql_help.c:2375 sql_help.c:2967 msgid "generation_expr" msgstr "код_генерації" -#: sql_help.c:1404 sql_help.c:1405 sql_help.c:1414 sql_help.c:1416 -#: sql_help.c:1420 sql_help.c:2949 sql_help.c:2950 sql_help.c:2959 -#: sql_help.c:2961 sql_help.c:2965 +#: sql_help.c:1418 sql_help.c:1419 sql_help.c:1428 sql_help.c:1430 +#: sql_help.c:1434 sql_help.c:2969 sql_help.c:2970 sql_help.c:2979 +#: sql_help.c:2981 sql_help.c:2985 msgid "index_parameters" msgstr "параметри_індексу" -#: sql_help.c:1406 sql_help.c:1423 sql_help.c:2951 sql_help.c:2968 +#: sql_help.c:1420 sql_help.c:1437 sql_help.c:2971 sql_help.c:2988 msgid "reftable" msgstr "залежна_таблиця" -#: sql_help.c:1407 sql_help.c:1424 sql_help.c:2952 sql_help.c:2969 +#: sql_help.c:1421 sql_help.c:1438 sql_help.c:2972 sql_help.c:2989 msgid "refcolumn" msgstr "залежний_стовпець" -#: sql_help.c:1408 sql_help.c:1409 sql_help.c:1425 sql_help.c:1426 -#: sql_help.c:2953 sql_help.c:2954 sql_help.c:2970 sql_help.c:2971 +#: sql_help.c:1422 sql_help.c:1423 sql_help.c:1439 sql_help.c:1440 +#: sql_help.c:2973 sql_help.c:2974 sql_help.c:2990 sql_help.c:2991 msgid "referential_action" msgstr "дія_посилання" -#: sql_help.c:1410 sql_help.c:2362 sql_help.c:2955 +#: sql_help.c:1424 sql_help.c:2376 sql_help.c:2975 msgid "and table_constraint is:" msgstr "і обмеження_таблиці:" -#: sql_help.c:1418 sql_help.c:2963 +#: sql_help.c:1432 sql_help.c:2983 msgid "exclude_element" msgstr "об'єкт_виключення" -#: sql_help.c:1419 sql_help.c:2964 sql_help.c:4578 sql_help.c:4681 -#: sql_help.c:4835 sql_help.c:5004 sql_help.c:5073 +#: sql_help.c:1433 sql_help.c:2984 sql_help.c:4598 sql_help.c:4701 +#: sql_help.c:4855 sql_help.c:5024 sql_help.c:5093 msgid "operator" msgstr "оператор" -#: sql_help.c:1421 sql_help.c:2481 sql_help.c:2966 +#: sql_help.c:1435 sql_help.c:2495 sql_help.c:2986 msgid "predicate" msgstr "предикат" -#: sql_help.c:1427 +#: sql_help.c:1441 msgid "and table_constraint_using_index is:" msgstr "і індекс_обмеження_таблиці:" -#: sql_help.c:1430 sql_help.c:2979 +#: sql_help.c:1444 sql_help.c:2999 msgid "index_parameters in UNIQUE, PRIMARY KEY, and EXCLUDE constraints are:" msgstr "параметри_індексу в обмеженнях UNIQUE, PRIMARY KEY, EXCLUDE:" -#: sql_help.c:1435 sql_help.c:2984 +#: sql_help.c:1449 sql_help.c:3004 msgid "exclude_element in an EXCLUDE constraint is:" msgstr "елемент_виключення в обмеженні EXCLUDE:" -#: sql_help.c:1439 sql_help.c:2474 sql_help.c:2911 sql_help.c:2924 -#: sql_help.c:2938 sql_help.c:2988 sql_help.c:4006 +#: sql_help.c:1453 sql_help.c:2488 sql_help.c:2931 sql_help.c:2944 +#: sql_help.c:2958 sql_help.c:3008 sql_help.c:4026 msgid "opclass" msgstr "клас_оператора" -#: sql_help.c:1440 sql_help.c:2475 sql_help.c:2989 +#: sql_help.c:1454 sql_help.c:2489 sql_help.c:3009 msgid "opclass_parameter" msgstr "opclass_parameter" -#: sql_help.c:1442 sql_help.c:2991 +#: sql_help.c:1456 sql_help.c:3011 msgid "referential_action in a FOREIGN KEY/REFERENCES constraint is:" msgstr "посилання на дію в обмеженні FOREIGN KEY/REFERENCES:" -#: sql_help.c:1460 sql_help.c:1463 sql_help.c:3028 +#: sql_help.c:1474 sql_help.c:1477 sql_help.c:3048 msgid "tablespace_option" msgstr "опція_табличного_простору" -#: sql_help.c:1484 sql_help.c:1487 sql_help.c:1493 sql_help.c:1497 +#: sql_help.c:1498 sql_help.c:1501 sql_help.c:1507 sql_help.c:1511 msgid "token_type" msgstr "тип_токену" -#: sql_help.c:1485 sql_help.c:1488 +#: sql_help.c:1499 sql_help.c:1502 msgid "dictionary_name" msgstr "ім'я_словника" -#: sql_help.c:1490 sql_help.c:1494 +#: sql_help.c:1504 sql_help.c:1508 msgid "old_dictionary" msgstr "старий_словник" -#: sql_help.c:1491 sql_help.c:1495 +#: sql_help.c:1505 sql_help.c:1509 msgid "new_dictionary" msgstr "новий_словник" -#: sql_help.c:1590 sql_help.c:1604 sql_help.c:1607 sql_help.c:1608 -#: sql_help.c:3181 +#: sql_help.c:1604 sql_help.c:1618 sql_help.c:1621 sql_help.c:1622 +#: sql_help.c:3201 msgid "attribute_name" msgstr "ім'я_атрибута" -#: sql_help.c:1591 +#: sql_help.c:1605 msgid "new_attribute_name" msgstr "нове_ім'я_атрибута" -#: sql_help.c:1595 sql_help.c:1599 +#: sql_help.c:1609 sql_help.c:1613 msgid "new_enum_value" msgstr "нове_значення_перерахування" -#: sql_help.c:1596 +#: sql_help.c:1610 msgid "neighbor_enum_value" msgstr "сусіднє_значення_перерахування" -#: sql_help.c:1598 +#: sql_help.c:1612 msgid "existing_enum_value" msgstr "існуюче_значення_перерахування" -#: sql_help.c:1601 +#: sql_help.c:1615 msgid "property" msgstr "властивість" -#: sql_help.c:1677 sql_help.c:2345 sql_help.c:2354 sql_help.c:2760 -#: sql_help.c:3261 sql_help.c:3712 sql_help.c:3916 sql_help.c:3962 -#: sql_help.c:4369 +#: sql_help.c:1691 sql_help.c:2359 sql_help.c:2368 sql_help.c:2780 +#: sql_help.c:3281 sql_help.c:3732 sql_help.c:3936 sql_help.c:3982 +#: sql_help.c:4389 msgid "server_name" msgstr "назва_серверу" -#: sql_help.c:1709 sql_help.c:1712 sql_help.c:3276 +#: sql_help.c:1723 sql_help.c:1726 sql_help.c:3296 msgid "view_option_name" msgstr "ім'я_параметра_представлення" -#: sql_help.c:1710 sql_help.c:3277 +#: sql_help.c:1724 sql_help.c:3297 msgid "view_option_value" msgstr "значення_параметра_представлення" -#: sql_help.c:1731 sql_help.c:1732 sql_help.c:4976 sql_help.c:4977 -msgid "table_and_columns" -msgstr "таблиця_і_стовпці" - -#: sql_help.c:1733 sql_help.c:1796 sql_help.c:1987 sql_help.c:3760 -#: sql_help.c:4204 sql_help.c:4978 +#: sql_help.c:1747 sql_help.c:1810 sql_help.c:2001 sql_help.c:3780 +#: sql_help.c:4224 sql_help.c:4998 msgid "where option can be one of:" msgstr "де параметр може бути одним із:" -#: sql_help.c:1734 sql_help.c:1735 sql_help.c:1797 sql_help.c:1989 -#: sql_help.c:1992 sql_help.c:2171 sql_help.c:3761 sql_help.c:3762 -#: sql_help.c:3763 sql_help.c:3764 sql_help.c:3765 sql_help.c:3766 -#: sql_help.c:3767 sql_help.c:3768 sql_help.c:4205 sql_help.c:4207 -#: sql_help.c:4979 sql_help.c:4980 sql_help.c:4981 sql_help.c:4982 -#: sql_help.c:4983 sql_help.c:4984 sql_help.c:4985 sql_help.c:4986 +#: sql_help.c:1748 sql_help.c:1749 sql_help.c:1811 sql_help.c:2003 +#: sql_help.c:2006 sql_help.c:2185 sql_help.c:3781 sql_help.c:3782 +#: sql_help.c:3783 sql_help.c:3784 sql_help.c:3785 sql_help.c:3786 +#: sql_help.c:3787 sql_help.c:3788 sql_help.c:4225 sql_help.c:4227 +#: sql_help.c:4999 sql_help.c:5000 sql_help.c:5001 sql_help.c:5002 +#: sql_help.c:5003 sql_help.c:5004 sql_help.c:5005 sql_help.c:5006 msgid "boolean" msgstr "логічний" -#: sql_help.c:1736 sql_help.c:4988 -msgid "and table_and_columns is:" -msgstr "і таблиця_і_стовпці:" - -#: sql_help.c:1752 sql_help.c:4742 sql_help.c:4744 sql_help.c:4768 +#: sql_help.c:1766 sql_help.c:4762 sql_help.c:4764 sql_help.c:4788 msgid "transaction_mode" msgstr "режим_транзакції" -#: sql_help.c:1753 sql_help.c:4745 sql_help.c:4769 +#: sql_help.c:1767 sql_help.c:4765 sql_help.c:4789 msgid "where transaction_mode is one of:" msgstr "де режим_транзакції один з:" -#: sql_help.c:1762 sql_help.c:4588 sql_help.c:4597 sql_help.c:4601 -#: sql_help.c:4605 sql_help.c:4608 sql_help.c:4845 sql_help.c:4854 -#: sql_help.c:4858 sql_help.c:4862 sql_help.c:4865 sql_help.c:5083 -#: sql_help.c:5092 sql_help.c:5096 sql_help.c:5100 sql_help.c:5103 +#: sql_help.c:1776 sql_help.c:4608 sql_help.c:4617 sql_help.c:4621 +#: sql_help.c:4625 sql_help.c:4628 sql_help.c:4865 sql_help.c:4874 +#: sql_help.c:4878 sql_help.c:4882 sql_help.c:4885 sql_help.c:5103 +#: sql_help.c:5112 sql_help.c:5116 sql_help.c:5120 sql_help.c:5123 msgid "argument" msgstr "аргумент" -#: sql_help.c:1862 +#: sql_help.c:1876 msgid "relation_name" msgstr "назва_відношення" -#: sql_help.c:1867 sql_help.c:3910 sql_help.c:4363 +#: sql_help.c:1881 sql_help.c:3930 sql_help.c:4383 msgid "domain_name" msgstr "назва_домену" -#: sql_help.c:1889 +#: sql_help.c:1903 msgid "policy_name" msgstr "назва_політики" -#: sql_help.c:1902 +#: sql_help.c:1916 msgid "rule_name" msgstr "назва_правила" -#: sql_help.c:1921 sql_help.c:4502 +#: sql_help.c:1935 sql_help.c:4522 msgid "string_literal" msgstr "рядковий_літерал" -#: sql_help.c:1946 sql_help.c:4169 sql_help.c:4416 +#: sql_help.c:1960 sql_help.c:4189 sql_help.c:4436 msgid "transaction_id" msgstr "ідентифікатор_транзакції" -#: sql_help.c:1977 sql_help.c:1984 sql_help.c:4032 +#: sql_help.c:1991 sql_help.c:1998 sql_help.c:4052 msgid "filename" msgstr "ім'я файлу" -#: sql_help.c:1978 sql_help.c:1985 sql_help.c:2699 sql_help.c:2700 -#: sql_help.c:2701 +#: sql_help.c:1992 sql_help.c:1999 sql_help.c:2719 sql_help.c:2720 +#: sql_help.c:2721 msgid "command" msgstr "команда" -#: sql_help.c:1980 sql_help.c:2698 sql_help.c:3131 sql_help.c:3312 -#: sql_help.c:4016 sql_help.c:4095 sql_help.c:4098 sql_help.c:4571 -#: sql_help.c:4573 sql_help.c:4674 sql_help.c:4676 sql_help.c:4828 -#: sql_help.c:4830 sql_help.c:4946 sql_help.c:5066 sql_help.c:5068 +#: sql_help.c:1994 sql_help.c:2718 sql_help.c:3151 sql_help.c:3332 +#: sql_help.c:4036 sql_help.c:4115 sql_help.c:4118 sql_help.c:4591 +#: sql_help.c:4593 sql_help.c:4694 sql_help.c:4696 sql_help.c:4848 +#: sql_help.c:4850 sql_help.c:4966 sql_help.c:5086 sql_help.c:5088 msgid "condition" msgstr "умова" -#: sql_help.c:1983 sql_help.c:2515 sql_help.c:3014 sql_help.c:3278 -#: sql_help.c:3296 sql_help.c:3997 +#: sql_help.c:1997 sql_help.c:2529 sql_help.c:3034 sql_help.c:3298 +#: sql_help.c:3316 sql_help.c:4017 msgid "query" msgstr "запит" -#: sql_help.c:1988 +#: sql_help.c:2002 msgid "format_name" msgstr "назва_формату" -#: sql_help.c:1990 +#: sql_help.c:2004 msgid "delimiter_character" msgstr "символ_роздільник" -#: sql_help.c:1991 +#: sql_help.c:2005 msgid "null_string" msgstr "представлення_NULL" -#: sql_help.c:1993 +#: sql_help.c:2007 msgid "quote_character" msgstr "символ_лапок" -#: sql_help.c:1994 +#: sql_help.c:2008 msgid "escape_character" msgstr "символ_екранування" -#: sql_help.c:1998 +#: sql_help.c:2012 msgid "encoding_name" msgstr "ім'я_кодування" -#: sql_help.c:2009 +#: sql_help.c:2023 msgid "access_method_type" msgstr "тип_метода_доступа" -#: sql_help.c:2080 sql_help.c:2099 sql_help.c:2102 +#: sql_help.c:2094 sql_help.c:2113 sql_help.c:2116 msgid "arg_data_type" msgstr "тип_даних_аргумента" -#: sql_help.c:2081 sql_help.c:2103 sql_help.c:2111 +#: sql_help.c:2095 sql_help.c:2117 sql_help.c:2125 msgid "sfunc" msgstr "функція_стану" -#: sql_help.c:2082 sql_help.c:2104 sql_help.c:2112 +#: sql_help.c:2096 sql_help.c:2118 sql_help.c:2126 msgid "state_data_type" msgstr "тип_даних_стану" -#: sql_help.c:2083 sql_help.c:2105 sql_help.c:2113 +#: sql_help.c:2097 sql_help.c:2119 sql_help.c:2127 msgid "state_data_size" msgstr "розмір_даних_стану" -#: sql_help.c:2084 sql_help.c:2106 sql_help.c:2114 +#: sql_help.c:2098 sql_help.c:2120 sql_help.c:2128 msgid "ffunc" msgstr "функція_завершення" -#: sql_help.c:2085 sql_help.c:2115 +#: sql_help.c:2099 sql_help.c:2129 msgid "combinefunc" msgstr "комбінуюча_функція" -#: sql_help.c:2086 sql_help.c:2116 +#: sql_help.c:2100 sql_help.c:2130 msgid "serialfunc" msgstr "функція_серіалізації" -#: sql_help.c:2087 sql_help.c:2117 +#: sql_help.c:2101 sql_help.c:2131 msgid "deserialfunc" msgstr "функція_десеріалізації" -#: sql_help.c:2088 sql_help.c:2107 sql_help.c:2118 +#: sql_help.c:2102 sql_help.c:2121 sql_help.c:2132 msgid "initial_condition" msgstr "початкова_умова" -#: sql_help.c:2089 sql_help.c:2119 +#: sql_help.c:2103 sql_help.c:2133 msgid "msfunc" msgstr "функція_стану_рух" -#: sql_help.c:2090 sql_help.c:2120 +#: sql_help.c:2104 sql_help.c:2134 msgid "minvfunc" msgstr "зворотна_функція_рух" -#: sql_help.c:2091 sql_help.c:2121 +#: sql_help.c:2105 sql_help.c:2135 msgid "mstate_data_type" msgstr "тип_даних_стану_рух" -#: sql_help.c:2092 sql_help.c:2122 +#: sql_help.c:2106 sql_help.c:2136 msgid "mstate_data_size" msgstr "розмір_даних_стану_рух" -#: sql_help.c:2093 sql_help.c:2123 +#: sql_help.c:2107 sql_help.c:2137 msgid "mffunc" msgstr "функція_завершення_рух" -#: sql_help.c:2094 sql_help.c:2124 +#: sql_help.c:2108 sql_help.c:2138 msgid "minitial_condition" msgstr "початкова_умова_рух" -#: sql_help.c:2095 sql_help.c:2125 +#: sql_help.c:2109 sql_help.c:2139 msgid "sort_operator" msgstr "оператор_сортування" -#: sql_help.c:2108 +#: sql_help.c:2122 msgid "or the old syntax" msgstr "або старий синтаксис" -#: sql_help.c:2110 +#: sql_help.c:2124 msgid "base_type" msgstr "базовий_тип" -#: sql_help.c:2167 sql_help.c:2214 +#: sql_help.c:2181 sql_help.c:2228 msgid "locale" msgstr "локаль" -#: sql_help.c:2168 sql_help.c:2215 +#: sql_help.c:2182 sql_help.c:2229 msgid "lc_collate" msgstr "код_правила_сортування" -#: sql_help.c:2169 sql_help.c:2216 +#: sql_help.c:2183 sql_help.c:2230 msgid "lc_ctype" msgstr "код_класифікації_символів" -#: sql_help.c:2170 sql_help.c:4469 +#: sql_help.c:2184 sql_help.c:4489 msgid "provider" msgstr "постачальник" -#: sql_help.c:2172 sql_help.c:2275 +#: sql_help.c:2186 sql_help.c:2289 msgid "version" msgstr "версія" -#: sql_help.c:2174 +#: sql_help.c:2188 msgid "existing_collation" msgstr "існуюче_правило_сортування" -#: sql_help.c:2184 +#: sql_help.c:2198 msgid "source_encoding" msgstr "початкове_кодування" -#: sql_help.c:2185 +#: sql_help.c:2199 msgid "dest_encoding" msgstr "цільве_кодування" -#: sql_help.c:2211 sql_help.c:3054 +#: sql_help.c:2225 sql_help.c:3074 msgid "template" msgstr "шаблон" -#: sql_help.c:2212 +#: sql_help.c:2226 msgid "encoding" msgstr "кодування" -#: sql_help.c:2213 +#: sql_help.c:2227 msgid "strategy" msgstr "стратегія" -#: sql_help.c:2217 +#: sql_help.c:2231 msgid "icu_locale" msgstr "icu_locale" -#: sql_help.c:2218 +#: sql_help.c:2232 msgid "locale_provider" msgstr "локаль_провайдер" -#: sql_help.c:2219 +#: sql_help.c:2233 msgid "collation_version" msgstr "версія_сортування" -#: sql_help.c:2224 +#: sql_help.c:2238 msgid "oid" msgstr "oid" -#: sql_help.c:2244 +#: sql_help.c:2258 msgid "constraint" msgstr "обмеження" -#: sql_help.c:2245 +#: sql_help.c:2259 msgid "where constraint is:" msgstr "де обмеження:" -#: sql_help.c:2259 sql_help.c:2696 sql_help.c:3127 +#: sql_help.c:2273 sql_help.c:2716 sql_help.c:3147 msgid "event" msgstr "подія" -#: sql_help.c:2260 +#: sql_help.c:2274 msgid "filter_variable" msgstr "змінна_фільтру" -#: sql_help.c:2261 +#: sql_help.c:2275 msgid "filter_value" msgstr "значення_фільтру" -#: sql_help.c:2357 sql_help.c:2943 +#: sql_help.c:2371 sql_help.c:2963 msgid "where column_constraint is:" msgstr "де обмеження_стовпців:" -#: sql_help.c:2402 +#: sql_help.c:2416 msgid "rettype" msgstr "тип_результату" -#: sql_help.c:2404 +#: sql_help.c:2418 msgid "column_type" msgstr "тип_стовпця" -#: sql_help.c:2413 sql_help.c:2616 +#: sql_help.c:2427 sql_help.c:2630 msgid "definition" msgstr "визначення" -#: sql_help.c:2414 sql_help.c:2617 +#: sql_help.c:2428 sql_help.c:2631 msgid "obj_file" msgstr "об'єктний_файл" -#: sql_help.c:2415 sql_help.c:2618 +#: sql_help.c:2429 sql_help.c:2632 msgid "link_symbol" msgstr "символ_експорту" -#: sql_help.c:2416 sql_help.c:2619 +#: sql_help.c:2430 sql_help.c:2633 msgid "sql_body" msgstr "sql_body" -#: sql_help.c:2454 sql_help.c:2681 sql_help.c:3250 +#: sql_help.c:2468 sql_help.c:2701 sql_help.c:3270 msgid "uid" msgstr "uid" -#: sql_help.c:2470 sql_help.c:2511 sql_help.c:2912 sql_help.c:2925 -#: sql_help.c:2939 sql_help.c:3010 +#: sql_help.c:2484 sql_help.c:2525 sql_help.c:2932 sql_help.c:2945 +#: sql_help.c:2959 sql_help.c:3030 msgid "method" msgstr "метод" -#: sql_help.c:2492 +#: sql_help.c:2506 msgid "call_handler" msgstr "обробник_виклику" -#: sql_help.c:2493 +#: sql_help.c:2507 msgid "inline_handler" msgstr "обробник_впровадженого_коду" -#: sql_help.c:2494 +#: sql_help.c:2508 msgid "valfunction" msgstr "функція_перевірки" -#: sql_help.c:2533 +#: sql_help.c:2547 msgid "com_op" msgstr "комут_оператор" -#: sql_help.c:2534 +#: sql_help.c:2548 msgid "neg_op" msgstr "зворотній_оператор" -#: sql_help.c:2552 +#: sql_help.c:2566 msgid "family_name" msgstr "назва_сімейства" -#: sql_help.c:2563 +#: sql_help.c:2577 msgid "storage_type" msgstr "тип_зберігання" -#: sql_help.c:2702 sql_help.c:3134 +#: sql_help.c:2722 sql_help.c:3154 msgid "where event can be one of:" msgstr "де подія може бути однією з:" -#: sql_help.c:2722 sql_help.c:2724 +#: sql_help.c:2742 sql_help.c:2744 msgid "schema_element" msgstr "елемент_схеми" -#: sql_help.c:2761 +#: sql_help.c:2781 msgid "server_type" msgstr "тип_серверу" -#: sql_help.c:2762 +#: sql_help.c:2782 msgid "server_version" msgstr "версія_серверу" -#: sql_help.c:2763 sql_help.c:3913 sql_help.c:4366 +#: sql_help.c:2783 sql_help.c:3933 sql_help.c:4386 msgid "fdw_name" msgstr "назва_fdw" -#: sql_help.c:2780 sql_help.c:2783 +#: sql_help.c:2800 sql_help.c:2803 msgid "statistics_name" msgstr "назва_статистики" -#: sql_help.c:2784 +#: sql_help.c:2804 msgid "statistics_kind" msgstr "вид_статистики" -#: sql_help.c:2800 +#: sql_help.c:2820 msgid "subscription_name" msgstr "назва_підписки" -#: sql_help.c:2905 +#: sql_help.c:2925 msgid "source_table" msgstr "вихідна_таблиця" -#: sql_help.c:2906 +#: sql_help.c:2926 msgid "like_option" msgstr "параметр_породження" -#: sql_help.c:2972 +#: sql_help.c:2992 msgid "and like_option is:" msgstr "і параметр_породження:" -#: sql_help.c:3027 +#: sql_help.c:3047 msgid "directory" msgstr "каталог" -#: sql_help.c:3041 +#: sql_help.c:3061 msgid "parser_name" msgstr "назва_парсера" -#: sql_help.c:3042 +#: sql_help.c:3062 msgid "source_config" msgstr "початкова_конфігурація" -#: sql_help.c:3071 +#: sql_help.c:3091 msgid "start_function" msgstr "функція_початку" -#: sql_help.c:3072 +#: sql_help.c:3092 msgid "gettoken_function" msgstr "функція_видачі_токену" -#: sql_help.c:3073 +#: sql_help.c:3093 msgid "end_function" msgstr "функція_завершення" -#: sql_help.c:3074 +#: sql_help.c:3094 msgid "lextypes_function" msgstr "функція_лекс_типів" -#: sql_help.c:3075 +#: sql_help.c:3095 msgid "headline_function" msgstr "функція_створення_заголовків" -#: sql_help.c:3087 +#: sql_help.c:3107 msgid "init_function" msgstr "функція_ініціалізації" -#: sql_help.c:3088 +#: sql_help.c:3108 msgid "lexize_function" msgstr "функція_виділення_лексем" -#: sql_help.c:3101 +#: sql_help.c:3121 msgid "from_sql_function_name" msgstr "ім'я_функції_з_sql" -#: sql_help.c:3103 +#: sql_help.c:3123 msgid "to_sql_function_name" msgstr "ім'я_функції_в_sql" -#: sql_help.c:3129 +#: sql_help.c:3149 msgid "referenced_table_name" msgstr "ім'я_залежної_таблиці" -#: sql_help.c:3130 +#: sql_help.c:3150 msgid "transition_relation_name" msgstr "ім'я_перехідного_відношення" -#: sql_help.c:3133 +#: sql_help.c:3153 msgid "arguments" msgstr "аргументи" -#: sql_help.c:3185 +#: sql_help.c:3205 msgid "label" msgstr "мітка" -#: sql_help.c:3187 +#: sql_help.c:3207 msgid "subtype" msgstr "підтип" -#: sql_help.c:3188 +#: sql_help.c:3208 msgid "subtype_operator_class" msgstr "клас_оператора_підтипу" -#: sql_help.c:3190 +#: sql_help.c:3210 msgid "canonical_function" msgstr "канонічна_функція" -#: sql_help.c:3191 +#: sql_help.c:3211 msgid "subtype_diff_function" msgstr "функція_розбіжностей_підтипу" -#: sql_help.c:3192 +#: sql_help.c:3212 msgid "multirange_type_name" msgstr "multirange_type_name" -#: sql_help.c:3194 +#: sql_help.c:3214 msgid "input_function" msgstr "функція_вводу" -#: sql_help.c:3195 +#: sql_help.c:3215 msgid "output_function" msgstr "функція_виводу" -#: sql_help.c:3196 +#: sql_help.c:3216 msgid "receive_function" msgstr "функція_отримання" -#: sql_help.c:3197 +#: sql_help.c:3217 msgid "send_function" msgstr "функція_відправки" -#: sql_help.c:3198 +#: sql_help.c:3218 msgid "type_modifier_input_function" msgstr "функція_введення_модифікатора_типу" -#: sql_help.c:3199 +#: sql_help.c:3219 msgid "type_modifier_output_function" msgstr "функція_виводу_модифікатора_типу" -#: sql_help.c:3200 +#: sql_help.c:3220 msgid "analyze_function" msgstr "функція_аналізу" -#: sql_help.c:3201 +#: sql_help.c:3221 msgid "subscript_function" msgstr "subscript_function" -#: sql_help.c:3202 +#: sql_help.c:3222 msgid "internallength" msgstr "внутр_довжина" -#: sql_help.c:3203 +#: sql_help.c:3223 msgid "alignment" msgstr "вирівнювання" -#: sql_help.c:3204 +#: sql_help.c:3224 msgid "storage" msgstr "зберігання" -#: sql_help.c:3205 +#: sql_help.c:3225 msgid "like_type" msgstr "тип_зразок" -#: sql_help.c:3206 +#: sql_help.c:3226 msgid "category" msgstr "категорія" -#: sql_help.c:3207 +#: sql_help.c:3227 msgid "preferred" msgstr "привілейований" -#: sql_help.c:3208 +#: sql_help.c:3228 msgid "default" msgstr "за_замовчуванням" -#: sql_help.c:3209 +#: sql_help.c:3229 msgid "element" msgstr "елемент" -#: sql_help.c:3210 +#: sql_help.c:3230 msgid "delimiter" msgstr "роздільник" -#: sql_help.c:3211 +#: sql_help.c:3231 msgid "collatable" msgstr "сортувальний" -#: sql_help.c:3308 sql_help.c:3992 sql_help.c:4084 sql_help.c:4566 -#: sql_help.c:4668 sql_help.c:4823 sql_help.c:4936 sql_help.c:5061 +#: sql_help.c:3328 sql_help.c:4012 sql_help.c:4104 sql_help.c:4586 +#: sql_help.c:4688 sql_help.c:4843 sql_help.c:4956 sql_help.c:5081 msgid "with_query" msgstr "with_запит" -#: sql_help.c:3310 sql_help.c:3994 sql_help.c:4585 sql_help.c:4591 -#: sql_help.c:4594 sql_help.c:4598 sql_help.c:4602 sql_help.c:4610 -#: sql_help.c:4842 sql_help.c:4848 sql_help.c:4851 sql_help.c:4855 -#: sql_help.c:4859 sql_help.c:4867 sql_help.c:4938 sql_help.c:5080 -#: sql_help.c:5086 sql_help.c:5089 sql_help.c:5093 sql_help.c:5097 -#: sql_help.c:5105 +#: sql_help.c:3330 sql_help.c:4014 sql_help.c:4605 sql_help.c:4611 +#: sql_help.c:4614 sql_help.c:4618 sql_help.c:4622 sql_help.c:4630 +#: sql_help.c:4862 sql_help.c:4868 sql_help.c:4871 sql_help.c:4875 +#: sql_help.c:4879 sql_help.c:4887 sql_help.c:4958 sql_help.c:5100 +#: sql_help.c:5106 sql_help.c:5109 sql_help.c:5113 sql_help.c:5117 +#: sql_help.c:5125 msgid "alias" msgstr "псевдонім" -#: sql_help.c:3311 sql_help.c:4570 sql_help.c:4612 sql_help.c:4614 -#: sql_help.c:4618 sql_help.c:4620 sql_help.c:4621 sql_help.c:4622 -#: sql_help.c:4673 sql_help.c:4827 sql_help.c:4869 sql_help.c:4871 -#: sql_help.c:4875 sql_help.c:4877 sql_help.c:4878 sql_help.c:4879 -#: sql_help.c:4945 sql_help.c:5065 sql_help.c:5107 sql_help.c:5109 -#: sql_help.c:5113 sql_help.c:5115 sql_help.c:5116 sql_help.c:5117 +#: sql_help.c:3331 sql_help.c:4590 sql_help.c:4632 sql_help.c:4634 +#: sql_help.c:4638 sql_help.c:4640 sql_help.c:4641 sql_help.c:4642 +#: sql_help.c:4693 sql_help.c:4847 sql_help.c:4889 sql_help.c:4891 +#: sql_help.c:4895 sql_help.c:4897 sql_help.c:4898 sql_help.c:4899 +#: sql_help.c:4965 sql_help.c:5085 sql_help.c:5127 sql_help.c:5129 +#: sql_help.c:5133 sql_help.c:5135 sql_help.c:5136 sql_help.c:5137 msgid "from_item" msgstr "джерело_даних" -#: sql_help.c:3313 sql_help.c:3794 sql_help.c:4136 sql_help.c:4947 +#: sql_help.c:3333 sql_help.c:3814 sql_help.c:4156 sql_help.c:4967 msgid "cursor_name" msgstr "ім'я_курсору" -#: sql_help.c:3314 sql_help.c:4000 sql_help.c:4948 +#: sql_help.c:3334 sql_help.c:4020 sql_help.c:4968 msgid "output_expression" msgstr "вираз_результату" -#: sql_help.c:3315 sql_help.c:4001 sql_help.c:4569 sql_help.c:4671 -#: sql_help.c:4826 sql_help.c:4949 sql_help.c:5064 +#: sql_help.c:3335 sql_help.c:4021 sql_help.c:4589 sql_help.c:4691 +#: sql_help.c:4846 sql_help.c:4969 sql_help.c:5084 msgid "output_name" msgstr "ім'я_результату" -#: sql_help.c:3331 +#: sql_help.c:3351 msgid "code" msgstr "код" -#: sql_help.c:3736 +#: sql_help.c:3756 msgid "parameter" msgstr "параметр" -#: sql_help.c:3758 sql_help.c:3759 sql_help.c:4161 +#: sql_help.c:3778 sql_help.c:3779 sql_help.c:4181 msgid "statement" msgstr "оператор" -#: sql_help.c:3793 sql_help.c:4135 +#: sql_help.c:3813 sql_help.c:4155 msgid "direction" msgstr "напрямок" -#: sql_help.c:3795 sql_help.c:4137 +#: sql_help.c:3815 sql_help.c:4157 msgid "where direction can be one of:" msgstr "де напрямок може бути одним із:" -#: sql_help.c:3796 sql_help.c:3797 sql_help.c:3798 sql_help.c:3799 -#: sql_help.c:3800 sql_help.c:4138 sql_help.c:4139 sql_help.c:4140 -#: sql_help.c:4141 sql_help.c:4142 sql_help.c:4579 sql_help.c:4581 -#: sql_help.c:4682 sql_help.c:4684 sql_help.c:4836 sql_help.c:4838 -#: sql_help.c:5005 sql_help.c:5007 sql_help.c:5074 sql_help.c:5076 +#: sql_help.c:3816 sql_help.c:3817 sql_help.c:3818 sql_help.c:3819 +#: sql_help.c:3820 sql_help.c:4158 sql_help.c:4159 sql_help.c:4160 +#: sql_help.c:4161 sql_help.c:4162 sql_help.c:4599 sql_help.c:4601 +#: sql_help.c:4702 sql_help.c:4704 sql_help.c:4856 sql_help.c:4858 +#: sql_help.c:5025 sql_help.c:5027 sql_help.c:5094 sql_help.c:5096 msgid "count" msgstr "кількість" -#: sql_help.c:3903 sql_help.c:4356 +#: sql_help.c:3923 sql_help.c:4376 msgid "sequence_name" msgstr "ім'я_послідовності" -#: sql_help.c:3921 sql_help.c:4374 +#: sql_help.c:3941 sql_help.c:4394 msgid "arg_name" msgstr "ім'я_аргументу" -#: sql_help.c:3922 sql_help.c:4375 +#: sql_help.c:3942 sql_help.c:4395 msgid "arg_type" msgstr "тип_аргументу" -#: sql_help.c:3929 sql_help.c:4382 +#: sql_help.c:3949 sql_help.c:4402 msgid "loid" msgstr "код_вел_об'єкту" -#: sql_help.c:3960 +#: sql_help.c:3980 msgid "remote_schema" msgstr "віддалена_схема" -#: sql_help.c:3963 +#: sql_help.c:3983 msgid "local_schema" msgstr "локальна_схема" -#: sql_help.c:3998 +#: sql_help.c:4018 msgid "conflict_target" msgstr "ціль_конфлікту" -#: sql_help.c:3999 +#: sql_help.c:4019 msgid "conflict_action" msgstr "дія_при_конфлікті" -#: sql_help.c:4002 +#: sql_help.c:4022 msgid "where conflict_target can be one of:" msgstr "де ціль_конфлікту може бути одним з:" -#: sql_help.c:4003 +#: sql_help.c:4023 msgid "index_column_name" msgstr "ім'я_стовпця_індексу" -#: sql_help.c:4004 +#: sql_help.c:4024 msgid "index_expression" msgstr "вираз_індексу" -#: sql_help.c:4007 +#: sql_help.c:4027 msgid "index_predicate" msgstr "предикат_індексу" -#: sql_help.c:4009 +#: sql_help.c:4029 msgid "and conflict_action is one of:" msgstr "і дія_при_конфлікті одна з:" -#: sql_help.c:4015 sql_help.c:4109 sql_help.c:4944 +#: sql_help.c:4035 sql_help.c:4129 sql_help.c:4964 msgid "sub-SELECT" msgstr "вкладений-SELECT" -#: sql_help.c:4024 sql_help.c:4150 sql_help.c:4920 +#: sql_help.c:4044 sql_help.c:4170 sql_help.c:4940 msgid "channel" msgstr "канал" -#: sql_help.c:4046 +#: sql_help.c:4066 msgid "lockmode" msgstr "режим_блокування" -#: sql_help.c:4047 +#: sql_help.c:4067 msgid "where lockmode is one of:" msgstr "де режим_блокування один з:" -#: sql_help.c:4085 +#: sql_help.c:4105 msgid "target_table_name" msgstr "ім'я_цілі_таблиці" -#: sql_help.c:4086 +#: sql_help.c:4106 msgid "target_alias" msgstr "псевдонім_цілі" -#: sql_help.c:4087 +#: sql_help.c:4107 msgid "data_source" msgstr "джерело_даних" -#: sql_help.c:4088 sql_help.c:4615 sql_help.c:4872 sql_help.c:5110 +#: sql_help.c:4108 sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 msgid "join_condition" msgstr "умова_поєднання" -#: sql_help.c:4089 +#: sql_help.c:4109 msgid "when_clause" msgstr "when_твердження" -#: sql_help.c:4090 +#: sql_help.c:4110 msgid "where data_source is:" msgstr "де джерело_даних:" -#: sql_help.c:4091 +#: sql_help.c:4111 msgid "source_table_name" msgstr "ім'я_початкова_таблиці" -#: sql_help.c:4092 +#: sql_help.c:4112 msgid "source_query" msgstr "джерело_запит" -#: sql_help.c:4093 +#: sql_help.c:4113 msgid "source_alias" msgstr "джерело_псевдоніма" -#: sql_help.c:4094 +#: sql_help.c:4114 msgid "and when_clause is:" msgstr "і when_clause:" -#: sql_help.c:4096 +#: sql_help.c:4116 msgid "merge_update" msgstr "merge_update" -#: sql_help.c:4097 +#: sql_help.c:4117 msgid "merge_delete" msgstr "merge_delete" -#: sql_help.c:4099 +#: sql_help.c:4119 msgid "merge_insert" msgstr "merge_insert" -#: sql_help.c:4100 +#: sql_help.c:4120 msgid "and merge_insert is:" msgstr "і merge_insert:" -#: sql_help.c:4103 +#: sql_help.c:4123 msgid "and merge_update is:" msgstr "і merge_update:" -#: sql_help.c:4110 +#: sql_help.c:4130 msgid "and merge_delete is:" msgstr "і merge_delete:" -#: sql_help.c:4151 +#: sql_help.c:4171 msgid "payload" msgstr "зміст" -#: sql_help.c:4178 +#: sql_help.c:4198 msgid "old_role" msgstr "стара_роль" -#: sql_help.c:4179 +#: sql_help.c:4199 msgid "new_role" msgstr "нова_роль" -#: sql_help.c:4215 sql_help.c:4424 sql_help.c:4432 +#: sql_help.c:4235 sql_help.c:4444 sql_help.c:4452 msgid "savepoint_name" msgstr "ім'я_точки_збереження" -#: sql_help.c:4572 sql_help.c:4630 sql_help.c:4829 sql_help.c:4887 -#: sql_help.c:5067 sql_help.c:5125 +#: sql_help.c:4592 sql_help.c:4650 sql_help.c:4849 sql_help.c:4907 +#: sql_help.c:5087 sql_help.c:5145 msgid "grouping_element" msgstr "елемент_групування" -#: sql_help.c:4574 sql_help.c:4677 sql_help.c:4831 sql_help.c:5069 +#: sql_help.c:4594 sql_help.c:4697 sql_help.c:4851 sql_help.c:5089 msgid "window_name" msgstr "назва_вікна" -#: sql_help.c:4575 sql_help.c:4678 sql_help.c:4832 sql_help.c:5070 +#: sql_help.c:4595 sql_help.c:4698 sql_help.c:4852 sql_help.c:5090 msgid "window_definition" msgstr "визначення_вікна" -#: sql_help.c:4576 sql_help.c:4590 sql_help.c:4634 sql_help.c:4679 -#: sql_help.c:4833 sql_help.c:4847 sql_help.c:4891 sql_help.c:5071 -#: sql_help.c:5085 sql_help.c:5129 +#: sql_help.c:4596 sql_help.c:4610 sql_help.c:4654 sql_help.c:4699 +#: sql_help.c:4853 sql_help.c:4867 sql_help.c:4911 sql_help.c:5091 +#: sql_help.c:5105 sql_help.c:5149 msgid "select" msgstr "виберіть" -#: sql_help.c:4583 sql_help.c:4840 sql_help.c:5078 +#: sql_help.c:4603 sql_help.c:4860 sql_help.c:5098 msgid "where from_item can be one of:" msgstr "де джерело_даних може бути одним з:" -#: sql_help.c:4586 sql_help.c:4592 sql_help.c:4595 sql_help.c:4599 -#: sql_help.c:4611 sql_help.c:4843 sql_help.c:4849 sql_help.c:4852 -#: sql_help.c:4856 sql_help.c:4868 sql_help.c:5081 sql_help.c:5087 -#: sql_help.c:5090 sql_help.c:5094 sql_help.c:5106 +#: sql_help.c:4606 sql_help.c:4612 sql_help.c:4615 sql_help.c:4619 +#: sql_help.c:4631 sql_help.c:4863 sql_help.c:4869 sql_help.c:4872 +#: sql_help.c:4876 sql_help.c:4888 sql_help.c:5101 sql_help.c:5107 +#: sql_help.c:5110 sql_help.c:5114 sql_help.c:5126 msgid "column_alias" msgstr "псевдонім_стовпця" -#: sql_help.c:4587 sql_help.c:4844 sql_help.c:5082 +#: sql_help.c:4607 sql_help.c:4864 sql_help.c:5102 msgid "sampling_method" msgstr "метод_вибірки" -#: sql_help.c:4589 sql_help.c:4846 sql_help.c:5084 +#: sql_help.c:4609 sql_help.c:4866 sql_help.c:5104 msgid "seed" msgstr "початкове_число" -#: sql_help.c:4593 sql_help.c:4632 sql_help.c:4850 sql_help.c:4889 -#: sql_help.c:5088 sql_help.c:5127 +#: sql_help.c:4613 sql_help.c:4652 sql_help.c:4870 sql_help.c:4909 +#: sql_help.c:5108 sql_help.c:5147 msgid "with_query_name" msgstr "ім'я_запиту_WITH" -#: sql_help.c:4603 sql_help.c:4606 sql_help.c:4609 sql_help.c:4860 -#: sql_help.c:4863 sql_help.c:4866 sql_help.c:5098 sql_help.c:5101 -#: sql_help.c:5104 +#: sql_help.c:4623 sql_help.c:4626 sql_help.c:4629 sql_help.c:4880 +#: sql_help.c:4883 sql_help.c:4886 sql_help.c:5118 sql_help.c:5121 +#: sql_help.c:5124 msgid "column_definition" msgstr "визначення_стовпця" -#: sql_help.c:4613 sql_help.c:4619 sql_help.c:4870 sql_help.c:4876 -#: sql_help.c:5108 sql_help.c:5114 +#: sql_help.c:4633 sql_help.c:4639 sql_help.c:4890 sql_help.c:4896 +#: sql_help.c:5128 sql_help.c:5134 msgid "join_type" msgstr "тип_поєднання" -#: sql_help.c:4616 sql_help.c:4873 sql_help.c:5111 +#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 msgid "join_column" msgstr "стовпець_поєднання" -#: sql_help.c:4617 sql_help.c:4874 sql_help.c:5112 +#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 msgid "join_using_alias" msgstr "join_using_alias" -#: sql_help.c:4623 sql_help.c:4880 sql_help.c:5118 +#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 msgid "and grouping_element can be one of:" msgstr "і елемент_групування може бути одним з:" -#: sql_help.c:4631 sql_help.c:4888 sql_help.c:5126 +#: sql_help.c:4651 sql_help.c:4908 sql_help.c:5146 msgid "and with_query is:" msgstr "і запит_WITH:" -#: sql_help.c:4635 sql_help.c:4892 sql_help.c:5130 +#: sql_help.c:4655 sql_help.c:4912 sql_help.c:5150 msgid "values" msgstr "значення" -#: sql_help.c:4636 sql_help.c:4893 sql_help.c:5131 +#: sql_help.c:4656 sql_help.c:4913 sql_help.c:5151 msgid "insert" msgstr "вставка" -#: sql_help.c:4637 sql_help.c:4894 sql_help.c:5132 +#: sql_help.c:4657 sql_help.c:4914 sql_help.c:5152 msgid "update" msgstr "оновлення" -#: sql_help.c:4638 sql_help.c:4895 sql_help.c:5133 +#: sql_help.c:4658 sql_help.c:4915 sql_help.c:5153 msgid "delete" msgstr "видалення" -#: sql_help.c:4640 sql_help.c:4897 sql_help.c:5135 +#: sql_help.c:4660 sql_help.c:4917 sql_help.c:5155 msgid "search_seq_col_name" msgstr "search_seq_col_name" -#: sql_help.c:4642 sql_help.c:4899 sql_help.c:5137 +#: sql_help.c:4662 sql_help.c:4919 sql_help.c:5157 msgid "cycle_mark_col_name" msgstr "cycle_mark_col_name" -#: sql_help.c:4643 sql_help.c:4900 sql_help.c:5138 +#: sql_help.c:4663 sql_help.c:4920 sql_help.c:5158 msgid "cycle_mark_value" msgstr "cycle_mark_value" -#: sql_help.c:4644 sql_help.c:4901 sql_help.c:5139 +#: sql_help.c:4664 sql_help.c:4921 sql_help.c:5159 msgid "cycle_mark_default" msgstr "cycle_mark_default" -#: sql_help.c:4645 sql_help.c:4902 sql_help.c:5140 +#: sql_help.c:4665 sql_help.c:4922 sql_help.c:5160 msgid "cycle_path_col_name" msgstr "cycle_path_col_name" -#: sql_help.c:4672 +#: sql_help.c:4692 msgid "new_table" msgstr "нова_таблиця" -#: sql_help.c:4743 +#: sql_help.c:4763 msgid "snapshot_id" msgstr "код_знімку" -#: sql_help.c:5003 +#: sql_help.c:5023 msgid "sort_expression" msgstr "вираз_сортування" -#: sql_help.c:5147 sql_help.c:6131 +#: sql_help.c:5167 sql_help.c:6151 msgid "abort the current transaction" msgstr "перервати поточну транзакцію" -#: sql_help.c:5153 +#: sql_help.c:5173 msgid "change the definition of an aggregate function" msgstr "змінити визначення агрегатної функції" -#: sql_help.c:5159 +#: sql_help.c:5179 msgid "change the definition of a collation" msgstr "змінити визначення правила сортування" -#: sql_help.c:5165 +#: sql_help.c:5185 msgid "change the definition of a conversion" msgstr "змінити визначення перетворення" -#: sql_help.c:5171 +#: sql_help.c:5191 msgid "change a database" msgstr "змінити базу даних" -#: sql_help.c:5177 +#: sql_help.c:5197 msgid "define default access privileges" msgstr "визначити права доступу за замовчуванням" -#: sql_help.c:5183 +#: sql_help.c:5203 msgid "change the definition of a domain" msgstr "змінити визначення домену" -#: sql_help.c:5189 +#: sql_help.c:5209 msgid "change the definition of an event trigger" msgstr "змінити визначення тригеру події" -#: sql_help.c:5195 +#: sql_help.c:5215 msgid "change the definition of an extension" msgstr "змінити визначення розширення" -#: sql_help.c:5201 +#: sql_help.c:5221 msgid "change the definition of a foreign-data wrapper" msgstr "змінити визначення джерела сторонніх даних" -#: sql_help.c:5207 +#: sql_help.c:5227 msgid "change the definition of a foreign table" msgstr "змінити визначення сторонньої таблиці" -#: sql_help.c:5213 +#: sql_help.c:5233 msgid "change the definition of a function" msgstr "змінити визначення функції" -#: sql_help.c:5219 +#: sql_help.c:5239 msgid "change role name or membership" msgstr "змінити назву ролі або членства" -#: sql_help.c:5225 +#: sql_help.c:5245 msgid "change the definition of an index" msgstr "змінити визначення індексу" -#: sql_help.c:5231 +#: sql_help.c:5251 msgid "change the definition of a procedural language" msgstr "змінити визначення процедурної мови" -#: sql_help.c:5237 +#: sql_help.c:5257 msgid "change the definition of a large object" msgstr "змінити визначення великого об'єкту" -#: sql_help.c:5243 +#: sql_help.c:5263 msgid "change the definition of a materialized view" msgstr "змінити визначення матеріалізованого подання" -#: sql_help.c:5249 +#: sql_help.c:5269 msgid "change the definition of an operator" msgstr "змінити визначення оператора" -#: sql_help.c:5255 +#: sql_help.c:5275 msgid "change the definition of an operator class" msgstr "змінити визначення класа операторів" -#: sql_help.c:5261 +#: sql_help.c:5281 msgid "change the definition of an operator family" msgstr "змінити визначення сімейства операторів" -#: sql_help.c:5267 +#: sql_help.c:5287 msgid "change the definition of a row-level security policy" msgstr "змінити визначення політики безпеки на рівні рядків" -#: sql_help.c:5273 +#: sql_help.c:5293 msgid "change the definition of a procedure" msgstr "змінити визначення процедури" -#: sql_help.c:5279 +#: sql_help.c:5299 msgid "change the definition of a publication" msgstr "змінити визначення публікації" -#: sql_help.c:5285 sql_help.c:5387 +#: sql_help.c:5305 sql_help.c:5407 msgid "change a database role" msgstr "змінити роль бази даних" -#: sql_help.c:5291 +#: sql_help.c:5311 msgid "change the definition of a routine" msgstr "змінити визначення підпрограми" -#: sql_help.c:5297 +#: sql_help.c:5317 msgid "change the definition of a rule" msgstr "змінити визначення правила" -#: sql_help.c:5303 +#: sql_help.c:5323 msgid "change the definition of a schema" msgstr "змінити визначення схеми" -#: sql_help.c:5309 +#: sql_help.c:5329 msgid "change the definition of a sequence generator" msgstr "змінити визначення генератору послідовності" -#: sql_help.c:5315 +#: sql_help.c:5335 msgid "change the definition of a foreign server" msgstr "змінити визначення стороннього серверу" -#: sql_help.c:5321 +#: sql_help.c:5341 msgid "change the definition of an extended statistics object" msgstr "змінити визначення об'єкту розширеної статистики" -#: sql_help.c:5327 +#: sql_help.c:5347 msgid "change the definition of a subscription" msgstr "змінити визначення підписки" -#: sql_help.c:5333 +#: sql_help.c:5353 msgid "change a server configuration parameter" msgstr "змінити параметр конфігурації сервера" -#: sql_help.c:5339 +#: sql_help.c:5359 msgid "change the definition of a table" msgstr "змінити визначення таблиці" -#: sql_help.c:5345 +#: sql_help.c:5365 msgid "change the definition of a tablespace" msgstr "змінити визначення табличного простору" -#: sql_help.c:5351 +#: sql_help.c:5371 msgid "change the definition of a text search configuration" msgstr "змінити визначення конфігурації текстового пошуку" -#: sql_help.c:5357 +#: sql_help.c:5377 msgid "change the definition of a text search dictionary" msgstr "змінити визначення словника текстового пошуку" -#: sql_help.c:5363 +#: sql_help.c:5383 msgid "change the definition of a text search parser" msgstr "змінити визначення парсера текстового пошуку" -#: sql_help.c:5369 +#: sql_help.c:5389 msgid "change the definition of a text search template" msgstr "змінити визначення шаблона текстового пошуку" -#: sql_help.c:5375 +#: sql_help.c:5395 msgid "change the definition of a trigger" msgstr "змінити визначення тригеру" -#: sql_help.c:5381 +#: sql_help.c:5401 msgid "change the definition of a type" msgstr "змінити визначення типу" -#: sql_help.c:5393 +#: sql_help.c:5413 msgid "change the definition of a user mapping" msgstr "змінити визначення зіставлень користувачів" -#: sql_help.c:5399 +#: sql_help.c:5419 msgid "change the definition of a view" msgstr "змінити визначення подання" -#: sql_help.c:5405 +#: sql_help.c:5425 msgid "collect statistics about a database" msgstr "зібрати статистику про базу даних" -#: sql_help.c:5411 sql_help.c:6209 +#: sql_help.c:5431 sql_help.c:6229 msgid "start a transaction block" msgstr "розпочати транзакцію" -#: sql_help.c:5417 +#: sql_help.c:5437 msgid "invoke a procedure" msgstr "викликати процедуру" -#: sql_help.c:5423 +#: sql_help.c:5443 msgid "force a write-ahead log checkpoint" msgstr "провести контрольну точку в журналі попереднього запису" -#: sql_help.c:5429 +#: sql_help.c:5449 msgid "close a cursor" msgstr "закрити курсор" -#: sql_help.c:5435 +#: sql_help.c:5455 msgid "cluster a table according to an index" msgstr "перегрупувати таблицю за індексом" -#: sql_help.c:5441 +#: sql_help.c:5461 msgid "define or change the comment of an object" msgstr "задати або змінити коментар об'єкта" -#: sql_help.c:5447 sql_help.c:6005 +#: sql_help.c:5467 sql_help.c:6025 msgid "commit the current transaction" msgstr "затвердити поточну транзакцію" -#: sql_help.c:5453 +#: sql_help.c:5473 msgid "commit a transaction that was earlier prepared for two-phase commit" msgstr "затвердити транзакцію, раніше підготовлену до двохфазного затвердження" -#: sql_help.c:5459 +#: sql_help.c:5479 msgid "copy data between a file and a table" msgstr "копіювати дані між файлом та таблицею" -#: sql_help.c:5465 +#: sql_help.c:5485 msgid "define a new access method" msgstr "визначити новий метод доступу" -#: sql_help.c:5471 +#: sql_help.c:5491 msgid "define a new aggregate function" msgstr "визначити нову агрегатну функцію" -#: sql_help.c:5477 +#: sql_help.c:5497 msgid "define a new cast" msgstr "визначити приведення типів" -#: sql_help.c:5483 +#: sql_help.c:5503 msgid "define a new collation" msgstr "визначити нове правило сортування" -#: sql_help.c:5489 +#: sql_help.c:5509 msgid "define a new encoding conversion" msgstr "визначити нове перетворення кодування" -#: sql_help.c:5495 +#: sql_help.c:5515 msgid "create a new database" msgstr "створити нову базу даних" -#: sql_help.c:5501 +#: sql_help.c:5521 msgid "define a new domain" msgstr "визначити новий домен" -#: sql_help.c:5507 +#: sql_help.c:5527 msgid "define a new event trigger" msgstr "визначити новий тригер події" -#: sql_help.c:5513 +#: sql_help.c:5533 msgid "install an extension" msgstr "встановити розширення" -#: sql_help.c:5519 +#: sql_help.c:5539 msgid "define a new foreign-data wrapper" msgstr "визначити нове джерело сторонніх даних" -#: sql_help.c:5525 +#: sql_help.c:5545 msgid "define a new foreign table" msgstr "визначити нову сторонню таблицю" -#: sql_help.c:5531 +#: sql_help.c:5551 msgid "define a new function" msgstr "визначити нову функцію" -#: sql_help.c:5537 sql_help.c:5597 sql_help.c:5699 +#: sql_help.c:5557 sql_help.c:5617 sql_help.c:5719 msgid "define a new database role" msgstr "визначити нову роль бази даних" -#: sql_help.c:5543 +#: sql_help.c:5563 msgid "define a new index" msgstr "визначити новий індекс" -#: sql_help.c:5549 +#: sql_help.c:5569 msgid "define a new procedural language" msgstr "визначити нову процедурну мову" -#: sql_help.c:5555 +#: sql_help.c:5575 msgid "define a new materialized view" msgstr "визначити нове матеріалізоване подання" -#: sql_help.c:5561 +#: sql_help.c:5581 msgid "define a new operator" msgstr "визначити новий оператор" -#: sql_help.c:5567 +#: sql_help.c:5587 msgid "define a new operator class" msgstr "визначити новий клас оператора" -#: sql_help.c:5573 +#: sql_help.c:5593 msgid "define a new operator family" msgstr "визначити нове сімейство операторів" -#: sql_help.c:5579 +#: sql_help.c:5599 msgid "define a new row-level security policy for a table" msgstr "визначити нову політику безпеки на рівні рядків для таблиці" -#: sql_help.c:5585 +#: sql_help.c:5605 msgid "define a new procedure" msgstr "визначити нову процедуру" -#: sql_help.c:5591 +#: sql_help.c:5611 msgid "define a new publication" msgstr "визначити нову публікацію" -#: sql_help.c:5603 +#: sql_help.c:5623 msgid "define a new rewrite rule" msgstr "визначити нове правило перезапису" -#: sql_help.c:5609 +#: sql_help.c:5629 msgid "define a new schema" msgstr "визначити нову схему" -#: sql_help.c:5615 +#: sql_help.c:5635 msgid "define a new sequence generator" msgstr "визначити новий генератор послідовностей" -#: sql_help.c:5621 +#: sql_help.c:5641 msgid "define a new foreign server" msgstr "визначити новий сторонній сервер" -#: sql_help.c:5627 +#: sql_help.c:5647 msgid "define extended statistics" msgstr "визначити розширену статистику" -#: sql_help.c:5633 +#: sql_help.c:5653 msgid "define a new subscription" msgstr "визначити нову підписку" -#: sql_help.c:5639 +#: sql_help.c:5659 msgid "define a new table" msgstr "визначити нову таблицю" -#: sql_help.c:5645 sql_help.c:6167 +#: sql_help.c:5665 sql_help.c:6187 msgid "define a new table from the results of a query" msgstr "визначити нову таблицю з результатів запиту" -#: sql_help.c:5651 +#: sql_help.c:5671 msgid "define a new tablespace" msgstr "визначити новий табличний простір" -#: sql_help.c:5657 +#: sql_help.c:5677 msgid "define a new text search configuration" msgstr "визначити нову конфігурацію текстового пошуку" -#: sql_help.c:5663 +#: sql_help.c:5683 msgid "define a new text search dictionary" msgstr "визначити новий словник текстового пошуку" -#: sql_help.c:5669 +#: sql_help.c:5689 msgid "define a new text search parser" msgstr "визначити новий аналізатор текстового пошуку" -#: sql_help.c:5675 +#: sql_help.c:5695 msgid "define a new text search template" msgstr "визначити новий шаблон текстового пошуку" -#: sql_help.c:5681 +#: sql_help.c:5701 msgid "define a new transform" msgstr "визначити нове перетворення" -#: sql_help.c:5687 +#: sql_help.c:5707 msgid "define a new trigger" msgstr "визначити новий тригер" -#: sql_help.c:5693 +#: sql_help.c:5713 msgid "define a new data type" msgstr "визначити новий тип даних" -#: sql_help.c:5705 +#: sql_help.c:5725 msgid "define a new mapping of a user to a foreign server" msgstr "визначити нове зіставлення користувача для стороннього сервера" -#: sql_help.c:5711 +#: sql_help.c:5731 msgid "define a new view" msgstr "визначити нове подання" -#: sql_help.c:5717 +#: sql_help.c:5737 msgid "deallocate a prepared statement" msgstr "звільнити підготовлену команду" -#: sql_help.c:5723 +#: sql_help.c:5743 msgid "define a cursor" msgstr "визначити курсор" -#: sql_help.c:5729 +#: sql_help.c:5749 msgid "delete rows of a table" msgstr "видалити рядки таблиці" -#: sql_help.c:5735 +#: sql_help.c:5755 msgid "discard session state" msgstr "очистити стан сесії" -#: sql_help.c:5741 +#: sql_help.c:5761 msgid "execute an anonymous code block" msgstr "виконати анонімний блок коду" -#: sql_help.c:5747 +#: sql_help.c:5767 msgid "remove an access method" msgstr "видалити метод доступу" -#: sql_help.c:5753 +#: sql_help.c:5773 msgid "remove an aggregate function" msgstr "видалити агрегатну функцію" -#: sql_help.c:5759 +#: sql_help.c:5779 msgid "remove a cast" msgstr "видалити приведення типів" -#: sql_help.c:5765 +#: sql_help.c:5785 msgid "remove a collation" msgstr "видалити правило сортування" -#: sql_help.c:5771 +#: sql_help.c:5791 msgid "remove a conversion" msgstr "видалити перетворення" -#: sql_help.c:5777 +#: sql_help.c:5797 msgid "remove a database" msgstr "видалити базу даних" -#: sql_help.c:5783 +#: sql_help.c:5803 msgid "remove a domain" msgstr "видалити домен" -#: sql_help.c:5789 +#: sql_help.c:5809 msgid "remove an event trigger" msgstr "видалити тригер події" -#: sql_help.c:5795 +#: sql_help.c:5815 msgid "remove an extension" msgstr "видалити розширення" -#: sql_help.c:5801 +#: sql_help.c:5821 msgid "remove a foreign-data wrapper" msgstr "видалити джерело сторонніх даних" -#: sql_help.c:5807 +#: sql_help.c:5827 msgid "remove a foreign table" msgstr "видалити сторонню таблицю" -#: sql_help.c:5813 +#: sql_help.c:5833 msgid "remove a function" msgstr "видалити функцію" -#: sql_help.c:5819 sql_help.c:5885 sql_help.c:5987 +#: sql_help.c:5839 sql_help.c:5905 sql_help.c:6007 msgid "remove a database role" msgstr "видалити роль бази даних" -#: sql_help.c:5825 +#: sql_help.c:5845 msgid "remove an index" msgstr "видалити індекс" -#: sql_help.c:5831 +#: sql_help.c:5851 msgid "remove a procedural language" msgstr "видалити процедурну мову" -#: sql_help.c:5837 +#: sql_help.c:5857 msgid "remove a materialized view" msgstr "видалити матеріалізоване подання" -#: sql_help.c:5843 +#: sql_help.c:5863 msgid "remove an operator" msgstr "видалити оператор" -#: sql_help.c:5849 +#: sql_help.c:5869 msgid "remove an operator class" msgstr "видалити клас операторів" -#: sql_help.c:5855 +#: sql_help.c:5875 msgid "remove an operator family" msgstr "видалити сімейство операторів" -#: sql_help.c:5861 +#: sql_help.c:5881 msgid "remove database objects owned by a database role" msgstr "видалити об'єкти бази даних, що належать ролі" -#: sql_help.c:5867 +#: sql_help.c:5887 msgid "remove a row-level security policy from a table" msgstr "видалити політику безпеки на рівні рядків з таблиці" -#: sql_help.c:5873 +#: sql_help.c:5893 msgid "remove a procedure" msgstr "видалити процедуру" -#: sql_help.c:5879 +#: sql_help.c:5899 msgid "remove a publication" msgstr "видалити публікацію" -#: sql_help.c:5891 +#: sql_help.c:5911 msgid "remove a routine" msgstr "видалити підпрограму" -#: sql_help.c:5897 +#: sql_help.c:5917 msgid "remove a rewrite rule" msgstr "видалити правило перезапису" -#: sql_help.c:5903 +#: sql_help.c:5923 msgid "remove a schema" msgstr "видалити схему" -#: sql_help.c:5909 +#: sql_help.c:5929 msgid "remove a sequence" msgstr "видалити послідовність" -#: sql_help.c:5915 +#: sql_help.c:5935 msgid "remove a foreign server descriptor" msgstr "видалити опис стороннього серверу" -#: sql_help.c:5921 +#: sql_help.c:5941 msgid "remove extended statistics" msgstr "видалити розширену статистику" -#: sql_help.c:5927 +#: sql_help.c:5947 msgid "remove a subscription" msgstr "видалити підписку" -#: sql_help.c:5933 +#: sql_help.c:5953 msgid "remove a table" msgstr "видалити таблицю" -#: sql_help.c:5939 +#: sql_help.c:5959 msgid "remove a tablespace" msgstr "видалити табличний простір" -#: sql_help.c:5945 +#: sql_help.c:5965 msgid "remove a text search configuration" msgstr "видалити конфігурацію тектового пошуку" -#: sql_help.c:5951 +#: sql_help.c:5971 msgid "remove a text search dictionary" msgstr "видалити словник тектового пошуку" -#: sql_help.c:5957 +#: sql_help.c:5977 msgid "remove a text search parser" msgstr "видалити парсер тектового пошуку" -#: sql_help.c:5963 +#: sql_help.c:5983 msgid "remove a text search template" msgstr "видалити шаблон тектового пошуку" -#: sql_help.c:5969 +#: sql_help.c:5989 msgid "remove a transform" msgstr "видалити перетворення" -#: sql_help.c:5975 +#: sql_help.c:5995 msgid "remove a trigger" msgstr "видалити тригер" -#: sql_help.c:5981 +#: sql_help.c:6001 msgid "remove a data type" msgstr "видалити тип даних" -#: sql_help.c:5993 +#: sql_help.c:6013 msgid "remove a user mapping for a foreign server" msgstr "видалити зіставлення користувача для стороннього серверу" -#: sql_help.c:5999 +#: sql_help.c:6019 msgid "remove a view" msgstr "видалити подання" -#: sql_help.c:6011 +#: sql_help.c:6031 msgid "execute a prepared statement" msgstr "виконати підготовлену команду" -#: sql_help.c:6017 +#: sql_help.c:6037 msgid "show the execution plan of a statement" msgstr "показати план виконання команди" -#: sql_help.c:6023 +#: sql_help.c:6043 msgid "retrieve rows from a query using a cursor" msgstr "отримати рядки запиту з курсору" -#: sql_help.c:6029 +#: sql_help.c:6049 msgid "define access privileges" msgstr "визначити права доступу" -#: sql_help.c:6035 +#: sql_help.c:6055 msgid "import table definitions from a foreign server" msgstr "імпортувати визначення таблиць зі стороннього серверу" -#: sql_help.c:6041 +#: sql_help.c:6061 msgid "create new rows in a table" msgstr "створити нові рядки в таблиці" -#: sql_help.c:6047 +#: sql_help.c:6067 msgid "listen for a notification" msgstr "очікувати на повідомлення" -#: sql_help.c:6053 +#: sql_help.c:6073 msgid "load a shared library file" msgstr "завантажити файл спільної бібліотеки" -#: sql_help.c:6059 +#: sql_help.c:6079 msgid "lock a table" msgstr "заблокувати таблицю" -#: sql_help.c:6065 +#: sql_help.c:6085 msgid "conditionally insert, update, or delete rows of a table" msgstr "умовно вставити, оновити або видалити рядки таблиці" -#: sql_help.c:6071 +#: sql_help.c:6091 msgid "position a cursor" msgstr "розташувати курсор" -#: sql_help.c:6077 +#: sql_help.c:6097 msgid "generate a notification" msgstr "згенерувати повідомлення" -#: sql_help.c:6083 +#: sql_help.c:6103 msgid "prepare a statement for execution" msgstr "підготувати команду для виконання" -#: sql_help.c:6089 +#: sql_help.c:6109 msgid "prepare the current transaction for two-phase commit" msgstr "підготувати поточну транзакцію для двохфазного затвердження" -#: sql_help.c:6095 +#: sql_help.c:6115 msgid "change the ownership of database objects owned by a database role" msgstr "змінити власника об'єктів БД, що належать заданій ролі" -#: sql_help.c:6101 +#: sql_help.c:6121 msgid "replace the contents of a materialized view" msgstr "замінити вміст матеріалізованого подання" -#: sql_help.c:6107 +#: sql_help.c:6127 msgid "rebuild indexes" msgstr "перебудувати індекси" -#: sql_help.c:6113 +#: sql_help.c:6133 msgid "destroy a previously defined savepoint" msgstr "видалити раніше визначену точку збереження" -#: sql_help.c:6119 +#: sql_help.c:6139 msgid "restore the value of a run-time parameter to the default value" msgstr "відновити початкове значення параметру виконання" -#: sql_help.c:6125 +#: sql_help.c:6145 msgid "remove access privileges" msgstr "видалити права доступу" -#: sql_help.c:6137 +#: sql_help.c:6157 msgid "cancel a transaction that was earlier prepared for two-phase commit" msgstr "скасувати транзакцію, раніше підготовлену до двохфазного затвердження" -#: sql_help.c:6143 +#: sql_help.c:6163 msgid "roll back to a savepoint" msgstr "відкотитися до точки збереження" -#: sql_help.c:6149 +#: sql_help.c:6169 msgid "define a new savepoint within the current transaction" msgstr "визначити нову точку збереження в рамках поточної транзакції" -#: sql_help.c:6155 +#: sql_help.c:6175 msgid "define or change a security label applied to an object" msgstr "визначити або змінити мітку безпеки, застосовану до об'єкта" -#: sql_help.c:6161 sql_help.c:6215 sql_help.c:6251 +#: sql_help.c:6181 sql_help.c:6235 sql_help.c:6271 msgid "retrieve rows from a table or view" msgstr "отримати рядки з таблиці або подання" -#: sql_help.c:6173 +#: sql_help.c:6193 msgid "change a run-time parameter" msgstr "змінити параметр виконання" -#: sql_help.c:6179 +#: sql_help.c:6199 msgid "set constraint check timing for the current transaction" msgstr "встановити час перевірки обмеження для поточної транзакції" -#: sql_help.c:6185 +#: sql_help.c:6205 msgid "set the current user identifier of the current session" msgstr "встановити ідентифікатор поточного користувача в поточній сесії" -#: sql_help.c:6191 +#: sql_help.c:6211 msgid "set the session user identifier and the current user identifier of the current session" msgstr "встановити ідентифікатор користувача сесії й ідентифікатор поточного користувача в поточній сесії" -#: sql_help.c:6197 +#: sql_help.c:6217 msgid "set the characteristics of the current transaction" msgstr "встановити характеристики поточної транзакції" -#: sql_help.c:6203 +#: sql_help.c:6223 msgid "show the value of a run-time parameter" msgstr "показати значення параметра виконання" -#: sql_help.c:6221 +#: sql_help.c:6241 msgid "empty a table or set of tables" msgstr "очистити таблицю або декілька таблиць" -#: sql_help.c:6227 +#: sql_help.c:6247 msgid "stop listening for a notification" msgstr "припинити очікування повідомлень" -#: sql_help.c:6233 +#: sql_help.c:6253 msgid "update rows of a table" msgstr "змінити рядки таблиці" -#: sql_help.c:6239 +#: sql_help.c:6259 msgid "garbage-collect and optionally analyze a database" msgstr "виконати збір сміття і проаналізувати базу даних" -#: sql_help.c:6245 +#: sql_help.c:6265 msgid "compute a set of rows" msgstr "отримати набір рядків" @@ -6173,7 +6217,7 @@ msgstr "зайвий аргумент \"%s\" проігнорований" msgid "could not find own program executable" msgstr "не вдалося знайти ехе файл власної програми" -#: tab-complete.c:5955 +#: tab-complete.c:5969 #, c-format msgid "tab completion query failed: %s\n" "Query was:\n" diff --git a/src/bin/scripts/po/es.po b/src/bin/scripts/po/es.po index 40d05ab1f6a..80d2ebdbeac 100644 --- a/src/bin/scripts/po/es.po +++ b/src/bin/scripts/po/es.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: pgscripts (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:09+0000\n" +"POT-Creation-Date: 2026-02-06 21:20+0000\n" "PO-Revision-Date: 2022-11-04 13:14+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/interfaces/ecpg/ecpglib/po/es.po b/src/interfaces/ecpg/ecpglib/po/es.po index 47caf7ecd01..c1c7b8a770c 100644 --- a/src/interfaces/ecpg/ecpglib/po/es.po +++ b/src/interfaces/ecpg/ecpglib/po/es.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: ecpglib (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 00:59+0000\n" +"POT-Creation-Date: 2026-02-06 21:10+0000\n" "PO-Revision-Date: 2022-10-20 09:05+0200\n" "Last-Translator: Emanuel Calvo Franco \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/interfaces/ecpg/preproc/po/es.po b/src/interfaces/ecpg/preproc/po/es.po index 89922a27082..25717941f66 100644 --- a/src/interfaces/ecpg/preproc/po/es.po +++ b/src/interfaces/ecpg/preproc/po/es.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: ecpg (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 00:59+0000\n" +"POT-Creation-Date: 2026-02-06 21:11+0000\n" "PO-Revision-Date: 2022-10-20 09:05+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/interfaces/libpq/po/de.po b/src/interfaces/libpq/po/de.po index b1cddf06fda..9e6795cfd83 100644 --- a/src/interfaces/libpq/po/de.po +++ b/src/interfaces/libpq/po/de.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-05-02 01:00+0000\n" -"PO-Revision-Date: 2025-05-02 08:00+0200\n" +"POT-Creation-Date: 2026-02-07 09:01+0000\n" +"PO-Revision-Date: 2026-02-07 10:30+0100\n" "Last-Translator: Peter Eisentraut \n" "Language-Team: German \n" "Language: de\n" @@ -65,16 +65,17 @@ msgstr "konnte Nonce nicht erzeugen\n" #: fe-auth-scram.c:636 fe-auth-scram.c:662 fe-auth-scram.c:677 #: fe-auth-scram.c:727 fe-auth-scram.c:766 fe-auth.c:290 fe-auth.c:362 #: fe-auth.c:398 fe-auth.c:623 fe-auth.c:799 fe-auth.c:1152 fe-auth.c:1322 -#: fe-connect.c:909 fe-connect.c:1458 fe-connect.c:1627 fe-connect.c:2978 -#: fe-connect.c:4827 fe-connect.c:5088 fe-connect.c:5207 fe-connect.c:5459 -#: fe-connect.c:5540 fe-connect.c:5639 fe-connect.c:5895 fe-connect.c:5924 -#: fe-connect.c:5996 fe-connect.c:6020 fe-connect.c:6038 fe-connect.c:6139 -#: fe-connect.c:6148 fe-connect.c:6506 fe-connect.c:6656 fe-connect.c:6922 -#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 -#: fe-exec.c:4197 fe-exec.c:4364 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:968 fe-protocol3.c:983 fe-protocol3.c:1016 -#: fe-protocol3.c:1724 fe-protocol3.c:2127 fe-secure-common.c:112 -#: fe-secure-gssapi.c:500 fe-secure-openssl.c:455 fe-secure-openssl.c:1252 +#: fe-connect.c:910 fe-connect.c:1459 fe-connect.c:1628 fe-connect.c:2979 +#: fe-connect.c:4828 fe-connect.c:5103 fe-connect.c:5222 fe-connect.c:5474 +#: fe-connect.c:5555 fe-connect.c:5654 fe-connect.c:5910 fe-connect.c:5939 +#: fe-connect.c:6011 fe-connect.c:6035 fe-connect.c:6053 fe-connect.c:6154 +#: fe-connect.c:6163 fe-connect.c:6521 fe-connect.c:6671 fe-connect.c:6939 +#: fe-exec.c:715 fe-exec.c:983 fe-exec.c:1331 fe-exec.c:3170 fe-exec.c:3362 +#: fe-exec.c:4236 fe-exec.c:4430 fe-gssapi-common.c:111 fe-lobj.c:884 +#: fe-protocol3.c:969 fe-protocol3.c:984 fe-protocol3.c:1017 +#: fe-protocol3.c:1738 fe-protocol3.c:2141 fe-secure-common.c:112 +#: fe-secure-gssapi.c:512 fe-secure-gssapi.c:687 fe-secure-openssl.c:455 +#: fe-secure-openssl.c:1252 msgid "out of memory\n" msgstr "Speicher aufgebraucht\n" @@ -120,8 +121,8 @@ msgstr "fehlerhafte SCRAM-Nachricht (Müll am Ende der »server-final-message«) msgid "malformed SCRAM message (invalid server signature)\n" msgstr "fehlerhafte SCRAM-Nachricht (ungültige Serversignatur)\n" -#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:207 fe-protocol3.c:232 -#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 +#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:208 fe-protocol3.c:233 +#: fe-protocol3.c:257 fe-protocol3.c:275 fe-protocol3.c:356 fe-protocol3.c:729 msgid "out of memory" msgstr "Speicher aufgebraucht" @@ -261,526 +262,541 @@ msgstr "Wert von password_encryption ist zu lang\n" msgid "unrecognized password encryption algorithm \"%s\"\n" msgstr "unbekannter Passwortverschlüsselungsalgorithmus »%s«\n" -#: fe-connect.c:1092 +#: fe-connect.c:1093 #, c-format msgid "could not match %d host names to %d hostaddr values\n" msgstr "fehlerhafte Angabe: %d Hostnamen und %d hostaddr-Angaben\n" -#: fe-connect.c:1178 +#: fe-connect.c:1179 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "fehlerhafte Angabe: %d Portnummern und %d Hosts\n" -#: fe-connect.c:1271 fe-connect.c:1297 fe-connect.c:1339 fe-connect.c:1348 -#: fe-connect.c:1381 fe-connect.c:1425 +#: fe-connect.c:1272 fe-connect.c:1298 fe-connect.c:1340 fe-connect.c:1349 +#: fe-connect.c:1382 fe-connect.c:1426 #, c-format msgid "invalid %s value: \"%s\"\n" msgstr "ungültiger %s-Wert: »%s«\n" -#: fe-connect.c:1318 +#: fe-connect.c:1319 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "sslmode-Wert »%s« ist ungültig, wenn SSL-Unterstützung nicht einkompiliert worden ist\n" -#: fe-connect.c:1366 +#: fe-connect.c:1367 msgid "invalid SSL protocol version range\n" msgstr "ungültiges SSL-Protokollsintervall\n" -#: fe-connect.c:1391 +#: fe-connect.c:1392 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "gssencmode-Wert »%s« ist ungültig, wenn GSSAPI-Unterstützung nicht einkompiliert worden ist\n" -#: fe-connect.c:1651 +#: fe-connect.c:1652 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "konnte Socket nicht auf TCP »No Delay«-Modus umstellen: %s\n" -#: fe-connect.c:1713 +#: fe-connect.c:1714 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "Verbindung zum Server auf Socket »%s« fehlgeschlagen: " -#: fe-connect.c:1740 +#: fe-connect.c:1741 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "Verbindung zum Server auf »%s« (%s), Port %s fehlgeschlagen: " -#: fe-connect.c:1745 +#: fe-connect.c:1746 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "Verbindung zum Server auf »%s«, Port %s fehlgeschlagen: " -#: fe-connect.c:1770 +#: fe-connect.c:1771 msgid "\tIs the server running locally and accepting connections on that socket?\n" msgstr "\tLäuft der Server lokal und akzeptiert er Verbindungen auf diesem Socket?\n" -#: fe-connect.c:1774 +#: fe-connect.c:1775 msgid "\tIs the server running on that host and accepting TCP/IP connections?\n" msgstr "\tLäuft der Server auf diesem Host und akzeptiert er TCP/IP-Verbindungen?\n" -#: fe-connect.c:1838 +#: fe-connect.c:1839 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "ungültiger Zahlenwert »%s« für Verbindungsoption »%s«\n" -#: fe-connect.c:1868 fe-connect.c:1903 fe-connect.c:1939 fe-connect.c:2039 -#: fe-connect.c:2652 +#: fe-connect.c:1869 fe-connect.c:1904 fe-connect.c:1940 fe-connect.c:2040 +#: fe-connect.c:2653 #, c-format msgid "%s(%s) failed: %s\n" msgstr "%s(%s) fehlgeschlagen: %s\n" -#: fe-connect.c:2004 +#: fe-connect.c:2005 #, c-format msgid "%s(%s) failed: error code %d\n" msgstr "%s(%s) fehlgeschlagen: Fehlercode %d\n" -#: fe-connect.c:2319 +#: fe-connect.c:2320 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "ungültiger Verbindungszustand, möglicherweise ein Speicherproblem\n" -#: fe-connect.c:2398 +#: fe-connect.c:2399 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "ungültige Portnummer: »%s«\n" -#: fe-connect.c:2414 +#: fe-connect.c:2415 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "konnte Hostnamen »%s« nicht in Adresse übersetzen: %s\n" -#: fe-connect.c:2427 +#: fe-connect.c:2428 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "konnte Netzwerkadresse »%s« nicht interpretieren: %s\n" -#: fe-connect.c:2440 +#: fe-connect.c:2441 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Unix-Domain-Socket-Pfad »%s« ist zu lang (maximal %d Bytes)\n" -#: fe-connect.c:2455 +#: fe-connect.c:2456 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "konnte Unix-Domain-Socket-Pfad »%s« nicht in Adresse übersetzen: %s\n" -#: fe-connect.c:2581 +#: fe-connect.c:2582 #, c-format msgid "could not create socket: %s\n" msgstr "konnte Socket nicht erzeugen: %s\n" -#: fe-connect.c:2612 +#: fe-connect.c:2613 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "konnte Socket nicht auf nicht-blockierenden Modus umstellen: %s\n" -#: fe-connect.c:2622 +#: fe-connect.c:2623 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "konnte Socket nicht auf »Close on exec«-Modus umstellen: %s\n" -#: fe-connect.c:2780 +#: fe-connect.c:2781 #, c-format msgid "could not get socket error status: %s\n" msgstr "konnte Socket-Fehlerstatus nicht ermitteln: %s\n" -#: fe-connect.c:2808 +#: fe-connect.c:2809 #, c-format msgid "could not get client address from socket: %s\n" msgstr "konnte Client-Adresse vom Socket nicht ermitteln: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2848 msgid "requirepeer parameter is not supported on this platform\n" msgstr "Parameter »requirepeer« wird auf dieser Plattform nicht unterstützt\n" -#: fe-connect.c:2850 +#: fe-connect.c:2851 #, c-format msgid "could not get peer credentials: %s\n" msgstr "konnte Credentials von Gegenstelle nicht ermitteln: %s\n" -#: fe-connect.c:2864 +#: fe-connect.c:2865 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer gibt »%s« an, aber tatsächlicher Benutzername der Gegenstelle ist »%s«\n" -#: fe-connect.c:2906 +#: fe-connect.c:2907 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "konnte Paket zur GSSAPI-Verhandlung nicht senden: %s\n" -#: fe-connect.c:2918 +#: fe-connect.c:2919 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "GSSAPI-Verschlüsselung war gefordert aber war nicht möglich (möglicherweise kein Credential-Cache, keine Serverunterstützung oder lokales Socket wird verwendet)\n" -#: fe-connect.c:2960 +#: fe-connect.c:2961 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "konnte Paket zur SSL-Verhandlung nicht senden: %s\n" -#: fe-connect.c:2991 +#: fe-connect.c:2992 #, c-format msgid "could not send startup packet: %s\n" msgstr "konnte Startpaket nicht senden: %s\n" -#: fe-connect.c:3067 +#: fe-connect.c:3068 msgid "server does not support SSL, but SSL was required\n" msgstr "Server unterstützt kein SSL, aber SSL wurde verlangt\n" -#: fe-connect.c:3085 +#: fe-connect.c:3086 msgid "server sent an error response during SSL exchange\n" msgstr "Server hat während des SSL-Austauschs eine Fehlermeldung gesendet\n" -#: fe-connect.c:3091 +#: fe-connect.c:3092 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "ungültige Antwort auf SSL-Verhandlungspaket empfangen: %c\n" -#: fe-connect.c:3112 +#: fe-connect.c:3113 msgid "received unencrypted data after SSL response\n" msgstr "unverschlüsselte Daten nach SSL-Antwort empfangen\n" -#: fe-connect.c:3193 +#: fe-connect.c:3194 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "Server unterstützt keine GSSAPI-Verschlüsselung, sie wurde aber verlangt\n" -#: fe-connect.c:3205 +#: fe-connect.c:3206 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "ungültige Antwort auf GSSAPI-Verhandlungspaket empfangen: %c\n" -#: fe-connect.c:3224 +#: fe-connect.c:3225 msgid "received unencrypted data after GSSAPI encryption response\n" msgstr "unverschlüsselte Daten nach GSSAPI-Verschlüsselungsantwort empfangen\n" -#: fe-connect.c:3289 fe-connect.c:3314 +#: fe-connect.c:3290 fe-connect.c:3315 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "Authentifizierungsanfrage wurde vom Server erwartet, aber %c wurde empfangen\n" -#: fe-connect.c:3521 +#: fe-connect.c:3522 msgid "unexpected message from server during startup\n" msgstr "unerwartete Nachricht vom Server beim Start\n" -#: fe-connect.c:3613 +#: fe-connect.c:3614 msgid "session is read-only\n" msgstr "Sitzung ist read-only\n" -#: fe-connect.c:3616 +#: fe-connect.c:3617 msgid "session is not read-only\n" msgstr "Sitzung ist nicht read-only\n" -#: fe-connect.c:3670 +#: fe-connect.c:3671 msgid "server is in hot standby mode\n" msgstr "Server ist im Hot-Standby-Modus\n" -#: fe-connect.c:3673 +#: fe-connect.c:3674 msgid "server is not in hot standby mode\n" msgstr "Server ist nicht im Hot-Standby-Modus\n" -#: fe-connect.c:3791 fe-connect.c:3843 +#: fe-connect.c:3792 fe-connect.c:3844 #, c-format msgid "\"%s\" failed\n" msgstr "»%s« fehlgeschlagen\n" -#: fe-connect.c:3857 +#: fe-connect.c:3858 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "ungültiger Verbindungszustand %d, möglicherweise ein Speicherproblem\n" -#: fe-connect.c:4840 +#: fe-connect.c:4841 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "ungültige LDAP-URL »%s«: Schema muss ldap:// sein\n" -#: fe-connect.c:4855 +#: fe-connect.c:4856 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "ungültige LDAP-URL »%s«: Distinguished Name fehlt\n" -#: fe-connect.c:4867 fe-connect.c:4925 +#: fe-connect.c:4868 fe-connect.c:4926 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "ungültige LDAP-URL »%s«: muss genau ein Attribut haben\n" -#: fe-connect.c:4879 fe-connect.c:4941 +#: fe-connect.c:4880 fe-connect.c:4942 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "ungültige LDAP-URL »%s«: Suchbereich fehlt (base/one/sub)\n" -#: fe-connect.c:4891 +#: fe-connect.c:4892 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "ungültige LDAP-URL »%s«: kein Filter\n" -#: fe-connect.c:4913 +#: fe-connect.c:4914 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "ungültige LDAP-URL »%s«: ungültige Portnummer\n" -#: fe-connect.c:4951 +#: fe-connect.c:4952 msgid "could not create LDAP structure\n" msgstr "konnte LDAP-Struktur nicht erzeugen\n" -#: fe-connect.c:5027 +#: fe-connect.c:5028 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "Suche auf LDAP-Server fehlgeschlagen: %s\n" -#: fe-connect.c:5038 +#: fe-connect.c:5039 msgid "more than one entry found on LDAP lookup\n" msgstr "LDAP-Suche ergab mehr als einen Eintrag\n" -#: fe-connect.c:5039 fe-connect.c:5051 +#: fe-connect.c:5040 fe-connect.c:5052 msgid "no entry found on LDAP lookup\n" msgstr "kein Eintrag gefunden bei LDAP-Suche\n" -#: fe-connect.c:5062 fe-connect.c:5075 +#: fe-connect.c:5063 fe-connect.c:5076 msgid "attribute has no values on LDAP lookup\n" msgstr "Attribut hat keine Werte bei LDAP-Suche\n" -#: fe-connect.c:5127 fe-connect.c:5146 fe-connect.c:5678 +#: fe-connect.c:5090 +#, c-format +msgid "connection info string size exceeds the maximum allowed (%d)\n" +msgstr "Größe der Verbindungsinfo-Zeichenkette überschreitet erlaubtes Maximum (%d)\n" + +#: fe-connect.c:5142 fe-connect.c:5161 fe-connect.c:5693 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "fehlendes »=« nach »%s« in der Zeichenkette der Verbindungsdaten\n" -#: fe-connect.c:5219 fe-connect.c:5863 fe-connect.c:6639 +#: fe-connect.c:5234 fe-connect.c:5878 fe-connect.c:6654 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "ungültige Verbindungsoption »%s«\n" -#: fe-connect.c:5235 fe-connect.c:5727 +#: fe-connect.c:5250 fe-connect.c:5742 msgid "unterminated quoted string in connection info string\n" msgstr "fehlendes schließendes Anführungszeichen (\") in der Zeichenkette der Verbindungsdaten\n" -#: fe-connect.c:5316 +#: fe-connect.c:5331 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "Definition von Service »%s« nicht gefunden\n" -#: fe-connect.c:5342 +#: fe-connect.c:5357 #, c-format msgid "service file \"%s\" not found\n" msgstr "Servicedatei »%s« nicht gefunden\n" -#: fe-connect.c:5356 +#: fe-connect.c:5371 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "Zeile %d zu lang in Servicedatei »%s«\n" -#: fe-connect.c:5427 fe-connect.c:5471 +#: fe-connect.c:5442 fe-connect.c:5486 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "Syntaxfehler in Servicedatei »%s«, Zeile %d\n" -#: fe-connect.c:5438 +#: fe-connect.c:5453 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "geschachtelte »service«-Definitionen werden nicht unterstützt in Servicedatei »%s«, Zeile %d\n" -#: fe-connect.c:6159 +#: fe-connect.c:6174 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "ungültige URI an interne Parserroutine weitergeleitet: »%s«\n" -#: fe-connect.c:6236 +#: fe-connect.c:6251 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "Ende der Eingabezeichenkette gefunden beim Suchen nach passendem »]« in IPv6-Hostadresse in URI: »%s«\n" -#: fe-connect.c:6243 +#: fe-connect.c:6258 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6-Hostadresse darf nicht leer sein in URI: »%s«\n" -#: fe-connect.c:6258 +#: fe-connect.c:6273 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "unerwartetes Zeichen »%c« an Position %d in URI (»:« oder »/« erwartet): »%s«\n" -#: fe-connect.c:6388 +#: fe-connect.c:6403 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "zusätzliches Schlüssel/Wert-Trennzeichen »=« in URI-Query-Parameter: »%s«\n" -#: fe-connect.c:6408 +#: fe-connect.c:6423 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "fehlendes Schlüssel/Wert-Trennzeichen »=« in URI-Query-Parameter: »%s«\n" -#: fe-connect.c:6460 +#: fe-connect.c:6475 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "ungültiger URI-Query-Parameter: »%s«\n" -#: fe-connect.c:6534 +#: fe-connect.c:6549 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "ungültiges Prozent-kodiertes Token: »%s«\n" -#: fe-connect.c:6544 +#: fe-connect.c:6559 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "verbotener Wert %%00 in Prozent-kodiertem Wert: »%s«\n" -#: fe-connect.c:6914 +#: fe-connect.c:6931 msgid "connection pointer is NULL\n" msgstr "Verbindung ist ein NULL-Zeiger\n" -#: fe-connect.c:7202 +#: fe-connect.c:7219 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "WARNUNG: Passwortdatei »%s« ist keine normale Datei\n" -#: fe-connect.c:7211 +#: fe-connect.c:7228 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "WARNUNG: Passwortdatei »%s« erlaubt Lesezugriff für Gruppe oder Andere; Rechte sollten u=rw (0600) oder weniger sein\n" -#: fe-connect.c:7319 +#: fe-connect.c:7336 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "Passwort wurde aus Datei »%s« gelesen\n" -#: fe-exec.c:466 fe-exec.c:3431 +#: fe-exec.c:466 fe-exec.c:3436 #, c-format msgid "row number %d is out of range 0..%d" msgstr "Zeilennummer %d ist außerhalb des zulässigen Bereichs 0..%d" -#: fe-exec.c:528 fe-protocol3.c:1932 +#: fe-exec.c:528 fe-protocol3.c:1946 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:836 +#: fe-exec.c:841 msgid "write to server failed\n" msgstr "Schreiben zum Server fehlgeschlagen\n" -#: fe-exec.c:877 +#: fe-exec.c:882 msgid "no error text available\n" msgstr "kein Fehlertext verfügbar\n" -#: fe-exec.c:966 +#: fe-exec.c:971 msgid "NOTICE" msgstr "HINWEIS" -#: fe-exec.c:1024 +#: fe-exec.c:1029 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult kann nicht mehr als INT_MAX Tupel enthalten" -#: fe-exec.c:1036 +#: fe-exec.c:1041 msgid "size_t overflow" msgstr "Überlauf von size_t" -#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 +#: fe-exec.c:1455 fe-exec.c:1526 fe-exec.c:1575 msgid "command string is a null pointer\n" msgstr "Befehlszeichenkette ist ein NULL-Zeiger\n" -#: fe-exec.c:1457 fe-exec.c:2908 +#: fe-exec.c:1462 fe-exec.c:2913 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "%s im Pipeline-Modus nicht erlaubt\n" -#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 +#: fe-exec.c:1532 fe-exec.c:1581 fe-exec.c:1677 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "Anzahl der Parameter muss zwischen 0 und %d sein\n" -#: fe-exec.c:1564 fe-exec.c:1666 +#: fe-exec.c:1569 fe-exec.c:1671 msgid "statement name is a null pointer\n" msgstr "Anweisungsname ist ein NULL-Zeiger\n" -#: fe-exec.c:1710 fe-exec.c:3276 +#: fe-exec.c:1715 fe-exec.c:3281 msgid "no connection to the server\n" msgstr "keine Verbindung mit dem Server\n" -#: fe-exec.c:1719 fe-exec.c:3285 +#: fe-exec.c:1724 fe-exec.c:3290 msgid "another command is already in progress\n" msgstr "ein anderer Befehl ist bereits in Ausführung\n" -#: fe-exec.c:1750 +#: fe-exec.c:1755 msgid "cannot queue commands during COPY\n" msgstr "während COPY können keine Befehle aufgereiht werden\n" -#: fe-exec.c:1868 +#: fe-exec.c:1873 msgid "length must be given for binary parameter\n" msgstr "für binäre Parameter muss eine Länge angegeben werden\n" -#: fe-exec.c:2183 +#: fe-exec.c:2188 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "unerwarteter asyncStatus: %d\n" -#: fe-exec.c:2341 +#: fe-exec.c:2346 msgid "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "synchrone Befehlsausführungsfunktionen sind im Pipeline-Modus nicht erlaubt\n" -#: fe-exec.c:2358 +#: fe-exec.c:2363 msgid "COPY terminated by new PQexec" msgstr "COPY von neuem PQexec beendet" -#: fe-exec.c:2375 +#: fe-exec.c:2380 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec ist während COPY BOTH nicht erlaubt\n" -#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 +#: fe-exec.c:2608 fe-exec.c:2664 fe-exec.c:2733 fe-protocol3.c:1877 msgid "no COPY in progress\n" msgstr "keine COPY in Ausführung\n" -#: fe-exec.c:2917 +#: fe-exec.c:2922 msgid "connection in wrong state\n" msgstr "Verbindung im falschen Zustand\n" -#: fe-exec.c:2961 +#: fe-exec.c:2966 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "kann Pipeline-Modus nicht einschalten, Verbindung ist nicht inaktiv\n" -#: fe-exec.c:2998 fe-exec.c:3022 +#: fe-exec.c:3003 fe-exec.c:3027 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "kann Pipeline-Modus nicht beenden, wegen nicht eingesammelter Ergebnisse\n" -#: fe-exec.c:3003 +#: fe-exec.c:3008 msgid "cannot exit pipeline mode while busy\n" msgstr "kann Pipeline-Modus nicht beenden während die Verbindung beschäftigt ist\n" -#: fe-exec.c:3015 +#: fe-exec.c:3020 msgid "cannot exit pipeline mode while in COPY\n" msgstr "kann Pipeline-Modus nicht beenden während COPY aktiv ist\n" -#: fe-exec.c:3209 +#: fe-exec.c:3214 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "Pipeline kann nicht gesendet werden, wenn der Pipeline-Modus aus ist\n" -#: fe-exec.c:3320 +#: fe-exec.c:3325 msgid "invalid ExecStatusType code" msgstr "ungültiger ExecStatusType-Kode" -#: fe-exec.c:3347 +#: fe-exec.c:3352 msgid "PGresult is not an error result\n" msgstr "PGresult ist kein Fehlerresultat\n" -#: fe-exec.c:3415 fe-exec.c:3438 +#: fe-exec.c:3420 fe-exec.c:3443 #, c-format msgid "column number %d is out of range 0..%d" msgstr "Spaltennummer %d ist außerhalb des zulässigen Bereichs 0..%d" -#: fe-exec.c:3453 +#: fe-exec.c:3458 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "Parameternummer %d ist außerhalb des zulässigen Bereichs 0..%d" -#: fe-exec.c:3764 +#: fe-exec.c:3769 #, c-format msgid "could not interpret result from server: %s" msgstr "konnte Ergebnis vom Server nicht interpretieren: %s" -#: fe-exec.c:4043 fe-exec.c:4157 +#: fe-exec.c:4049 fe-exec.c:4185 msgid "incomplete multibyte character\n" msgstr "unvollständiges Mehrbyte-Zeichen\n" -#: fe-exec.c:4046 fe-exec.c:4177 +#: fe-exec.c:4052 fe-exec.c:4205 msgid "invalid multibyte character\n" msgstr "ungültiges Mehrbytezeichen\n" +#: fe-exec.c:4308 +#, c-format +msgid "escaped string size exceeds the maximum allowed (%zu)\n" +msgstr "Größe der escapten Zeichenkette überschreitet erlaubtes Maximum (%zu)\n" + +#: fe-exec.c:4486 +#, c-format +msgid "escaped bytea size exceeds the maximum allowed (%zu)\n" +msgstr "Größe des escapten bytea-Wertes überschreitet erlaubtes Maximum (%zu)\n" + #: fe-gssapi-common.c:124 msgid "GSSAPI name import error" msgstr "GSSAPI-Namensimportfehler" @@ -833,11 +849,11 @@ msgstr "Integer der Größe %lu wird von pqGetInt nicht unterstützt" msgid "integer of size %lu not supported by pqPutInt" msgstr "Integer der Größe %lu wird von pqPutInt nicht unterstützt" -#: fe-misc.c:576 fe-misc.c:822 +#: fe-misc.c:602 fe-misc.c:848 msgid "connection not open\n" msgstr "Verbindung nicht offen\n" -#: fe-misc.c:755 fe-secure-openssl.c:213 fe-secure-openssl.c:326 +#: fe-misc.c:781 fe-secure-openssl.c:213 fe-secure-openssl.c:326 #: fe-secure.c:262 fe-secure.c:430 #, c-format msgid "" @@ -849,146 +865,146 @@ msgstr "" "\tDas heißt wahrscheinlich, dass der Server abnormal beendete\n" "\tbevor oder während die Anweisung bearbeitet wurde.\n" -#: fe-misc.c:1008 +#: fe-misc.c:1034 msgid "timeout expired\n" msgstr "Timeout abgelaufen\n" -#: fe-misc.c:1053 +#: fe-misc.c:1079 msgid "invalid socket\n" msgstr "ungültiges Socket\n" -#: fe-misc.c:1076 +#: fe-misc.c:1102 #, c-format msgid "%s() failed: %s\n" msgstr "%s() fehlgeschlagen: %s\n" -#: fe-protocol3.c:184 +#: fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "Nachricht vom Typ 0x%02x kam vom Server im Ruhezustand" -#: fe-protocol3.c:388 +#: fe-protocol3.c:389 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "Server sendete Daten (»D«-Nachricht) ohne vorherige Zeilenbeschreibung (»T«-Nachricht)\n" -#: fe-protocol3.c:431 +#: fe-protocol3.c:432 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "unerwartete Antwort vom Server; erstes empfangenes Zeichen war »%c«\n" -#: fe-protocol3.c:456 +#: fe-protocol3.c:457 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "Nachrichteninhalt stimmt nicht mit Länge in Nachrichtentyp »%c« überein\n" -#: fe-protocol3.c:476 +#: fe-protocol3.c:477 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "Synchronisation mit Server verloren: Nachrichtentyp »%c« empfangen, Länge %d\n" -#: fe-protocol3.c:528 fe-protocol3.c:568 +#: fe-protocol3.c:529 fe-protocol3.c:569 msgid "insufficient data in \"T\" message" msgstr "nicht genug Daten in »T«-Nachricht" -#: fe-protocol3.c:639 fe-protocol3.c:845 +#: fe-protocol3.c:640 fe-protocol3.c:846 msgid "out of memory for query result" msgstr "Speicher für Anfrageergebnis aufgebraucht" -#: fe-protocol3.c:708 +#: fe-protocol3.c:709 msgid "insufficient data in \"t\" message" msgstr "nicht genug Daten in »t«-Nachricht" -#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 +#: fe-protocol3.c:768 fe-protocol3.c:800 fe-protocol3.c:818 msgid "insufficient data in \"D\" message" msgstr "nicht genug Daten in »D«-Nachricht" -#: fe-protocol3.c:773 +#: fe-protocol3.c:774 msgid "unexpected field count in \"D\" message" msgstr "unerwartete Feldzahl in »D«-Nachricht" -#: fe-protocol3.c:1029 +#: fe-protocol3.c:1030 msgid "no error message available\n" msgstr "keine Fehlermeldung verfügbar\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1077 fe-protocol3.c:1096 +#: fe-protocol3.c:1078 fe-protocol3.c:1097 #, c-format msgid " at character %s" msgstr " bei Zeichen %s" -#: fe-protocol3.c:1109 +#: fe-protocol3.c:1110 #, c-format msgid "DETAIL: %s\n" msgstr "DETAIL: %s\n" -#: fe-protocol3.c:1112 +#: fe-protocol3.c:1113 #, c-format msgid "HINT: %s\n" msgstr "TIP: %s\n" -#: fe-protocol3.c:1115 +#: fe-protocol3.c:1116 #, c-format msgid "QUERY: %s\n" msgstr "ANFRAGE: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1123 #, c-format msgid "CONTEXT: %s\n" msgstr "KONTEXT: %s\n" -#: fe-protocol3.c:1131 +#: fe-protocol3.c:1132 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMANAME: %s\n" -#: fe-protocol3.c:1135 +#: fe-protocol3.c:1136 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABELLENNAME: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1140 #, c-format msgid "COLUMN NAME: %s\n" msgstr "SPALTENNAME: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1144 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATENTYPNAME: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1148 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "CONSTRAINT-NAME: %s\n" -#: fe-protocol3.c:1159 +#: fe-protocol3.c:1160 msgid "LOCATION: " msgstr "ORT: " -#: fe-protocol3.c:1161 +#: fe-protocol3.c:1162 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1163 +#: fe-protocol3.c:1164 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1358 +#: fe-protocol3.c:1372 #, c-format msgid "LINE %d: " msgstr "ZEILE %d: " -#: fe-protocol3.c:1757 +#: fe-protocol3.c:1771 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline: Text COPY OUT nicht ausgeführt\n" -#: fe-protocol3.c:2134 +#: fe-protocol3.c:2148 msgid "protocol error: no function result\n" msgstr "Protokollfehler: kein Funktionsergebnis\n" -#: fe-protocol3.c:2146 +#: fe-protocol3.c:2160 #, c-format msgid "protocol error: id=0x%x\n" msgstr "Protokollfehler: id=0x%x\n" @@ -1020,44 +1036,40 @@ msgstr "Server-Zertifikat für »%s« stimmt nicht mit dem Hostnamen »%s« übe msgid "could not get server's host name from server certificate\n" msgstr "konnte Hostnamen des Servers nicht aus dem Serverzertifikat ermitteln\n" -#: fe-secure-gssapi.c:194 +#: fe-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "GSSAPI-Wrap-Fehler" -#: fe-secure-gssapi.c:202 +#: fe-secure-gssapi.c:209 msgid "outgoing GSSAPI message would not use confidentiality\n" msgstr "ausgehende GSSAPI-Nachricht würde keine Vertraulichkeit verwenden\n" -#: fe-secure-gssapi.c:210 +#: fe-secure-gssapi.c:217 fe-secure-gssapi.c:715 #, c-format msgid "client tried to send oversize GSSAPI packet (%zu > %zu)\n" msgstr "Client versuchte übergroßes GSSAPI-Paket zu senden (%zu > %zu)\n" -#: fe-secure-gssapi.c:350 fe-secure-gssapi.c:594 +#: fe-secure-gssapi.c:357 fe-secure-gssapi.c:607 #, c-format msgid "oversize GSSAPI packet sent by the server (%zu > %zu)\n" msgstr "übergroßes GSSAPI-Paket vom Server gesendet (%zu > %zu)\n" -#: fe-secure-gssapi.c:389 +#: fe-secure-gssapi.c:396 msgid "GSSAPI unwrap error" msgstr "GSSAPI-Unwrap-Fehler" -#: fe-secure-gssapi.c:399 +#: fe-secure-gssapi.c:406 msgid "incoming GSSAPI message did not use confidentiality\n" msgstr "eingehende GSSAPI-Nachricht verwendete keine Vertraulichkeit\n" -#: fe-secure-gssapi.c:640 +#: fe-secure-gssapi.c:653 msgid "could not initiate GSSAPI security context" msgstr "konnte GSSAPI-Sicherheitskontext nicht initiieren" -#: fe-secure-gssapi.c:668 +#: fe-secure-gssapi.c:703 msgid "GSSAPI size check error" msgstr "GSSAPI-Fehler bei der Größenprüfung" -#: fe-secure-gssapi.c:679 -msgid "GSSAPI context establishment error" -msgstr "GSSAPI-Fehler beim Einrichten des Kontexts" - #: fe-secure-openssl.c:218 fe-secure-openssl.c:331 fe-secure-openssl.c:1492 #, c-format msgid "SSL SYSCALL error: %s\n" diff --git a/src/interfaces/libpq/po/es.po b/src/interfaces/libpq/po/es.po index f89fb67eab7..1c4b47ed750 100644 --- a/src/interfaces/libpq/po/es.po +++ b/src/interfaces/libpq/po/es.po @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: libpq (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 01:00+0000\n" -"PO-Revision-Date: 2025-02-15 12:01+0100\n" +"POT-Creation-Date: 2026-02-06 21:11+0000\n" +"PO-Revision-Date: 2025-12-06 09:55+0100\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" "Language: es\n" @@ -71,15 +71,15 @@ msgstr "no se pudo generar nonce\n" #: fe-auth-scram.c:636 fe-auth-scram.c:662 fe-auth-scram.c:677 #: fe-auth-scram.c:727 fe-auth-scram.c:766 fe-auth.c:290 fe-auth.c:362 #: fe-auth.c:398 fe-auth.c:623 fe-auth.c:799 fe-auth.c:1152 fe-auth.c:1322 -#: fe-connect.c:909 fe-connect.c:1458 fe-connect.c:1627 fe-connect.c:2978 -#: fe-connect.c:4827 fe-connect.c:5088 fe-connect.c:5207 fe-connect.c:5459 -#: fe-connect.c:5540 fe-connect.c:5639 fe-connect.c:5895 fe-connect.c:5924 -#: fe-connect.c:5996 fe-connect.c:6020 fe-connect.c:6038 fe-connect.c:6139 -#: fe-connect.c:6148 fe-connect.c:6506 fe-connect.c:6656 fe-connect.c:6924 -#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 -#: fe-exec.c:4199 fe-exec.c:4366 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:968 fe-protocol3.c:983 fe-protocol3.c:1016 -#: fe-protocol3.c:1724 fe-protocol3.c:2127 fe-secure-common.c:112 +#: fe-connect.c:910 fe-connect.c:1459 fe-connect.c:1628 fe-connect.c:2979 +#: fe-connect.c:4828 fe-connect.c:5103 fe-connect.c:5222 fe-connect.c:5474 +#: fe-connect.c:5555 fe-connect.c:5654 fe-connect.c:5910 fe-connect.c:5939 +#: fe-connect.c:6011 fe-connect.c:6035 fe-connect.c:6053 fe-connect.c:6154 +#: fe-connect.c:6163 fe-connect.c:6521 fe-connect.c:6671 fe-connect.c:6939 +#: fe-exec.c:715 fe-exec.c:983 fe-exec.c:1331 fe-exec.c:3170 fe-exec.c:3362 +#: fe-exec.c:4236 fe-exec.c:4430 fe-gssapi-common.c:111 fe-lobj.c:884 +#: fe-protocol3.c:969 fe-protocol3.c:984 fe-protocol3.c:1017 +#: fe-protocol3.c:1738 fe-protocol3.c:2141 fe-secure-common.c:112 #: fe-secure-gssapi.c:512 fe-secure-gssapi.c:687 fe-secure-openssl.c:455 #: fe-secure-openssl.c:1252 msgid "out of memory\n" @@ -127,8 +127,8 @@ msgstr "mensaje SCRAM mal formado (se encontró basura al final de server-final- msgid "malformed SCRAM message (invalid server signature)\n" msgstr "mensaje SCRAM mal formado (la signatura del servidor no es válida)\n" -#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:207 fe-protocol3.c:232 -#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 +#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:208 fe-protocol3.c:233 +#: fe-protocol3.c:257 fe-protocol3.c:275 fe-protocol3.c:356 fe-protocol3.c:729 msgid "out of memory" msgstr "memoria agotada" @@ -268,526 +268,541 @@ msgstr "el valor para password_encryption es demasiado largo\n" msgid "unrecognized password encryption algorithm \"%s\"\n" msgstr "algoritmo para cifrado de contraseña «%s» desconocido\n" -#: fe-connect.c:1092 +#: fe-connect.c:1093 #, c-format msgid "could not match %d host names to %d hostaddr values\n" msgstr "no se pudo emparejar %d nombres de host a %d direcciones de host\n" -#: fe-connect.c:1178 +#: fe-connect.c:1179 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "no se pudo emparejar %d números de puertos a %d hosts\n" -#: fe-connect.c:1271 fe-connect.c:1297 fe-connect.c:1339 fe-connect.c:1348 -#: fe-connect.c:1381 fe-connect.c:1425 +#: fe-connect.c:1272 fe-connect.c:1298 fe-connect.c:1340 fe-connect.c:1349 +#: fe-connect.c:1382 fe-connect.c:1426 #, c-format msgid "invalid %s value: \"%s\"\n" msgstr "valor %s no válido: «%s»\n" -#: fe-connect.c:1318 +#: fe-connect.c:1319 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "el valor sslmode «%s» no es válido cuando no se ha compilado con soporte SSL\n" -#: fe-connect.c:1366 +#: fe-connect.c:1367 msgid "invalid SSL protocol version range\n" msgstr "rango de protocolo SSL no válido \n" -#: fe-connect.c:1391 +#: fe-connect.c:1392 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "el valor gssencmode «%s» no es válido cuando no se ha compilado con soporte GSSAPI\n" -#: fe-connect.c:1651 +#: fe-connect.c:1652 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "no se pudo establecer el socket en modo TCP sin retardo: %s\n" -#: fe-connect.c:1713 +#: fe-connect.c:1714 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "falló la conexión al servidor en el socket «%s»: " -#: fe-connect.c:1740 +#: fe-connect.c:1741 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "falló la conexión al servidor en «%s» (%s), puerto %s: " -#: fe-connect.c:1745 +#: fe-connect.c:1746 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "falló la conexión al servidor en «%s», puerto %s: " -#: fe-connect.c:1770 +#: fe-connect.c:1771 msgid "\tIs the server running locally and accepting connections on that socket?\n" msgstr "\t¿Está el servidor en ejecución localmente y aceptando conexiones en ese socket?\n" -#: fe-connect.c:1774 +#: fe-connect.c:1775 msgid "\tIs the server running on that host and accepting TCP/IP connections?\n" msgstr "\t¿Está el servidor en ejecución en ese host y aceptando conexiones TCP/IP?\n" -#: fe-connect.c:1838 +#: fe-connect.c:1839 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "valor entero «%s» no válido para la opción de conexión «%s»\n" -#: fe-connect.c:1868 fe-connect.c:1903 fe-connect.c:1939 fe-connect.c:2039 -#: fe-connect.c:2652 +#: fe-connect.c:1869 fe-connect.c:1904 fe-connect.c:1940 fe-connect.c:2040 +#: fe-connect.c:2653 #, c-format msgid "%s(%s) failed: %s\n" msgstr "%s(%s) falló: %s\n" -#: fe-connect.c:2004 +#: fe-connect.c:2005 #, c-format msgid "%s(%s) failed: error code %d\n" msgstr "%s(%s) falló: código de error %d\n" -#: fe-connect.c:2319 +#: fe-connect.c:2320 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "el estado de conexión no es válido, probablemente por corrupción de memoria\n" -#: fe-connect.c:2398 +#: fe-connect.c:2399 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "número de puerto no válido: «%s»\n" -#: fe-connect.c:2414 +#: fe-connect.c:2415 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "no se pudo traducir el nombre «%s» a una dirección: %s\n" -#: fe-connect.c:2427 +#: fe-connect.c:2428 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "no se pudo interpretar la dirección de red «%s»: %s\n" -#: fe-connect.c:2440 +#: fe-connect.c:2441 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "la ruta del socket de dominio Unix «%s» es demasiado larga (máximo %d bytes)\n" -#: fe-connect.c:2455 +#: fe-connect.c:2456 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "no se pudo traducir la ruta del socket Unix «%s» a una dirección: %s\n" -#: fe-connect.c:2581 +#: fe-connect.c:2582 #, c-format msgid "could not create socket: %s\n" msgstr "no se pudo crear el socket: %s\n" -#: fe-connect.c:2612 +#: fe-connect.c:2613 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "no se pudo establecer el socket en modo no bloqueante: %s\n" -#: fe-connect.c:2622 +#: fe-connect.c:2623 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "no se pudo poner el socket en modo close-on-exec: %s\n" -#: fe-connect.c:2780 +#: fe-connect.c:2781 #, c-format msgid "could not get socket error status: %s\n" msgstr "no se pudo determinar el estado de error del socket: %s\n" -#: fe-connect.c:2808 +#: fe-connect.c:2809 #, c-format msgid "could not get client address from socket: %s\n" msgstr "no se pudo obtener la dirección del cliente desde el socket: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2848 msgid "requirepeer parameter is not supported on this platform\n" msgstr "el parámetro requirepeer no está soportado en esta plataforma\n" -#: fe-connect.c:2850 +#: fe-connect.c:2851 #, c-format msgid "could not get peer credentials: %s\n" msgstr "no se pudo obtener credenciales de la contraparte: %s\n" -#: fe-connect.c:2864 +#: fe-connect.c:2865 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer especifica «%s», pero el nombre de usuario de la contraparte es «%s»\n" -#: fe-connect.c:2906 +#: fe-connect.c:2907 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "no se pudo enviar el paquete de negociación GSSAPI: %s\n" -#: fe-connect.c:2918 +#: fe-connect.c:2919 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "cifrado GSSAPI requerido, pero fue imposible (posiblemente no hay cache de credenciales, no hay soporte de servidor, o se está usando un socket local)\n" -#: fe-connect.c:2960 +#: fe-connect.c:2961 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "no se pudo enviar el paquete de negociación SSL: %s\n" -#: fe-connect.c:2991 +#: fe-connect.c:2992 #, c-format msgid "could not send startup packet: %s\n" msgstr "no se pudo enviar el paquete de inicio: %s\n" -#: fe-connect.c:3067 +#: fe-connect.c:3068 msgid "server does not support SSL, but SSL was required\n" msgstr "el servidor no soporta SSL, pero SSL es requerida\n" -#: fe-connect.c:3085 +#: fe-connect.c:3086 msgid "server sent an error response during SSL exchange\n" msgstr "el servidor envió una respuesta de error durante un intercambio SSL\n" -#: fe-connect.c:3091 +#: fe-connect.c:3092 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "se ha recibido una respuesta no válida en la negociación SSL: %c\n" -#: fe-connect.c:3112 +#: fe-connect.c:3113 msgid "received unencrypted data after SSL response\n" msgstr "se recibieron datos no cifrados después de la respuesta SSL\n" -#: fe-connect.c:3193 +#: fe-connect.c:3194 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "el servidor no soporta cifrado GSSAPI, pero es requerida\n" -#: fe-connect.c:3205 +#: fe-connect.c:3206 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "se ha recibido una respuesta no válida en la negociación GSSAPI: %c\n" -#: fe-connect.c:3224 +#: fe-connect.c:3225 msgid "received unencrypted data after GSSAPI encryption response\n" msgstr "se recibieron datos no cifrados después de la respuesta de cifrado GSSAPI\n" -#: fe-connect.c:3289 fe-connect.c:3314 +#: fe-connect.c:3290 fe-connect.c:3315 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "se esperaba una petición de autentificación desde el servidor, pero se ha recibido %c\n" -#: fe-connect.c:3521 +#: fe-connect.c:3522 msgid "unexpected message from server during startup\n" msgstr "se ha recibido un mensaje inesperado del servidor durante el inicio\n" -#: fe-connect.c:3613 +#: fe-connect.c:3614 msgid "session is read-only\n" msgstr "la sesión es de solo lectura\n" -#: fe-connect.c:3616 +#: fe-connect.c:3617 msgid "session is not read-only\n" msgstr "la sesión no es de solo lectura\n" -#: fe-connect.c:3670 +#: fe-connect.c:3671 msgid "server is in hot standby mode\n" msgstr "el servidor está en modo hot standby\n" -#: fe-connect.c:3673 +#: fe-connect.c:3674 msgid "server is not in hot standby mode\n" msgstr "el servidor no está en modo hot standby\n" -#: fe-connect.c:3791 fe-connect.c:3843 +#: fe-connect.c:3792 fe-connect.c:3844 #, c-format msgid "\"%s\" failed\n" msgstr "«%s» falló\n" -#: fe-connect.c:3857 +#: fe-connect.c:3858 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "estado de conexión no válido %d, probablemente por corrupción de memoria\n" -#: fe-connect.c:4840 +#: fe-connect.c:4841 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "URL LDAP no válida «%s»: el esquema debe ser ldap://\n" -#: fe-connect.c:4855 +#: fe-connect.c:4856 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "URL LDAP no válida «%s»: distinguished name faltante\n" -#: fe-connect.c:4867 fe-connect.c:4925 +#: fe-connect.c:4868 fe-connect.c:4926 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "URL LDAP no válida «%s»: debe tener exactamente un atributo\n" -#: fe-connect.c:4879 fe-connect.c:4941 +#: fe-connect.c:4880 fe-connect.c:4942 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "URL LDAP no válida «%s»: debe tener ámbito de búsqueda (base/one/sub)\n" -#: fe-connect.c:4891 +#: fe-connect.c:4892 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "URL LDAP no válida «%s»: no tiene filtro\n" -#: fe-connect.c:4913 +#: fe-connect.c:4914 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "URL LDAP no válida «%s»: número de puerto no válido\n" -#: fe-connect.c:4951 +#: fe-connect.c:4952 msgid "could not create LDAP structure\n" msgstr "no se pudo crear estructura LDAP\n" -#: fe-connect.c:5027 +#: fe-connect.c:5028 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "búsqueda en servidor LDAP falló: %s\n" -#: fe-connect.c:5038 +#: fe-connect.c:5039 msgid "more than one entry found on LDAP lookup\n" msgstr "se encontro más de una entrada en búsqueda LDAP\n" -#: fe-connect.c:5039 fe-connect.c:5051 +#: fe-connect.c:5040 fe-connect.c:5052 msgid "no entry found on LDAP lookup\n" msgstr "no se encontró ninguna entrada en búsqueda LDAP\n" -#: fe-connect.c:5062 fe-connect.c:5075 +#: fe-connect.c:5063 fe-connect.c:5076 msgid "attribute has no values on LDAP lookup\n" msgstr "la búsqueda LDAP entregó atributo sin valores\n" -#: fe-connect.c:5127 fe-connect.c:5146 fe-connect.c:5678 +#: fe-connect.c:5090 +#, c-format +msgid "connection info string size exceeds the maximum allowed (%d)\n" +msgstr "el tamaño de la cadena de conexión excede el máximo permitido (%d)\n" + +#: fe-connect.c:5142 fe-connect.c:5161 fe-connect.c:5693 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "falta «=» después de «%s» en la cadena de información de la conexión\n" -#: fe-connect.c:5219 fe-connect.c:5863 fe-connect.c:6639 +#: fe-connect.c:5234 fe-connect.c:5878 fe-connect.c:6654 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "opción de conexión no válida «%s»\n" -#: fe-connect.c:5235 fe-connect.c:5727 +#: fe-connect.c:5250 fe-connect.c:5742 msgid "unterminated quoted string in connection info string\n" msgstr "cadena de caracteres entre comillas sin terminar en la cadena de información de conexión\n" -#: fe-connect.c:5316 +#: fe-connect.c:5331 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "la definición de servicio «%s» no fue encontrada\n" -#: fe-connect.c:5342 +#: fe-connect.c:5357 #, c-format msgid "service file \"%s\" not found\n" msgstr "el archivo de servicio «%s» no fue encontrado\n" -#: fe-connect.c:5356 +#: fe-connect.c:5371 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "la línea %d es demasiado larga en archivo de servicio «%s»\n" -#: fe-connect.c:5427 fe-connect.c:5471 +#: fe-connect.c:5442 fe-connect.c:5486 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "error de sintaxis en archivo de servicio «%s», línea %d\n" -#: fe-connect.c:5438 +#: fe-connect.c:5453 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "especificaciones de servicio anidadas no soportadas en archivo de servicio «%s», línea %d\n" -#: fe-connect.c:6159 +#: fe-connect.c:6174 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "URI no válida propagada a rutina interna de procesamiento: «%s»\n" -#: fe-connect.c:6236 +#: fe-connect.c:6251 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "se encontró el fin de la cadena mientras se buscaba el «]» correspondiente en dirección IPv6 en URI: «%s»\n" -#: fe-connect.c:6243 +#: fe-connect.c:6258 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "la dirección IPv6 no puede ser vacía en la URI: «%s»\n" -#: fe-connect.c:6258 +#: fe-connect.c:6273 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "carácter «%c» inesperado en la posición %d en URI (se esperaba «:» o «/»): «%s»\n" -#: fe-connect.c:6388 +#: fe-connect.c:6403 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "separador llave/valor «=» extra en parámetro de la URI: «%s»\n" -#: fe-connect.c:6408 +#: fe-connect.c:6423 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "separador llave/valor «=» faltante en parámetro de la URI: «%s»\n" -#: fe-connect.c:6460 +#: fe-connect.c:6475 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "parámetro de URI no válido: «%s»\n" -#: fe-connect.c:6534 +#: fe-connect.c:6549 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "elemento escapado con %% no válido: «%s»\n" -#: fe-connect.c:6544 +#: fe-connect.c:6559 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "valor no permitido %%00 en valor escapado con %%: «%s»\n" -#: fe-connect.c:6916 +#: fe-connect.c:6931 msgid "connection pointer is NULL\n" msgstr "el puntero de conexión es NULL\n" -#: fe-connect.c:7204 +#: fe-connect.c:7219 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "ADVERTENCIA: El archivo de claves «%s» no es un archivo plano\n" -#: fe-connect.c:7213 +#: fe-connect.c:7228 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "ADVERTENCIA: El archivo de claves «%s» tiene permiso de lectura para el grupo u otros; los permisos deberían ser u=rw (0600) o menos\n" -#: fe-connect.c:7321 +#: fe-connect.c:7336 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "contraseña obtenida desde el archivo «%s»\n" -#: fe-exec.c:466 fe-exec.c:3431 +#: fe-exec.c:466 fe-exec.c:3436 #, c-format msgid "row number %d is out of range 0..%d" msgstr "el número de fila %d está fuera del rango 0..%d" -#: fe-exec.c:528 fe-protocol3.c:1932 +#: fe-exec.c:528 fe-protocol3.c:1946 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:836 +#: fe-exec.c:841 msgid "write to server failed\n" msgstr "falló escritura al servidor\n" -#: fe-exec.c:877 +#: fe-exec.c:882 msgid "no error text available\n" msgstr "no hay mensaje de error disponible\n" -#: fe-exec.c:966 +#: fe-exec.c:971 msgid "NOTICE" msgstr "AVISO" -#: fe-exec.c:1024 +#: fe-exec.c:1029 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult no puede soportar un número de tuplas mayor que INT_MAX" -#: fe-exec.c:1036 +#: fe-exec.c:1041 msgid "size_t overflow" msgstr "desbordamiento de size_t" -#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 +#: fe-exec.c:1455 fe-exec.c:1526 fe-exec.c:1575 msgid "command string is a null pointer\n" msgstr "la cadena de orden es un puntero nulo\n" -#: fe-exec.c:1457 fe-exec.c:2908 +#: fe-exec.c:1462 fe-exec.c:2913 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "no se permite %s en modo pipeline\n" -#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 +#: fe-exec.c:1532 fe-exec.c:1581 fe-exec.c:1677 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "el número de parámetros debe estar entre 0 y %d\n" -#: fe-exec.c:1564 fe-exec.c:1666 +#: fe-exec.c:1569 fe-exec.c:1671 msgid "statement name is a null pointer\n" msgstr "el nombre de sentencia es un puntero nulo\n" -#: fe-exec.c:1710 fe-exec.c:3276 +#: fe-exec.c:1715 fe-exec.c:3281 msgid "no connection to the server\n" msgstr "no hay conexión con el servidor\n" -#: fe-exec.c:1719 fe-exec.c:3285 +#: fe-exec.c:1724 fe-exec.c:3290 msgid "another command is already in progress\n" msgstr "hay otra orden en ejecución\n" -#: fe-exec.c:1750 +#: fe-exec.c:1755 msgid "cannot queue commands during COPY\n" msgstr "no se puede agregar órdenes a la cola mientras se hace COPY\n" -#: fe-exec.c:1868 +#: fe-exec.c:1873 msgid "length must be given for binary parameter\n" msgstr "el largo debe ser especificado para un parámetro binario\n" -#: fe-exec.c:2183 +#: fe-exec.c:2188 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "asyncStatus no esperado: %d\n" -#: fe-exec.c:2341 +#: fe-exec.c:2346 msgid "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "no se permiten funciones que ejecuten órdenes sincrónicas en modo pipeline\n" -#: fe-exec.c:2358 +#: fe-exec.c:2363 msgid "COPY terminated by new PQexec" msgstr "COPY terminado por un nuevo PQexec" -#: fe-exec.c:2375 +#: fe-exec.c:2380 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec no está permitido durante COPY BOTH\n" -#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 +#: fe-exec.c:2608 fe-exec.c:2664 fe-exec.c:2733 fe-protocol3.c:1877 msgid "no COPY in progress\n" msgstr "no hay COPY alguno en ejecución\n" -#: fe-exec.c:2917 +#: fe-exec.c:2922 msgid "connection in wrong state\n" msgstr "la conexión está en un estado incorrecto\n" -#: fe-exec.c:2961 +#: fe-exec.c:2966 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "no se puede entrar en modo pipeline, la conexión no está inactiva\n" -#: fe-exec.c:2998 fe-exec.c:3022 +#: fe-exec.c:3003 fe-exec.c:3027 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "no se puede salir de modo pipeline al tener resultados sin recolectar\n" -#: fe-exec.c:3003 +#: fe-exec.c:3008 msgid "cannot exit pipeline mode while busy\n" msgstr "no se puede salir de modo pipeline mientras haya actividad\n" -#: fe-exec.c:3015 +#: fe-exec.c:3020 msgid "cannot exit pipeline mode while in COPY\n" msgstr "no se puede salir de modo pipeline mientras se está en COPY\n" -#: fe-exec.c:3209 +#: fe-exec.c:3214 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "no se puede enviar pipeline cuando no se está en modo pipeline\n" -#: fe-exec.c:3320 +#: fe-exec.c:3325 msgid "invalid ExecStatusType code" msgstr "el código de ExecStatusType no es válido" -#: fe-exec.c:3347 +#: fe-exec.c:3352 msgid "PGresult is not an error result\n" msgstr "PGresult no es un resultado de error\n" -#: fe-exec.c:3415 fe-exec.c:3438 +#: fe-exec.c:3420 fe-exec.c:3443 #, c-format msgid "column number %d is out of range 0..%d" msgstr "el número de columna %d está fuera del rango 0..%d" -#: fe-exec.c:3453 +#: fe-exec.c:3458 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "el número de parámetro %d está fuera del rango 0..%d" -#: fe-exec.c:3764 +#: fe-exec.c:3769 #, c-format msgid "could not interpret result from server: %s" msgstr "no se pudo interpretar el resultado del servidor: %s" -#: fe-exec.c:4044 fe-exec.c:4159 +#: fe-exec.c:4049 fe-exec.c:4185 msgid "incomplete multibyte character\n" msgstr "carácter multibyte incompleto\n" -#: fe-exec.c:4047 fe-exec.c:4179 +#: fe-exec.c:4052 fe-exec.c:4205 msgid "invalid multibyte character\n" msgstr "carácter multibyte no válido\n" +#: fe-exec.c:4308 +#, c-format +msgid "escaped string size exceeds the maximum allowed (%zu)\n" +msgstr "el tamaño de la cadena escapada excede el máximo permitido (%zu)\n" + +#: fe-exec.c:4486 +#, c-format +msgid "escaped bytea size exceeds the maximum allowed (%zu)\n" +msgstr "el tamaño del bytea escapado excede el máximo permitido (%zu)\n" + #: fe-gssapi-common.c:124 msgid "GSSAPI name import error" msgstr "error de importación de nombre de GSSAPI" @@ -869,133 +884,133 @@ msgstr "socket no válido\n" msgid "%s() failed: %s\n" msgstr "%s() falló: %s\n" -#: fe-protocol3.c:184 +#: fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "un mensaje de tipo 0x%02x llegó del servidor estando inactivo" -#: fe-protocol3.c:388 +#: fe-protocol3.c:389 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "el servidor envió datos (mensaje «D») sin precederlos con una descripción de fila (mensaje «T»)\n" -#: fe-protocol3.c:431 +#: fe-protocol3.c:432 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "se ha recibido una respuesta inesperada del servidor; el primer carácter recibido fue «%c»\n" -#: fe-protocol3.c:456 +#: fe-protocol3.c:457 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "el contenido del mensaje no concuerda con el largo, en el mensaje tipo «%c»\n" -#: fe-protocol3.c:476 +#: fe-protocol3.c:477 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "se perdió la sincronía con el servidor: se recibió un mensaje de tipo «%c», largo %d\n" -#: fe-protocol3.c:528 fe-protocol3.c:568 +#: fe-protocol3.c:529 fe-protocol3.c:569 msgid "insufficient data in \"T\" message" msgstr "datos insuficientes en el mensaje «T»" -#: fe-protocol3.c:639 fe-protocol3.c:845 +#: fe-protocol3.c:640 fe-protocol3.c:846 msgid "out of memory for query result" msgstr "no hay suficiente memoria para el resultado de la consulta" -#: fe-protocol3.c:708 +#: fe-protocol3.c:709 msgid "insufficient data in \"t\" message" msgstr "datos insuficientes en el mensaje «t»" -#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 +#: fe-protocol3.c:768 fe-protocol3.c:800 fe-protocol3.c:818 msgid "insufficient data in \"D\" message" msgstr "datos insuficientes en el mensaje «D»" -#: fe-protocol3.c:773 +#: fe-protocol3.c:774 msgid "unexpected field count in \"D\" message" msgstr "cantidad de campos inesperada en mensaje «D»" -#: fe-protocol3.c:1029 +#: fe-protocol3.c:1030 msgid "no error message available\n" msgstr "no hay mensaje de error disponible\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1077 fe-protocol3.c:1096 +#: fe-protocol3.c:1078 fe-protocol3.c:1097 #, c-format msgid " at character %s" msgstr " en el carácter %s" -#: fe-protocol3.c:1109 +#: fe-protocol3.c:1110 #, c-format msgid "DETAIL: %s\n" msgstr "DETALLE: %s\n" -#: fe-protocol3.c:1112 +#: fe-protocol3.c:1113 #, c-format msgid "HINT: %s\n" msgstr "SUGERENCIA: %s\n" -#: fe-protocol3.c:1115 +#: fe-protocol3.c:1116 #, c-format msgid "QUERY: %s\n" msgstr "CONSULTA: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1123 #, c-format msgid "CONTEXT: %s\n" msgstr "CONTEXTO: %s\n" -#: fe-protocol3.c:1131 +#: fe-protocol3.c:1132 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "NOMBRE DE ESQUEMA: %s\n" -#: fe-protocol3.c:1135 +#: fe-protocol3.c:1136 #, c-format msgid "TABLE NAME: %s\n" msgstr "NOMBRE DE TABLA: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1140 #, c-format msgid "COLUMN NAME: %s\n" msgstr "NOMBRE DE COLUMNA: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1144 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "NOMBRE TIPO DE DATO: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1148 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "NOMBRE DE RESTRICCIÓN: %s\n" -#: fe-protocol3.c:1159 +#: fe-protocol3.c:1160 msgid "LOCATION: " msgstr "UBICACIÓN: " -#: fe-protocol3.c:1161 +#: fe-protocol3.c:1162 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1163 +#: fe-protocol3.c:1164 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1358 +#: fe-protocol3.c:1372 #, c-format msgid "LINE %d: " msgstr "LÍNEA %d: " -#: fe-protocol3.c:1757 +#: fe-protocol3.c:1771 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline: no se está haciendo COPY OUT de texto\n" -#: fe-protocol3.c:2134 +#: fe-protocol3.c:2148 msgid "protocol error: no function result\n" msgstr "error de protocolo: no hay resultado de función\n" -#: fe-protocol3.c:2146 +#: fe-protocol3.c:2160 #, c-format msgid "protocol error: id=0x%x\n" msgstr "error de protocolo: id=0x%x\n" diff --git a/src/interfaces/libpq/po/fr.po b/src/interfaces/libpq/po/fr.po index 94d4135c995..d6d00787936 100644 --- a/src/interfaces/libpq/po/fr.po +++ b/src/interfaces/libpq/po/fr.po @@ -1112,7 +1112,7 @@ msgstr "erreur SSL : %s\n" #: fe-secure-openssl.c:251 fe-secure-openssl.c:364 msgid "SSL connection has been closed unexpectedly\n" -msgstr "la connexion SSL a été fermée de façon inattendu\n" +msgstr "la connexion SSL a été fermée de façon inattendue\n" #: fe-secure-openssl.c:257 fe-secure-openssl.c:370 fe-secure-openssl.c:1555 #, c-format diff --git a/src/interfaces/libpq/po/ja.po b/src/interfaces/libpq/po/ja.po index a4840a0a0b3..e0aa5679ca1 100644 --- a/src/interfaces/libpq/po/ja.po +++ b/src/interfaces/libpq/po/ja.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: libpq (PostgreSQL 15)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-02-17 11:10+0900\n" -"PO-Revision-Date: 2025-02-17 15:30+0900\n" +"POT-Creation-Date: 2025-11-11 13:54+0900\n" +"PO-Revision-Date: 2025-11-11 15:42+0900\n" "Last-Translator: Kyotaro Horiguchi \n" "Language-Team: Japan PostgreSQL Users Group \n" "Language: ja\n" @@ -69,16 +69,17 @@ msgstr "nonce を生成できませんでした\n" #: fe-auth-scram.c:636 fe-auth-scram.c:662 fe-auth-scram.c:677 #: fe-auth-scram.c:727 fe-auth-scram.c:766 fe-auth.c:290 fe-auth.c:362 #: fe-auth.c:398 fe-auth.c:623 fe-auth.c:799 fe-auth.c:1152 fe-auth.c:1322 -#: fe-connect.c:909 fe-connect.c:1458 fe-connect.c:1627 fe-connect.c:2978 -#: fe-connect.c:4827 fe-connect.c:5088 fe-connect.c:5207 fe-connect.c:5459 -#: fe-connect.c:5540 fe-connect.c:5639 fe-connect.c:5895 fe-connect.c:5924 -#: fe-connect.c:5996 fe-connect.c:6020 fe-connect.c:6038 fe-connect.c:6139 -#: fe-connect.c:6148 fe-connect.c:6506 fe-connect.c:6656 fe-connect.c:6922 -#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 -#: fe-exec.c:4197 fe-exec.c:4364 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:968 fe-protocol3.c:983 fe-protocol3.c:1016 -#: fe-protocol3.c:1724 fe-protocol3.c:2127 fe-secure-common.c:112 -#: fe-secure-gssapi.c:500 fe-secure-openssl.c:455 fe-secure-openssl.c:1252 +#: fe-connect.c:910 fe-connect.c:1459 fe-connect.c:1628 fe-connect.c:2979 +#: fe-connect.c:4828 fe-connect.c:5103 fe-connect.c:5222 fe-connect.c:5474 +#: fe-connect.c:5555 fe-connect.c:5654 fe-connect.c:5910 fe-connect.c:5939 +#: fe-connect.c:6011 fe-connect.c:6035 fe-connect.c:6053 fe-connect.c:6154 +#: fe-connect.c:6163 fe-connect.c:6521 fe-connect.c:6671 fe-connect.c:6939 +#: fe-exec.c:715 fe-exec.c:983 fe-exec.c:1331 fe-exec.c:3170 fe-exec.c:3362 +#: fe-exec.c:4236 fe-exec.c:4430 fe-gssapi-common.c:111 fe-lobj.c:884 +#: fe-protocol3.c:969 fe-protocol3.c:984 fe-protocol3.c:1017 +#: fe-protocol3.c:1738 fe-protocol3.c:2141 fe-secure-common.c:112 +#: fe-secure-gssapi.c:512 fe-secure-gssapi.c:687 fe-secure-openssl.c:455 +#: fe-secure-openssl.c:1252 msgid "out of memory\n" msgstr "メモリ不足\n" @@ -124,8 +125,8 @@ msgstr "SCRAMメッセージのフォーマット異常 (server-final-message msgid "malformed SCRAM message (invalid server signature)\n" msgstr "SCRAMメッセージのフォーマット異常 (不正なサーバー署名)\n" -#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:207 fe-protocol3.c:232 -#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 +#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:208 fe-protocol3.c:233 +#: fe-protocol3.c:257 fe-protocol3.c:275 fe-protocol3.c:356 fe-protocol3.c:729 msgid "out of memory" msgstr "メモリ不足です" @@ -265,536 +266,543 @@ msgstr "password_encryptionの値が長すぎます\n" msgid "unrecognized password encryption algorithm \"%s\"\n" msgstr "認識できないパスワード暗号化アルゴリズム \"%s\"\n" -#: fe-connect.c:1092 +#: fe-connect.c:1093 #, c-format msgid "could not match %d host names to %d hostaddr values\n" msgstr "%d個のホスト名と%d個のhostaddrの値との突き合せはできません\n" -#: fe-connect.c:1178 +#: fe-connect.c:1179 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "%d個のポート番号と%d個のホストとの突き合せはできません\n" -#: fe-connect.c:1271 fe-connect.c:1297 fe-connect.c:1339 fe-connect.c:1348 -#: fe-connect.c:1381 fe-connect.c:1425 +#: fe-connect.c:1272 fe-connect.c:1298 fe-connect.c:1340 fe-connect.c:1349 +#: fe-connect.c:1382 fe-connect.c:1426 #, c-format msgid "invalid %s value: \"%s\"\n" msgstr "%s の値が不正: \"%s\"\n" -#: fe-connect.c:1318 +#: fe-connect.c:1319 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "SSLサポートが組み込まれていない場合sslmodeの値\"%s\"は不正です\n" -#: fe-connect.c:1366 +#: fe-connect.c:1367 msgid "invalid SSL protocol version range\n" msgstr "不正なSSLプロトコルバージョン範囲\n" -#: fe-connect.c:1391 +#: fe-connect.c:1392 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "gssencmodeの値\"%s\"はGSSAPIサポートがコンパイルされていない場合は不正\n" -#: fe-connect.c:1651 +#: fe-connect.c:1652 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "TCPソケットを非遅延モードに設定できませんでした: %s\n" -#: fe-connect.c:1713 +#: fe-connect.c:1714 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "ソケット\"%s\"のサーバーへの接続に失敗しました: " -#: fe-connect.c:1740 +#: fe-connect.c:1741 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "\"%s\"(%s)、ポート%sのサーバーへの接続に失敗しました: " -#: fe-connect.c:1745 +#: fe-connect.c:1746 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "\"%s\"、ポート%sのサーバーへの接続に失敗しました: " -#: fe-connect.c:1770 +#: fe-connect.c:1771 msgid "\tIs the server running locally and accepting connections on that socket?\n" msgstr "\tサーバーはローカルで稼働していてそのソケットで接続を受け付けていますか?\n" -#: fe-connect.c:1774 +#: fe-connect.c:1775 msgid "\tIs the server running on that host and accepting TCP/IP connections?\n" msgstr "\tサーバーはそのホスト上で稼働していてTCP/IP接続を受け付けていますか?\n" -#: fe-connect.c:1838 +#: fe-connect.c:1839 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "接続オプション\"%2$s\"に対する不正な整数値\"%1$s\"\n" -#: fe-connect.c:1868 fe-connect.c:1903 fe-connect.c:1939 fe-connect.c:2039 -#: fe-connect.c:2652 +#: fe-connect.c:1869 fe-connect.c:1904 fe-connect.c:1940 fe-connect.c:2040 +#: fe-connect.c:2653 #, c-format msgid "%s(%s) failed: %s\n" msgstr "%s(%s)が失敗しました: %s\n" -#: fe-connect.c:2004 +#: fe-connect.c:2005 #, c-format msgid "%s(%s) failed: error code %d\n" msgstr "%s(%s)が失敗しました: エラーコード %d\n" -#: fe-connect.c:2319 +#: fe-connect.c:2320 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "接続状態が不正です。メモリ障害の可能性があります\n" -#: fe-connect.c:2398 +#: fe-connect.c:2399 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "不正なポート番号です: \"%s\"\n" -#: fe-connect.c:2414 +#: fe-connect.c:2415 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "ホスト名\"%s\"をアドレスに変換できませんでした: %s\n" -#: fe-connect.c:2427 +#: fe-connect.c:2428 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "ネットワークアドレス\"%s\"をパースできませんでした: %s\n" -#: fe-connect.c:2440 +#: fe-connect.c:2441 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Unixドメインソケットのパス\"%s\"が長すぎます(最大 %d バイト)\n" -#: fe-connect.c:2455 +#: fe-connect.c:2456 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "Unixドメインソケットのパス\"%s\"をアドレスに変換できませんでした: %s\n" -#: fe-connect.c:2581 +#: fe-connect.c:2582 #, c-format msgid "could not create socket: %s\n" msgstr "ソケットを作成できませんでした: %s\n" -#: fe-connect.c:2612 +#: fe-connect.c:2613 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "ソケットを非ブロッキングモードに設定できませんでした: %s\n" -#: fe-connect.c:2622 +#: fe-connect.c:2623 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "ソケットをclose-on-execモードに設定できませんでした: %s\n" -#: fe-connect.c:2780 +#: fe-connect.c:2781 #, c-format msgid "could not get socket error status: %s\n" msgstr "ソケットのエラー状態を入手できませんでした: %s\n" -#: fe-connect.c:2808 +#: fe-connect.c:2809 #, c-format msgid "could not get client address from socket: %s\n" msgstr "ソケットからクライアントアドレスを入手できませんでした: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2848 msgid "requirepeer parameter is not supported on this platform\n" msgstr "このプラットフォームでは requirepeer パラメータはサポートされていません\n" -#: fe-connect.c:2850 +#: fe-connect.c:2851 #, c-format msgid "could not get peer credentials: %s\n" msgstr "ピアの資格証明を入手できませんでした: %s\n" -#: fe-connect.c:2864 +#: fe-connect.c:2865 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeerは\"%s\"を指定していますが、実際のピア名は\"%s\"です\n" -#: fe-connect.c:2906 +#: fe-connect.c:2907 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "GSSAPIネゴシエーションパケットを送信できませんでした: %s\n" -#: fe-connect.c:2918 +#: fe-connect.c:2919 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "GSSAPI暗号化が要求されていますが、実行できませんでした(おそらく資格キャッシュがない、サーバーがサポートしていないあるいはローカルソケットで接続しています)\n" -#: fe-connect.c:2960 +#: fe-connect.c:2961 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "SSLネゴシエーションパケットを送信できませんでした: %s\n" -#: fe-connect.c:2991 +#: fe-connect.c:2992 #, c-format msgid "could not send startup packet: %s\n" msgstr "開始パケットを送信できませんでした: %s\n" -#: fe-connect.c:3067 +#: fe-connect.c:3068 msgid "server does not support SSL, but SSL was required\n" msgstr "サーバーはSSLをサポートしていませんが、SSLが要求されました\n" -#: fe-connect.c:3085 +#: fe-connect.c:3086 msgid "server sent an error response during SSL exchange\n" msgstr "SSLハンドシェイク中にサーバーからエラー応答が返されました\n" -#: fe-connect.c:3091 +#: fe-connect.c:3092 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "SSLネゴシエーションに対して不正な応答を受信しました: %c\n" -#: fe-connect.c:3112 +#: fe-connect.c:3113 msgid "received unencrypted data after SSL response\n" msgstr "SSL応答の後に非暗号化データを受信しました\n" -#: fe-connect.c:3193 +#: fe-connect.c:3194 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "サーバーはGSSAPI暗号化をサポートしていませんが、要求されました\n" -#: fe-connect.c:3205 +#: fe-connect.c:3206 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "GSSAPIネゴシエーションに対して不正な応答を受信しました: %c\n" -#: fe-connect.c:3224 +#: fe-connect.c:3225 msgid "received unencrypted data after GSSAPI encryption response\n" msgstr "GSSAPI暗号化応答の後に非暗号化データを受信しました\n" -#: fe-connect.c:3289 fe-connect.c:3314 +#: fe-connect.c:3290 fe-connect.c:3315 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "サーバーからの認証要求を想定していましたが、%cを受信しました\n" -#: fe-connect.c:3521 +#: fe-connect.c:3522 msgid "unexpected message from server during startup\n" msgstr "起動時にサーバーから想定外のメッセージがありました\n" -#: fe-connect.c:3613 +#: fe-connect.c:3614 msgid "session is read-only\n" msgstr "セッションは読み取り専用です\n" -#: fe-connect.c:3616 +#: fe-connect.c:3617 msgid "session is not read-only\n" msgstr "セッションは読み取り専用ではありません\n" -#: fe-connect.c:3670 +#: fe-connect.c:3671 msgid "server is in hot standby mode\n" msgstr "サーバーはホットスタンバイモードです\n" -#: fe-connect.c:3673 +#: fe-connect.c:3674 msgid "server is not in hot standby mode\n" msgstr "サーバーはスタンバイモードではありません\n" -#: fe-connect.c:3791 fe-connect.c:3843 +#: fe-connect.c:3792 fe-connect.c:3844 #, c-format msgid "\"%s\" failed\n" msgstr "\"%s\"が失敗しました\n" -#: fe-connect.c:3857 +#: fe-connect.c:3858 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "接続状態%dが不正です。メモリ障害の可能性があります\n" -#: fe-connect.c:4840 +#: fe-connect.c:4841 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "不正なLDAP URL\"%s\":スキーマはldap://でなければなりません\n" -#: fe-connect.c:4855 +#: fe-connect.c:4856 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "不正なLDAP URL \"%s\": 区別名がありません\n" -#: fe-connect.c:4867 fe-connect.c:4925 +#: fe-connect.c:4868 fe-connect.c:4926 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "不正なLDAP URL \"%s\": 正確に1つの属性を持たなければなりません\n" -#: fe-connect.c:4879 fe-connect.c:4941 +#: fe-connect.c:4880 fe-connect.c:4942 #, 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:4891 +#: fe-connect.c:4892 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "不正なLDAP URL \"%s\": フィルタがありません\n" -#: fe-connect.c:4913 +#: fe-connect.c:4914 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "不正なLDAP URL \"%s\": ポート番号が不正です\n" -#: fe-connect.c:4951 +#: fe-connect.c:4952 msgid "could not create LDAP structure\n" msgstr "LDAP構造体を作成できませんでした\n" -#: fe-connect.c:5027 +#: fe-connect.c:5028 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "LDAPサーバーで検索に失敗しました: %s\n" -#: fe-connect.c:5038 +#: fe-connect.c:5039 msgid "more than one entry found on LDAP lookup\n" msgstr "LDAP検索結果が複数ありました\n" -#: fe-connect.c:5039 fe-connect.c:5051 +#: fe-connect.c:5040 fe-connect.c:5052 msgid "no entry found on LDAP lookup\n" msgstr "LDAP検索結果が空でした\n" -#: fe-connect.c:5062 fe-connect.c:5075 +#: fe-connect.c:5063 fe-connect.c:5076 msgid "attribute has no values on LDAP lookup\n" msgstr "LDAP検索で属性に値がありませんでした\n" -#: fe-connect.c:5127 fe-connect.c:5146 fe-connect.c:5678 +#: fe-connect.c:5090 +#, c-format +msgid "connection info string size exceeds the maximum allowed (%d)\n" +msgstr "接続情報文字列の長さが上限値(%d)を超えています\n" + +#: fe-connect.c:5142 fe-connect.c:5161 fe-connect.c:5693 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "接続情報文字列において\"%s\"の後に\"=\"がありませんでした\n" -#: fe-connect.c:5219 fe-connect.c:5863 fe-connect.c:6639 +#: fe-connect.c:5234 fe-connect.c:5878 fe-connect.c:6654 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "接続オプション\"%s\"は不正です\n" -#: fe-connect.c:5235 fe-connect.c:5727 +#: fe-connect.c:5250 fe-connect.c:5742 msgid "unterminated quoted string in connection info string\n" msgstr "接続情報文字列において閉じていない引用符がありました\n" -#: fe-connect.c:5316 +#: fe-connect.c:5331 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "サービス定義\"%s\"がみつかりません\n" -#: fe-connect.c:5342 +#: fe-connect.c:5357 #, c-format msgid "service file \"%s\" not found\n" msgstr "サービスファイル\"%s\"がみつかりません\n" -#: fe-connect.c:5356 +#: fe-connect.c:5371 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "サービスファイル\"%2$s\"の行%1$dが長すぎます。\n" -#: fe-connect.c:5427 fe-connect.c:5471 +#: fe-connect.c:5442 fe-connect.c:5486 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "サービスファイル\"%s\"の行%dに構文エラーがあります\n" -#: fe-connect.c:5438 +#: fe-connect.c:5453 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "サービスファイル\"%s\"ではネストしたサービス指定はサポートされていません、行%d\n" -#: fe-connect.c:6159 +#: fe-connect.c:6174 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "内部パーサ処理へ伝わった不正なURI: \"%s\"\n" -#: fe-connect.c:6236 +#: fe-connect.c:6251 #, 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:6243 +#: fe-connect.c:6258 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "URI内ではIPv6ホストアドレスは空であってはなりません: \"%s\"\n" -#: fe-connect.c:6258 +#: fe-connect.c:6273 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "URI内の位置%2$dに想定外の文字\"%1$c\"があります(\":\"または\"/\"を期待していました): \"%3$s\"\n" -#: fe-connect.c:6388 +#: fe-connect.c:6403 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "URI問い合わせパラメータ内に余分なキーと値を分ける\"=\"があります: \"%s\"\n" -#: fe-connect.c:6408 +#: fe-connect.c:6423 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "URI問い合わせパラメータ内にキーと値を分ける\\\"=\\\"がありません: \"%s\"\n" -#: fe-connect.c:6460 +#: fe-connect.c:6475 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "不正なURI問い合わせパラメータ:\"%s\"\n" -#: fe-connect.c:6534 +#: fe-connect.c:6549 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "不正なパーセント符号化トークン: \"%s\"\n" -#: fe-connect.c:6544 +#: fe-connect.c:6559 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "パーセント符号化された値では%%00値は許されません: \"%s\"\n" -#: fe-connect.c:6914 +#: fe-connect.c:6931 msgid "connection pointer is NULL\n" msgstr "接続ポインタはNULLです\n" -#: fe-connect.c:7202 +#: fe-connect.c:7219 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "WARNING: パスワードファイル\"%s\"がテキストファイルではありません\n" -#: fe-connect.c:7211 +#: fe-connect.c:7228 #, 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:7319 +#: fe-connect.c:7336 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "ファイル\"%s\"からパスワードを読み込みました\n" -#: fe-exec.c:466 fe-exec.c:3431 +#: fe-exec.c:466 fe-exec.c:3436 #, c-format msgid "row number %d is out of range 0..%d" msgstr "行番号%dは0..%dの範囲を超えています" -#: fe-exec.c:528 fe-protocol3.c:1932 +#: fe-exec.c:528 fe-protocol3.c:1946 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:836 +#: fe-exec.c:841 msgid "write to server failed\n" msgstr "サーバーへの書き込みに失敗\n" -#: fe-exec.c:877 +#: fe-exec.c:882 msgid "no error text available\n" msgstr "エラーメッセージがありません\n" -#: fe-exec.c:966 +#: fe-exec.c:971 msgid "NOTICE" msgstr "注意" -#: fe-exec.c:1024 +#: fe-exec.c:1029 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresultはINT_MAX個以上のタプルを扱えません" -#: fe-exec.c:1036 +#: fe-exec.c:1041 msgid "size_t overflow" msgstr "size_t オーバーフロー" -#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 +#: fe-exec.c:1455 fe-exec.c:1526 fe-exec.c:1575 msgid "command string is a null pointer\n" msgstr "コマンド文字列がヌルポインタです\n" -#: fe-exec.c:1457 fe-exec.c:2908 +#: fe-exec.c:1462 fe-exec.c:2913 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "%sはパイプラインモードでは使用できません\n" -#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 +#: fe-exec.c:1532 fe-exec.c:1581 fe-exec.c:1677 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "パラメータ数は0から%dまでの間でなければなりません\n" -#: fe-exec.c:1564 fe-exec.c:1666 +#: fe-exec.c:1569 fe-exec.c:1671 msgid "statement name is a null pointer\n" msgstr "文の名前がヌルポインタです\n" -#: fe-exec.c:1710 fe-exec.c:3276 +#: fe-exec.c:1715 fe-exec.c:3281 msgid "no connection to the server\n" msgstr "サーバーへの接続がありません\n" -#: fe-exec.c:1719 fe-exec.c:3285 +#: fe-exec.c:1724 fe-exec.c:3290 msgid "another command is already in progress\n" msgstr "他のコマンドを処理しています\n" -#: fe-exec.c:1750 +#: fe-exec.c:1755 msgid "cannot queue commands during COPY\n" msgstr "COPY中はコマンドのキューイングはできません\n" -#: fe-exec.c:1868 +#: fe-exec.c:1873 msgid "length must be given for binary parameter\n" msgstr "バイナリパラメータには長さを指定しなければなりません\n" -#: fe-exec.c:2183 +#: fe-exec.c:2188 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "想定外のasyncStatus: %d\n" -#: fe-exec.c:2341 +#: fe-exec.c:2346 msgid "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "同期的にコマンドを実行する関数はパイプラインモード中は実行できません\n" -#: fe-exec.c:2358 +#: fe-exec.c:2363 msgid "COPY terminated by new PQexec" msgstr "新たなPQexec\"によりCOPYが終了しました" -#: fe-exec.c:2375 +#: fe-exec.c:2380 msgid "PQexec not allowed during COPY BOTH\n" msgstr "COPY BOTH 実行中の PQexec は許可されていません\n" -#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 +#: fe-exec.c:2608 fe-exec.c:2664 fe-exec.c:2733 fe-protocol3.c:1877 msgid "no COPY in progress\n" msgstr "実行中のCOPYはありません\n" -#: fe-exec.c:2917 +#: fe-exec.c:2922 msgid "connection in wrong state\n" msgstr "接続状態が異常です\n" -#: fe-exec.c:2961 +#: fe-exec.c:2966 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "" "パイプラインモードに入れません、接続がアイドル状態ではありません\n" "\n" -#: fe-exec.c:2998 fe-exec.c:3022 +#: fe-exec.c:3003 fe-exec.c:3027 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "未回収の結果が残っている状態でパイプラインモードを抜けることはできません\n" -#: fe-exec.c:3003 +#: fe-exec.c:3008 msgid "cannot exit pipeline mode while busy\n" msgstr "ビジー状態でパイプラインモードを抜けることはできません\n" -#: fe-exec.c:3015 +#: fe-exec.c:3020 msgid "cannot exit pipeline mode while in COPY\n" msgstr "COPY実行中にパイプラインモードを抜けることはできません\n" -#: fe-exec.c:3209 +#: fe-exec.c:3214 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "パイプラインモード外でパイプライン送出はできません\n" -#: fe-exec.c:3320 +#: fe-exec.c:3325 msgid "invalid ExecStatusType code" msgstr "ExecStatusTypeコードが不正です" -#: fe-exec.c:3347 +#: fe-exec.c:3352 msgid "PGresult is not an error result\n" msgstr "PGresutがエラー結果ではありません\n" -#: fe-exec.c:3415 fe-exec.c:3438 +#: fe-exec.c:3420 fe-exec.c:3443 #, c-format msgid "column number %d is out of range 0..%d" msgstr "列番号%dは0..%dの範囲を超えています" -#: fe-exec.c:3453 +#: fe-exec.c:3458 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "パラメータ%dは0..%dの範囲を超えています" -#: fe-exec.c:3764 +#: fe-exec.c:3769 #, c-format msgid "could not interpret result from server: %s" msgstr "サーバーからの結果を解釈できませんでした: %s" -#: fe-exec.c:4043 -msgid "incomplete multibyte character" -msgstr "不完全なマルチバイト文字" - -#: fe-exec.c:4046 -msgid "invalid multibyte character" -msgstr "不正なマルチバイト文字" - -#: fe-exec.c:4157 +#: fe-exec.c:4049 fe-exec.c:4185 msgid "incomplete multibyte character\n" msgstr "不完全なマルチバイト文字\n" -#: fe-exec.c:4177 +#: fe-exec.c:4052 fe-exec.c:4205 msgid "invalid multibyte character\n" msgstr "不正なマルチバイト文字\n" +#: fe-exec.c:4308 +#, c-format +msgid "escaped string size exceeds the maximum allowed (%zu)\n" +msgstr "エスケープされた文字列のサイズが上限(%zu)を超えています\n" + +#: fe-exec.c:4486 +#, c-format +msgid "escaped bytea size exceeds the maximum allowed (%zu)\n" +msgstr "エスケープされたbyteaのサイズが上限(%zu)を超えています\n" + #: fe-gssapi-common.c:124 msgid "GSSAPI name import error" msgstr "GSSAPI名のインポートエラー" @@ -847,11 +855,11 @@ msgstr "サイズ%luの整数はpqGetIntでサポートされていません" msgid "integer of size %lu not supported by pqPutInt" msgstr "サイズ%luの整数はpqPutIntでサポートされていません" -#: fe-misc.c:576 fe-misc.c:822 +#: fe-misc.c:602 fe-misc.c:848 msgid "connection not open\n" msgstr "接続はオープンされていません\n" -#: fe-misc.c:755 fe-secure-openssl.c:213 fe-secure-openssl.c:326 +#: fe-misc.c:781 fe-secure-openssl.c:213 fe-secure-openssl.c:326 #: fe-secure.c:262 fe-secure.c:430 #, c-format msgid "" @@ -863,146 +871,146 @@ msgstr "" " おそらく要求の処理前または処理中にサーバーが異常終了\n" " したことを意味しています。\n" -#: fe-misc.c:1008 +#: fe-misc.c:1034 msgid "timeout expired\n" msgstr "タイムアウト期間が過ぎました\n" -#: fe-misc.c:1053 +#: fe-misc.c:1079 msgid "invalid socket\n" msgstr "不正なソケットです\n" -#: fe-misc.c:1076 +#: fe-misc.c:1102 #, c-format msgid "%s() failed: %s\n" msgstr "%s() が失敗しました: %s\n" -#: fe-protocol3.c:184 +#: fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "待機中にサーバーからメッセージ種類0x%02xが届きました" -#: fe-protocol3.c:388 +#: fe-protocol3.c:389 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "サーバーが事前の行記述(\"T\"メッセージ)なしにデータ(\"D\"メッセージ)を送信しました\"\n" -#: fe-protocol3.c:431 +#: fe-protocol3.c:432 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "サーバーから想定外の応答がありました。受け付けた先頭文字は\"%c\"です\n" -#: fe-protocol3.c:456 +#: fe-protocol3.c:457 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "メッセージの内容がメッセージ種類\"%c\"の長さに合いません\n" -#: fe-protocol3.c:476 +#: fe-protocol3.c:477 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "サーバーとの同期が失われました。受信したメッセージ種類は\"%c\"、長さは%d\n" -#: fe-protocol3.c:528 fe-protocol3.c:568 +#: fe-protocol3.c:529 fe-protocol3.c:569 msgid "insufficient data in \"T\" message" msgstr "\"T\"メッセージ内のデータが不十分です" -#: fe-protocol3.c:639 fe-protocol3.c:845 +#: fe-protocol3.c:640 fe-protocol3.c:846 msgid "out of memory for query result" msgstr "問い合わせ結果用のメモリが不足しています" -#: fe-protocol3.c:708 +#: fe-protocol3.c:709 msgid "insufficient data in \"t\" message" msgstr "\"t\"メッセージ内のデータが足りません" -#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 +#: fe-protocol3.c:768 fe-protocol3.c:800 fe-protocol3.c:818 msgid "insufficient data in \"D\" message" msgstr "\"D\"\"メッセージ内のデータが不十分です" -#: fe-protocol3.c:773 +#: fe-protocol3.c:774 msgid "unexpected field count in \"D\" message" msgstr "\"D\"メッセージ内のフィールド数が想定外です。" -#: fe-protocol3.c:1029 +#: fe-protocol3.c:1030 msgid "no error message available\n" msgstr "エラーメッセージがありません\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1077 fe-protocol3.c:1096 +#: fe-protocol3.c:1078 fe-protocol3.c:1097 #, c-format msgid " at character %s" msgstr "(文字位置: %s)" -#: fe-protocol3.c:1109 +#: fe-protocol3.c:1110 #, c-format msgid "DETAIL: %s\n" msgstr "DETAIL: %s\n" -#: fe-protocol3.c:1112 +#: fe-protocol3.c:1113 #, c-format msgid "HINT: %s\n" msgstr "HINT: %s\n" -#: fe-protocol3.c:1115 +#: fe-protocol3.c:1116 #, c-format msgid "QUERY: %s\n" msgstr "QUERY: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1123 #, c-format msgid "CONTEXT: %s\n" msgstr "CONTEXT: %s\n" -#: fe-protocol3.c:1131 +#: fe-protocol3.c:1132 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMA NAME: %s\n" -#: fe-protocol3.c:1135 +#: fe-protocol3.c:1136 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABLE NAME: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1140 #, c-format msgid "COLUMN NAME: %s\n" msgstr "COLUMN NAME: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1144 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATATYPE NAME: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1148 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "CONSTRAINT NAME: %s\n" -#: fe-protocol3.c:1159 +#: fe-protocol3.c:1160 msgid "LOCATION: " msgstr "LOCATION: " -#: fe-protocol3.c:1161 +#: fe-protocol3.c:1162 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1163 +#: fe-protocol3.c:1164 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1358 +#: fe-protocol3.c:1372 #, c-format msgid "LINE %d: " msgstr "行 %d: " -#: fe-protocol3.c:1757 +#: fe-protocol3.c:1771 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline: テキストのCOPY OUTを行っていません\n" -#: fe-protocol3.c:2134 +#: fe-protocol3.c:2148 msgid "protocol error: no function result\n" msgstr "プロトコルエラー: 関数の結果がありません\n" -#: fe-protocol3.c:2146 +#: fe-protocol3.c:2160 #, c-format msgid "protocol error: id=0x%x\n" msgstr "プロトコルエラー: id=0x%x\n" @@ -1034,44 +1042,40 @@ msgstr "\"%s\"のサーバー証明書がホスト名\"%s\"とマッチしませ msgid "could not get server's host name from server certificate\n" msgstr "サーバー証明書からサーバーのホスト名を取り出すことができませんでした。\n" -#: fe-secure-gssapi.c:194 +#: fe-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "GSSAPI名ラップエラー" -#: fe-secure-gssapi.c:202 +#: fe-secure-gssapi.c:209 msgid "outgoing GSSAPI message would not use confidentiality\n" msgstr "送出されるGSSAPIメッセージは機密性を使用しません\n" -#: fe-secure-gssapi.c:210 +#: fe-secure-gssapi.c:217 fe-secure-gssapi.c:715 #, c-format msgid "client tried to send oversize GSSAPI packet (%zu > %zu)\n" msgstr "クライアントは過大なGSSAPIパケットを送信しようとしました: (%zu > %zu)\n" -#: fe-secure-gssapi.c:350 fe-secure-gssapi.c:594 +#: fe-secure-gssapi.c:357 fe-secure-gssapi.c:607 #, c-format msgid "oversize GSSAPI packet sent by the server (%zu > %zu)\n" msgstr "過大なGSSAPIパケットがサーバーから送出されました: (%zu > %zu)\n" -#: fe-secure-gssapi.c:389 +#: fe-secure-gssapi.c:396 msgid "GSSAPI unwrap error" msgstr "GSSAPIアンラップエラー" -#: fe-secure-gssapi.c:399 +#: fe-secure-gssapi.c:406 msgid "incoming GSSAPI message did not use confidentiality\n" msgstr "受信したGSSAPIパケットは機密性を使用していませんでした\n" -#: fe-secure-gssapi.c:640 +#: fe-secure-gssapi.c:653 msgid "could not initiate GSSAPI security context" msgstr "GSSAPIセキュリティコンテキストを開始できませんでした" -#: fe-secure-gssapi.c:668 +#: fe-secure-gssapi.c:703 msgid "GSSAPI size check error" msgstr "GSSAPIサイズチェックエラー" -#: fe-secure-gssapi.c:679 -msgid "GSSAPI context establishment error" -msgstr "GSSAPIコンテクスト確立エラー" - #: fe-secure-openssl.c:218 fe-secure-openssl.c:331 fe-secure-openssl.c:1492 #, c-format msgid "SSL SYSCALL error: %s\n" @@ -1275,5 +1279,14 @@ msgstr "サーバーにデータを送信できませんでした: %s\n" msgid "unrecognized socket error: 0x%08X/%d" msgstr "不明なソケットエラー 0x%08X/%d" +#~ msgid "GSSAPI context establishment error" +#~ msgstr "GSSAPIコンテクスト確立エラー" + +#~ msgid "incomplete multibyte character" +#~ msgstr "不完全なマルチバイト文字" + +#~ msgid "invalid multibyte character" +#~ msgstr "不正なマルチバイト文字" + #~ msgid "keepalives parameter must be an integer\n" #~ msgstr "keepaliveのパラメータは整数でなければなりません\n" diff --git a/src/interfaces/libpq/po/ru.po b/src/interfaces/libpq/po/ru.po index f7705446d2b..0a763054f49 100644 --- a/src/interfaces/libpq/po/ru.po +++ b/src/interfaces/libpq/po/ru.po @@ -4,14 +4,14 @@ # Serguei A. Mokhov , 2001-2004. # Oleg Bartunov , 2005. # Andrey Sudnik , 2010. -# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 Alexander Lakhin +# SPDX-FileCopyrightText: 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026 Alexander Lakhin # Maxim Yablokov , 2021. msgid "" msgstr "" "Project-Id-Version: libpq (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-09 06:29+0200\n" -"PO-Revision-Date: 2025-05-03 16:34+0300\n" +"POT-Creation-Date: 2026-02-07 08:58+0200\n" +"PO-Revision-Date: 2026-02-07 10:48+0200\n" "Last-Translator: Alexander Lakhin \n" "Language-Team: Russian \n" "Language: ru\n" @@ -72,15 +72,15 @@ msgstr "не удалось сгенерировать разовый код\n" #: fe-auth-scram.c:636 fe-auth-scram.c:662 fe-auth-scram.c:677 #: fe-auth-scram.c:727 fe-auth-scram.c:766 fe-auth.c:290 fe-auth.c:362 #: fe-auth.c:398 fe-auth.c:623 fe-auth.c:799 fe-auth.c:1152 fe-auth.c:1322 -#: fe-connect.c:909 fe-connect.c:1458 fe-connect.c:1627 fe-connect.c:2978 -#: fe-connect.c:4827 fe-connect.c:5088 fe-connect.c:5207 fe-connect.c:5459 -#: fe-connect.c:5540 fe-connect.c:5639 fe-connect.c:5895 fe-connect.c:5924 -#: fe-connect.c:5996 fe-connect.c:6020 fe-connect.c:6038 fe-connect.c:6139 -#: fe-connect.c:6148 fe-connect.c:6506 fe-connect.c:6656 fe-connect.c:6924 -#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 -#: fe-exec.c:4199 fe-exec.c:4366 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:968 fe-protocol3.c:983 fe-protocol3.c:1016 -#: fe-protocol3.c:1724 fe-protocol3.c:2127 fe-secure-common.c:112 +#: fe-connect.c:910 fe-connect.c:1459 fe-connect.c:1628 fe-connect.c:2979 +#: fe-connect.c:4828 fe-connect.c:5103 fe-connect.c:5222 fe-connect.c:5474 +#: fe-connect.c:5555 fe-connect.c:5654 fe-connect.c:5910 fe-connect.c:5939 +#: fe-connect.c:6011 fe-connect.c:6035 fe-connect.c:6053 fe-connect.c:6154 +#: fe-connect.c:6163 fe-connect.c:6521 fe-connect.c:6671 fe-connect.c:6939 +#: fe-exec.c:715 fe-exec.c:983 fe-exec.c:1331 fe-exec.c:3170 fe-exec.c:3362 +#: fe-exec.c:4236 fe-exec.c:4430 fe-gssapi-common.c:111 fe-lobj.c:884 +#: fe-protocol3.c:969 fe-protocol3.c:984 fe-protocol3.c:1017 +#: fe-protocol3.c:1738 fe-protocol3.c:2141 fe-secure-common.c:112 #: fe-secure-gssapi.c:512 fe-secure-gssapi.c:687 fe-secure-openssl.c:455 #: fe-secure-openssl.c:1252 msgid "out of memory\n" @@ -130,8 +130,8 @@ msgstr "" msgid "malformed SCRAM message (invalid server signature)\n" msgstr "неправильное сообщение SCRAM (неверная сигнатура сервера)\n" -#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:207 fe-protocol3.c:232 -#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 +#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:208 fe-protocol3.c:233 +#: fe-protocol3.c:257 fe-protocol3.c:275 fe-protocol3.c:356 fe-protocol3.c:729 msgid "out of memory" msgstr "нехватка памяти" @@ -290,167 +290,167 @@ msgstr "слишком длинное значение password_encryption\n" msgid "unrecognized password encryption algorithm \"%s\"\n" msgstr "нераспознанный алгоритм шифрования пароля \"%s\"\n" -#: fe-connect.c:1092 +#: fe-connect.c:1093 #, c-format msgid "could not match %d host names to %d hostaddr values\n" msgstr "не удалось сопоставить имена узлов (%d) со значениями hostaddr (%d)\n" -#: fe-connect.c:1178 +#: fe-connect.c:1179 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "не удалось сопоставить номера портов (%d) с узлами (%d)\n" -#: fe-connect.c:1271 fe-connect.c:1297 fe-connect.c:1339 fe-connect.c:1348 -#: fe-connect.c:1381 fe-connect.c:1425 +#: fe-connect.c:1272 fe-connect.c:1298 fe-connect.c:1340 fe-connect.c:1349 +#: fe-connect.c:1382 fe-connect.c:1426 #, c-format msgid "invalid %s value: \"%s\"\n" msgstr "неверное значение %s: \"%s\"\n" -#: fe-connect.c:1318 +#: fe-connect.c:1319 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "значение sslmode \"%s\" недопустимо для сборки без поддержки SSL\n" -#: fe-connect.c:1366 +#: fe-connect.c:1367 msgid "invalid SSL protocol version range\n" msgstr "неверный диапазон версий протокола SSL\n" -#: fe-connect.c:1391 +#: fe-connect.c:1392 #, c-format msgid "" "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "" "значение gssencmode \"%s\" недопустимо для сборки без поддержки GSSAPI\n" -#: fe-connect.c:1651 +#: fe-connect.c:1652 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "не удалось перевести сокет в режим TCP-передачи без задержки: %s\n" -#: fe-connect.c:1713 +#: fe-connect.c:1714 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "подключиться к серверу через сокет \"%s\" не удалось: " -#: fe-connect.c:1740 +#: fe-connect.c:1741 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "подключиться к серверу \"%s\" (%s), порту %s не удалось: " -#: fe-connect.c:1745 +#: fe-connect.c:1746 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "подключиться к серверу \"%s\", порту %s не удалось: " -#: fe-connect.c:1770 +#: fe-connect.c:1771 msgid "" "\tIs the server running locally and accepting connections on that socket?\n" msgstr "" "\tСервер действительно работает локально и принимает подключения через этот " "сокет?\n" -#: fe-connect.c:1774 +#: fe-connect.c:1775 msgid "" "\tIs the server running on that host and accepting TCP/IP connections?\n" msgstr "" "\tСервер действительно работает по данному адресу и принимает TCP-" "соединения?\n" -#: fe-connect.c:1838 +#: fe-connect.c:1839 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "" "неверное целочисленное значение \"%s\" для параметра соединения \"%s\"\n" -#: fe-connect.c:1868 fe-connect.c:1903 fe-connect.c:1939 fe-connect.c:2039 -#: fe-connect.c:2652 +#: fe-connect.c:1869 fe-connect.c:1904 fe-connect.c:1940 fe-connect.c:2040 +#: fe-connect.c:2653 #, c-format msgid "%s(%s) failed: %s\n" msgstr "ошибка в %s(%s): %s\n" -#: fe-connect.c:2004 +#: fe-connect.c:2005 #, c-format msgid "%s(%s) failed: error code %d\n" msgstr "ошибка в %s(%s): код ошибки %d\n" -#: fe-connect.c:2319 +#: fe-connect.c:2320 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "неверное состояние соединения - возможно разрушение памяти\n" -#: fe-connect.c:2398 +#: fe-connect.c:2399 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "неверный номер порта: \"%s\"\n" -#: fe-connect.c:2414 +#: fe-connect.c:2415 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "преобразовать имя \"%s\" в адрес не удалось: %s\n" -#: fe-connect.c:2427 +#: fe-connect.c:2428 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "не удалось разобрать сетевой адрес \"%s\": %s\n" -#: fe-connect.c:2440 +#: fe-connect.c:2441 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "длина пути Unix-сокета \"%s\" превышает предел (%d байт)\n" -#: fe-connect.c:2455 +#: fe-connect.c:2456 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "преобразовать путь Unix-сокета \"%s\" в адрес не удалось: %s\n" -#: fe-connect.c:2581 +#: fe-connect.c:2582 #, c-format msgid "could not create socket: %s\n" msgstr "не удалось создать сокет: %s\n" -#: fe-connect.c:2612 +#: fe-connect.c:2613 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "не удалось перевести сокет в неблокирующий режим: %s\n" -#: fe-connect.c:2622 +#: fe-connect.c:2623 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "" "не удалось перевести сокет в режим закрытия при выполнении (close-on-exec): " "%s\n" -#: fe-connect.c:2780 +#: fe-connect.c:2781 #, c-format msgid "could not get socket error status: %s\n" msgstr "не удалось получить статус ошибки сокета: %s\n" -#: fe-connect.c:2808 +#: fe-connect.c:2809 #, c-format msgid "could not get client address from socket: %s\n" msgstr "не удалось получить адрес клиента из сокета: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2848 msgid "requirepeer parameter is not supported on this platform\n" msgstr "параметр requirepeer не поддерживается в этой ОС\n" -#: fe-connect.c:2850 +#: fe-connect.c:2851 #, c-format msgid "could not get peer credentials: %s\n" msgstr "не удалось получить учётные данные сервера: %s\n" -#: fe-connect.c:2864 +#: fe-connect.c:2865 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "" "requirepeer допускает подключение только к \"%s\", но сервер работает под " "именем \"%s\"\n" -#: fe-connect.c:2906 +#: fe-connect.c:2907 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "не удалось отправить пакет согласования GSSAPI: %s\n" -#: fe-connect.c:2918 +#: fe-connect.c:2919 msgid "" "GSSAPI encryption required but was impossible (possibly no credential cache, " "no server support, or using a local socket)\n" @@ -459,169 +459,176 @@ msgstr "" "отсутствует кеш учётных данных, нет поддержки на сервере или используется " "локальный сокет)\n" -#: fe-connect.c:2960 +#: fe-connect.c:2961 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "не удалось отправить пакет согласования SSL: %s\n" -#: fe-connect.c:2991 +#: fe-connect.c:2992 #, c-format msgid "could not send startup packet: %s\n" msgstr "не удалось отправить стартовый пакет: %s\n" -#: fe-connect.c:3067 +#: fe-connect.c:3068 msgid "server does not support SSL, but SSL was required\n" msgstr "затребовано подключение через SSL, но сервер не поддерживает SSL\n" -#: fe-connect.c:3085 +#: fe-connect.c:3086 msgid "server sent an error response during SSL exchange\n" msgstr "сервер передал ошибочный ответ во время обмена сообщениями SSL\n" -#: fe-connect.c:3091 +#: fe-connect.c:3092 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "получен неверный ответ при согласовании SSL: %c\n" -#: fe-connect.c:3112 +#: fe-connect.c:3113 msgid "received unencrypted data after SSL response\n" msgstr "после ответа SSL получены незашифрованные данные\n" -#: fe-connect.c:3193 +#: fe-connect.c:3194 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "затребовано шифрование GSSAPI, но сервер его не поддерживает\n" -#: fe-connect.c:3205 +#: fe-connect.c:3206 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "получен неверный ответ при согласовании GSSAPI: %c\n" -#: fe-connect.c:3224 +#: fe-connect.c:3225 msgid "received unencrypted data after GSSAPI encryption response\n" msgstr "" "после ответа на запрос шифрования GSSAPI получены незашифрованные данные\n" -#: fe-connect.c:3289 fe-connect.c:3314 +#: fe-connect.c:3290 fe-connect.c:3315 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "ожидался запрос аутентификации от сервера, но получено: %c\n" -#: fe-connect.c:3521 +#: fe-connect.c:3522 msgid "unexpected message from server during startup\n" msgstr "неожиданное сообщение от сервера в начале работы\n" -#: fe-connect.c:3613 +#: fe-connect.c:3614 msgid "session is read-only\n" msgstr "сеанс не допускает запись\n" -#: fe-connect.c:3616 +#: fe-connect.c:3617 msgid "session is not read-only\n" msgstr "сеанс допускает запись\n" -#: fe-connect.c:3670 +#: fe-connect.c:3671 msgid "server is in hot standby mode\n" msgstr "сервер работает в режиме горячего резерва\n" -#: fe-connect.c:3673 +#: fe-connect.c:3674 msgid "server is not in hot standby mode\n" msgstr "сервер работает не в режиме горячего резерва\n" -#: fe-connect.c:3791 fe-connect.c:3843 +#: fe-connect.c:3792 fe-connect.c:3844 #, c-format msgid "\"%s\" failed\n" msgstr "выполнить \"%s\" не удалось\n" -#: fe-connect.c:3857 +#: fe-connect.c:3858 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "неверное состояние соединения %d - возможно разрушение памяти\n" -#: fe-connect.c:4840 +#: fe-connect.c:4841 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "некорректный адрес LDAP \"%s\": схема должна быть ldap://\n" -#: fe-connect.c:4855 +#: fe-connect.c:4856 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "некорректный адрес LDAP \"%s\": отсутствует уникальное имя\n" -#: fe-connect.c:4867 fe-connect.c:4925 +#: fe-connect.c:4868 fe-connect.c:4926 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "некорректный адрес LDAP \"%s\": должен быть только один атрибут\n" -#: fe-connect.c:4879 fe-connect.c:4941 +#: fe-connect.c:4880 fe-connect.c:4942 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "" "некорректный адрес LDAP \"%s\": не указана область поиска (base/one/sub)\n" -#: fe-connect.c:4891 +#: fe-connect.c:4892 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "некорректный адрес LDAP \"%s\": нет фильтра\n" -#: fe-connect.c:4913 +#: fe-connect.c:4914 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "некорректный адрес LDAP \"%s\": неверный номер порта\n" -#: fe-connect.c:4951 +#: fe-connect.c:4952 msgid "could not create LDAP structure\n" msgstr "не удалось создать структуру LDAP\n" -#: fe-connect.c:5027 +#: fe-connect.c:5028 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "ошибка поиска на сервере LDAP: %s\n" -#: fe-connect.c:5038 +#: fe-connect.c:5039 msgid "more than one entry found on LDAP lookup\n" msgstr "при поиске LDAP найдено более одного вхождения\n" -#: fe-connect.c:5039 fe-connect.c:5051 +#: fe-connect.c:5040 fe-connect.c:5052 msgid "no entry found on LDAP lookup\n" msgstr "при поиске LDAP ничего не найдено\n" -#: fe-connect.c:5062 fe-connect.c:5075 +#: fe-connect.c:5063 fe-connect.c:5076 msgid "attribute has no values on LDAP lookup\n" msgstr "атрибут не содержит значений при поиске LDAP\n" -#: fe-connect.c:5127 fe-connect.c:5146 fe-connect.c:5678 +#: fe-connect.c:5090 +#, c-format +msgid "connection info string size exceeds the maximum allowed (%d)\n" +msgstr "" +"размер строки с информацией о подключении превышает максимально допустимый " +"(%d)\n" + +#: fe-connect.c:5142 fe-connect.c:5161 fe-connect.c:5693 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "в строке соединения нет \"=\" после \"%s\"\n" -#: fe-connect.c:5219 fe-connect.c:5863 fe-connect.c:6639 +#: fe-connect.c:5234 fe-connect.c:5878 fe-connect.c:6654 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "неверный параметр соединения \"%s\"\n" -#: fe-connect.c:5235 fe-connect.c:5727 +#: fe-connect.c:5250 fe-connect.c:5742 msgid "unterminated quoted string in connection info string\n" msgstr "в строке соединения не хватает закрывающей кавычки\n" -#: fe-connect.c:5316 +#: fe-connect.c:5331 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "определение службы \"%s\" не найдено\n" -#: fe-connect.c:5342 +#: fe-connect.c:5357 #, c-format msgid "service file \"%s\" not found\n" msgstr "файл определений служб \"%s\" не найден\n" -#: fe-connect.c:5356 +#: fe-connect.c:5371 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "слишком длинная строка (%d) в файле определений служб \"%s\"\n" -#: fe-connect.c:5427 fe-connect.c:5471 +#: fe-connect.c:5442 fe-connect.c:5486 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "синтаксическая ошибка в файле определения служб \"%s\" (строка %d)\n" -#: fe-connect.c:5438 +#: fe-connect.c:5453 #, c-format msgid "" "nested service specifications not supported in service file \"%s\", line %d\n" @@ -629,24 +636,24 @@ msgstr "" "рекурсивные определения служб не поддерживаются (файл определения служб " "\"%s\", строка %d)\n" -#: fe-connect.c:6159 +#: fe-connect.c:6174 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "во внутреннюю процедуру разбора строки передан ошибочный URI: \"%s\"\n" -#: fe-connect.c:6236 +#: fe-connect.c:6251 #, c-format msgid "" "end of string reached when looking for matching \"]\" in IPv6 host address " "in URI: \"%s\"\n" msgstr "URI не содержит символ \"]\" после адреса IPv6: \"%s\"\n" -#: fe-connect.c:6243 +#: fe-connect.c:6258 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6, содержащийся в URI, не может быть пустым: \"%s\"\n" -#: fe-connect.c:6258 +#: fe-connect.c:6273 #, c-format msgid "" "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): " @@ -655,41 +662,41 @@ msgstr "" "неожиданный символ \"%c\" в позиции %d в URI (ожидалось \":\" или \"/\"): " "\"%s\"\n" -#: fe-connect.c:6388 +#: fe-connect.c:6403 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "лишний разделитель ключа/значения \"=\" в параметрах URI: \"%s\"\n" -#: fe-connect.c:6408 +#: fe-connect.c:6423 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "в параметрах URI не хватает разделителя ключа/значения \"=\": \"%s\"\n" -#: fe-connect.c:6460 +#: fe-connect.c:6475 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "неверный параметр в URI: \"%s\"\n" -#: fe-connect.c:6534 +#: fe-connect.c:6549 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "неверный символ, закодированный с %%: \"%s\"\n" -#: fe-connect.c:6544 +#: fe-connect.c:6559 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "недопустимое значение %%00 для символа, закодированного с %%: \"%s\"\n" -#: fe-connect.c:6916 +#: fe-connect.c:6931 msgid "connection pointer is NULL\n" msgstr "нулевой указатель соединения\n" -#: fe-connect.c:7204 +#: fe-connect.c:7219 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "ПРЕДУПРЕЖДЕНИЕ: файл паролей \"%s\" - не обычный файл\n" -#: fe-connect.c:7213 +#: fe-connect.c:7228 #, c-format msgid "" "WARNING: password file \"%s\" has group or world access; permissions should " @@ -698,153 +705,166 @@ msgstr "" "ПРЕДУПРЕЖДЕНИЕ: к файлу паролей \"%s\" имеют доступ все или группа; права " "должны быть u=rw (0600) или более ограниченные\n" -#: fe-connect.c:7321 +#: fe-connect.c:7336 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "пароль получен из файла \"%s\"\n" -#: fe-exec.c:466 fe-exec.c:3431 +#: fe-exec.c:466 fe-exec.c:3436 #, c-format msgid "row number %d is out of range 0..%d" msgstr "номер записи %d вне диапазона 0..%d" -#: fe-exec.c:528 fe-protocol3.c:1932 +#: fe-exec.c:528 fe-protocol3.c:1946 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:836 +#: fe-exec.c:841 msgid "write to server failed\n" msgstr "ошибка при передаче данных серверу\n" -#: fe-exec.c:877 +#: fe-exec.c:882 msgid "no error text available\n" msgstr "текст ошибки отсутствует\n" -#: fe-exec.c:966 +#: fe-exec.c:971 msgid "NOTICE" msgstr "ЗАМЕЧАНИЕ" -#: fe-exec.c:1024 +#: fe-exec.c:1029 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult не может вместить больше чем INT_MAX кортежей" -#: fe-exec.c:1036 +#: fe-exec.c:1041 msgid "size_t overflow" msgstr "переполнение size_t" -#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 +#: fe-exec.c:1455 fe-exec.c:1526 fe-exec.c:1575 msgid "command string is a null pointer\n" msgstr "указатель на командную строку нулевой\n" -#: fe-exec.c:1457 fe-exec.c:2908 +#: fe-exec.c:1462 fe-exec.c:2913 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "%s не допускается в конвейерном режиме\n" -#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 +#: fe-exec.c:1532 fe-exec.c:1581 fe-exec.c:1677 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "число параметров должно быть от 0 до %d\n" -#: fe-exec.c:1564 fe-exec.c:1666 +#: fe-exec.c:1569 fe-exec.c:1671 msgid "statement name is a null pointer\n" msgstr "указатель на имя оператора нулевой\n" -#: fe-exec.c:1710 fe-exec.c:3276 +#: fe-exec.c:1715 fe-exec.c:3281 msgid "no connection to the server\n" msgstr "нет соединения с сервером\n" -#: fe-exec.c:1719 fe-exec.c:3285 +#: fe-exec.c:1724 fe-exec.c:3290 msgid "another command is already in progress\n" msgstr "уже выполняется другая команда\n" -#: fe-exec.c:1750 +#: fe-exec.c:1755 msgid "cannot queue commands during COPY\n" msgstr "во время COPY нельзя добавлять команды в очередь\n" -#: fe-exec.c:1868 +#: fe-exec.c:1873 msgid "length must be given for binary parameter\n" msgstr "для двоичного параметра должна быть указана длина\n" -#: fe-exec.c:2183 +#: fe-exec.c:2188 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "неожиданный asyncStatus: %d\n" -#: fe-exec.c:2341 +#: fe-exec.c:2346 msgid "" "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "" "функции синхронного выполнения команд не допускаются в конвейерном режиме\n" -#: fe-exec.c:2358 +#: fe-exec.c:2363 msgid "COPY terminated by new PQexec" msgstr "операция COPY прервана вызовом PQexec" -#: fe-exec.c:2375 +#: fe-exec.c:2380 msgid "PQexec not allowed during COPY BOTH\n" msgstr "вызов PQexec не допускается в процессе COPY BOTH\n" -#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 +#: fe-exec.c:2608 fe-exec.c:2664 fe-exec.c:2733 fe-protocol3.c:1877 msgid "no COPY in progress\n" msgstr "операция COPY не выполняется\n" -#: fe-exec.c:2917 +#: fe-exec.c:2922 msgid "connection in wrong state\n" msgstr "соединение в неправильном состоянии\n" -#: fe-exec.c:2961 +#: fe-exec.c:2966 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "перейти в конвейерный режиме нельзя, соединение не простаивает\n" -#: fe-exec.c:2998 fe-exec.c:3022 +#: fe-exec.c:3003 fe-exec.c:3027 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "выйти из конвейерного режима нельзя, не собрав все результаты\n" -#: fe-exec.c:3003 +#: fe-exec.c:3008 msgid "cannot exit pipeline mode while busy\n" msgstr "выйти из конвейерного режима в занятом состоянии нельзя\n" -#: fe-exec.c:3015 +#: fe-exec.c:3020 msgid "cannot exit pipeline mode while in COPY\n" msgstr "выйти из конвейерного режима во время COPY нельзя\n" -#: fe-exec.c:3209 +#: fe-exec.c:3214 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "отправить конвейер, не перейдя в конвейерный режим, нельзя\n" -#: fe-exec.c:3320 +#: fe-exec.c:3325 msgid "invalid ExecStatusType code" msgstr "неверный код ExecStatusType" -#: fe-exec.c:3347 +#: fe-exec.c:3352 msgid "PGresult is not an error result\n" msgstr "В PGresult не передан результат ошибки\n" -#: fe-exec.c:3415 fe-exec.c:3438 +#: fe-exec.c:3420 fe-exec.c:3443 #, c-format msgid "column number %d is out of range 0..%d" msgstr "номер столбца %d вне диапазона 0..%d" -#: fe-exec.c:3453 +#: fe-exec.c:3458 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "номер параметра %d вне диапазона 0..%d" -#: fe-exec.c:3764 +#: fe-exec.c:3769 #, c-format msgid "could not interpret result from server: %s" msgstr "не удалось интерпретировать ответ сервера: %s" -#: fe-exec.c:4044 fe-exec.c:4159 +#: fe-exec.c:4049 fe-exec.c:4185 msgid "incomplete multibyte character\n" msgstr "неполный многобайтный символ\n" -#: fe-exec.c:4047 fe-exec.c:4179 +#: fe-exec.c:4052 fe-exec.c:4205 msgid "invalid multibyte character\n" msgstr "неверный многобайтный символ\n" +#: fe-exec.c:4308 +#, c-format +msgid "escaped string size exceeds the maximum allowed (%zu)\n" +msgstr "" +"размер строки с экранированием превышает максимально допустимый (%zu)\n" + +#: fe-exec.c:4486 +#, c-format +msgid "escaped bytea size exceeds the maximum allowed (%zu)\n" +msgstr "" +"размер значения bytea с экранированием превышает максимально допустимый " +"(%zu)\n" + #: fe-gssapi-common.c:124 msgid "GSSAPI name import error" msgstr "ошибка импорта имени в GSSAPI" @@ -926,12 +946,12 @@ msgstr "неверный сокет\n" msgid "%s() failed: %s\n" msgstr "ошибка в %s(): %s\n" -#: fe-protocol3.c:184 +#: fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "от сервера во время простоя получено сообщение типа 0x%02x" -#: fe-protocol3.c:388 +#: fe-protocol3.c:389 msgid "" "server sent data (\"D\" message) without prior row description (\"T\" " "message)\n" @@ -939,125 +959,125 @@ msgstr "" "сервер отправил данные (сообщение \"D\") без предварительного описания " "строки (сообщение \"T\")\n" -#: fe-protocol3.c:431 +#: fe-protocol3.c:432 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "неожиданный ответ сервера; первый полученный символ: \"%c\"\n" -#: fe-protocol3.c:456 +#: fe-protocol3.c:457 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "содержимое не соответствует длине в сообщении типа \"%c\"\n" -#: fe-protocol3.c:476 +#: fe-protocol3.c:477 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "" "потеряна синхронизация с сервером: получено сообщение типа \"%c\", длина %d\n" -#: fe-protocol3.c:528 fe-protocol3.c:568 +#: fe-protocol3.c:529 fe-protocol3.c:569 msgid "insufficient data in \"T\" message" msgstr "недостаточно данных в сообщении \"T\"" -#: fe-protocol3.c:639 fe-protocol3.c:845 +#: fe-protocol3.c:640 fe-protocol3.c:846 msgid "out of memory for query result" msgstr "недостаточно памяти для результата запроса" -#: fe-protocol3.c:708 +#: fe-protocol3.c:709 msgid "insufficient data in \"t\" message" msgstr "недостаточно данных в сообщении \"t\"" -#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 +#: fe-protocol3.c:768 fe-protocol3.c:800 fe-protocol3.c:818 msgid "insufficient data in \"D\" message" msgstr "недостаточно данных в сообщении \"D\"" -#: fe-protocol3.c:773 +#: fe-protocol3.c:774 msgid "unexpected field count in \"D\" message" msgstr "неверное число полей в сообщении \"D\"" -#: fe-protocol3.c:1029 +#: fe-protocol3.c:1030 msgid "no error message available\n" msgstr "нет сообщения об ошибке\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1077 fe-protocol3.c:1096 +#: fe-protocol3.c:1078 fe-protocol3.c:1097 #, c-format msgid " at character %s" msgstr " символ %s" -#: fe-protocol3.c:1109 +#: fe-protocol3.c:1110 #, c-format msgid "DETAIL: %s\n" msgstr "ПОДРОБНОСТИ: %s\n" -#: fe-protocol3.c:1112 +#: fe-protocol3.c:1113 #, c-format msgid "HINT: %s\n" msgstr "ПОДСКАЗКА: %s\n" -#: fe-protocol3.c:1115 +#: fe-protocol3.c:1116 #, c-format msgid "QUERY: %s\n" msgstr "ЗАПРОС: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1123 #, c-format msgid "CONTEXT: %s\n" msgstr "КОНТЕКСТ: %s\n" -#: fe-protocol3.c:1131 +#: fe-protocol3.c:1132 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "СХЕМА: %s\n" -#: fe-protocol3.c:1135 +#: fe-protocol3.c:1136 #, c-format msgid "TABLE NAME: %s\n" msgstr "ТАБЛИЦА: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1140 #, c-format msgid "COLUMN NAME: %s\n" msgstr "СТОЛБЕЦ: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1144 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "ТИП ДАННЫХ: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1148 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "ОГРАНИЧЕНИЕ: %s\n" -#: fe-protocol3.c:1159 +#: fe-protocol3.c:1160 msgid "LOCATION: " msgstr "ПОЛОЖЕНИЕ: " -#: fe-protocol3.c:1161 +#: fe-protocol3.c:1162 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1163 +#: fe-protocol3.c:1164 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1358 +#: fe-protocol3.c:1372 #, c-format msgid "LINE %d: " msgstr "СТРОКА %d: " -#: fe-protocol3.c:1757 +#: fe-protocol3.c:1771 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline можно вызывать только во время COPY OUT с текстом\n" -#: fe-protocol3.c:2134 +#: fe-protocol3.c:2148 msgid "protocol error: no function result\n" msgstr "ошибка протокола: нет результата функции\n" -#: fe-protocol3.c:2146 +#: fe-protocol3.c:2160 #, c-format msgid "protocol error: id=0x%x\n" msgstr "ошибка протокола: id=0x%x\n" diff --git a/src/interfaces/libpq/po/sv.po b/src/interfaces/libpq/po/sv.po index 0a076861f50..ae381ea5249 100644 --- a/src/interfaces/libpq/po/sv.po +++ b/src/interfaces/libpq/po/sv.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: PostgreSQL 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-02-12 07:44+0000\n" -"PO-Revision-Date: 2025-02-12 21:12+0100\n" +"POT-Creation-Date: 2026-01-30 21:33+0000\n" +"PO-Revision-Date: 2026-02-02 23:34+0100\n" "Last-Translator: Dennis Björklund \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -67,16 +67,17 @@ msgstr "kunde inte skapa engångsnummer\n" #: fe-auth-scram.c:636 fe-auth-scram.c:662 fe-auth-scram.c:677 #: fe-auth-scram.c:727 fe-auth-scram.c:766 fe-auth.c:290 fe-auth.c:362 #: fe-auth.c:398 fe-auth.c:623 fe-auth.c:799 fe-auth.c:1152 fe-auth.c:1322 -#: fe-connect.c:909 fe-connect.c:1458 fe-connect.c:1627 fe-connect.c:2978 -#: fe-connect.c:4827 fe-connect.c:5088 fe-connect.c:5207 fe-connect.c:5459 -#: fe-connect.c:5540 fe-connect.c:5639 fe-connect.c:5895 fe-connect.c:5924 -#: fe-connect.c:5996 fe-connect.c:6020 fe-connect.c:6038 fe-connect.c:6139 -#: fe-connect.c:6148 fe-connect.c:6506 fe-connect.c:6656 fe-connect.c:6922 -#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 -#: fe-exec.c:4204 fe-exec.c:4371 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:968 fe-protocol3.c:983 fe-protocol3.c:1016 -#: fe-protocol3.c:1724 fe-protocol3.c:2127 fe-secure-common.c:112 -#: fe-secure-gssapi.c:500 fe-secure-openssl.c:455 fe-secure-openssl.c:1252 +#: fe-connect.c:910 fe-connect.c:1459 fe-connect.c:1628 fe-connect.c:2979 +#: fe-connect.c:4828 fe-connect.c:5103 fe-connect.c:5222 fe-connect.c:5474 +#: fe-connect.c:5555 fe-connect.c:5654 fe-connect.c:5910 fe-connect.c:5939 +#: fe-connect.c:6011 fe-connect.c:6035 fe-connect.c:6053 fe-connect.c:6154 +#: fe-connect.c:6163 fe-connect.c:6521 fe-connect.c:6671 fe-connect.c:6939 +#: fe-exec.c:715 fe-exec.c:983 fe-exec.c:1331 fe-exec.c:3170 fe-exec.c:3362 +#: fe-exec.c:4236 fe-exec.c:4430 fe-gssapi-common.c:111 fe-lobj.c:884 +#: fe-protocol3.c:969 fe-protocol3.c:984 fe-protocol3.c:1017 +#: fe-protocol3.c:1738 fe-protocol3.c:2141 fe-secure-common.c:112 +#: fe-secure-gssapi.c:512 fe-secure-gssapi.c:687 fe-secure-openssl.c:455 +#: fe-secure-openssl.c:1252 msgid "out of memory\n" msgstr "slut på minne\n" @@ -122,8 +123,8 @@ msgstr "felaktigt SCRAM-meddelande (skräp i slutet av server-final-message)\n" msgid "malformed SCRAM message (invalid server signature)\n" msgstr "felaktigt SCRAM-meddelande (ogiltigt serversignatur)\n" -#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:207 fe-protocol3.c:232 -#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 +#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:208 fe-protocol3.c:233 +#: fe-protocol3.c:257 fe-protocol3.c:275 fe-protocol3.c:356 fe-protocol3.c:729 msgid "out of memory" msgstr "slut på minne" @@ -263,528 +264,543 @@ msgstr "password_encryption-värdet är för långt\n" msgid "unrecognized password encryption algorithm \"%s\"\n" msgstr "okänd lösenordskrypteringsalgoritm \"%s\"\n" -#: fe-connect.c:1092 +#: fe-connect.c:1093 #, c-format msgid "could not match %d host names to %d hostaddr values\n" msgstr "kunde inte matcha %d värdnamn till %d värdadresser\n" -#: fe-connect.c:1178 +#: fe-connect.c:1179 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "kunde inte matcha %d portnummer med %d värdar\n" -#: fe-connect.c:1271 fe-connect.c:1297 fe-connect.c:1339 fe-connect.c:1348 -#: fe-connect.c:1381 fe-connect.c:1425 +#: fe-connect.c:1272 fe-connect.c:1298 fe-connect.c:1340 fe-connect.c:1349 +#: fe-connect.c:1382 fe-connect.c:1426 #, c-format msgid "invalid %s value: \"%s\"\n" msgstr "ogiltigt %s-värde: \"%s\"\n" -#: fe-connect.c:1318 +#: fe-connect.c:1319 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "värde för ssl-läge, \"%s\", är ogiltigt när SSL-stöd inte kompilerats in\n" -#: fe-connect.c:1366 +#: fe-connect.c:1367 msgid "invalid SSL protocol version range\n" msgstr "ogiltigt intervall för SSL-protokollversion\n" -#: fe-connect.c:1391 +#: fe-connect.c:1392 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "värde för gssenc-läge, \"%s\", är ogiltigt när GSSAPI-stöd inte kompilerats in\n" -#: fe-connect.c:1651 +#: fe-connect.c:1652 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "kunde inte sätta uttag (socket) till läget TCP-ingen-fördröjning: %s\n" -#: fe-connect.c:1713 +#: fe-connect.c:1714 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "anslutning till server på socket \"%s\" misslyckades: " -#: fe-connect.c:1740 +#: fe-connect.c:1741 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "anslutning til server på \"%s\" (%s), port %s misslyckades: " -#: fe-connect.c:1745 +#: fe-connect.c:1746 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "anslutning till server på \"%s\", port %s misslyckades: " -#: fe-connect.c:1770 +#: fe-connect.c:1771 msgid "\tIs the server running locally and accepting connections on that socket?\n" msgstr "" "\tKör servern lokalt och accepterar den\n" "\tanslutningar till detta uttag (socket)?\n" -#: fe-connect.c:1774 +#: fe-connect.c:1775 msgid "\tIs the server running on that host and accepting TCP/IP connections?\n" msgstr "\tKör servern på den värden och accepterar den TCP/IP-anslutningar?\n" -#: fe-connect.c:1838 +#: fe-connect.c:1839 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "ogiltigt heltalsvärde \"%s\" för anslutningsflagga \"%s\"\n" -#: fe-connect.c:1868 fe-connect.c:1903 fe-connect.c:1939 fe-connect.c:2039 -#: fe-connect.c:2652 +#: fe-connect.c:1869 fe-connect.c:1904 fe-connect.c:1940 fe-connect.c:2040 +#: fe-connect.c:2653 #, c-format msgid "%s(%s) failed: %s\n" msgstr "%s(%s) misslyckades: %s\n" -#: fe-connect.c:2004 +#: fe-connect.c:2005 #, c-format msgid "%s(%s) failed: error code %d\n" msgstr "%s(%s) misslyckades: felkod %d\n" -#: fe-connect.c:2319 +#: fe-connect.c:2320 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "ogiltigt tillstånd i anslutning, antagligen korrupt minne\n" -#: fe-connect.c:2398 +#: fe-connect.c:2399 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "ogiltigt portnummer \"%s\"\n" -#: fe-connect.c:2414 +#: fe-connect.c:2415 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "kunde inte översätta värdnamn \"%s\" till adress: %s\n" -#: fe-connect.c:2427 +#: fe-connect.c:2428 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "kunde inte parsa nätverksadress \"%s\": %s\n" -#: fe-connect.c:2440 +#: fe-connect.c:2441 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Sökväg till unixdomänuttag \"%s\" är för lång (maximalt %d byte)\n" -#: fe-connect.c:2455 +#: fe-connect.c:2456 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "kunde inte översätta sökväg till unix-uttag (socket) \"%s\" till adress: %s\n" -#: fe-connect.c:2581 +#: fe-connect.c:2582 #, c-format msgid "could not create socket: %s\n" msgstr "kan inte skapa uttag: %s\n" -#: fe-connect.c:2612 +#: fe-connect.c:2613 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "kunde inte sätta uttag (socket) till ickeblockerande läge: %s\n" -#: fe-connect.c:2622 +#: fe-connect.c:2623 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "kunde inte ställa in uttag (socket) i \"close-on-exec\"-läge: %s\n" -#: fe-connect.c:2780 +#: fe-connect.c:2781 #, c-format msgid "could not get socket error status: %s\n" msgstr "kunde inte hämta felstatus för uttag (socket): %s\n" -#: fe-connect.c:2808 +#: fe-connect.c:2809 #, c-format msgid "could not get client address from socket: %s\n" msgstr "kunde inte få tag på klientadressen från uttag (socket): %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2848 msgid "requirepeer parameter is not supported on this platform\n" msgstr "requirepeer-parameter stöds inte på denna plattform\n" -#: fe-connect.c:2850 +#: fe-connect.c:2851 #, c-format msgid "could not get peer credentials: %s\n" msgstr "kunde inte hämta andra sidans referenser: %s\n" -#: fe-connect.c:2864 +#: fe-connect.c:2865 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer anger \"%s\", men andra sidans användarnamn är \"%s\"\n" -#: fe-connect.c:2906 +#: fe-connect.c:2907 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "kunde inte skicka GSSAPI-paket för uppkopplingsförhandling: %s\n" -#: fe-connect.c:2918 +#: fe-connect.c:2919 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "GSSAPI-kryptering krävdes men var omöjligt (kanske ingen credential-cache, inget serverstöd eller använder ett lokalt uttag)\n" -#: fe-connect.c:2960 +#: fe-connect.c:2961 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "kunde inte skicka SSL-paket för uppkopplingsförhandling: %s\n" -#: fe-connect.c:2991 +#: fe-connect.c:2992 #, c-format msgid "could not send startup packet: %s\n" msgstr "kan inte skicka startpaketet: %s\n" -#: fe-connect.c:3067 +#: fe-connect.c:3068 msgid "server does not support SSL, but SSL was required\n" msgstr "SSL stöds inte av servern, men SSL krävdes\n" -#: fe-connect.c:3085 +#: fe-connect.c:3086 msgid "server sent an error response during SSL exchange\n" msgstr "servern skickade ett felmeddelande vid SSL-utbyte\n" -#: fe-connect.c:3091 +#: fe-connect.c:3092 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "tog emot ogiltigt svar till SSL-uppkopplingsförhandling: %c\n" -#: fe-connect.c:3112 +#: fe-connect.c:3113 msgid "received unencrypted data after SSL response\n" msgstr "tog emot okrypterad data efter SSL-svar\n" -#: fe-connect.c:3193 +#: fe-connect.c:3194 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "GSSAPI stöds inte av servern, men det krävdes\n" -#: fe-connect.c:3205 +#: fe-connect.c:3206 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "tog emot ogiltigt svar till GSSAPI-uppkopplingsförhandling: %c\n" -#: fe-connect.c:3224 +#: fe-connect.c:3225 msgid "received unencrypted data after GSSAPI encryption response\n" msgstr "tog emot okrypterad data efter GSSAPI-krypteringssvar\n" -#: fe-connect.c:3289 fe-connect.c:3314 +#: fe-connect.c:3290 fe-connect.c:3315 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "förväntade autentiseringsförfrågan från servern, men fick %c\n" -#: fe-connect.c:3521 +#: fe-connect.c:3522 msgid "unexpected message from server during startup\n" msgstr "oväntat meddelande från servern under starten\n" -#: fe-connect.c:3613 +#: fe-connect.c:3614 msgid "session is read-only\n" msgstr "sessionen är i readonly-läge\n" -#: fe-connect.c:3616 +#: fe-connect.c:3617 msgid "session is not read-only\n" msgstr "sessionen är inte i readonly-läge\n" -#: fe-connect.c:3670 +#: fe-connect.c:3671 msgid "server is in hot standby mode\n" msgstr "servern är i varmt standby-läge\n" -#: fe-connect.c:3673 +#: fe-connect.c:3674 msgid "server is not in hot standby mode\n" msgstr "servern är inte i varmt standby-läge\n" -#: fe-connect.c:3791 fe-connect.c:3843 +#: fe-connect.c:3792 fe-connect.c:3844 #, c-format msgid "\"%s\" failed\n" msgstr "\"%s\" misslyckades\n" -#: fe-connect.c:3857 +#: fe-connect.c:3858 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "ogiltigt tillstånd %d i anslutning, antagligen korrupt minne\n" -#: fe-connect.c:4840 +#: fe-connect.c:4841 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "ogiltig LDAP URL \"%s\": schemat måste vara ldap://\n" -#: fe-connect.c:4855 +#: fe-connect.c:4856 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "ogiltig LDAP URL \"%s\": saknar urskiljbart namn\n" -#: fe-connect.c:4867 fe-connect.c:4925 +#: fe-connect.c:4868 fe-connect.c:4926 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "ogiltig LDAP URL \"%s\": måste finnas exakt ett attribut\n" -#: fe-connect.c:4879 fe-connect.c:4941 +#: fe-connect.c:4880 fe-connect.c:4942 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "ogiltig LDAP URL \"%s\": måste ha sök-scope (base/one/sub)\n" -#: fe-connect.c:4891 +#: fe-connect.c:4892 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "ogiltigt LDAP URL \"%s\": inget filter\n" -#: fe-connect.c:4913 +#: fe-connect.c:4914 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "ogiltig LDAP URL \"%s\": ogiltigt portnummer\n" -#: fe-connect.c:4951 +#: fe-connect.c:4952 msgid "could not create LDAP structure\n" msgstr "kunde inte skapa LDAP-struktur\n" -#: fe-connect.c:5027 +#: fe-connect.c:5028 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "uppslagning av LDAP-server misslyckades: %s\n" -#: fe-connect.c:5038 +#: fe-connect.c:5039 msgid "more than one entry found on LDAP lookup\n" msgstr "mer än en post hittad i LDAP-uppslagning\n" -#: fe-connect.c:5039 fe-connect.c:5051 +#: fe-connect.c:5040 fe-connect.c:5052 msgid "no entry found on LDAP lookup\n" msgstr "ingen post hittad i LDAP-uppslagning\n" -#: fe-connect.c:5062 fe-connect.c:5075 +#: fe-connect.c:5063 fe-connect.c:5076 msgid "attribute has no values on LDAP lookup\n" msgstr "attributet har inga värden i LDAP-uppslagning\n" -#: fe-connect.c:5127 fe-connect.c:5146 fe-connect.c:5678 +#: fe-connect.c:5090 +#, c-format +msgid "connection info string size exceeds the maximum allowed (%d)\n" +msgstr "anslutningssträng överskrider det maximalt tillåtna (%d)\n" + +#: fe-connect.c:5142 fe-connect.c:5161 fe-connect.c:5693 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "\"=\" efter \"%s\" saknas i anslutningssträng\n" -#: fe-connect.c:5219 fe-connect.c:5863 fe-connect.c:6639 +#: fe-connect.c:5234 fe-connect.c:5878 fe-connect.c:6654 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "ogiltig anslutningsparameter \"%s\"\n" -#: fe-connect.c:5235 fe-connect.c:5727 +#: fe-connect.c:5250 fe-connect.c:5742 msgid "unterminated quoted string in connection info string\n" msgstr "icke terminerad sträng i uppkopplingsinformationen\n" -#: fe-connect.c:5316 +#: fe-connect.c:5331 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "definition av service \"%s\" hittades inte\n" -#: fe-connect.c:5342 +#: fe-connect.c:5357 #, c-format msgid "service file \"%s\" not found\n" msgstr "servicefil \"%s\" hittades inte\n" -#: fe-connect.c:5356 +#: fe-connect.c:5371 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "rad %d för lång i servicefil \"%s\"\n" -#: fe-connect.c:5427 fe-connect.c:5471 +#: fe-connect.c:5442 fe-connect.c:5486 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "syntaxfel i servicefel \"%s\", rad %d\n" -#: fe-connect.c:5438 +#: fe-connect.c:5453 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "nästlade servicespecifikationer stöds inte i servicefil \"%s\", rad %d\n" -#: fe-connect.c:6159 +#: fe-connect.c:6174 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "ogiltig URI propagerad till intern parsningsrutin: \"%s\"\n" -#: fe-connect.c:6236 +#: fe-connect.c:6251 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "nådde slutet på strängen när vi letade efter matchande \"]\" i IPv6-värdadress i URI: \"%s\"\n" -#: fe-connect.c:6243 +#: fe-connect.c:6258 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6-värdadress får ej vara tom i URI: \"%s\"\n" -#: fe-connect.c:6258 +#: fe-connect.c:6273 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "oväntat tecken \"%c\" vid position %d i URI (förväntade \":\" eller \"/\"): \"%s\"\n" -#: fe-connect.c:6388 +#: fe-connect.c:6403 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "extra nyckel/värde-separator \"=\" i URI-frågeparameter: \"%s\"\n" -#: fe-connect.c:6408 +#: fe-connect.c:6423 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "saknar nyckel/värde-separator \"=\" i URI-frågeparameter: \"%s\"\n" -#: fe-connect.c:6460 +#: fe-connect.c:6475 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "ogiltig URI-frågeparameter: \"%s\"\n" -#: fe-connect.c:6534 +#: fe-connect.c:6549 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "ogiltigt procent-kodad symbol: \"%s\"\n" -#: fe-connect.c:6544 +#: fe-connect.c:6559 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "förbjudet värde %%00 i procentkodat värde: \"%s\"\n" -#: fe-connect.c:6914 +#: fe-connect.c:6931 msgid "connection pointer is NULL\n" msgstr "anslutningspekare är NULL\n" -#: fe-connect.c:7202 +#: fe-connect.c:7219 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "FEL: lösenordsfil \"%s\" är inte en vanlig fil\n" -#: fe-connect.c:7211 +#: fe-connect.c:7228 #, c-format msgid "WARNING: password file \"%s\" has group or world access; permissions should be u=rw (0600) or less\n" msgstr "VARNING: lösenordsfilen \"%s\" har läsrättigheter för gruppen eller världen; rättigheten skall vara u=rw (0600) eller mindre\n" -#: fe-connect.c:7319 +#: fe-connect.c:7336 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "lösenord hämtat från fil \"%s\"\n" -#: fe-exec.c:466 fe-exec.c:3431 +#: fe-exec.c:466 fe-exec.c:3436 #, c-format msgid "row number %d is out of range 0..%d" msgstr "radnummer %d är utanför giltigt intervall 0..%d" -#: fe-exec.c:528 fe-protocol3.c:1932 +#: fe-exec.c:528 fe-protocol3.c:1946 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:836 +#: fe-exec.c:841 msgid "write to server failed\n" msgstr "skrivning till servern misslyckades\n" -#: fe-exec.c:877 +#: fe-exec.c:882 msgid "no error text available\n" msgstr "inget feltext finns tillgänglig\n" -#: fe-exec.c:966 +#: fe-exec.c:971 msgid "NOTICE" msgstr "NOTIS" -#: fe-exec.c:1024 +#: fe-exec.c:1029 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult stöder inte mer än INT_MAX tupler" -#: fe-exec.c:1036 +#: fe-exec.c:1041 msgid "size_t overflow" msgstr "size_t-överspill" -#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 +#: fe-exec.c:1455 fe-exec.c:1526 fe-exec.c:1575 msgid "command string is a null pointer\n" msgstr "kommandosträngen är en null-pekare\n" -#: fe-exec.c:1457 fe-exec.c:2908 +#: fe-exec.c:1462 fe-exec.c:2913 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "%s tillåts inte i pipeline-läge\n" -#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 +#: fe-exec.c:1532 fe-exec.c:1581 fe-exec.c:1677 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "antal parametrar måste vara mellan 0 och %d\n" -#: fe-exec.c:1564 fe-exec.c:1666 +#: fe-exec.c:1569 fe-exec.c:1671 msgid "statement name is a null pointer\n" msgstr "satsens namn är en null-pekare\n" -#: fe-exec.c:1710 fe-exec.c:3276 +#: fe-exec.c:1715 fe-exec.c:3281 msgid "no connection to the server\n" msgstr "inte förbunden till servern\n" -#: fe-exec.c:1719 fe-exec.c:3285 +#: fe-exec.c:1724 fe-exec.c:3290 msgid "another command is already in progress\n" msgstr "ett annat kommando pågår redan\n" -#: fe-exec.c:1750 +#: fe-exec.c:1755 msgid "cannot queue commands during COPY\n" msgstr "kan inte köa kommandon när COPY körs\n" -#: fe-exec.c:1868 +#: fe-exec.c:1873 msgid "length must be given for binary parameter\n" msgstr "längden måste anges för en binär parameter\n" -#: fe-exec.c:2183 +#: fe-exec.c:2188 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "oväntad asyncStatus: %d\n" -#: fe-exec.c:2341 +#: fe-exec.c:2346 msgid "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "synkrona kommandoexekveringsfunktioner tillåts inte i pipeline-läge\n" -#: fe-exec.c:2358 +#: fe-exec.c:2363 msgid "COPY terminated by new PQexec" msgstr "COPY terminerad av ny PQexec" -#: fe-exec.c:2375 +#: fe-exec.c:2380 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec tillåts inte under COPY BOTH\n" -#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 +#: fe-exec.c:2608 fe-exec.c:2664 fe-exec.c:2733 fe-protocol3.c:1877 msgid "no COPY in progress\n" msgstr "ingen COPY pågår\n" -#: fe-exec.c:2917 +#: fe-exec.c:2922 msgid "connection in wrong state\n" msgstr "anslutning i felaktigt tillstånd\n" -#: fe-exec.c:2961 +#: fe-exec.c:2966 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "kan inte byta till pipeline-läge, anslutningen är inte inaktiv\n" -#: fe-exec.c:2998 fe-exec.c:3022 +#: fe-exec.c:3003 fe-exec.c:3027 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "kan inte anvsluta pipeline-läge när alla svar inte tagits emot\n" -#: fe-exec.c:3003 +#: fe-exec.c:3008 msgid "cannot exit pipeline mode while busy\n" msgstr "är upptagen och kan inte avsluta pipeline-läge\n" -#: fe-exec.c:3015 +#: fe-exec.c:3020 msgid "cannot exit pipeline mode while in COPY\n" msgstr "kan inte avsluta pipeline-läge inne i en COPY\n" -#: fe-exec.c:3209 +#: fe-exec.c:3214 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "kan inte skicka en pipeline när vi inte är i pipeline-läge\n" -#: fe-exec.c:3320 +#: fe-exec.c:3325 msgid "invalid ExecStatusType code" msgstr "ogiltig ExecStatusType-kod" -#: fe-exec.c:3347 +#: fe-exec.c:3352 msgid "PGresult is not an error result\n" msgstr "PGresult är inte ett felresultat\n" -#: fe-exec.c:3415 fe-exec.c:3438 +#: fe-exec.c:3420 fe-exec.c:3443 #, c-format msgid "column number %d is out of range 0..%d" msgstr "kolumnnummer %d är utanför giltigt intervall 0..%d" -#: fe-exec.c:3453 +#: fe-exec.c:3458 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "parameter nummer %d är utanför giltigt intervall 0..%d" -#: fe-exec.c:3764 +#: fe-exec.c:3769 #, c-format msgid "could not interpret result from server: %s" msgstr "kunde inte tolka svaret från servern: %s" -#: fe-exec.c:4029 fe-exec.c:4164 +#: fe-exec.c:4049 fe-exec.c:4185 msgid "incomplete multibyte character\n" msgstr "ofullständigt multibyte-tecken\n" -#: fe-exec.c:4057 fe-exec.c:4184 +#: fe-exec.c:4052 fe-exec.c:4205 msgid "invalid multibyte character\n" msgstr "ogiltigt multibyte-tecken\n" +#: fe-exec.c:4308 +#, c-format +msgid "escaped string size exceeds the maximum allowed (%zu)\n" +msgstr "escape:ad strängstorlek överskrider maximalt tillåtna (%zu)\n" + +#: fe-exec.c:4486 +#, c-format +msgid "escaped bytea size exceeds the maximum allowed (%zu)\n" +msgstr "escaped bytea size exceeds the maximum allowed (%zu)\n" + #: fe-gssapi-common.c:124 msgid "GSSAPI name import error" msgstr "GSSAPI-fel vid import av namn" @@ -837,11 +853,11 @@ msgstr "heltal med storlek %lu stöds inte av pqGetInt" msgid "integer of size %lu not supported by pqPutInt" msgstr "heltal med storlek %lu stöds inte av pqPutInt" -#: fe-misc.c:576 fe-misc.c:822 +#: fe-misc.c:602 fe-misc.c:848 msgid "connection not open\n" msgstr "anslutningen är inte öppen\n" -#: fe-misc.c:755 fe-secure-openssl.c:213 fe-secure-openssl.c:326 +#: fe-misc.c:781 fe-secure-openssl.c:213 fe-secure-openssl.c:326 #: fe-secure.c:262 fe-secure.c:430 #, c-format msgid "" @@ -853,146 +869,146 @@ msgstr "" "\tTroligen så terminerade servern pga något fel antingen\n" "\tinnan eller under tiden den bearbetade en förfrågan.\n" -#: fe-misc.c:1008 +#: fe-misc.c:1034 msgid "timeout expired\n" msgstr "timeout utgången\n" -#: fe-misc.c:1053 +#: fe-misc.c:1079 msgid "invalid socket\n" msgstr "ogiltigt uttag\n" -#: fe-misc.c:1076 +#: fe-misc.c:1102 #, c-format msgid "%s() failed: %s\n" msgstr "%s() misslyckades: %s\n" -#: fe-protocol3.c:184 +#: fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "meddelandetyp 0x%02x kom från server under viloperiod" -#: fe-protocol3.c:388 +#: fe-protocol3.c:389 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "servern skickade data (meddelande \"D\") utan att först skicka en radbeskrivning (meddelande \"T\")\n" -#: fe-protocol3.c:431 +#: fe-protocol3.c:432 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "oväntat svar för servern; första mottagna tecknet var \"%c\"\n" -#: fe-protocol3.c:456 +#: fe-protocol3.c:457 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "meddelandeinnehåll stämmer inte med längden för meddelandetyp \"%c\"\n" -#: fe-protocol3.c:476 +#: fe-protocol3.c:477 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "tappade synkronisering med servern: fick meddelandetyp \"%c\", längd %d\n" -#: fe-protocol3.c:528 fe-protocol3.c:568 +#: fe-protocol3.c:529 fe-protocol3.c:569 msgid "insufficient data in \"T\" message" msgstr "otillräckligt med data i \"T\"-meddelande" -#: fe-protocol3.c:639 fe-protocol3.c:845 +#: fe-protocol3.c:640 fe-protocol3.c:846 msgid "out of memory for query result" msgstr "slut på minnet för frågeresultat" -#: fe-protocol3.c:708 +#: fe-protocol3.c:709 msgid "insufficient data in \"t\" message" msgstr "otillräckligt med data i \"t\"-meddelande" -#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 +#: fe-protocol3.c:768 fe-protocol3.c:800 fe-protocol3.c:818 msgid "insufficient data in \"D\" message" msgstr "otillräckligt med data i \"D\"-meddelande" -#: fe-protocol3.c:773 +#: fe-protocol3.c:774 msgid "unexpected field count in \"D\" message" msgstr "oväntat fältantal i \"D\"-meddelande" -#: fe-protocol3.c:1029 +#: fe-protocol3.c:1030 msgid "no error message available\n" msgstr "inget felmeddelande finns tillgängligt\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1077 fe-protocol3.c:1096 +#: fe-protocol3.c:1078 fe-protocol3.c:1097 #, c-format msgid " at character %s" msgstr " vid tecken %s" -#: fe-protocol3.c:1109 +#: fe-protocol3.c:1110 #, c-format msgid "DETAIL: %s\n" msgstr "DETALJ: %s\n" -#: fe-protocol3.c:1112 +#: fe-protocol3.c:1113 #, c-format msgid "HINT: %s\n" msgstr "TIPS: %s\n" -#: fe-protocol3.c:1115 +#: fe-protocol3.c:1116 #, c-format msgid "QUERY: %s\n" msgstr "FRÅGA: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1123 #, c-format msgid "CONTEXT: %s\n" msgstr "KONTEXT: %s\n" -#: fe-protocol3.c:1131 +#: fe-protocol3.c:1132 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "SCHEMANAMN: %s\n" -#: fe-protocol3.c:1135 +#: fe-protocol3.c:1136 #, c-format msgid "TABLE NAME: %s\n" msgstr "TABELLNAMN: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1140 #, c-format msgid "COLUMN NAME: %s\n" msgstr "KOLUMNNAMN: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1144 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "DATATYPNAMN: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1148 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "VILLKORSNAMN: %s\n" -#: fe-protocol3.c:1159 +#: fe-protocol3.c:1160 msgid "LOCATION: " msgstr "PLATS: " -#: fe-protocol3.c:1161 +#: fe-protocol3.c:1162 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1163 +#: fe-protocol3.c:1164 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1358 +#: fe-protocol3.c:1372 #, c-format msgid "LINE %d: " msgstr "RAD %d: " -#: fe-protocol3.c:1757 +#: fe-protocol3.c:1771 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline: utför inte text-COPY OUT\n" -#: fe-protocol3.c:2134 +#: fe-protocol3.c:2148 msgid "protocol error: no function result\n" msgstr "protokollfel: inget funktionsresultat\n" -#: fe-protocol3.c:2146 +#: fe-protocol3.c:2160 #, c-format msgid "protocol error: id=0x%x\n" msgstr "protokollfel: id=0x%x\n" @@ -1024,44 +1040,40 @@ msgstr "servercertifikat för \"%s\" matchar inte värdnamn \"%s\"\n" msgid "could not get server's host name from server certificate\n" msgstr "kan inte hämta ut serverns värdnamn från servercertifikatet\n" -#: fe-secure-gssapi.c:194 +#: fe-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "GSSAPI-fel vid inpackning" -#: fe-secure-gssapi.c:202 +#: fe-secure-gssapi.c:209 msgid "outgoing GSSAPI message would not use confidentiality\n" msgstr "utgående GSSAPI-meddelande skulle inte använda sekretess\n" -#: fe-secure-gssapi.c:210 +#: fe-secure-gssapi.c:217 fe-secure-gssapi.c:715 #, c-format msgid "client tried to send oversize GSSAPI packet (%zu > %zu)\n" msgstr "klienten försöke skicka för stort GSSAPI-paket (%zu > %zu)\n" -#: fe-secure-gssapi.c:350 fe-secure-gssapi.c:594 +#: fe-secure-gssapi.c:357 fe-secure-gssapi.c:607 #, c-format msgid "oversize GSSAPI packet sent by the server (%zu > %zu)\n" msgstr "för stort GSSAPI-paket skickat av servern (%zu > %zu)\n" -#: fe-secure-gssapi.c:389 +#: fe-secure-gssapi.c:396 msgid "GSSAPI unwrap error" msgstr "GSSAPI-fel vid uppackning" -#: fe-secure-gssapi.c:399 +#: fe-secure-gssapi.c:406 msgid "incoming GSSAPI message did not use confidentiality\n" msgstr "inkommande GSSAPI-meddelande använde inte sekretess\n" -#: fe-secure-gssapi.c:640 +#: fe-secure-gssapi.c:653 msgid "could not initiate GSSAPI security context" msgstr "kunde inte initiera GSSAPI-säkerhetskontext" -#: fe-secure-gssapi.c:668 +#: fe-secure-gssapi.c:703 msgid "GSSAPI size check error" msgstr "GSSAPI-fel vid kontroll av storlek" -#: fe-secure-gssapi.c:679 -msgid "GSSAPI context establishment error" -msgstr "GSSAPI-fel vid skapande av kontext" - #: fe-secure-openssl.c:218 fe-secure-openssl.c:331 fe-secure-openssl.c:1492 #, c-format msgid "SSL SYSCALL error: %s\n" diff --git a/src/interfaces/libpq/po/uk.po b/src/interfaces/libpq/po/uk.po index 0c3c5f1830d..4448fa76594 100644 --- a/src/interfaces/libpq/po/uk.po +++ b/src/interfaces/libpq/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: 2025-03-29 11:02+0000\n" -"PO-Revision-Date: 2025-04-01 15:40\n" +"POT-Creation-Date: 2025-12-31 03:02+0000\n" +"PO-Revision-Date: 2025-12-31 16:25\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -66,16 +66,17 @@ msgstr "не вдалося згенерувати одноразовий іде #: fe-auth-scram.c:636 fe-auth-scram.c:662 fe-auth-scram.c:677 #: fe-auth-scram.c:727 fe-auth-scram.c:766 fe-auth.c:290 fe-auth.c:362 #: fe-auth.c:398 fe-auth.c:623 fe-auth.c:799 fe-auth.c:1152 fe-auth.c:1322 -#: fe-connect.c:909 fe-connect.c:1458 fe-connect.c:1627 fe-connect.c:2978 -#: fe-connect.c:4827 fe-connect.c:5088 fe-connect.c:5207 fe-connect.c:5459 -#: fe-connect.c:5540 fe-connect.c:5639 fe-connect.c:5895 fe-connect.c:5924 -#: fe-connect.c:5996 fe-connect.c:6020 fe-connect.c:6038 fe-connect.c:6139 -#: fe-connect.c:6148 fe-connect.c:6506 fe-connect.c:6656 fe-connect.c:6922 -#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 -#: fe-exec.c:4197 fe-exec.c:4364 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:968 fe-protocol3.c:983 fe-protocol3.c:1016 -#: fe-protocol3.c:1724 fe-protocol3.c:2127 fe-secure-common.c:112 -#: fe-secure-gssapi.c:500 fe-secure-openssl.c:455 fe-secure-openssl.c:1252 +#: fe-connect.c:910 fe-connect.c:1459 fe-connect.c:1628 fe-connect.c:2979 +#: fe-connect.c:4828 fe-connect.c:5103 fe-connect.c:5222 fe-connect.c:5474 +#: fe-connect.c:5555 fe-connect.c:5654 fe-connect.c:5910 fe-connect.c:5939 +#: fe-connect.c:6011 fe-connect.c:6035 fe-connect.c:6053 fe-connect.c:6154 +#: fe-connect.c:6163 fe-connect.c:6521 fe-connect.c:6671 fe-connect.c:6939 +#: fe-exec.c:715 fe-exec.c:983 fe-exec.c:1331 fe-exec.c:3170 fe-exec.c:3362 +#: fe-exec.c:4236 fe-exec.c:4430 fe-gssapi-common.c:111 fe-lobj.c:884 +#: fe-protocol3.c:969 fe-protocol3.c:984 fe-protocol3.c:1017 +#: fe-protocol3.c:1738 fe-protocol3.c:2141 fe-secure-common.c:112 +#: fe-secure-gssapi.c:512 fe-secure-gssapi.c:687 fe-secure-openssl.c:455 +#: fe-secure-openssl.c:1252 msgid "out of memory\n" msgstr "недостатньо пам'яті\n" @@ -121,8 +122,8 @@ msgstr "неправильне повідомлення SCRAM (сміття в msgid "malformed SCRAM message (invalid server signature)\n" msgstr "неправильне повідомлення SCRAM (неприпустимий підпис сервера)\n" -#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:207 fe-protocol3.c:232 -#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 +#: fe-auth-scram.c:935 fe-exec.c:527 fe-protocol3.c:208 fe-protocol3.c:233 +#: fe-protocol3.c:257 fe-protocol3.c:275 fe-protocol3.c:356 fe-protocol3.c:729 msgid "out of memory" msgstr "недостатньо пам'яті" @@ -262,534 +263,541 @@ msgstr "занадто довге значення password_encryption \n" msgid "unrecognized password encryption algorithm \"%s\"\n" msgstr "нерозпізнаний алгоритм шифрування пароля \"%s\"\n" -#: fe-connect.c:1092 +#: fe-connect.c:1093 #, c-format msgid "could not match %d host names to %d hostaddr values\n" msgstr "не вдалося зіставити %d імен хостів зі %d значеннями hostaddr\n" -#: fe-connect.c:1178 +#: fe-connect.c:1179 #, c-format msgid "could not match %d port numbers to %d hosts\n" msgstr "не вдалося зіставити %d номерів портів з %d хостами\n" -#: fe-connect.c:1271 fe-connect.c:1297 fe-connect.c:1339 fe-connect.c:1348 -#: fe-connect.c:1381 fe-connect.c:1425 +#: fe-connect.c:1272 fe-connect.c:1298 fe-connect.c:1340 fe-connect.c:1349 +#: fe-connect.c:1382 fe-connect.c:1426 #, c-format msgid "invalid %s value: \"%s\"\n" msgstr "неприпустиме значення %s : \"%s\"\n" -#: fe-connect.c:1318 +#: fe-connect.c:1319 #, c-format msgid "sslmode value \"%s\" invalid when SSL support is not compiled in\n" msgstr "значення sslmode \"%s\" неприпустиме, якщо підтримку протоколу SSL не скомпільовано\n" -#: fe-connect.c:1366 +#: fe-connect.c:1367 msgid "invalid SSL protocol version range\n" msgstr "неприпустимий діапазон версії протоколу SSL\n" -#: fe-connect.c:1391 +#: fe-connect.c:1392 #, c-format msgid "gssencmode value \"%s\" invalid when GSSAPI support is not compiled in\n" msgstr "значення gssencmode \"%s\" неприпустиме, якщо підтримку протоколу GSSAPI не скомпільовано\n" -#: fe-connect.c:1651 +#: fe-connect.c:1652 #, c-format msgid "could not set socket to TCP no delay mode: %s\n" msgstr "не вдалося встановити сокет у TCP-режим без затримки: %s\n" -#: fe-connect.c:1713 +#: fe-connect.c:1714 #, c-format msgid "connection to server on socket \"%s\" failed: " msgstr "помилка при з'єднанні з сервером через сокет \"%s\": " -#: fe-connect.c:1740 +#: fe-connect.c:1741 #, c-format msgid "connection to server at \"%s\" (%s), port %s failed: " msgstr "підключення до серверу \"%s\" (%s), порт %s провалено: " -#: fe-connect.c:1745 +#: fe-connect.c:1746 #, c-format msgid "connection to server at \"%s\", port %s failed: " msgstr "підключення до серверу \"%s\", порт %s провалено: " -#: fe-connect.c:1770 +#: fe-connect.c:1771 msgid "\tIs the server running locally and accepting connections on that socket?\n" msgstr "\tЧи працює сервер локально і приймає підключення до цього сокету?\n" -#: fe-connect.c:1774 +#: fe-connect.c:1775 msgid "\tIs the server running on that host and accepting TCP/IP connections?\n" msgstr "\tЧи працює сервер на цьому хості і приймає TCP/IP підключення?\n" -#: fe-connect.c:1838 +#: fe-connect.c:1839 #, c-format msgid "invalid integer value \"%s\" for connection option \"%s\"\n" msgstr "неприпустиме ціле значення \"%s\" для параметра з'єднання \"%s\"\n" -#: fe-connect.c:1868 fe-connect.c:1903 fe-connect.c:1939 fe-connect.c:2039 -#: fe-connect.c:2652 +#: fe-connect.c:1869 fe-connect.c:1904 fe-connect.c:1940 fe-connect.c:2040 +#: fe-connect.c:2653 #, c-format msgid "%s(%s) failed: %s\n" msgstr "%s(%s) помилка: %s\n" -#: fe-connect.c:2004 +#: fe-connect.c:2005 #, c-format msgid "%s(%s) failed: error code %d\n" msgstr "%s(%s) помилка: код помилки %d\n" -#: fe-connect.c:2319 +#: fe-connect.c:2320 msgid "invalid connection state, probably indicative of memory corruption\n" msgstr "неприпустимий стан підключення, можливо, пошкоджена пам'ять\n" -#: fe-connect.c:2398 +#: fe-connect.c:2399 #, c-format msgid "invalid port number: \"%s\"\n" msgstr "неприпустимий номер порту: \"%s\"\n" -#: fe-connect.c:2414 +#: fe-connect.c:2415 #, c-format msgid "could not translate host name \"%s\" to address: %s\n" msgstr "не вдалося перекласти ім’я хоста \"%s\" в адресу: %s\n" -#: fe-connect.c:2427 +#: fe-connect.c:2428 #, c-format msgid "could not parse network address \"%s\": %s\n" msgstr "не вдалося проаналізувати адресу мережі \"%s\": %s\n" -#: fe-connect.c:2440 +#: fe-connect.c:2441 #, c-format msgid "Unix-domain socket path \"%s\" is too long (maximum %d bytes)\n" msgstr "Шлях Unix-сокету \"%s\" занадто довгий (максимум %d байтів)\n" -#: fe-connect.c:2455 +#: fe-connect.c:2456 #, c-format msgid "could not translate Unix-domain socket path \"%s\" to address: %s\n" msgstr "не вдалося перекласти шлях Unix-сокету \"%s\" в адресу: %s\n" -#: fe-connect.c:2581 +#: fe-connect.c:2582 #, c-format msgid "could not create socket: %s\n" msgstr "не вдалося створити сокет: %s\n" -#: fe-connect.c:2612 +#: fe-connect.c:2613 #, c-format msgid "could not set socket to nonblocking mode: %s\n" msgstr "не вдалося встановити сокет у режим без блокування: %s\n" -#: fe-connect.c:2622 +#: fe-connect.c:2623 #, c-format msgid "could not set socket to close-on-exec mode: %s\n" msgstr "не вдалося встановити сокет у режим закриття по виконанню: %s\n" -#: fe-connect.c:2780 +#: fe-connect.c:2781 #, c-format msgid "could not get socket error status: %s\n" msgstr "не вдалося отримати статус помилки сокету: %s\n" -#: fe-connect.c:2808 +#: fe-connect.c:2809 #, c-format msgid "could not get client address from socket: %s\n" msgstr "не вдалося отримати адресу клієнта з сокету: %s\n" -#: fe-connect.c:2847 +#: fe-connect.c:2848 msgid "requirepeer parameter is not supported on this platform\n" msgstr "параметр requirepeer не підтримується на цій платформі\n" -#: fe-connect.c:2850 +#: fe-connect.c:2851 #, c-format msgid "could not get peer credentials: %s\n" msgstr "не вдалося отримати облікові дані сервера: %s\n" -#: fe-connect.c:2864 +#: fe-connect.c:2865 #, c-format msgid "requirepeer specifies \"%s\", but actual peer user name is \"%s\"\n" msgstr "requirepeer вказує на \"%s\", але фактичне ім'я вузла \"%s\"\n" -#: fe-connect.c:2906 +#: fe-connect.c:2907 #, c-format msgid "could not send GSSAPI negotiation packet: %s\n" msgstr "не вдалося передати пакет узгодження протоколу GSSAPI: %s\n" -#: fe-connect.c:2918 +#: fe-connect.c:2919 msgid "GSSAPI encryption required but was impossible (possibly no credential cache, no server support, or using a local socket)\n" msgstr "вимагалося шифрування GSSAPI, але не було неможливим (можливо, без кешу облікових даних, підтримки сервера, або використання локального сокета)\n" -#: fe-connect.c:2960 +#: fe-connect.c:2961 #, c-format msgid "could not send SSL negotiation packet: %s\n" msgstr "не вдалося передати пакет узгодження протоколу SSL: %s\n" -#: fe-connect.c:2991 +#: fe-connect.c:2992 #, c-format msgid "could not send startup packet: %s\n" msgstr "не вдалося передати стартовий пакет: %s\n" -#: fe-connect.c:3067 +#: fe-connect.c:3068 msgid "server does not support SSL, but SSL was required\n" msgstr "сервер не підтримує протокол SSL, але протокол SSL вимагається\n" -#: fe-connect.c:3085 +#: fe-connect.c:3086 msgid "server sent an error response during SSL exchange\n" msgstr "сервер відповів помилкою під час обміну SSL\n" -#: fe-connect.c:3091 +#: fe-connect.c:3092 #, c-format msgid "received invalid response to SSL negotiation: %c\n" msgstr "отримано неприпустиму відповідь на узгодження SSL: %c\n" -#: fe-connect.c:3112 +#: fe-connect.c:3113 msgid "received unencrypted data after SSL response\n" msgstr "отримані незашифровані дані після відповіді SSL\n" -#: fe-connect.c:3193 +#: fe-connect.c:3194 msgid "server doesn't support GSSAPI encryption, but it was required\n" msgstr "сервер не підтримує шифрування GSSAPI, але це було необхідно\n" -#: fe-connect.c:3205 +#: fe-connect.c:3206 #, c-format msgid "received invalid response to GSSAPI negotiation: %c\n" msgstr "отримано неприпустиму відповідь на узгодження GSSAPI: %c\n" -#: fe-connect.c:3224 +#: fe-connect.c:3225 msgid "received unencrypted data after GSSAPI encryption response\n" msgstr "отримані незашифровані дані після відповіді шифрування GSSAPI\n" -#: fe-connect.c:3289 fe-connect.c:3314 +#: fe-connect.c:3290 fe-connect.c:3315 #, c-format msgid "expected authentication request from server, but received %c\n" msgstr "очікувався запит автентифікації від сервера, але отримано %c\n" -#: fe-connect.c:3521 +#: fe-connect.c:3522 msgid "unexpected message from server during startup\n" msgstr "неочікуване повідомлення від сервера під час запуску\n" -#: fe-connect.c:3613 +#: fe-connect.c:3614 msgid "session is read-only\n" msgstr "сесія доступна тільки для читання\n" -#: fe-connect.c:3616 +#: fe-connect.c:3617 msgid "session is not read-only\n" msgstr "сесія доступна не лише для читання\n" -#: fe-connect.c:3670 +#: fe-connect.c:3671 msgid "server is in hot standby mode\n" msgstr "сервер знаходиться у режимі hot standby\n" -#: fe-connect.c:3673 +#: fe-connect.c:3674 msgid "server is not in hot standby mode\n" msgstr "сервер не в режимі hot standby\n" -#: fe-connect.c:3791 fe-connect.c:3843 +#: fe-connect.c:3792 fe-connect.c:3844 #, c-format msgid "\"%s\" failed\n" msgstr "\"%s\" помилка\n" -#: fe-connect.c:3857 +#: fe-connect.c:3858 #, c-format msgid "invalid connection state %d, probably indicative of memory corruption\n" msgstr "неприпустимий стан підключення %d, можливо, пошкоджена пам'ять\n" -#: fe-connect.c:4840 +#: fe-connect.c:4841 #, c-format msgid "invalid LDAP URL \"%s\": scheme must be ldap://\n" msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": схема має бути ldap://\n" -#: fe-connect.c:4855 +#: fe-connect.c:4856 #, c-format msgid "invalid LDAP URL \"%s\": missing distinguished name\n" msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутнє унікальне ім'я\n" -#: fe-connect.c:4867 fe-connect.c:4925 +#: fe-connect.c:4868 fe-connect.c:4926 #, c-format msgid "invalid LDAP URL \"%s\": must have exactly one attribute\n" msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": має бути лише один атрибут\n" -#: fe-connect.c:4879 fe-connect.c:4941 +#: fe-connect.c:4880 fe-connect.c:4942 #, c-format msgid "invalid LDAP URL \"%s\": must have search scope (base/one/sub)\n" msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутня область пошуку (base/one/sub)\n" -#: fe-connect.c:4891 +#: fe-connect.c:4892 #, c-format msgid "invalid LDAP URL \"%s\": no filter\n" msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": відсутній фільтр\n" -#: fe-connect.c:4913 +#: fe-connect.c:4914 #, c-format msgid "invalid LDAP URL \"%s\": invalid port number\n" msgstr "неприпустима URL-адреса протоколу LDAP \"%s\": неприпустимий номер порту\n" -#: fe-connect.c:4951 +#: fe-connect.c:4952 msgid "could not create LDAP structure\n" msgstr "не вдалося створити структуру протоколу LDAP\n" -#: fe-connect.c:5027 +#: fe-connect.c:5028 #, c-format msgid "lookup on LDAP server failed: %s\n" msgstr "помилка підстановки на сервері протоколу LDAP: %s\n" -#: fe-connect.c:5038 +#: fe-connect.c:5039 msgid "more than one entry found on LDAP lookup\n" msgstr "знайдено більше одного входження при підстановці протоколу LDAP\n" -#: fe-connect.c:5039 fe-connect.c:5051 +#: fe-connect.c:5040 fe-connect.c:5052 msgid "no entry found on LDAP lookup\n" msgstr "не знайдено входження при підстановці протоколу LDAP\n" -#: fe-connect.c:5062 fe-connect.c:5075 +#: fe-connect.c:5063 fe-connect.c:5076 msgid "attribute has no values on LDAP lookup\n" msgstr "атрибут не має значення при підстановці протоколу LDAP\n" -#: fe-connect.c:5127 fe-connect.c:5146 fe-connect.c:5678 +#: fe-connect.c:5090 +#, c-format +msgid "connection info string size exceeds the maximum allowed (%d)\n" +msgstr "розмір рядка з'єднання з інформацією перевищує максимально дозволену (%d)\n" + +#: fe-connect.c:5142 fe-connect.c:5161 fe-connect.c:5693 #, c-format msgid "missing \"=\" after \"%s\" in connection info string\n" msgstr "відсутній \"=\" після \"%s\" у рядку інформації про підключення\n" -#: fe-connect.c:5219 fe-connect.c:5863 fe-connect.c:6639 +#: fe-connect.c:5234 fe-connect.c:5878 fe-connect.c:6654 #, c-format msgid "invalid connection option \"%s\"\n" msgstr "неприпустимий параметр підключення \"%s\"\n" -#: fe-connect.c:5235 fe-connect.c:5727 +#: fe-connect.c:5250 fe-connect.c:5742 msgid "unterminated quoted string in connection info string\n" msgstr "відкриті лапки у рядку інформації про підключення\n" -#: fe-connect.c:5316 +#: fe-connect.c:5331 #, c-format msgid "definition of service \"%s\" not found\n" msgstr "не знайдено визначення сервера \"%s\"\n" -#: fe-connect.c:5342 +#: fe-connect.c:5357 #, c-format msgid "service file \"%s\" not found\n" msgstr "не знайдено сервісний файл \"%s\"\n" -#: fe-connect.c:5356 +#: fe-connect.c:5371 #, c-format msgid "line %d too long in service file \"%s\"\n" msgstr "рядок %d занадто довгий у сервісному файлі \"%s\"\n" -#: fe-connect.c:5427 fe-connect.c:5471 +#: fe-connect.c:5442 fe-connect.c:5486 #, c-format msgid "syntax error in service file \"%s\", line %d\n" msgstr "синтаксична помилка у сервісному файлі \"%s\", рядок %d\n" -#: fe-connect.c:5438 +#: fe-connect.c:5453 #, c-format msgid "nested service specifications not supported in service file \"%s\", line %d\n" msgstr "вкладені сервісні специфікації не підтримуються у сервісному файлі \"%s\", рядок %d\n" -#: fe-connect.c:6159 +#: fe-connect.c:6174 #, c-format msgid "invalid URI propagated to internal parser routine: \"%s\"\n" msgstr "у внутрішню процедуру аналізу рядка передано помилковий URI: \"%s\"\n" -#: fe-connect.c:6236 +#: fe-connect.c:6251 #, c-format msgid "end of string reached when looking for matching \"]\" in IPv6 host address in URI: \"%s\"\n" msgstr "досягнуто кінця рядка під час пошуку відповідного \"]\" в адресі IPv6 URI: \"%s\"\n" -#: fe-connect.c:6243 +#: fe-connect.c:6258 #, c-format msgid "IPv6 host address may not be empty in URI: \"%s\"\n" msgstr "IPv6, що знаходиться в URI, не може бути пустим: \"%s\"\n" -#: fe-connect.c:6258 +#: fe-connect.c:6273 #, c-format msgid "unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n" msgstr "неочікуваний символ \"%c\" на позиції %d в URI (очікувалося \":\" або \"/\"): \"%s\"\n" -#: fe-connect.c:6388 +#: fe-connect.c:6403 #, c-format msgid "extra key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "зайвий розділювач ключа/значення \"=\" в параметрі запиту URI: \"%s\"\n" -#: fe-connect.c:6408 +#: fe-connect.c:6423 #, c-format msgid "missing key/value separator \"=\" in URI query parameter: \"%s\"\n" msgstr "відсутній розділювач ключа/значення \"=\" у параметрі запиту URI: \"%s\"\n" -#: fe-connect.c:6460 +#: fe-connect.c:6475 #, c-format msgid "invalid URI query parameter: \"%s\"\n" msgstr "неприпустимий параметр запиту URI: \"%s\"\n" -#: fe-connect.c:6534 +#: fe-connect.c:6549 #, c-format msgid "invalid percent-encoded token: \"%s\"\n" msgstr "неприпустимий токен, закодований відсотками: \"%s\"\n" -#: fe-connect.c:6544 +#: fe-connect.c:6559 #, c-format msgid "forbidden value %%00 in percent-encoded value: \"%s\"\n" msgstr "неприпустиме значення %%00 для значення, закодованого відсотками: \"%s\"\n" -#: fe-connect.c:6914 +#: fe-connect.c:6931 msgid "connection pointer is NULL\n" msgstr "нульове значення вказівника підключення \n" -#: fe-connect.c:7202 +#: fe-connect.c:7219 #, c-format msgid "WARNING: password file \"%s\" is not a plain file\n" msgstr "ПОПЕРЕДЖЕННЯ: файл паролів \"%s\" не є простим файлом\n" -#: fe-connect.c:7211 +#: fe-connect.c:7228 #, 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:7319 +#: fe-connect.c:7336 #, c-format msgid "password retrieved from file \"%s\"\n" msgstr "пароль отримано з файлу \"%s\"\n" -#: fe-exec.c:466 fe-exec.c:3431 +#: fe-exec.c:466 fe-exec.c:3436 #, c-format msgid "row number %d is out of range 0..%d" msgstr "число рядків %d поза діапазоном 0..%d" -#: fe-exec.c:528 fe-protocol3.c:1932 +#: fe-exec.c:528 fe-protocol3.c:1946 #, c-format msgid "%s" msgstr "%s" -#: fe-exec.c:836 +#: fe-exec.c:841 msgid "write to server failed\n" msgstr "записати на сервер не вдалося\n" -#: fe-exec.c:877 +#: fe-exec.c:882 msgid "no error text available\n" msgstr "немає доступного тексту помилки\n" -#: fe-exec.c:966 +#: fe-exec.c:971 msgid "NOTICE" msgstr "ПОВІДОМЛЕННЯ" -#: fe-exec.c:1024 +#: fe-exec.c:1029 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult не може підтримувати більше ніж INT_MAX кортежів" -#: fe-exec.c:1036 +#: fe-exec.c:1041 msgid "size_t overflow" msgstr "переповнення size_t" -#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 +#: fe-exec.c:1455 fe-exec.c:1526 fe-exec.c:1575 msgid "command string is a null pointer\n" msgstr "рядок команди є нульовим вказівником\n" -#: fe-exec.c:1457 fe-exec.c:2908 +#: fe-exec.c:1462 fe-exec.c:2913 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "%s не дозволено в режимі конвеєра\n" -#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 +#: fe-exec.c:1532 fe-exec.c:1581 fe-exec.c:1677 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "кількість параметрів має бути між 0 і %d\n" -#: fe-exec.c:1564 fe-exec.c:1666 +#: fe-exec.c:1569 fe-exec.c:1671 msgid "statement name is a null pointer\n" msgstr "ім’я оператора є пустим вказівником\n" -#: fe-exec.c:1710 fe-exec.c:3276 +#: fe-exec.c:1715 fe-exec.c:3281 msgid "no connection to the server\n" msgstr "немає підключення до сервера\n" -#: fe-exec.c:1719 fe-exec.c:3285 +#: fe-exec.c:1724 fe-exec.c:3290 msgid "another command is already in progress\n" msgstr "інша команда уже в прогресі\n" -#: fe-exec.c:1750 +#: fe-exec.c:1755 msgid "cannot queue commands during COPY\n" msgstr "не можна поставити в чергу команди під час COPY\n" -#: fe-exec.c:1868 +#: fe-exec.c:1873 msgid "length must be given for binary parameter\n" msgstr "для бінарного параметра має бути надана довжина\n" -#: fe-exec.c:2183 +#: fe-exec.c:2188 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "неочікуваний asyncStatus: %d\n" -#: fe-exec.c:2341 +#: fe-exec.c:2346 msgid "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "функції синхронного виконання команд заборонені в режимі конвеєра\n" -#: fe-exec.c:2358 +#: fe-exec.c:2363 msgid "COPY terminated by new PQexec" msgstr "COPY завершено новим PQexec" -#: fe-exec.c:2375 +#: fe-exec.c:2380 msgid "PQexec not allowed during COPY BOTH\n" msgstr "PQexec не дозволяється під час COPY BOTH\n" -#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 +#: fe-exec.c:2608 fe-exec.c:2664 fe-exec.c:2733 fe-protocol3.c:1877 msgid "no COPY in progress\n" msgstr "немає COPY у процесі\n" -#: fe-exec.c:2917 +#: fe-exec.c:2922 msgid "connection in wrong state\n" msgstr "підключення у неправильному стані\n" -#: fe-exec.c:2961 +#: fe-exec.c:2966 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "не можна увійти в режим конвеєра, підключення не в очікуванні\n" -#: fe-exec.c:2998 fe-exec.c:3022 +#: fe-exec.c:3003 fe-exec.c:3027 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "не можна вийти з режиму конвеєра з незібраними результатами\n" -#: fe-exec.c:3003 +#: fe-exec.c:3008 msgid "cannot exit pipeline mode while busy\n" msgstr "не можна вийти з режиму конвеєра, коли зайнято\n" -#: fe-exec.c:3015 +#: fe-exec.c:3020 msgid "cannot exit pipeline mode while in COPY\n" msgstr "не можна вийти з режиму конвеєра під час COPY\n" -#: fe-exec.c:3209 +#: fe-exec.c:3214 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "неможливо скористатися конвеєром не у режимі конвеєра\n" -#: fe-exec.c:3320 +#: fe-exec.c:3325 msgid "invalid ExecStatusType code" msgstr "неприпустимий код ExecStatusType" -#: fe-exec.c:3347 +#: fe-exec.c:3352 msgid "PGresult is not an error result\n" msgstr "PGresult не є помилковим результатом\n" -#: fe-exec.c:3415 fe-exec.c:3438 +#: fe-exec.c:3420 fe-exec.c:3443 #, c-format msgid "column number %d is out of range 0..%d" msgstr "число стовпців %d поза діапазоном 0..%d" -#: fe-exec.c:3453 +#: fe-exec.c:3458 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "число параметрів %d поза діапазоном 0..%d" -#: fe-exec.c:3764 +#: fe-exec.c:3769 #, c-format msgid "could not interpret result from server: %s" msgstr "не вдалося інтерпретувати результат від сервера: %s" -#: fe-exec.c:4043 -msgid "incomplete multibyte character" -msgstr "неповний мультибайтний символ" - -#: fe-exec.c:4046 -msgid "invalid multibyte character" -msgstr "неприпустимий мультибайтний символ" - -#: fe-exec.c:4157 +#: fe-exec.c:4049 fe-exec.c:4185 msgid "incomplete multibyte character\n" msgstr "неповний мультибайтний символ\n" -#: fe-exec.c:4177 +#: fe-exec.c:4052 fe-exec.c:4205 msgid "invalid multibyte character\n" msgstr "неприпустимий мультибайтний символ\n" +#: fe-exec.c:4308 +#, c-format +msgid "escaped string size exceeds the maximum allowed (%zu)\n" +msgstr "довжина екранованого рядка перевищує максимально допустиму (%zu)\n" + +#: fe-exec.c:4486 +#, c-format +msgid "escaped bytea size exceeds the maximum allowed (%zu)\n" +msgstr "розмір bytea перевищує максимальний допустимий розмір (%zu)\n" + #: fe-gssapi-common.c:124 msgid "GSSAPI name import error" msgstr "Помилка імпорту імені у GSSAPI" @@ -842,11 +850,11 @@ msgstr "pqGetInt не підтримує ціле число розміром %l msgid "integer of size %lu not supported by pqPutInt" msgstr "pqPutInt не підтримує ціле число розміром %lu" -#: fe-misc.c:576 fe-misc.c:822 +#: fe-misc.c:602 fe-misc.c:848 msgid "connection not open\n" msgstr "підключення не відкрито\n" -#: fe-misc.c:755 fe-secure-openssl.c:213 fe-secure-openssl.c:326 +#: fe-misc.c:781 fe-secure-openssl.c:213 fe-secure-openssl.c:326 #: fe-secure.c:262 fe-secure.c:430 #, c-format msgid "server closed the connection unexpectedly\n" @@ -855,146 +863,146 @@ msgid "server closed the connection unexpectedly\n" msgstr "сервер неочікувано закрив підключення\n" " Це може означати, що сервер завершив роботу ненормально до або під час обробки запиту.\n" -#: fe-misc.c:1008 +#: fe-misc.c:1034 msgid "timeout expired\n" msgstr "тайм-аут минув\n" -#: fe-misc.c:1053 +#: fe-misc.c:1079 msgid "invalid socket\n" msgstr "неприпустимий сокет\n" -#: fe-misc.c:1076 +#: fe-misc.c:1102 #, c-format msgid "%s() failed: %s\n" msgstr "%s() помилка: %s\n" -#: fe-protocol3.c:184 +#: fe-protocol3.c:185 #, c-format msgid "message type 0x%02x arrived from server while idle" msgstr "отримано тип повідомлення 0x%02x від сервера під час бездіяльності" -#: fe-protocol3.c:388 +#: fe-protocol3.c:389 msgid "server sent data (\"D\" message) without prior row description (\"T\" message)\n" msgstr "сервер передав дані (повідомлення \"D\") без попереднього опису рядка (повідомлення \"T\")\n" -#: fe-protocol3.c:431 +#: fe-protocol3.c:432 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "неочікувана відповідь від сервера; перший отриманий символ був \"%c\"\n" -#: fe-protocol3.c:456 +#: fe-protocol3.c:457 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "вміст повідомлення не відповідає довжині у типі повідомлення \"%c\"\n" -#: fe-protocol3.c:476 +#: fe-protocol3.c:477 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "втрачено синхронізацію з сервером: отримано тип повідомлення \"%c\", довжина %d\n" -#: fe-protocol3.c:528 fe-protocol3.c:568 +#: fe-protocol3.c:529 fe-protocol3.c:569 msgid "insufficient data in \"T\" message" msgstr "недостатньо даних у повідомленні \"T\"" -#: fe-protocol3.c:639 fe-protocol3.c:845 +#: fe-protocol3.c:640 fe-protocol3.c:846 msgid "out of memory for query result" msgstr "недостатньо пам'яті для результату запиту" -#: fe-protocol3.c:708 +#: fe-protocol3.c:709 msgid "insufficient data in \"t\" message" msgstr "недостатньо даних у повідомленні \"t\"" -#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 +#: fe-protocol3.c:768 fe-protocol3.c:800 fe-protocol3.c:818 msgid "insufficient data in \"D\" message" msgstr "зайві дані у повідомленні \"D\"" -#: fe-protocol3.c:773 +#: fe-protocol3.c:774 msgid "unexpected field count in \"D\" message" msgstr "неочікувана кількість полів у повідомленні \"D\"" -#: fe-protocol3.c:1029 +#: fe-protocol3.c:1030 msgid "no error message available\n" msgstr "немає доступного повідомлення про помилку\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1077 fe-protocol3.c:1096 +#: fe-protocol3.c:1078 fe-protocol3.c:1097 #, c-format msgid " at character %s" msgstr " в символі %s" -#: fe-protocol3.c:1109 +#: fe-protocol3.c:1110 #, c-format msgid "DETAIL: %s\n" msgstr "ДЕТАЛІ: %s\n" -#: fe-protocol3.c:1112 +#: fe-protocol3.c:1113 #, c-format msgid "HINT: %s\n" msgstr "ПІДКАЗКА: %s\n" -#: fe-protocol3.c:1115 +#: fe-protocol3.c:1116 #, c-format msgid "QUERY: %s\n" msgstr "ЗАПИТ: %s\n" -#: fe-protocol3.c:1122 +#: fe-protocol3.c:1123 #, c-format msgid "CONTEXT: %s\n" msgstr "КОНТЕКСТ: %s\n" -#: fe-protocol3.c:1131 +#: fe-protocol3.c:1132 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "ІМ'Я СХЕМИ: %s\n" -#: fe-protocol3.c:1135 +#: fe-protocol3.c:1136 #, c-format msgid "TABLE NAME: %s\n" msgstr "ІМ'Я ТАБЛИЦІ: %s\n" -#: fe-protocol3.c:1139 +#: fe-protocol3.c:1140 #, c-format msgid "COLUMN NAME: %s\n" msgstr "ІМ'Я СТОВПЦЯ: %s\n" -#: fe-protocol3.c:1143 +#: fe-protocol3.c:1144 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "ІМ'Я ТИПУ ДАНИХ: %s\n" -#: fe-protocol3.c:1147 +#: fe-protocol3.c:1148 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "ІМ'Я ОБМЕЖЕННЯ: %s\n" -#: fe-protocol3.c:1159 +#: fe-protocol3.c:1160 msgid "LOCATION: " msgstr "РОЗТАШУВАННЯ: " -#: fe-protocol3.c:1161 +#: fe-protocol3.c:1162 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1163 +#: fe-protocol3.c:1164 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1358 +#: fe-protocol3.c:1372 #, c-format msgid "LINE %d: " msgstr "РЯДОК %d: " -#: fe-protocol3.c:1757 +#: fe-protocol3.c:1771 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline можна викликати лише під час COPY OUT\n" -#: fe-protocol3.c:2134 +#: fe-protocol3.c:2148 msgid "protocol error: no function result\n" msgstr "помилка протоколу: результат функції не знайдено\n" -#: fe-protocol3.c:2146 +#: fe-protocol3.c:2160 #, c-format msgid "protocol error: id=0x%x\n" msgstr "помилка протоколу: id=0x%x\n" @@ -1026,44 +1034,40 @@ msgstr "серверний сертифікат \"%s\" не співпадає msgid "could not get server's host name from server certificate\n" msgstr "не вдалося отримати ім'я хосту від серверного сертифікату\n" -#: fe-secure-gssapi.c:194 +#: fe-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "помилка при згортанні GSSAPI" -#: fe-secure-gssapi.c:202 +#: fe-secure-gssapi.c:209 msgid "outgoing GSSAPI message would not use confidentiality\n" msgstr "вихідне повідомлення GSSAPI не буде використовувати конфіденційність\n" -#: fe-secure-gssapi.c:210 +#: fe-secure-gssapi.c:217 fe-secure-gssapi.c:715 #, c-format msgid "client tried to send oversize GSSAPI packet (%zu > %zu)\n" msgstr "клієнт намагався відправити переповнений пакет GSSAPI: (%zu > %zu)\n" -#: fe-secure-gssapi.c:350 fe-secure-gssapi.c:594 +#: fe-secure-gssapi.c:357 fe-secure-gssapi.c:607 #, c-format msgid "oversize GSSAPI packet sent by the server (%zu > %zu)\n" msgstr "переповнений пакет GSSAPI відправлений сервером: (%zu > %zu)\n" -#: fe-secure-gssapi.c:389 +#: fe-secure-gssapi.c:396 msgid "GSSAPI unwrap error" msgstr "помилка при розгортанні GSSAPI" -#: fe-secure-gssapi.c:399 +#: fe-secure-gssapi.c:406 msgid "incoming GSSAPI message did not use confidentiality\n" msgstr "вхідне повідомлення GSSAPI не використовувало конфіденційність\n" -#: fe-secure-gssapi.c:640 +#: fe-secure-gssapi.c:653 msgid "could not initiate GSSAPI security context" msgstr "не вдалося ініціювати контекст безпеки GSSAPI" -#: fe-secure-gssapi.c:668 +#: fe-secure-gssapi.c:703 msgid "GSSAPI size check error" msgstr "помилка перевірки розміру GSSAPI" -#: fe-secure-gssapi.c:679 -msgid "GSSAPI context establishment error" -msgstr "помилка встановлення контексту GSSAPI" - #: fe-secure-openssl.c:218 fe-secure-openssl.c:331 fe-secure-openssl.c:1492 #, c-format msgid "SSL SYSCALL error: %s\n" diff --git a/src/pl/plperl/po/es.po b/src/pl/plperl/po/es.po index 3aa2437c806..048ae01d423 100644 --- a/src/pl/plperl/po/es.po +++ b/src/pl/plperl/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: plperl (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 00:59+0000\n" +"POT-Creation-Date: 2026-02-06 21:10+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/pl/plpgsql/src/po/es.po b/src/pl/plpgsql/src/po/es.po index 5a2484c4bfb..70f08d66c0b 100644 --- a/src/pl/plpgsql/src/po/es.po +++ b/src/pl/plpgsql/src/po/es.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: plpgsql (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 00:59+0000\n" +"POT-Creation-Date: 2026-02-06 21:10+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/pl/plpython/po/es.po b/src/pl/plpython/po/es.po index 318899b483d..f5ecbb269d2 100644 --- a/src/pl/plpython/po/es.po +++ b/src/pl/plpython/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: plpython (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 00:58+0000\n" +"POT-Creation-Date: 2026-02-06 21:10+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" diff --git a/src/pl/tcl/po/es.po b/src/pl/tcl/po/es.po index e7066370b19..bf5325bc676 100644 --- a/src/pl/tcl/po/es.po +++ b/src/pl/tcl/po/es.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pltcl (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2025-11-08 00:58+0000\n" +"POT-Creation-Date: 2026-02-06 21:09+0000\n" "PO-Revision-Date: 2022-10-20 09:06+0200\n" "Last-Translator: Carlos Chapi \n" "Language-Team: PgSQL-es-Ayuda \n" From 0a98185e203e4966b188ba74d0ae9c6be9ff10c3 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 8 Feb 2026 13:00:40 -0500 Subject: [PATCH 81/94] Release notes for 18.2, 17.8, 16.12, 15.16, 14.21. --- doc/src/sgml/release-15.sgml | 928 +++++++++++++++++++++++++++++++++++ 1 file changed, 928 insertions(+) diff --git a/doc/src/sgml/release-15.sgml b/doc/src/sgml/release-15.sgml index 746c05fe8be..0ae4930e141 100644 --- a/doc/src/sgml/release-15.sgml +++ b/doc/src/sgml/release-15.sgml @@ -1,6 +1,934 @@ + + Release 15.16 + + + Release date: + 2026-02-12 + + + + This release contains a variety of fixes from 15.15. + For information about new features in major release 15, see + . + + + + Migration to Version 15.16 + + + A dump/restore is not required for those running 15.X. + + + + However, if you are upgrading from a version earlier than 15.14, + see . + + + + + Changes + + + + + + + Don't allow CTE references in sub-selects to determine semantic + levels of aggregate functions (Tom Lane) + § + + + + This change undoes a change made two minor releases ago, instead + throwing an error if a sub-select references a CTE that's below the + semantic level that standard SQL rules would assign to the aggregate + based on contained column references and aggregates. The attempted + fix turned out to cause problems of its own, and it's unclear what + to do instead. Since sub-selects within aggregates are disallowed + altogether by the SQL standard, treating such cases as errors seems + sufficient. + + + + + + + Fix trigger transition table capture for MERGE + in CTE queries (Dean Rasheed) + § + + + + When executing a data-modifying CTE query containing both + a MERGE and another DML operation on a table with + statement-level AFTER triggers, the transition + tables passed to the triggers would not include the rows affected by + the MERGE, only those affected by the other + operation(s). + + + + + + + Fix failure when all children of a partitioned target table + of an update or delete have been pruned (Amit Langote) + § + + + + In such cases, the executor could report could not find junk + ctid column errors, even though nothing needs to be done. + + + + + + + Allow indexscans on partial hash indexes even when the index's + predicate implies the truth of the WHERE clause (Tom Lane) + § + + + + Normally we drop a WHERE clause that is implied by the predicate, + since it's pointless to test it; it must hold for every index + entry. However that can prevent creation of an indexscan plan if + the index is one that requires a WHERE clause on the leading index + key, as hash indexes do. Don't drop implied clauses when + considering such an index. + + + + + + + Do not emit WAL for unlogged BRIN indexes (Kirill Reshke) + § + + + + One seldom-taken code path incorrectly emitted a WAL record + relating to a BRIN index even if the index was marked unlogged. + Crash recovery would then fail to replay that record, complaining + that the file already exists. + + + + + + + Prevent truncation of CLOG that is still needed by + unread NOTIFY messages (Joel Jacobson, Heikki + Linnakangas) + § + § + § + + + + This fix prevents could not access status of + transaction errors when a backend is slow to + absorb NOTIFY messages. + + + + + + + Escalate errors occurring during NOTIFY message + processing to FATAL, i.e. close the connection (Heikki Linnakangas) + § + + + + Formerly, if a backend got an error while absorbing + a NOTIFY message, it would advance past that + message, report the error to the client, and move on. That behavior + was fraught with problems though. One big concern is that the + client has no good way to know that a notification was lost, and + certainly no way to know what was in it. Depending on the + application logic, missing a notification could cause the + application to get stuck waiting, for example. Also, any remaining + messages would not get processed until someone sent a + new NOTIFY. + + + + Also, if the connection is idle at the time of receiving + a NOTIFY signal, any ERROR would be escalated to + FATAL anyway, due to unrelated concerns. Therefore, we've chosen to + make that happen in all cases, for consistency and to provide a + clear signal to the application that it might have missed some + notifications. + + + + + + + Fix bug in following update chain when locking a tuple (Jasper + Smit) + § + + + + This code path neglected to check the xmin of the first new tuple in + the update chain, making it possible to lock an unrelated tuple if + the original updater aborted and the space was immediately reclaimed + by VACUUM and then re-used. + That could cause unexpected transaction delays or deadlocks. + Errors associated with having identified the wrong tuple have also + been observed. + + + + + + + Fix issues around in-place catalog updates (Noah Misch) + § + § + § + + + + Send a nontransactional invalidation message for an in-place update, + since such an update will survive transaction rollback. Also ensure + that the update is WAL-logged before other sessions can see it. + These fixes primarily prevent scenarios in which relations' + frozen-XID attributes become inconsistent, possibly allowing + premature CLOG truncation and subsequent could not access + status of transaction errors. + + + + + + + Fix potential backend process crash at process exit due to trying to + release a lock in an already-unmapped shared memory segment + (Rahila Syed) + § + + + + + + + Guard against incorrect truncation of the multixact log after a + crash (Heikki Linnakangas) + § + + + + + + + Fix possibly mis-encoded result + of pg_stat_get_backend_activity() (Chao Li) + § + + + + The shared-memory buffer holding a session's activity string can + end with an incomplete multibyte character. Readers are supposed + to truncate off any such incomplete character, but this function + failed to do so. + + + + + + + Guard against recursive memory context logging (Fujii Masao) + § + + + + A constant flow of signals requesting memory context logging could + cause recursive execution of the logging code, which in theory could + lead to stack overflow. + + + + + + + Fix memory context usage when reinitializing a parallel execution + context (Jakub Wartak, Jeevan Chalke) + § + + + + This error could result in a crash due to a subsidiary data + structure having a shorter lifespan than the parallel context. + The problem is not known to be reachable using only + core PostgreSQL, but we have reports of + trouble in extensions. + + + + + + + Set next multixid's offset when creating a new multixid, to remove + the wait loop that was needed in corner cases (Andrey Borodin) + § + § + + + + The previous logic could get stuck waiting for an update that would + never occur. + + + + + + + Avoid rewriting data-modifying CTEs more than once (Bernice Southey, + Dean Rasheed) + § + + + + Formerly, when updating an auto-updatable view or a relation with + rules, if the original query had any data-modifying CTEs, the rewriter + would rewrite those CTEs multiple times due to recursion. This was + inefficient and could produce false errors if a CTE included an + update of an always-generated column. + + + + + + + Fail recovery if WAL does not exist back to the redo point indicated + by the checkpoint record (Nitin Jadhav) + § + + + + Add an explicit check for this before starting recovery, so that no + harm is done and a useful error message is provided. Previously, + recovery might crash or corrupt the database in this situation. + + + + + + + Avoid scribbling on the source query tree during ALTER + PUBLICATION (Sunil S) + § + + + + This error had the visible effect that an event trigger fired for + the query would see only the first publish + option, even if several had been specified. If such a query were + set up as a prepared statement, re-executions would misbehave too. + + + + + + + Pass connection options specified in CREATE SUBSCRIPTION + ... CONNECTION to the publisher's walsender (Fujii Masao) + § + + + + Before this fix, the options connection option + (if any) was ignored, thus for example preventing setting custom + server parameter values in the walsender session. It was intended + for that to work, and it did work before refactoring + in PostgreSQL version 15 broke it, so + restore the previous behavior. + + + + + + + Prevent invalidation of newly created or newly synced replication + slots (Zhijie Hou) + § + + + + A race condition with a concurrent checkpoint could allow WAL to be + removed that is needed by the replication slot, causing the slot to + immediately get marked invalid. + + + + + + + Fix race condition in computing a replication slot's required xmin + (Zhijie Hou) + § + + + + This could lead to the error cannot build an initial slot + snapshot as oldest safe xid follows snapshot's xmin. + + + + + + + During initial synchronization of a logical replication + subscription, commit the addition of + a pg_replication_origin entry before + starting to copy data (Zhijie Hou) + § + + + + Previously, if the copy step failed, the + new pg_replication_origin entry would be + lost due to transaction rollback. This led to inconsistent state in + shared memory. + + + + + + + Fix possible failure with unexpected data beyond EOF + during restart of a streaming replica server (Anthonin Bonnefoy) + § + + + + + + + Fix erroneous tracking of column position when parsing partition + range bounds (myzhen) + § + + + + This could, for example, lead to the wrong column name being cited + in error messages about casting partition bound values to the + column's data type. + + + + + + + Fix assorted minor errors in error messages (Man Zeng, Tianchen Zhang) + § + § + § + + + + For example, an error report about mismatched timeline number in a + backup manifest showed the starting timeline number where it meant + to show the ending timeline number. + + + + + + + Fix failure to perform function inlining when doing JIT compilation + with LLVM version 17 or later (Anthonin Bonnefoy) + § + + + + + + + Adjust our JIT code to work with LLVM 21 (Holger Hoffstätte) + § + + + + The previous coding failed to compile on aarch64 machines. + + + + + + + Support process title changes on GNU/Hurd (Michael Banck) + § + + + + + + + Make pg_resetwal print the updated value + when changing OldestXID (Heikki Linnakangas) + § + + + + It already did that for every other variable it can change. + + + + + + + Make pg_resetwal allow setting next + multixact xid to 0 or next multixact offset to UINT32_MAX (Maxim + Orlov) + § + + + + These are valid values, so rejecting them was incorrect. In the + worst case, if a pg_upgrade is attempted when exactly at the point + of multixact wraparound, the upgrade would fail. + + + + + + + In contrib/amcheck, use the correct snapshot + for btree index parent checks (Mihail Nikalayeu) + § + + + + The previous coding caused spurious errors when examining indexes + created with CREATE INDEX CONCURRENTLY. + + + + + + + Fix contrib/amcheck to + handle half-dead btree index pages correctly + (Heikki Linnakangas) + § + + + + amcheck expected such a page to have a parent + downlink, but it does not, leading to a false error report + about mismatch between parent key and child high key. + + + + + + + Fix contrib/amcheck to + handle incomplete btree root page splits correctly + (Heikki Linnakangas) + § + + + + amcheck could report a false error + about block is not true root. + + + + + + + Fix edge-case integer overflow + in contrib/intarray's selectivity estimator + for @@ (Chao Li) + § + + + + This could cause poor selectivity estimates to be produced for cases + involving the maximum integer value. + + + + + + + Fix multibyte-encoding issue in contrib/ltree + (Jeff Davis) + § + + + + The previous coding could pass an incomplete multibyte character + to lower(), probably resulting in incorrect + behavior. + + + + + + + Update time zone data files to tzdata + release 2025c (Tom Lane) + § + + + + The only change is in historical data for pre-1976 timestamps in + Baja California. + + + + + + + + Release 15.15 From 9a9982ec6d40cf13e223ed83de1e5729b6e15720 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Mon, 9 Feb 2026 08:01:10 +0900 Subject: [PATCH 82/94] pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() pgp_pub_decrypt_bytea() was missing a safeguard for the session key length read from the message data, that can be given in input of pgp_pub_decrypt_bytea(). This can result in the possibility of a buffer overflow for the session key data, when the length specified is longer than PGP_MAX_KEY, which is the maximum size of the buffer where the session data is copied to. A script able to rebuild the message and key data that can trigger the overflow is included in this commit, based on some contents provided by the reporter, heavily editted by me. A SQL test is added, based on the data generated by the script. Reported-by: Team Xint Code as part of zeroday.cloud Author: Michael Paquier Reviewed-by: Noah Misch Security: CVE-2026-2005 Backpatch-through: 14 --- contrib/pgcrypto/Makefile | 3 +- .../pgcrypto/expected/pgp-pubkey-session.out | 47 ++ contrib/pgcrypto/pgp-pubdec.c | 11 +- contrib/pgcrypto/px.c | 1 + contrib/pgcrypto/px.h | 2 +- contrib/pgcrypto/scripts/pgp_session_data.py | 491 ++++++++++++++++++ contrib/pgcrypto/sql/pgp-pubkey-session.sql | 46 ++ 7 files changed, 598 insertions(+), 3 deletions(-) create mode 100644 contrib/pgcrypto/expected/pgp-pubkey-session.out create mode 100644 contrib/pgcrypto/scripts/pgp_session_data.py create mode 100644 contrib/pgcrypto/sql/pgp-pubkey-session.sql diff --git a/contrib/pgcrypto/Makefile b/contrib/pgcrypto/Makefile index 7fb59f51b72..52a5cefb033 100644 --- a/contrib/pgcrypto/Makefile +++ b/contrib/pgcrypto/Makefile @@ -43,7 +43,8 @@ REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \ sha2 des 3des cast5 \ crypt-des crypt-md5 crypt-blowfish crypt-xdes \ pgp-armor pgp-decrypt pgp-encrypt $(CF_PGP_TESTS) \ - pgp-pubkey-decrypt pgp-pubkey-encrypt pgp-info + pgp-pubkey-decrypt pgp-pubkey-encrypt pgp-pubkey-session \ + pgp-info EXTRA_CLEAN = gen-rtab diff --git a/contrib/pgcrypto/expected/pgp-pubkey-session.out b/contrib/pgcrypto/expected/pgp-pubkey-session.out new file mode 100644 index 00000000000..f724d98eb24 --- /dev/null +++ b/contrib/pgcrypto/expected/pgp-pubkey-session.out @@ -0,0 +1,47 @@ +-- Test for overflow with session key at decrypt. +-- Data automatically generated by scripts/pgp_session_data.py. +-- See this file for details explaining how this data is generated. +SELECT pgp_pub_decrypt_bytea( +'\xc1c04c030000000000000000020800a46f5b9b1905b49457a6485474f71ed9b46c2527e1 +da08e1f7871e12c3d38828f2076b984a595bf60f616599ca5729d547de06a258bfbbcd30 +94a321e4668cd43010f0ca8ecf931e5d39bda1152c50c367b11c723f270729245d3ebdbd +0694d320c5a5aa6a405fb45182acb3d7973cbce398e0c5060af7603cfd9ed186ebadd616 +3b50ae42bea5f6d14dda24e6d4687b434c175084515d562e896742b0ba9a1c87d5642e10 +a5550379c71cc490a052ada483b5d96526c0a600fc51755052aa77fdf72f7b4989b920e7 +b90f4b30787a46482670d5caecc7a515a926055ad5509d135702ce51a0e4c1033f2d939d +8f0075ec3428e17310da37d3d2d7ad1ce99adcc91cd446c366c402ae1ee38250343a7fcc +0f8bc28020e603d7a4795ef0dcc1c04c030000000000000000020800a46f5b9b1905b494 +57a6485474f71ed9b46c2527e1da08e1f7871e12c3d38828f2076b984a595bf60f616599 +ca5729d547de06a258bfbbcd3094a321e4668cd43010f0ca8ecf931e5d39bda1152c50c3 +67b11c723f270729245d3ebdbd0694d320c5a5aa6a405fb45182acb3d7973cbce398e0c5 +060af7603cfd9ed186ebadd6163b50ae42bea5f6d14dda24e6d4687b434c175084515d56 +2e896742b0ba9a1c87d5642e10a5550379c71cc490a052ada483b5d96526c0a600fc5175 +5052aa77fdf72f7b4989b920e7b90f4b30787a46482670d5caecc7a515a926055ad5509d +135702ce51a0e4c1033f2d939d8f0075ec3428e17310da37d3d2d7ad1ce99adc'::bytea, +'\xc7c2d8046965d657020800eef8bf1515adb1a3ee7825f75c668ea8dd3e3f9d13e958f6ad +9c55adc0c931a4bb00abe1d52cf7bb0c95d537949d277a5292ede375c6b2a67a3bf7d19f +f975bb7e7be35c2d8300dacba360a0163567372f7dc24000cc7cb6170bedc8f3b1f98c12 +07a6cb4de870a4bc61319b139dcc0e20c368fd68f8fd346d2c0b69c5aed560504e2ec6f1 +23086fe3c5540dc4dd155c0c67257c4ada862f90fe172ace344089da8135e92aca5c2709 +f1c1bc521798bb8c0365841496e709bd184132d387e0c9d5f26dc00fd06c3a76ef66a75c +138285038684707a847b7bd33cfbefbf1d336be954a8048946af97a66352adef8e8b5ae4 +c4748c6f2510265b7a8267bc370dbb00110100010007ff7e72d4f95d2d39901ac12ca5c5 +18e767e719e72340c3fab51c8c5ab1c40f31db8eaffe43533fa61e2dbca2c3f4396c0847 +e5434756acbb1f68128f4136bb135710c89137d74538908dac77967de9e821c559700dd9 +de5a2727eec1f5d12d5d74869dd1de45ed369d94a8814d23861dd163f8c27744b26b98f0 +239c2e6dd1e3493b8cc976fdc8f9a5e250f715aa4c3d7d5f237f8ee15d242e8fa941d1a0 +ed9550ab632d992a97518d142802cb0a97b251319bf5742db8d9d8cbaa06cdfba2d75bc9 +9d77a51ff20bd5ba7f15d7af6e85b904de2855d19af08d45f39deb85403033c69c767a8e +74a343b1d6c8911d34ea441ac3850e57808ed3d885835cbe6c79d10400ef16256f3d5c4c +3341516a2d2aa888df81b603f48a27f3666b40f992a857c1d11ff639cd764a9b42d5a1f8 +58b4aeee36b85508bb5e8b91ef88a7737770b330224479d9b44eae8c631bc43628b69549 +507c0a1af0be0dd7696015abea722b571eb35eefc4ab95595378ec12814727443f625fcd +183bb9b3bccf53b54dd0e5e7a50400ffe08537b2d4e6074e4a1727b658cfccdec8962302 +25e300c05690de45f7065c3d40d86f544a64d51a3e94424f9851a16d1322ebdb41fa8a45 +3131f3e2dc94e858e6396722643df382680f815e53bcdcde5da622f50530a83b217f1103 +cdd6e5e9babe1e415bbff28d44bd18c95f43bbd04afeb2a2a99af38a571c7540de21df03 +ff62c0a33d9143dd3f639893f47732c11c5a12c6052d1935f4d507b7ae1f76ab0e9a69b8 +7305a7f7c19bd509daf4903bff614bc26d118f03e461469c72c12d3a2bb4f78e4d342ce8 +487723649a01ed2b9eb11c662134502c098d55dfcd361939d8370873422c3da75a515a75 +9ffedfe7df44fb3c20f81650801a30d43b5c90b98b3eee'::bytea); +ERROR: Public key too big diff --git a/contrib/pgcrypto/pgp-pubdec.c b/contrib/pgcrypto/pgp-pubdec.c index a0a5738a40e..2a13aa3e6ad 100644 --- a/contrib/pgcrypto/pgp-pubdec.c +++ b/contrib/pgcrypto/pgp-pubdec.c @@ -157,6 +157,7 @@ pgp_parse_pubenc_sesskey(PGP_Context *ctx, PullFilter *pkt) uint8 *msg; int msglen; PGP_MPI *m; + unsigned sess_key_len; pk = ctx->pub_key; if (pk == NULL) @@ -220,11 +221,19 @@ pgp_parse_pubenc_sesskey(PGP_Context *ctx, PullFilter *pkt) if (res < 0) goto out; + sess_key_len = msglen - 3; + if (sess_key_len > PGP_MAX_KEY) + { + px_debug("incorrect session key length=%u", sess_key_len); + res = PXE_PGP_KEY_TOO_BIG; + goto out; + } + /* * got sesskey */ ctx->cipher_algo = *msg; - ctx->sess_key_len = msglen - 3; + ctx->sess_key_len = sess_key_len; memcpy(ctx->sess_key, msg + 1, ctx->sess_key_len); out: diff --git a/contrib/pgcrypto/px.c b/contrib/pgcrypto/px.c index 3b098c61514..154253a7be3 100644 --- a/contrib/pgcrypto/px.c +++ b/contrib/pgcrypto/px.c @@ -65,6 +65,7 @@ static const struct error_desc px_err_list[] = { {PXE_PGP_UNEXPECTED_PKT, "Unexpected packet in key data"}, {PXE_PGP_MATH_FAILED, "Math operation failed"}, {PXE_PGP_SHORT_ELGAMAL_KEY, "Elgamal keys must be at least 1024 bits long"}, + {PXE_PGP_KEY_TOO_BIG, "Public key too big"}, {PXE_PGP_UNKNOWN_PUBALGO, "Unknown public-key encryption algorithm"}, {PXE_PGP_WRONG_KEY, "Wrong key"}, {PXE_PGP_MULTIPLE_KEYS, diff --git a/contrib/pgcrypto/px.h b/contrib/pgcrypto/px.h index 4ef40f3f1c5..be2431c1b14 100644 --- a/contrib/pgcrypto/px.h +++ b/contrib/pgcrypto/px.h @@ -75,7 +75,7 @@ /* -108 is unused */ #define PXE_PGP_MATH_FAILED -109 #define PXE_PGP_SHORT_ELGAMAL_KEY -110 -/* -111 is unused */ +#define PXE_PGP_KEY_TOO_BIG -111 #define PXE_PGP_UNKNOWN_PUBALGO -112 #define PXE_PGP_WRONG_KEY -113 #define PXE_PGP_MULTIPLE_KEYS -114 diff --git a/contrib/pgcrypto/scripts/pgp_session_data.py b/contrib/pgcrypto/scripts/pgp_session_data.py new file mode 100644 index 00000000000..999350bb2bc --- /dev/null +++ b/contrib/pgcrypto/scripts/pgp_session_data.py @@ -0,0 +1,491 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Generate PGP data to check the session key length of the input data provided +# to pgp_pub_decrypt_bytea(). +# +# First, the crafted data is generated from valid RSA data, freshly generated +# by this script each time it is run, see generate_rsa_keypair(). +# Second, the crafted PGP data is built, see build_message_data() and +# build_key_data(). Finally, the resulting SQL script is generated. +# +# This script generates in stdout the SQL file that is used in the regression +# tests of pgcrypto. The following command can be used to regenerate the file +# which should never be manually manipulated: +# python3 scripts/pgp_session_data.py > sql/pgp-pubkey-session.sql + +import os +import re +import struct +import secrets +import sys +import time + +# pwn for binary manipulation (p32, p64) +from pwn import * + +# Cryptographic libraries, to craft the PGP data. +from Crypto.Cipher import AES +from Crypto.PublicKey import RSA +from Crypto.Util.number import inverse + +# AES key used for session key encryption (16 bytes for AES-128) +AES_KEY = b'\x01' * 16 + +def generate_rsa_keypair(key_size: int = 2048) -> dict: + """ + Generate a fresh RSA key pair. + + The generated key includes all components needed for PGP operations: + - n: public modulus (p * q) + - e: public exponent (typically 65537) + - d: private exponent (e^-1 mod phi(n)) + - p, q: prime factors of n + - u: coefficient (p^-1 mod q) for CRT optimization + + The caller can pass the wanted key size in input, for a default of 2048 + bytes. This function returns the RSA key components, after performing + some validation on them. + """ + + start_time = time.time() + + # Generate RSA key + key = RSA.generate(key_size) + + # Extract all key components + rsa_components = { + 'n': key.n, # Public modulus (p * q) + 'e': key.e, # Public exponent (typically 65537) + 'd': key.d, # Private exponent (e^-1 mod phi(n)) + 'p': key.p, # First prime factor + 'q': key.q, # Second prime factor + 'u': inverse(key.p, key.q) # Coefficient for CRT: p^-1 mod q + } + + # Validate key components for correctness + validate_rsa_key(rsa_components) + + return rsa_components + +def validate_rsa_key(rsa: dict) -> None: + """ + Validate a generated RSA key. + + This function performs basic validation to ensure the RSA key is properly + constructed and all components are consistent, at least mathematically. + + Validations performed: + 1. n = p * q (modulus is product of primes) + 2. gcd(e, phi(n)) = 1 (public exponent is coprime to phi(n)) + 3. (d * e) mod(phi(n)) = 1 (private exponent is multiplicative inverse) + 4. (u * p) (mod q) = 1 (coefficient is correct for CRT) + """ + + n, e, d, p, q, u = rsa['n'], rsa['e'], rsa['d'], rsa['p'], rsa['q'], rsa['u'] + + # Check that n = p * q + if n != p * q: + raise ValueError("RSA validation failed: n <> p * q") + + # Check that p and q are different + if p == q: + raise ValueError("RSA validation failed: p = q (not allowed)") + + # Calculate phi(n) = (p-1)(q-1) + phi_n = (p - 1) * (q - 1) + + # Check that gcd(e, phi(n)) = 1 + def gcd(a, b): + while b: + a, b = b, a % b + return a + + if gcd(e, phi_n) != 1: + raise ValueError("RSA validation failed: gcd(e, phi(n)) <> 1") + + # Check that (d * e) mod(phi(n)) = 1 + if (d * e) % phi_n != 1: + raise ValueError("RSA validation failed: d * e <> 1 (mod phi(n))") + + # Check that (u * p) (mod q) = 1 + if (u * p) % q != 1: + raise ValueError("RSA validation failed: u * p <> 1 (mod q)") + +def mpi_encode(x: int) -> bytes: + """ + Encode an integer as an OpenPGP Multi-Precision Integer (MPI). + + Format (RFC 4880, Section 3.2): + - 2 bytes: bit length of the integer (big-endian) + - N bytes: the integer in big-endian format + + This is used to encode RSA key components (n, e, d, p, q, u) in PGP + packets. + + The integer to encode is given in input, returning an MPI-encoded + integer. + + For example: + mpi_encode(65537) -> b'\x00\x11\x01\x00\x01' + (17 bits, value 0x010001) + """ + if x < 0: + raise ValueError("MPI cannot encode negative integers") + + if x == 0: + # Special case: zero has 0 bits and empty magnitude + bits = 0 + mag = b"" + else: + # Calculate bit length and convert to bytes + bits = x.bit_length() + mag = x.to_bytes((bits + 7) // 8, 'big') + + # Pack: 2-byte bit length + magnitude bytes + return struct.pack('>H', bits) + mag + +def new_packet(tag: int, payload: bytes) -> bytes: + """ + Create a new OpenPGP packet with a proper header. + + OpenPGP packet format (RFC 4880, Section 4.2): + - New packet format: 0xC0 | tag + - Length encoding depends on payload size: + * 0-191: single byte + * 192-8383: two bytes (192 + ((length - 192) >> 8), (length - 192) & 0xFF) + * 8384+: five bytes (0xFF + 4-byte big-endian length) + + The packet is built from a "tag" (1-63) and some "payload" data. The + result generated is a complete OpenPGP packet. + + For example: + new_packet(1, b'data') -> b'\xC1\x04data' + (Tag 1, length 4, payload 'data') + """ + # New packet format: set bit 7 and 6, clear bit 5, tag in bits 0-5 + first = 0xC0 | (tag & 0x3F) + ln = len(payload) + + # Encode length according to OpenPGP specification + if ln <= 191: + # Single byte length for small packets + llen = bytes([ln]) + elif ln <= 8383: + # Two-byte length for medium packets + ln2 = ln - 192 + llen = bytes([192 + (ln2 >> 8), ln2 & 0xFF]) + else: + # Five-byte length for large packets + llen = bytes([255]) + struct.pack('>I', ln) + + return bytes([first]) + llen + payload + +def build_key_data(rsa: dict) -> bytes: + """ + Build the key data, containing an RSA private key. + + The RSA contents should have been generated previously. + + Format (see RFC 4880, Section 5.5.3): + - 1 byte: version (4) + - 4 bytes: creation time (current Unix timestamp) + - 1 byte: public key algorithm (2 = RSA encrypt) + - MPI: RSA public modulus n + - MPI: RSA public exponent e + - 1 byte: string-to-key usage (0 = no encryption) + - MPI: RSA private exponent d + - MPI: RSA prime p + - MPI: RSA prime q + - MPI: RSA coefficient u = p^-1 mod q + - 2 bytes: checksum of private key material + + This function takes a set of RSA key components in input (n, e, d, p, q, u) + and returns a secret key packet. + """ + + # Public key portion + ver = bytes([4]) # Version 4 key + ctime = struct.pack('>I', int(time.time())) # Current Unix timestamp + algo = bytes([2]) # RSA encrypt algorithm + n_mpi = mpi_encode(rsa['n']) # Public modulus + e_mpi = mpi_encode(rsa['e']) # Public exponent + pub = ver + ctime + algo + n_mpi + e_mpi + + # Private key portion + hide_type = bytes([0]) # No string-to-key encryption + d_mpi = mpi_encode(rsa['d']) # Private exponent + p_mpi = mpi_encode(rsa['p']) # Prime p + q_mpi = mpi_encode(rsa['q']) # Prime q + u_mpi = mpi_encode(rsa['u']) # Coefficient u = p^-1 mod q + + # Calculate checksum of private key material (simple sum mod 65536) + private_data = d_mpi + p_mpi + q_mpi + u_mpi + cksum = sum(private_data) & 0xFFFF + + secret = hide_type + private_data + struct.pack('>H', cksum) + payload = pub + secret + + return new_packet(7, payload) + +def pgp_cfb_encrypt_resync(key, plaintext): + """ + Implement OpenPGP CFB mode with resync. + + OpenPGP CFB mode is a variant of standard CFB with a resync operation + after the first two blocks. + + Algorithm (RFC 4880, Section 13.9): + 1. Block 1: FR=zeros, encrypt full block_size bytes + 2. Block 2: FR=block1, encrypt only 2 bytes + 3. Resync: FR = block1[2:] + block2 + 4. Remaining blocks: standard CFB mode + + This function uses the following arguments: + - key: AES encryption key (16 bytes for AES-128) + - plaintext: Data to encrypt + """ + block_size = 16 # AES block size + cipher = AES.new(key[:16], AES.MODE_ECB) # Use ECB for manual CFB + ciphertext = b'' + + # Block 1: FR=zeros, encrypt full 16 bytes + FR = b'\x00' * block_size + FRE = cipher.encrypt(FR) # Encrypt the feedback register + block1 = bytes(a ^ b for a, b in zip(FRE, plaintext[0:16])) + ciphertext += block1 + + # Block 2: FR=block1, encrypt only 2 bytes + FR = block1 + FRE = cipher.encrypt(FR) + block2 = bytes(a ^ b for a, b in zip(FRE[0:2], plaintext[16:18])) + ciphertext += block2 + + # Resync: FR = block1[2:16] + block2[0:2] + # This is the key difference from standard CFB mode + FR = block1[2:] + block2 + + # Block 3+: Continue with standard CFB mode + pos = 18 + while pos < len(plaintext): + FRE = cipher.encrypt(FR) + chunk_len = min(block_size, len(plaintext) - pos) + chunk = plaintext[pos:pos+chunk_len] + enc_chunk = bytes(a ^ b for a, b in zip(FRE[:chunk_len], chunk)) + ciphertext += enc_chunk + + # Update feedback register for next iteration + if chunk_len == block_size: + FR = enc_chunk + else: + # Partial block: pad with old FR bytes + FR = enc_chunk + FR[chunk_len:] + pos += chunk_len + + return ciphertext + +def build_literal_data_packet(data: bytes) -> bytes: + """ + Build a literal data packet containing a message. + + Format (RFC 4880, Section 5.9): + - 1 byte: data format ('b' = binary, 't' = text, 'u' = UTF-8 text) + - 1 byte: filename length (0 = no filename) + - N bytes: filename (empty in this case) + - 4 bytes: date (current Unix timestamp) + - M bytes: literal data + + The data used to build the packet is given in input, with the generated + result returned. + """ + body = bytes([ + ord('b'), # Binary data format + 0, # Filename length (0 = no filename) + ]) + struct.pack('>I', int(time.time())) + data # Current timestamp + data + + return new_packet(11, body) + +def build_symenc_data_packet(sess_key: bytes, cipher_algo: int, payload: bytes) -> bytes: + """ + Build a symmetrically-encrypted data packet using AES-128-CFB. + + This packet contains encrypted data using the session key. The format + includes a random prefix, for security (see RFC 4880, Section 5.7). + + Packet structure: + - Random prefix (block_size bytes) + - Prefix repeat (last 2 bytes of prefix repeated) + - Encrypted literal data packet + + This function uses the following set of arguments: + - sess_key: Session key for encryption + - cipher_algo: Cipher algorithm identifier (7 = AES-128) + - payload: Data to encrypt (wrapped in literal data packet) + """ + block_size = 16 # AES-128 block size + key = sess_key[:16] # Use first 16 bytes for AES-128 + + # Create random prefix + repeat last 2 bytes (total 18 bytes) + # This is required by OpenPGP for integrity checking + prefix_random = secrets.token_bytes(block_size) + prefix = prefix_random + prefix_random[-2:] # 18 bytes total + + # Wrap payload in literal data packet + literal_pkt = build_literal_data_packet(payload) + + # Plaintext = prefix + literal data packet + plaintext = prefix + literal_pkt + + # Encrypt using OpenPGP CFB mode with resync + ciphertext = pgp_cfb_encrypt_resync(key, plaintext) + + return new_packet(9, ciphertext) + +def build_tag1_packet(rsa: dict, sess_key: bytes) -> bytes: + """ + Build a public-key encrypted key. + + This is a very important function, as it is able to create the packet + triggering the overflow check. This function can also be used to create + "legit" packet data. + + Format (RFC 4880, Section 5.1): + - 1 byte: version (3) + - 8 bytes: key ID (0 = any key accepted) + - 1 byte: public key algorithm (2 = RSA encrypt) + - MPI: RSA-encrypted session key + + This uses in arguments the generated RSA key pair, and the session key + to encrypt. The latter is manipulated to trigger the overflow. + + This function returns a complete packet encrypted by a session key. + """ + + # Calculate RSA modulus size in bytes + n_bytes = (rsa['n'].bit_length() + 7) // 8 + + # Session key message format: + # - 1 byte: symmetric cipher algorithm (7 = AES-128) + # - N bytes: session key + # - 2 bytes: checksum (simple sum of session key bytes) + algo_byte = bytes([7]) # AES-128 algorithm identifier + cksum = sum(sess_key) & 0xFFFF # 16-bit checksum + M = algo_byte + sess_key + struct.pack('>H', cksum) + + # PKCS#1 v1.5 padding construction + # Format: 0x02 || PS || 0x00 || M + # Total padded message must be exactly n_bytes long. + total_len = n_bytes # Total length must equal modulus size in bytes + ps_len = total_len - len(M) - 2 # Subtract 2 for 0x02 and 0x00 bytes + + if ps_len < 8: + raise ValueError(f"Padding string too short ({ps_len} bytes); need at least 8 bytes. " + f"Message length: {len(M)}, Modulus size: {n_bytes} bytes") + + # Create padding string with *ALL* bytes being 0xFF (no zero separator!) + PS = bytes([0xFF]) * ps_len + + # Construct the complete padded message + # Normal PKCS#1 v1.5 padding: 0x02 || PS || 0x00 || M + padded = bytes([0x02]) + PS + bytes([0x00]) + M + + # Verify padding construction + if len(padded) != n_bytes: + raise ValueError(f"Padded message length ({len(padded)}) doesn't match RSA modulus size ({n_bytes})") + + # Convert padded message to integer and encrypt with RSA + m_int = int.from_bytes(padded, 'big') + + # Ensure message is smaller than modulus (required for RSA) + if m_int >= rsa['n']: + raise ValueError("Padded message is larger than RSA modulus") + + # RSA encryption: c = m^e mod n + c_int = pow(m_int, rsa['e'], rsa['n']) + + # Encode encrypted result as MPI + c_mpi = mpi_encode(c_int) + + # Build complete packet + ver = bytes([3]) # Version 3 packet + key_id = b"\x00" * 8 # Key ID (0 = any key accepted) + algo = bytes([2]) # RSA encrypt algorithm + payload = ver + key_id + algo + c_mpi + + return new_packet(1, payload) + +def build_message_data(rsa: dict) -> bytes: + """ + This function creates a crafted message, with a long session key + length. + + This takes in input the RSA key components generated previously, + returning a concatenated set of PGP packets crafted for the purpose + of this test. + """ + + # Base prefix for session key (AES key + padding + size). + # Note that the crafted size is the important part for this test. + prefix = AES_KEY + b"\x00" * 16 + p32(0x10) + + # Build encrypted data packet, legit. + sedata = build_symenc_data_packet(AES_KEY, cipher_algo=7, payload=b"\x0a\x00") + + # Build multiple packets + packets = [ + # First packet, legit. + build_tag1_packet(rsa, prefix), + + # Encrypted data packet, legit. + sedata, + + # Second packet: information payload. + # + # This packet contains a longer-crafted session key, able to trigger + # the overflow check in pgcrypto. This is the critical part, and + # and you are right to pay a lot of attention here if you are + # reading this code. + build_tag1_packet(rsa, prefix) + ] + + return b"".join(packets) + +def main(): + # Default key size. + # This number can be set to a higher number if wanted, like 4096. We + # just do not need to do that here. + key_size = 2048 + + # Generate fresh RSA key pair + rsa = generate_rsa_keypair(key_size) + + # Generate the message data. + print("### Building message data", file=sys.stderr) + message_data = build_message_data(rsa) + + # Build the key containing the RSA private key + print("### Building key data", file=sys.stderr) + key_data = build_key_data(rsa) + + # Convert to hexadecimal, for the bytea used in the SQL file. + message_data = message_data.hex() + key_data = key_data.hex() + + # Split each value into lines of 72 characters, for readability. + message_data = re.sub("(.{72})", "\\1\n", message_data, 0, re.DOTALL) + key_data = re.sub("(.{72})", "\\1\n", key_data, 0, re.DOTALL) + + # Get the script filename for documentation + file_basename = os.path.basename(__file__) + + # Output the SQL test case + print(f'''-- Test for overflow with session key at decrypt. +-- Data automatically generated by scripts/{file_basename}. +-- See this file for details explaining how this data is generated. +SELECT pgp_pub_decrypt_bytea( +'\\x{message_data}'::bytea, +'\\x{key_data}'::bytea);''', + file=sys.stdout) + +if __name__ == "__main__": + main() diff --git a/contrib/pgcrypto/sql/pgp-pubkey-session.sql b/contrib/pgcrypto/sql/pgp-pubkey-session.sql new file mode 100644 index 00000000000..51792f1f4d8 --- /dev/null +++ b/contrib/pgcrypto/sql/pgp-pubkey-session.sql @@ -0,0 +1,46 @@ +-- Test for overflow with session key at decrypt. +-- Data automatically generated by scripts/pgp_session_data.py. +-- See this file for details explaining how this data is generated. +SELECT pgp_pub_decrypt_bytea( +'\xc1c04c030000000000000000020800a46f5b9b1905b49457a6485474f71ed9b46c2527e1 +da08e1f7871e12c3d38828f2076b984a595bf60f616599ca5729d547de06a258bfbbcd30 +94a321e4668cd43010f0ca8ecf931e5d39bda1152c50c367b11c723f270729245d3ebdbd +0694d320c5a5aa6a405fb45182acb3d7973cbce398e0c5060af7603cfd9ed186ebadd616 +3b50ae42bea5f6d14dda24e6d4687b434c175084515d562e896742b0ba9a1c87d5642e10 +a5550379c71cc490a052ada483b5d96526c0a600fc51755052aa77fdf72f7b4989b920e7 +b90f4b30787a46482670d5caecc7a515a926055ad5509d135702ce51a0e4c1033f2d939d +8f0075ec3428e17310da37d3d2d7ad1ce99adcc91cd446c366c402ae1ee38250343a7fcc +0f8bc28020e603d7a4795ef0dcc1c04c030000000000000000020800a46f5b9b1905b494 +57a6485474f71ed9b46c2527e1da08e1f7871e12c3d38828f2076b984a595bf60f616599 +ca5729d547de06a258bfbbcd3094a321e4668cd43010f0ca8ecf931e5d39bda1152c50c3 +67b11c723f270729245d3ebdbd0694d320c5a5aa6a405fb45182acb3d7973cbce398e0c5 +060af7603cfd9ed186ebadd6163b50ae42bea5f6d14dda24e6d4687b434c175084515d56 +2e896742b0ba9a1c87d5642e10a5550379c71cc490a052ada483b5d96526c0a600fc5175 +5052aa77fdf72f7b4989b920e7b90f4b30787a46482670d5caecc7a515a926055ad5509d +135702ce51a0e4c1033f2d939d8f0075ec3428e17310da37d3d2d7ad1ce99adc'::bytea, +'\xc7c2d8046965d657020800eef8bf1515adb1a3ee7825f75c668ea8dd3e3f9d13e958f6ad +9c55adc0c931a4bb00abe1d52cf7bb0c95d537949d277a5292ede375c6b2a67a3bf7d19f +f975bb7e7be35c2d8300dacba360a0163567372f7dc24000cc7cb6170bedc8f3b1f98c12 +07a6cb4de870a4bc61319b139dcc0e20c368fd68f8fd346d2c0b69c5aed560504e2ec6f1 +23086fe3c5540dc4dd155c0c67257c4ada862f90fe172ace344089da8135e92aca5c2709 +f1c1bc521798bb8c0365841496e709bd184132d387e0c9d5f26dc00fd06c3a76ef66a75c +138285038684707a847b7bd33cfbefbf1d336be954a8048946af97a66352adef8e8b5ae4 +c4748c6f2510265b7a8267bc370dbb00110100010007ff7e72d4f95d2d39901ac12ca5c5 +18e767e719e72340c3fab51c8c5ab1c40f31db8eaffe43533fa61e2dbca2c3f4396c0847 +e5434756acbb1f68128f4136bb135710c89137d74538908dac77967de9e821c559700dd9 +de5a2727eec1f5d12d5d74869dd1de45ed369d94a8814d23861dd163f8c27744b26b98f0 +239c2e6dd1e3493b8cc976fdc8f9a5e250f715aa4c3d7d5f237f8ee15d242e8fa941d1a0 +ed9550ab632d992a97518d142802cb0a97b251319bf5742db8d9d8cbaa06cdfba2d75bc9 +9d77a51ff20bd5ba7f15d7af6e85b904de2855d19af08d45f39deb85403033c69c767a8e +74a343b1d6c8911d34ea441ac3850e57808ed3d885835cbe6c79d10400ef16256f3d5c4c +3341516a2d2aa888df81b603f48a27f3666b40f992a857c1d11ff639cd764a9b42d5a1f8 +58b4aeee36b85508bb5e8b91ef88a7737770b330224479d9b44eae8c631bc43628b69549 +507c0a1af0be0dd7696015abea722b571eb35eefc4ab95595378ec12814727443f625fcd +183bb9b3bccf53b54dd0e5e7a50400ffe08537b2d4e6074e4a1727b658cfccdec8962302 +25e300c05690de45f7065c3d40d86f544a64d51a3e94424f9851a16d1322ebdb41fa8a45 +3131f3e2dc94e858e6396722643df382680f815e53bcdcde5da622f50530a83b217f1103 +cdd6e5e9babe1e415bbff28d44bd18c95f43bbd04afeb2a2a99af38a571c7540de21df03 +ff62c0a33d9143dd3f639893f47732c11c5a12c6052d1935f4d507b7ae1f76ab0e9a69b8 +7305a7f7c19bd509daf4903bff614bc26d118f03e461469c72c12d3a2bb4f78e4d342ce8 +487723649a01ed2b9eb11c662134502c098d55dfcd361939d8370873422c3da75a515a75 +9ffedfe7df44fb3c20f81650801a30d43b5c90b98b3eee'::bytea); From b2c81ac8678ce2e570db0843f48f50a971af28c5 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Thu, 5 Feb 2026 01:04:24 +1300 Subject: [PATCH 83/94] Fix encoding length for EUC_CN. While EUC_CN supports only 1- and 2-byte sequences (CS0, CS1), the mb<->wchar conversion functions allow 3-byte sequences beginning SS2, SS3. Change pg_encoding_max_length() to return 3, not 2, to close a hypothesized buffer overrun if a corrupted string is converted to wchar and back again in a newly allocated buffer. We might reconsider that in master (ie harmonizing in a different direction), but this change seems better for the back-branches. Also change pg_euccn_mblen() to report SS2 and SS3 characters as having length 3 (following the example of EUC_KR). Even though such characters would not pass verification, it's remotely possible that invalid bytes could be used to compute a buffer size for use in wchar conversion. Security: CVE-2026-2006 Backpatch-through: 14 Author: Thomas Munro Reviewed-by: Noah Misch Reviewed-by: Heikki Linnakangas --- src/common/wchar.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/common/wchar.c b/src/common/wchar.c index 0d9eca70032..461cd67a42a 100644 --- a/src/common/wchar.c +++ b/src/common/wchar.c @@ -267,12 +267,22 @@ pg_euccn2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) return cnt; } +/* + * mbverifychar does not accept SS2 or SS3 (CS2 and CS3 are not defined for + * EUC_CN), but mb2wchar_with_len does. Tell a coherent story for code that + * relies on agreement between mb2wchar_with_len and mblen. Invalid text + * datums (e.g. from shared catalogs) reach this. + */ static int pg_euccn_mblen(const unsigned char *s) { int len; - if (IS_HIGHBIT_SET(*s)) + if (*s == SS2) + len = 3; + else if (*s == SS3) + len = 3; + else if (IS_HIGHBIT_SET(*s)) len = 2; else len = 1; @@ -2125,7 +2135,7 @@ pg_encoding_set_invalid(int encoding, char *dst) const pg_wchar_tbl pg_wchar_table[] = { {pg_ascii2wchar_with_len, pg_wchar2single_with_len, pg_ascii_mblen, pg_ascii_dsplen, pg_ascii_verifychar, pg_ascii_verifystr, 1}, /* PG_SQL_ASCII */ {pg_eucjp2wchar_with_len, pg_wchar2euc_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifychar, pg_eucjp_verifystr, 3}, /* PG_EUC_JP */ - {pg_euccn2wchar_with_len, pg_wchar2euc_with_len, pg_euccn_mblen, pg_euccn_dsplen, pg_euccn_verifychar, pg_euccn_verifystr, 2}, /* PG_EUC_CN */ + {pg_euccn2wchar_with_len, pg_wchar2euc_with_len, pg_euccn_mblen, pg_euccn_dsplen, pg_euccn_verifychar, pg_euccn_verifystr, 3}, /* PG_EUC_CN */ {pg_euckr2wchar_with_len, pg_wchar2euc_with_len, pg_euckr_mblen, pg_euckr_dsplen, pg_euckr_verifychar, pg_euckr_verifystr, 3}, /* PG_EUC_KR */ {pg_euctw2wchar_with_len, pg_wchar2euc_with_len, pg_euctw_mblen, pg_euctw_dsplen, pg_euctw_verifychar, pg_euctw_verifystr, 4}, /* PG_EUC_TW */ {pg_eucjp2wchar_with_len, pg_wchar2euc_with_len, pg_eucjp_mblen, pg_eucjp_dsplen, pg_eucjp_verifychar, pg_eucjp_verifystr, 3}, /* PG_EUC_JIS_2004 */ From 50863be0b77eeac5c1907ccd46c146eb80524e1a Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Mon, 26 Jan 2026 11:22:32 +1300 Subject: [PATCH 84/94] Fix mb2wchar functions on short input. When converting multibyte to pg_wchar, the UTF-8 implementation would silently ignore an incomplete final character, while the other implementations would cast a single byte to pg_wchar, and then repeat for the remaining byte sequence. While it didn't overrun the buffer, it was surely garbage output. Make all encodings behave like the UTF-8 implementation. A later change for master only will convert this to an error, but we choose not to back-patch that behavior change on the off-chance that someone is relying on the existing UTF-8 behavior. Security: CVE-2026-2006 Backpatch-through: 14 Author: Thomas Munro Reported-by: Noah Misch Reviewed-by: Noah Misch Reviewed-by: Heikki Linnakangas --- src/common/wchar.c | 52 ++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/src/common/wchar.c b/src/common/wchar.c index 461cd67a42a..d931f2bd534 100644 --- a/src/common/wchar.c +++ b/src/common/wchar.c @@ -63,6 +63,9 @@ * subset to the ASCII routines to ensure consistency. */ +/* No error-reporting facility. Ignore incomplete trailing byte sequence. */ +#define MB2CHAR_NEED_AT_LEAST(len, need) if ((len) < (need)) break + /* * SQL/ASCII */ @@ -108,22 +111,24 @@ pg_euc2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) while (len > 0 && *from) { - if (*from == SS2 && len >= 2) /* JIS X 0201 (so called "1 byte - * KANA") */ + if (*from == SS2) /* JIS X 0201 (so called "1 byte KANA") */ { + MB2CHAR_NEED_AT_LEAST(len, 2); from++; *to = (SS2 << 8) | *from++; len -= 2; } - else if (*from == SS3 && len >= 3) /* JIS X 0212 KANJI */ + else if (*from == SS3) /* JIS X 0212 KANJI */ { + MB2CHAR_NEED_AT_LEAST(len, 3); from++; *to = (SS3 << 16) | (*from++ << 8); *to |= *from++; len -= 3; } - else if (IS_HIGHBIT_SET(*from) && len >= 2) /* JIS X 0208 KANJI */ + else if (IS_HIGHBIT_SET(*from)) /* JIS X 0208 KANJI */ { + MB2CHAR_NEED_AT_LEAST(len, 2); *to = *from++ << 8; *to |= *from++; len -= 2; @@ -235,22 +240,25 @@ pg_euccn2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) while (len > 0 && *from) { - if (*from == SS2 && len >= 3) /* code set 2 (unused?) */ + if (*from == SS2) /* code set 2 (unused?) */ { + MB2CHAR_NEED_AT_LEAST(len, 3); from++; *to = (SS2 << 16) | (*from++ << 8); *to |= *from++; len -= 3; } - else if (*from == SS3 && len >= 3) /* code set 3 (unused ?) */ + else if (*from == SS3) /* code set 3 (unused ?) */ { + MB2CHAR_NEED_AT_LEAST(len, 3); from++; *to = (SS3 << 16) | (*from++ << 8); *to |= *from++; len -= 3; } - else if (IS_HIGHBIT_SET(*from) && len >= 2) /* code set 1 */ + else if (IS_HIGHBIT_SET(*from)) /* code set 1 */ { + MB2CHAR_NEED_AT_LEAST(len, 2); *to = *from++ << 8; *to |= *from++; len -= 2; @@ -312,23 +320,26 @@ pg_euctw2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) while (len > 0 && *from) { - if (*from == SS2 && len >= 4) /* code set 2 */ + if (*from == SS2) /* code set 2 */ { + MB2CHAR_NEED_AT_LEAST(len, 4); from++; *to = (((uint32) SS2) << 24) | (*from++ << 16); *to |= *from++ << 8; *to |= *from++; len -= 4; } - else if (*from == SS3 && len >= 3) /* code set 3 (unused?) */ + else if (*from == SS3) /* code set 3 (unused?) */ { + MB2CHAR_NEED_AT_LEAST(len, 3); from++; *to = (SS3 << 16) | (*from++ << 8); *to |= *from++; len -= 3; } - else if (IS_HIGHBIT_SET(*from) && len >= 2) /* code set 2 */ + else if (IS_HIGHBIT_SET(*from)) /* code set 2 */ { + MB2CHAR_NEED_AT_LEAST(len, 2); *to = *from++ << 8; *to |= *from++; len -= 2; @@ -465,8 +476,7 @@ pg_utf2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) } else if ((*from & 0xe0) == 0xc0) { - if (len < 2) - break; /* drop trailing incomplete char */ + MB2CHAR_NEED_AT_LEAST(len, 2); c1 = *from++ & 0x1f; c2 = *from++ & 0x3f; *to = (c1 << 6) | c2; @@ -474,8 +484,7 @@ pg_utf2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) } else if ((*from & 0xf0) == 0xe0) { - if (len < 3) - break; /* drop trailing incomplete char */ + MB2CHAR_NEED_AT_LEAST(len, 3); c1 = *from++ & 0x0f; c2 = *from++ & 0x3f; c3 = *from++ & 0x3f; @@ -484,8 +493,7 @@ pg_utf2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) } else if ((*from & 0xf8) == 0xf0) { - if (len < 4) - break; /* drop trailing incomplete char */ + MB2CHAR_NEED_AT_LEAST(len, 4); c1 = *from++ & 0x07; c2 = *from++ & 0x3f; c3 = *from++ & 0x3f; @@ -748,28 +756,32 @@ pg_mule2wchar_with_len(const unsigned char *from, pg_wchar *to, int len) while (len > 0 && *from) { - if (IS_LC1(*from) && len >= 2) + if (IS_LC1(*from)) { + MB2CHAR_NEED_AT_LEAST(len, 2); *to = *from++ << 16; *to |= *from++; len -= 2; } - else if (IS_LCPRV1(*from) && len >= 3) + else if (IS_LCPRV1(*from)) { + MB2CHAR_NEED_AT_LEAST(len, 3); from++; *to = *from++ << 16; *to |= *from++; len -= 3; } - else if (IS_LC2(*from) && len >= 3) + else if (IS_LC2(*from)) { + MB2CHAR_NEED_AT_LEAST(len, 3); *to = *from++ << 16; *to |= *from++ << 8; *to |= *from++; len -= 3; } - else if (IS_LCPRV2(*from) && len >= 4) + else if (IS_LCPRV2(*from)) { + MB2CHAR_NEED_AT_LEAST(len, 4); from++; *to = *from++ << 16; *to |= *from++ << 8; From fd82ddb679d71c976e693f6e922cb5a599755f18 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Wed, 7 Jan 2026 22:14:31 +1300 Subject: [PATCH 85/94] Replace pg_mblen() with bounds-checked versions. A corrupted string could cause code that iterates with pg_mblen() to overrun its buffer. Fix, by converting all callers to one of the following: 1. Callers with a null-terminated string now use pg_mblen_cstr(), which raises an "illegal byte sequence" error if it finds a terminator in the middle of the sequence. 2. Callers with a length or end pointer now use either pg_mblen_with_len() or pg_mblen_range(), for the same effect, depending on which of the two seems more convenient at each site. 3. A small number of cases pre-validate a string, and can use pg_mblen_unbounded(). The traditional pg_mblen() function and COPYCHAR macro still exist for backward compatibility, but are no longer used by core code and are hereby deprecated. The same applies to the t_isXXX() functions. Security: CVE-2026-2006 Backpatch-through: 14 Co-authored-by: Thomas Munro Co-authored-by: Noah Misch Reviewed-by: Heikki Linnakangas Reported-by: Paul Gerste (as part of zeroday.cloud) Reported-by: Moritz Sanft (as part of zeroday.cloud) --- contrib/btree_gist/btree_utils_var.c | 21 +++- contrib/dict_xsyn/dict_xsyn.c | 8 +- contrib/hstore/hstore_io.c | 8 +- contrib/ltree/lquery_op.c | 4 +- contrib/ltree/ltree.h | 3 +- contrib/ltree/ltree_io.c | 16 +-- contrib/ltree/ltxtquery_io.c | 4 +- contrib/pageinspect/heapfuncs.c | 2 +- contrib/pg_trgm/trgm.h | 4 +- contrib/pg_trgm/trgm_op.c | 48 +++++--- contrib/pg_trgm/trgm_regexp.c | 21 ++-- contrib/unaccent/unaccent.c | 7 +- src/backend/catalog/pg_proc.c | 2 +- src/backend/tsearch/dict_synonym.c | 8 +- src/backend/tsearch/dict_thesaurus.c | 18 +-- src/backend/tsearch/regis.c | 37 +++--- src/backend/tsearch/spell.c | 123 +++++++++---------- src/backend/tsearch/ts_locale.c | 93 ++++++-------- src/backend/tsearch/ts_utils.c | 4 +- src/backend/tsearch/wparser_def.c | 3 +- src/backend/utils/adt/encode.c | 10 +- src/backend/utils/adt/formatting.c | 22 ++-- src/backend/utils/adt/jsonfuncs.c | 2 +- src/backend/utils/adt/jsonpath_gram.y | 3 +- src/backend/utils/adt/levenshtein.c | 14 ++- src/backend/utils/adt/like.c | 18 +-- src/backend/utils/adt/like_match.c | 3 +- src/backend/utils/adt/oracle_compat.c | 33 +++-- src/backend/utils/adt/regexp.c | 9 +- src/backend/utils/adt/tsquery.c | 25 ++-- src/backend/utils/adt/tsvector.c | 11 +- src/backend/utils/adt/tsvector_op.c | 10 +- src/backend/utils/adt/tsvector_parser.c | 29 ++--- src/backend/utils/adt/varbit.c | 8 +- src/backend/utils/adt/varlena.c | 34 +++-- src/backend/utils/adt/xml.c | 11 +- src/backend/utils/mb/mbutils.c | 150 +++++++++++++++++++++-- src/include/mb/pg_wchar.h | 7 ++ src/include/tsearch/ts_locale.h | 34 ++++- src/include/tsearch/ts_utils.h | 14 +-- src/test/modules/test_regex/test_regex.c | 3 +- 41 files changed, 536 insertions(+), 348 deletions(-) diff --git a/contrib/btree_gist/btree_utils_var.c b/contrib/btree_gist/btree_utils_var.c index 2886c08b85e..9d93b3c775e 100644 --- a/contrib/btree_gist/btree_utils_var.c +++ b/contrib/btree_gist/btree_utils_var.c @@ -116,36 +116,47 @@ gbt_var_leaf2node(GBT_VARKEY *leaf, const gbtree_vinfo *tinfo, FmgrInfo *flinfo) /* * returns the common prefix length of a node key + * + * If the underlying type is character data, the prefix length may point in + * the middle of a multibyte character. */ static int32 gbt_var_node_cp_len(const GBT_VARKEY *node, const gbtree_vinfo *tinfo) { GBT_VARKEY_R r = gbt_var_key_readable(node); int32 i = 0; - int32 l = 0; + int32 l_left_to_match = 0; + int32 l_total = 0; int32 t1len = VARSIZE(r.lower) - VARHDRSZ; int32 t2len = VARSIZE(r.upper) - VARHDRSZ; int32 ml = Min(t1len, t2len); char *p1 = VARDATA(r.lower); char *p2 = VARDATA(r.upper); + const char *end1 = p1 + t1len; + const char *end2 = p2 + t2len; if (ml == 0) return 0; while (i < ml) { - if (tinfo->eml > 1 && l == 0) + if (tinfo->eml > 1 && l_left_to_match == 0) { - if ((l = pg_mblen(p1)) != pg_mblen(p2)) + l_total = pg_mblen_range(p1, end1); + if (l_total != pg_mblen_range(p2, end2)) { return i; } + l_left_to_match = l_total; } if (*p1 != *p2) { if (tinfo->eml > 1) { - return (i - l + 1); + int32 l_matched_subset = l_total - l_left_to_match; + + /* end common prefix at final byte of last matching char */ + return i - l_matched_subset; } else { @@ -155,7 +166,7 @@ gbt_var_node_cp_len(const GBT_VARKEY *node, const gbtree_vinfo *tinfo) p1++; p2++; - l--; + l_left_to_match--; i++; } return ml; /* lower == upper */ diff --git a/contrib/dict_xsyn/dict_xsyn.c b/contrib/dict_xsyn/dict_xsyn.c index 584fe44753d..a4ced84dd8d 100644 --- a/contrib/dict_xsyn/dict_xsyn.c +++ b/contrib/dict_xsyn/dict_xsyn.c @@ -48,15 +48,15 @@ find_word(char *in, char **end) char *start; *end = NULL; - while (*in && t_isspace(in)) - in += pg_mblen(in); + while (*in && t_isspace_cstr(in)) + in += pg_mblen_cstr(in); if (!*in || *in == '#') return NULL; start = in; - while (*in && !t_isspace(in)) - in += pg_mblen(in); + while (*in && !t_isspace_cstr(in)) + in += pg_mblen_cstr(in); *end = in; diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c index 03057f085d1..0b1e0581e84 100644 --- a/contrib/hstore/hstore_io.c +++ b/contrib/hstore/hstore_io.c @@ -82,7 +82,7 @@ get_val(HSParser *state, bool ignoreeq, bool *escaped) else if (*(state->ptr) == '=' && !ignoreeq) { elog(ERROR, "Syntax error near \"%.*s\" at position %d", - pg_mblen(state->ptr), state->ptr, + pg_mblen_cstr(state->ptr), state->ptr, (int32) (state->ptr - state->begin)); } else if (*(state->ptr) == '\\') @@ -223,7 +223,7 @@ parse_hstore(HSParser *state) else if (!scanner_isspace((unsigned char) *(state->ptr))) { elog(ERROR, "Syntax error near \"%.*s\" at position %d", - pg_mblen(state->ptr), state->ptr, + pg_mblen_cstr(state->ptr), state->ptr, (int32) (state->ptr - state->begin)); } } @@ -240,7 +240,7 @@ parse_hstore(HSParser *state) else { elog(ERROR, "Syntax error near \"%.*s\" at position %d", - pg_mblen(state->ptr), state->ptr, + pg_mblen_cstr(state->ptr), state->ptr, (int32) (state->ptr - state->begin)); } } @@ -275,7 +275,7 @@ parse_hstore(HSParser *state) else if (!scanner_isspace((unsigned char) *(state->ptr))) { elog(ERROR, "Syntax error near \"%.*s\" at position %d", - pg_mblen(state->ptr), state->ptr, + pg_mblen_cstr(state->ptr), state->ptr, (int32) (state->ptr - state->begin)); } } diff --git a/contrib/ltree/lquery_op.c b/contrib/ltree/lquery_op.c index d89af20f6cf..46019a0e83a 100644 --- a/contrib/ltree/lquery_op.c +++ b/contrib/ltree/lquery_op.c @@ -26,14 +26,14 @@ getlexeme(char *start, char *end, int *len) char *ptr; int charlen; - while (start < end && (charlen = pg_mblen(start)) == 1 && t_iseq(start, '_')) + while (start < end && (charlen = pg_mblen_range(start, end)) == 1 && t_iseq(start, '_')) start += charlen; ptr = start; if (ptr >= end) return NULL; - while (ptr < end && !((charlen = pg_mblen(ptr)) == 1 && t_iseq(ptr, '_'))) + while (ptr < end && !((charlen = pg_mblen_range(ptr, end)) == 1 && t_iseq(ptr, '_'))) ptr += charlen; *len = ptr - start; diff --git a/contrib/ltree/ltree.h b/contrib/ltree/ltree.h index 4b47ec8a86f..a37ee6b2c67 100644 --- a/contrib/ltree/ltree.h +++ b/contrib/ltree/ltree.h @@ -126,7 +126,8 @@ typedef struct #define LQUERY_HASNOT 0x01 -#define ISALNUM(x) ( t_isalpha(x) || t_isdigit(x) || ( pg_mblen(x) == 1 && t_iseq((x), '_') ) ) +/* Caller has already called mblen, so we can use _unbounded variants safely. */ +#define ISALNUM(x) ( t_isalpha_unbounded(x) || t_isdigit_unbounded(x) || ( pg_mblen_unbounded(x) == 1 && t_iseq((x), '_') ) ) /* full text query */ diff --git a/contrib/ltree/ltree_io.c b/contrib/ltree/ltree_io.c index 15115cb29f3..0a44a8c4691 100644 --- a/contrib/ltree/ltree_io.c +++ b/contrib/ltree/ltree_io.c @@ -54,7 +54,7 @@ parse_ltree(const char *buf) ptr = buf; while (*ptr) { - charlen = pg_mblen(ptr); + charlen = pg_mblen_cstr(ptr); if (t_iseq(ptr, '.')) num++; ptr += charlen; @@ -69,7 +69,7 @@ parse_ltree(const char *buf) ptr = buf; while (*ptr) { - charlen = pg_mblen(ptr); + charlen = pg_mblen_cstr(ptr); switch (state) { @@ -285,7 +285,7 @@ parse_lquery(const char *buf) ptr = buf; while (*ptr) { - charlen = pg_mblen(ptr); + charlen = pg_mblen_cstr(ptr); if (t_iseq(ptr, '.')) num++; @@ -305,7 +305,7 @@ parse_lquery(const char *buf) ptr = buf; while (*ptr) { - charlen = pg_mblen(ptr); + charlen = pg_mblen_cstr(ptr); switch (state) { @@ -402,7 +402,7 @@ parse_lquery(const char *buf) case LQPRS_WAITFNUM: if (t_iseq(ptr, ',')) state = LQPRS_WAITSNUM; - else if (t_isdigit(ptr)) + else if (t_isdigit_cstr(ptr)) { int low = atoi(ptr); @@ -420,7 +420,7 @@ parse_lquery(const char *buf) UNCHAR; break; case LQPRS_WAITSNUM: - if (t_isdigit(ptr)) + if (t_isdigit_cstr(ptr)) { int high = atoi(ptr); @@ -451,7 +451,7 @@ parse_lquery(const char *buf) case LQPRS_WAITCLOSE: if (t_iseq(ptr, '}')) state = LQPRS_WAITEND; - else if (!t_isdigit(ptr)) + else if (!t_isdigit_cstr(ptr)) UNCHAR; break; case LQPRS_WAITND: @@ -462,7 +462,7 @@ parse_lquery(const char *buf) } else if (t_iseq(ptr, ',')) state = LQPRS_WAITSNUM; - else if (!t_isdigit(ptr)) + else if (!t_isdigit_cstr(ptr)) UNCHAR; break; case LQPRS_WAITEND: diff --git a/contrib/ltree/ltxtquery_io.c b/contrib/ltree/ltxtquery_io.c index 3eca5cb8ff3..bda2d971021 100644 --- a/contrib/ltree/ltxtquery_io.c +++ b/contrib/ltree/ltxtquery_io.c @@ -59,7 +59,7 @@ gettoken_query(QPRS_STATE *state, int32 *val, int32 *lenval, char **strval, uint for (;;) { - charlen = pg_mblen(state->buf); + charlen = pg_mblen_cstr(state->buf); switch (state->state) { @@ -83,7 +83,7 @@ gettoken_query(QPRS_STATE *state, int32 *val, int32 *lenval, char **strval, uint *lenval = charlen; *flag = 0; } - else if (!t_isspace(state->buf)) + else if (!t_isspace_unbounded(state->buf)) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("operand syntax error"))); diff --git a/contrib/pageinspect/heapfuncs.c b/contrib/pageinspect/heapfuncs.c index b4991756670..94ea38212f1 100644 --- a/contrib/pageinspect/heapfuncs.c +++ b/contrib/pageinspect/heapfuncs.c @@ -101,7 +101,7 @@ text_to_bits(char *str, int len) ereport(ERROR, (errcode(ERRCODE_DATA_CORRUPTED), errmsg("invalid character \"%.*s\" in t_bits string", - pg_mblen(str + off), str + off))); + pg_mblen_cstr(str + off), str + off))); if (off % 8 == 7) bits[off / 8] = byte; diff --git a/contrib/pg_trgm/trgm.h b/contrib/pg_trgm/trgm.h index 405a1d95528..06d3994e692 100644 --- a/contrib/pg_trgm/trgm.h +++ b/contrib/pg_trgm/trgm.h @@ -52,10 +52,10 @@ typedef char trgm[3]; } while(0) #ifdef KEEPONLYALNUM -#define ISWORDCHR(c) (t_isalpha(c) || t_isdigit(c)) +#define ISWORDCHR(c, len) (t_isalpha_with_len(c, len) || t_isdigit_with_len(c, len)) #define ISPRINTABLECHAR(a) ( isascii( *(unsigned char*)(a) ) && (isalnum( *(unsigned char*)(a) ) || *(unsigned char*)(a)==' ') ) #else -#define ISWORDCHR(c) (!t_isspace(c)) +#define ISWORDCHR(c, len) (!t_isspace_with_len(c, len)) #define ISPRINTABLECHAR(a) ( isascii( *(unsigned char*)(a) ) && isprint( *(unsigned char*)(a) ) ) #endif #define ISPRINTABLETRGM(t) ( ISPRINTABLECHAR( ((char*)(t)) ) && ISPRINTABLECHAR( ((char*)(t))+1 ) && ISPRINTABLECHAR( ((char*)(t))+2 ) ) diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c index e9b7981619f..fe7f1ca4412 100644 --- a/contrib/pg_trgm/trgm_op.c +++ b/contrib/pg_trgm/trgm_op.c @@ -173,18 +173,29 @@ static char * find_word(char *str, int lenstr, char **endword, int *charlen) { char *beginword = str; + const char *endstr = str + lenstr; - while (beginword - str < lenstr && !ISWORDCHR(beginword)) - beginword += pg_mblen(beginword); + while (beginword < endstr) + { + int clen = pg_mblen_range(beginword, endstr); - if (beginword - str >= lenstr) + if (ISWORDCHR(beginword, clen)) + break; + beginword += clen; + } + + if (beginword >= endstr) return NULL; *endword = beginword; *charlen = 0; - while (*endword - str < lenstr && ISWORDCHR(*endword)) + while (*endword < endstr) { - *endword += pg_mblen(*endword); + int clen = pg_mblen_range(*endword, endstr); + + if (!ISWORDCHR(*endword, clen)) + break; + *endword += clen; (*charlen)++; } @@ -232,9 +243,9 @@ make_trigrams(trgm *tptr, char *str, int bytelen, int charlen) if (bytelen > charlen) { /* Find multibyte character boundaries and apply compact_trigram */ - int lenfirst = pg_mblen(str), - lenmiddle = pg_mblen(str + lenfirst), - lenlast = pg_mblen(str + lenfirst + lenmiddle); + int lenfirst = pg_mblen_unbounded(str), + lenmiddle = pg_mblen_unbounded(str + lenfirst), + lenlast = pg_mblen_unbounded(str + lenfirst + lenmiddle); while ((ptr - str) + lenfirst + lenmiddle + lenlast <= bytelen) { @@ -245,7 +256,7 @@ make_trigrams(trgm *tptr, char *str, int bytelen, int charlen) lenfirst = lenmiddle; lenmiddle = lenlast; - lenlast = pg_mblen(ptr + lenfirst + lenmiddle); + lenlast = pg_mblen_unbounded(ptr + lenfirst + lenmiddle); } } else @@ -725,6 +736,7 @@ get_wildcard_part(const char *str, int lenstr, { const char *beginword = str; const char *endword; + const char *endstr = str + lenstr; char *s = buf; bool in_leading_wildcard_meta = false; bool in_trailing_wildcard_meta = false; @@ -737,11 +749,13 @@ get_wildcard_part(const char *str, int lenstr, * from this loop to the next one, since we may exit at a word character * that is in_escape. */ - while (beginword - str < lenstr) + while (beginword < endstr) { + clen = pg_mblen_range(beginword, endstr); + if (in_escape) { - if (ISWORDCHR(beginword)) + if (ISWORDCHR(beginword, clen)) break; in_escape = false; in_leading_wildcard_meta = false; @@ -752,12 +766,12 @@ get_wildcard_part(const char *str, int lenstr, in_escape = true; else if (ISWILDCARDCHAR(beginword)) in_leading_wildcard_meta = true; - else if (ISWORDCHR(beginword)) + else if (ISWORDCHR(beginword, clen)) break; else in_leading_wildcard_meta = false; } - beginword += pg_mblen(beginword); + beginword += clen; } /* @@ -790,12 +804,12 @@ get_wildcard_part(const char *str, int lenstr, * string boundary. Strip escapes during copy. */ endword = beginword; - while (endword - str < lenstr) + while (endword < endstr) { - clen = pg_mblen(endword); + clen = pg_mblen_range(endword, endstr); if (in_escape) { - if (ISWORDCHR(endword)) + if (ISWORDCHR(endword, clen)) { memcpy(s, endword, clen); (*charlen)++; @@ -823,7 +837,7 @@ get_wildcard_part(const char *str, int lenstr, in_trailing_wildcard_meta = true; break; } - else if (ISWORDCHR(endword)) + else if (ISWORDCHR(endword, clen)) { memcpy(s, endword, clen); (*charlen)++; diff --git a/contrib/pg_trgm/trgm_regexp.c b/contrib/pg_trgm/trgm_regexp.c index 3fc8a9ec6f0..f675bd06437 100644 --- a/contrib/pg_trgm/trgm_regexp.c +++ b/contrib/pg_trgm/trgm_regexp.c @@ -480,7 +480,7 @@ static TRGM *createTrgmNFAInternal(regex_t *regex, TrgmPackedGraph **graph, static void RE_compile(regex_t *regex, text *text_re, int cflags, Oid collation); static void getColorInfo(regex_t *regex, TrgmNFA *trgmNFA); -static bool convertPgWchar(pg_wchar c, trgm_mb_char *result); +static int convertPgWchar(pg_wchar c, trgm_mb_char *result); static void transformGraph(TrgmNFA *trgmNFA); static void processState(TrgmNFA *trgmNFA, TrgmState *state); static void addKey(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key); @@ -818,10 +818,11 @@ getColorInfo(regex_t *regex, TrgmNFA *trgmNFA) for (j = 0; j < charsCount; j++) { trgm_mb_char c; + int clen = convertPgWchar(chars[j], &c); - if (!convertPgWchar(chars[j], &c)) + if (!clen) continue; /* ok to ignore it altogether */ - if (ISWORDCHR(c.bytes)) + if (ISWORDCHR(c.bytes, clen)) colorInfo->wordChars[colorInfo->wordCharsCount++] = c; else colorInfo->containsNonWord = true; @@ -833,13 +834,15 @@ getColorInfo(regex_t *regex, TrgmNFA *trgmNFA) /* * Convert pg_wchar to multibyte format. - * Returns false if the character should be ignored completely. + * Returns 0 if the character should be ignored completely, else returns its + * byte length. */ -static bool +static int convertPgWchar(pg_wchar c, trgm_mb_char *result) { /* "s" has enough space for a multibyte character and a trailing NUL */ char s[MAX_MULTIBYTE_CHAR_LEN + 1]; + int clen; /* * We can ignore the NUL character, since it can never appear in a PG text @@ -847,11 +850,11 @@ convertPgWchar(pg_wchar c, trgm_mb_char *result) * reconstructing trigrams. */ if (c == 0) - return false; + return 0; /* Do the conversion, making sure the result is NUL-terminated */ memset(s, 0, sizeof(s)); - pg_wchar2mb_with_len(&c, s, 1); + clen = pg_wchar2mb_with_len(&c, s, 1); /* * In IGNORECASE mode, we can ignore uppercase characters. We assume that @@ -873,7 +876,7 @@ convertPgWchar(pg_wchar c, trgm_mb_char *result) if (strcmp(lowerCased, s) != 0) { pfree(lowerCased); - return false; + return 0; } pfree(lowerCased); } @@ -881,7 +884,7 @@ convertPgWchar(pg_wchar c, trgm_mb_char *result) /* Fill result with exactly MAX_MULTIBYTE_CHAR_LEN bytes */ memcpy(result->bytes, s, MAX_MULTIBYTE_CHAR_LEN); - return true; + return clen; } diff --git a/contrib/unaccent/unaccent.c b/contrib/unaccent/unaccent.c index 77ecd765282..de20ac1ae8b 100644 --- a/contrib/unaccent/unaccent.c +++ b/contrib/unaccent/unaccent.c @@ -149,9 +149,9 @@ initTrie(const char *filename) state = 0; for (ptr = line; *ptr; ptr += ptrlen) { - ptrlen = pg_mblen(ptr); + ptrlen = pg_mblen_cstr(ptr); /* ignore whitespace, but end src or trg */ - if (t_isspace(ptr)) + if (t_isspace_cstr(ptr)) { if (state == 1) state = 2; @@ -315,6 +315,7 @@ unaccent_lexize(PG_FUNCTION_ARGS) char *srcchar = (char *) PG_GETARG_POINTER(1); int32 len = PG_GETARG_INT32(2); char *srcstart = srcchar; + const char *srcend = srcstart + len; TSLexeme *res; StringInfoData buf; @@ -342,7 +343,7 @@ unaccent_lexize(PG_FUNCTION_ARGS) } else { - matchlen = pg_mblen(srcchar); + matchlen = pg_mblen_range(srcchar, srcend); if (buf.data != NULL) appendBinaryStringInfo(&buf, srcchar, matchlen); } diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index 5fd8a385a57..1acd28f7b8b 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -1175,7 +1175,7 @@ match_prosrc_to_literal(const char *prosrc, const char *literal, if (cursorpos > 0) newcp++; } - chlen = pg_mblen(prosrc); + chlen = pg_mblen_cstr(prosrc); if (strncmp(prosrc, literal, chlen) != 0) goto fail; prosrc += chlen; diff --git a/src/backend/tsearch/dict_synonym.c b/src/backend/tsearch/dict_synonym.c index 65e34e91c97..b7a8109143b 100644 --- a/src/backend/tsearch/dict_synonym.c +++ b/src/backend/tsearch/dict_synonym.c @@ -47,8 +47,8 @@ findwrd(char *in, char **end, uint16 *flags) char *lastchar; /* Skip leading spaces */ - while (*in && t_isspace(in)) - in += pg_mblen(in); + while (*in && t_isspace_cstr(in)) + in += pg_mblen_cstr(in); /* Return NULL on empty lines */ if (*in == '\0') @@ -60,10 +60,10 @@ findwrd(char *in, char **end, uint16 *flags) lastchar = start = in; /* Find end of word */ - while (*in && !t_isspace(in)) + while (*in && !t_isspace_cstr(in)) { lastchar = in; - in += pg_mblen(in); + in += pg_mblen_cstr(in); } if (in - lastchar == 1 && t_iseq(lastchar, '*') && flags) diff --git a/src/backend/tsearch/dict_thesaurus.c b/src/backend/tsearch/dict_thesaurus.c index b8c08bcf7ba..cc6b3829c90 100644 --- a/src/backend/tsearch/dict_thesaurus.c +++ b/src/backend/tsearch/dict_thesaurus.c @@ -190,8 +190,8 @@ thesaurusRead(const char *filename, DictThesaurus *d) ptr = line; /* is it a comment? */ - while (*ptr && t_isspace(ptr)) - ptr += pg_mblen(ptr); + while (*ptr && t_isspace_cstr(ptr)) + ptr += pg_mblen_cstr(ptr); if (t_iseq(ptr, '#') || *ptr == '\0' || t_iseq(ptr, '\n') || t_iseq(ptr, '\r')) @@ -212,7 +212,7 @@ thesaurusRead(const char *filename, DictThesaurus *d) errmsg("unexpected delimiter"))); state = TR_WAITSUBS; } - else if (!t_isspace(ptr)) + else if (!t_isspace_cstr(ptr)) { beginwrd = ptr; state = TR_INLEX; @@ -225,7 +225,7 @@ thesaurusRead(const char *filename, DictThesaurus *d) newLexeme(d, beginwrd, ptr, idsubst, posinsubst++); state = TR_WAITSUBS; } - else if (t_isspace(ptr)) + else if (t_isspace_cstr(ptr)) { newLexeme(d, beginwrd, ptr, idsubst, posinsubst++); state = TR_WAITLEX; @@ -237,15 +237,15 @@ thesaurusRead(const char *filename, DictThesaurus *d) { useasis = true; state = TR_INSUBS; - beginwrd = ptr + pg_mblen(ptr); + beginwrd = ptr + pg_mblen_cstr(ptr); } else if (t_iseq(ptr, '\\')) { useasis = false; state = TR_INSUBS; - beginwrd = ptr + pg_mblen(ptr); + beginwrd = ptr + pg_mblen_cstr(ptr); } - else if (!t_isspace(ptr)) + else if (!t_isspace_cstr(ptr)) { useasis = false; beginwrd = ptr; @@ -254,7 +254,7 @@ thesaurusRead(const char *filename, DictThesaurus *d) } else if (state == TR_INSUBS) { - if (t_isspace(ptr)) + if (t_isspace_cstr(ptr)) { if (ptr == beginwrd) ereport(ERROR, @@ -267,7 +267,7 @@ thesaurusRead(const char *filename, DictThesaurus *d) else elog(ERROR, "unrecognized thesaurus state: %d", state); - ptr += pg_mblen(ptr); + ptr += pg_mblen_cstr(ptr); } if (state == TR_INSUBS) diff --git a/src/backend/tsearch/regis.c b/src/backend/tsearch/regis.c index 43cab72f472..1db03ab0b82 100644 --- a/src/backend/tsearch/regis.c +++ b/src/backend/tsearch/regis.c @@ -37,7 +37,7 @@ RS_isRegis(const char *str) { if (state == RS_IN_WAIT) { - if (t_isalpha(c)) + if (t_isalpha_cstr(c)) /* okay */ ; else if (t_iseq(c, '[')) state = RS_IN_ONEOF; @@ -48,14 +48,14 @@ RS_isRegis(const char *str) { if (t_iseq(c, '^')) state = RS_IN_NONEOF; - else if (t_isalpha(c)) + else if (t_isalpha_cstr(c)) state = RS_IN_ONEOF_IN; else return false; } else if (state == RS_IN_ONEOF_IN || state == RS_IN_NONEOF) { - if (t_isalpha(c)) + if (t_isalpha_cstr(c)) /* okay */ ; else if (t_iseq(c, ']')) state = RS_IN_WAIT; @@ -64,7 +64,7 @@ RS_isRegis(const char *str) } else elog(ERROR, "internal error in RS_isRegis: state %d", state); - c += pg_mblen(c); + c += pg_mblen_cstr(c); } return (state == RS_IN_WAIT); @@ -96,15 +96,14 @@ RS_compile(Regis *r, bool issuffix, const char *str) { if (state == RS_IN_WAIT) { - if (t_isalpha(c)) + if (t_isalpha_cstr(c)) { if (ptr) ptr = newRegisNode(ptr, len); else ptr = r->node = newRegisNode(NULL, len); - COPYCHAR(ptr->data, c); ptr->type = RSF_ONEOF; - ptr->len = pg_mblen(c); + ptr->len = ts_copychar_cstr(ptr->data, c); } else if (t_iseq(c, '[')) { @@ -125,10 +124,9 @@ RS_compile(Regis *r, bool issuffix, const char *str) ptr->type = RSF_NONEOF; state = RS_IN_NONEOF; } - else if (t_isalpha(c)) + else if (t_isalpha_cstr(c)) { - COPYCHAR(ptr->data, c); - ptr->len = pg_mblen(c); + ptr->len = ts_copychar_cstr(ptr->data, c); state = RS_IN_ONEOF_IN; } else /* shouldn't get here */ @@ -136,11 +134,8 @@ RS_compile(Regis *r, bool issuffix, const char *str) } else if (state == RS_IN_ONEOF_IN || state == RS_IN_NONEOF) { - if (t_isalpha(c)) - { - COPYCHAR(ptr->data + ptr->len, c); - ptr->len += pg_mblen(c); - } + if (t_isalpha_cstr(c)) + ptr->len += ts_copychar_cstr(ptr->data + ptr->len, c); else if (t_iseq(c, ']')) state = RS_IN_WAIT; else /* shouldn't get here */ @@ -148,7 +143,7 @@ RS_compile(Regis *r, bool issuffix, const char *str) } else elog(ERROR, "internal error in RS_compile: state %d", state); - c += pg_mblen(c); + c += pg_mblen_cstr(c); } if (state != RS_IN_WAIT) /* shouldn't get here */ @@ -187,10 +182,10 @@ mb_strchr(char *str, char *c) char *ptr = str; bool res = false; - clen = pg_mblen(c); + clen = pg_mblen_cstr(c); while (*ptr && !res) { - plen = pg_mblen(ptr); + plen = pg_mblen_cstr(ptr); if (plen == clen) { i = plen; @@ -219,7 +214,7 @@ RS_execute(Regis *r, char *str) while (*c) { len++; - c += pg_mblen(c); + c += pg_mblen_cstr(c); } if (len < r->nchar) @@ -230,7 +225,7 @@ RS_execute(Regis *r, char *str) { len -= r->nchar; while (len-- > 0) - c += pg_mblen(c); + c += pg_mblen_cstr(c); } @@ -250,7 +245,7 @@ RS_execute(Regis *r, char *str) elog(ERROR, "unrecognized regis node type: %d", ptr->type); } ptr = ptr->next; - c += pg_mblen(c); + c += pg_mblen_cstr(c); } return true; diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c index c20247cf2ae..047bae6fe6c 100644 --- a/src/backend/tsearch/spell.c +++ b/src/backend/tsearch/spell.c @@ -232,7 +232,7 @@ findchar(char *str, int c) { if (t_iseq(str, c)) return str; - str += pg_mblen(str); + str += pg_mblen_cstr(str); } return NULL; @@ -245,7 +245,7 @@ findchar2(char *str, int c1, int c2) { if (t_iseq(str, c1) || t_iseq(str, c2)) return str; - str += pg_mblen(str); + str += pg_mblen_cstr(str); } return NULL; @@ -352,6 +352,7 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag) char *next, *sbuf = *sflagset; int maxstep; + int clen; bool stop = false; bool met_comma = false; @@ -363,11 +364,11 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag) { case FM_LONG: case FM_CHAR: - COPYCHAR(sflag, *sflagset); - sflag += pg_mblen(*sflagset); + clen = ts_copychar_cstr(sflag, *sflagset); + sflag += clen; /* Go to start of the next flag */ - *sflagset += pg_mblen(*sflagset); + *sflagset += clen; /* Check if we get all characters of flag */ maxstep--; @@ -391,7 +392,7 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag) *sflagset = next; while (**sflagset) { - if (t_isdigit(*sflagset)) + if (t_isdigit_cstr(*sflagset)) { if (!met_comma) ereport(ERROR, @@ -409,7 +410,7 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag) *sflagset))); met_comma = true; } - else if (!t_isspace(*sflagset)) + else if (!t_isspace_cstr(*sflagset)) { ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), @@ -417,7 +418,7 @@ getNextFlagFromString(IspellDict *Conf, char **sflagset, char *sflag) *sflagset))); } - *sflagset += pg_mblen(*sflagset); + *sflagset += pg_mblen_cstr(*sflagset); } stop = true; break; @@ -543,7 +544,7 @@ NIImportDictionary(IspellDict *Conf, const char *filename) while (*s) { /* we allow only single encoded flags for faster works */ - if (pg_mblen(s) == 1 && t_isprint(s) && !t_isspace(s)) + if (pg_mblen_cstr(s) == 1 && t_isprint_unbounded(s) && !t_isspace_unbounded(s)) s++; else { @@ -559,12 +560,12 @@ NIImportDictionary(IspellDict *Conf, const char *filename) s = line; while (*s) { - if (t_isspace(s)) + if (t_isspace_cstr(s)) { *s = '\0'; break; } - s += pg_mblen(s); + s += pg_mblen_cstr(s); } pstr = lowerstr_ctx(Conf, line); @@ -816,17 +817,17 @@ get_nextfield(char **str, char *next) while (**str) { + int clen = pg_mblen_cstr(*str); + if (state == PAE_WAIT_MASK) { if (t_iseq(*str, '#')) return false; - else if (!t_isspace(*str)) + else if (!t_isspace_cstr(*str)) { - int clen = pg_mblen(*str); - if (clen < avail) { - COPYCHAR(next, *str); + ts_copychar_with_len(next, *str, clen); next += clen; avail -= clen; } @@ -835,24 +836,22 @@ get_nextfield(char **str, char *next) } else /* state == PAE_INMASK */ { - if (t_isspace(*str)) + if (t_isspace_cstr(*str)) { *next = '\0'; return true; } else { - int clen = pg_mblen(*str); - if (clen < avail) { - COPYCHAR(next, *str); + ts_copychar_with_len(next, *str, clen); next += clen; avail -= clen; } } } - *str += pg_mblen(*str); + *str += clen; } *next = '\0'; @@ -942,14 +941,15 @@ parse_affentry(char *str, char *mask, char *find, char *repl) while (*str) { + int clen = pg_mblen_cstr(str); + if (state == PAE_WAIT_MASK) { if (t_iseq(str, '#')) return false; - else if (!t_isspace(str)) + else if (!t_isspace_cstr(str)) { - COPYCHAR(pmask, str); - pmask += pg_mblen(str); + pmask += ts_copychar_with_len(pmask, str, clen); state = PAE_INMASK; } } @@ -960,10 +960,9 @@ parse_affentry(char *str, char *mask, char *find, char *repl) *pmask = '\0'; state = PAE_WAIT_FIND; } - else if (!t_isspace(str)) + else if (!t_isspace_cstr(str)) { - COPYCHAR(pmask, str); - pmask += pg_mblen(str); + pmask += ts_copychar_with_len(pmask, str, clen); } } else if (state == PAE_WAIT_FIND) @@ -972,13 +971,12 @@ parse_affentry(char *str, char *mask, char *find, char *repl) { state = PAE_INFIND; } - else if (t_isalpha(str) || t_iseq(str, '\'') /* english 's */ ) + else if (t_isalpha_cstr(str) || t_iseq(str, '\'') /* english 's */ ) { - COPYCHAR(prepl, str); - prepl += pg_mblen(str); + prepl += ts_copychar_with_len(prepl, str, clen); state = PAE_INREPL; } - else if (!t_isspace(str)) + else if (!t_isspace_cstr(str)) ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("syntax error"))); @@ -990,12 +988,11 @@ parse_affentry(char *str, char *mask, char *find, char *repl) *pfind = '\0'; state = PAE_WAIT_REPL; } - else if (t_isalpha(str)) + else if (t_isalpha_cstr(str)) { - COPYCHAR(pfind, str); - pfind += pg_mblen(str); + pfind += ts_copychar_with_len(pfind, str, clen); } - else if (!t_isspace(str)) + else if (!t_isspace_cstr(str)) ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("syntax error"))); @@ -1006,13 +1003,12 @@ parse_affentry(char *str, char *mask, char *find, char *repl) { break; /* void repl */ } - else if (t_isalpha(str)) + else if (t_isalpha_cstr(str)) { - COPYCHAR(prepl, str); - prepl += pg_mblen(str); + prepl += ts_copychar_with_len(prepl, str, clen); state = PAE_INREPL; } - else if (!t_isspace(str)) + else if (!t_isspace_cstr(str)) ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("syntax error"))); @@ -1024,12 +1020,11 @@ parse_affentry(char *str, char *mask, char *find, char *repl) *prepl = '\0'; break; } - else if (t_isalpha(str)) + else if (t_isalpha_cstr(str)) { - COPYCHAR(prepl, str); - prepl += pg_mblen(str); + prepl += ts_copychar_with_len(prepl, str, clen); } - else if (!t_isspace(str)) + else if (!t_isspace_cstr(str)) ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("syntax error"))); @@ -1037,7 +1032,7 @@ parse_affentry(char *str, char *mask, char *find, char *repl) else elog(ERROR, "unrecognized state in parse_affentry: %d", state); - str += pg_mblen(str); + str += clen; } *pmask = *pfind = *prepl = '\0'; @@ -1090,10 +1085,9 @@ addCompoundAffixFlagValue(IspellDict *Conf, char *s, uint32 val) CompoundAffixFlag *newValue; char sbuf[BUFSIZ]; char *sflag; - int clen; - while (*s && t_isspace(s)) - s += pg_mblen(s); + while (*s && t_isspace_cstr(s)) + s += pg_mblen_cstr(s); if (!*s) ereport(ERROR, @@ -1102,10 +1096,10 @@ addCompoundAffixFlagValue(IspellDict *Conf, char *s, uint32 val) /* Get flag without \n */ sflag = sbuf; - while (*s && !t_isspace(s) && *s != '\n') + while (*s && !t_isspace_cstr(s) && *s != '\n') { - clen = pg_mblen(s); - COPYCHAR(sflag, s); + int clen = ts_copychar_cstr(sflag, s); + sflag += clen; s += clen; } @@ -1248,7 +1242,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) while ((recoded = tsearch_readline(&trst)) != NULL) { - if (*recoded == '\0' || t_isspace(recoded) || t_iseq(recoded, '#')) + if (*recoded == '\0' || t_isspace_cstr(recoded) || t_iseq(recoded, '#')) { pfree(recoded); continue; @@ -1285,8 +1279,8 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) { char *s = recoded + strlen("FLAG"); - while (*s && t_isspace(s)) - s += pg_mblen(s); + while (*s && t_isspace_cstr(s)) + s += pg_mblen_cstr(s); if (*s) { @@ -1321,7 +1315,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) { int fields_read; - if (*recoded == '\0' || t_isspace(recoded) || t_iseq(recoded, '#')) + if (*recoded == '\0' || t_isspace_cstr(recoded) || t_iseq(recoded, '#')) goto nextline; fields_read = parse_ooaffentry(recoded, type, sflag, find, repl, mask); @@ -1484,12 +1478,12 @@ NIImportAffixes(IspellDict *Conf, const char *filename) s = findchar2(recoded, 'l', 'L'); if (s) { - while (*s && !t_isspace(s)) - s += pg_mblen(s); - while (*s && t_isspace(s)) - s += pg_mblen(s); + while (*s && !t_isspace_cstr(s)) + s += pg_mblen_cstr(s); + while (*s && t_isspace_cstr(s)) + s += pg_mblen_cstr(s); - if (*s && pg_mblen(s) == 1) + if (*s && pg_mblen_cstr(s) == 1) { addCompoundAffixFlagValue(Conf, s, FF_COMPOUNDFLAG); Conf->usecompound = true; @@ -1517,8 +1511,8 @@ NIImportAffixes(IspellDict *Conf, const char *filename) s = recoded + 4; /* we need non-lowercased string */ flagflags = 0; - while (*s && t_isspace(s)) - s += pg_mblen(s); + while (*s && t_isspace_cstr(s)) + s += pg_mblen_cstr(s); if (*s == '*') { @@ -1539,14 +1533,13 @@ NIImportAffixes(IspellDict *Conf, const char *filename) * be followed by EOL, whitespace, or ':'. Otherwise this is a * new-format flag command. */ - if (*s && pg_mblen(s) == 1) + if (*s && pg_mblen_cstr(s) == 1) { - COPYCHAR(flag, s); + flag[0] = *s++; flag[1] = '\0'; - s++; if (*s == '\0' || *s == '#' || *s == '\n' || *s == ':' || - t_isspace(s)) + t_isspace_cstr(s)) { oldformat = true; goto nextline; @@ -1770,7 +1763,7 @@ NISortDictionary(IspellDict *Conf) (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("invalid affix alias \"%s\"", Conf->Spell[i]->p.flag))); - if (*end != '\0' && !t_isdigit(end) && !t_isspace(end)) + if (*end != '\0' && !t_isdigit_cstr(end) && !t_isspace_cstr(end)) ereport(ERROR, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("invalid affix alias \"%s\"", diff --git a/src/backend/tsearch/ts_locale.c b/src/backend/tsearch/ts_locale.c index 3a475a0f5fc..96e35e04c51 100644 --- a/src/backend/tsearch/ts_locale.c +++ b/src/backend/tsearch/ts_locale.c @@ -33,66 +33,43 @@ static void tsearch_readline_callback(void *arg); */ #define WC_BUF_LEN 3 -int -t_isdigit(const char *ptr) -{ - int clen = pg_mblen(ptr); - wchar_t character[WC_BUF_LEN]; - pg_locale_t mylocale = 0; /* TODO */ - - if (clen == 1 || database_ctype_is_c) - return isdigit(TOUCHAR(ptr)); - - char2wchar(character, WC_BUF_LEN, ptr, clen, mylocale); - - return iswdigit((wint_t) character[0]); -} - -int -t_isspace(const char *ptr) -{ - int clen = pg_mblen(ptr); - wchar_t character[WC_BUF_LEN]; - pg_locale_t mylocale = 0; /* TODO */ - - if (clen == 1 || database_ctype_is_c) - return isspace(TOUCHAR(ptr)); - - char2wchar(character, WC_BUF_LEN, ptr, clen, mylocale); - - return iswspace((wint_t) character[0]); -} - -int -t_isalpha(const char *ptr) -{ - int clen = pg_mblen(ptr); - wchar_t character[WC_BUF_LEN]; - pg_locale_t mylocale = 0; /* TODO */ - - if (clen == 1 || database_ctype_is_c) - return isalpha(TOUCHAR(ptr)); - - char2wchar(character, WC_BUF_LEN, ptr, clen, mylocale); - - return iswalpha((wint_t) character[0]); -} - -int -t_isprint(const char *ptr) -{ - int clen = pg_mblen(ptr); - wchar_t character[WC_BUF_LEN]; - pg_locale_t mylocale = 0; /* TODO */ - - if (clen == 1 || database_ctype_is_c) - return isprint(TOUCHAR(ptr)); - - char2wchar(character, WC_BUF_LEN, ptr, clen, mylocale); - - return iswprint((wint_t) character[0]); +#define GENERATE_T_ISCLASS_DEF(character_class) \ +/* mblen shall be that of the first character */ \ +int \ +t_is##character_class##_with_len(const char *ptr, int mblen) \ +{ \ + int clen = pg_mblen_with_len(ptr, mblen); \ + wchar_t character[WC_BUF_LEN]; \ + pg_locale_t mylocale = 0; /* TODO */ \ + if (clen == 1 || database_ctype_is_c) \ + return is##character_class(TOUCHAR(ptr)); \ + char2wchar(character, WC_BUF_LEN, ptr, clen, mylocale); \ + return isw##character_class((wint_t) character[0]); \ +} \ +\ +/* ptr shall point to a NUL-terminated string */ \ +int \ +t_is##character_class##_cstr(const char *ptr) \ +{ \ + return t_is##character_class##_with_len(ptr, pg_mblen_cstr(ptr)); \ +} \ +/* ptr shall point to a string with pre-validated encoding */ \ +int \ +t_is##character_class##_unbounded(const char *ptr) \ +{ \ + return t_is##character_class##_with_len(ptr, pg_mblen_unbounded(ptr)); \ +} \ +/* historical name for _unbounded */ \ +int \ +t_is##character_class(const char *ptr) \ +{ \ + return t_is##character_class##_unbounded(ptr); \ } +GENERATE_T_ISCLASS_DEF(alpha) +GENERATE_T_ISCLASS_DEF(digit) +GENERATE_T_ISCLASS_DEF(print) +GENERATE_T_ISCLASS_DEF(space) /* * Set up to read a file using tsearch_readline(). This facility is diff --git a/src/backend/tsearch/ts_utils.c b/src/backend/tsearch/ts_utils.c index 7743bdfd592..9685e54eb2b 100644 --- a/src/backend/tsearch/ts_utils.c +++ b/src/backend/tsearch/ts_utils.c @@ -88,8 +88,8 @@ readstoplist(const char *fname, StopList *s, char *(*wordop) (const char *)) char *pbuf = line; /* Trim trailing space */ - while (*pbuf && !t_isspace(pbuf)) - pbuf += pg_mblen(pbuf); + while (*pbuf && !t_isspace_cstr(pbuf)) + pbuf += pg_mblen_cstr(pbuf); *pbuf = '\0'; /* Skip empty lines */ diff --git a/src/backend/tsearch/wparser_def.c b/src/backend/tsearch/wparser_def.c index 916db5a4746..10bd6506719 100644 --- a/src/backend/tsearch/wparser_def.c +++ b/src/backend/tsearch/wparser_def.c @@ -1727,7 +1727,8 @@ TParserGet(TParser *prs) prs->state->charlen = 0; else prs->state->charlen = (prs->charmaxlen == 1) ? prs->charmaxlen : - pg_mblen(prs->str + prs->state->posbyte); + pg_mblen_range(prs->str + prs->state->posbyte, + prs->str + prs->lenstr); Assert(prs->state->posbyte + prs->state->charlen <= prs->lenstr); Assert(prs->state->state >= TPS_Base && prs->state->state < TPS_Null); diff --git a/src/backend/utils/adt/encode.c b/src/backend/utils/adt/encode.c index feb3e830e4f..10a7ad89a9e 100644 --- a/src/backend/utils/adt/encode.c +++ b/src/backend/utils/adt/encode.c @@ -172,7 +172,7 @@ hex_encode(const char *src, size_t len, char *dst) } static inline char -get_hex(const char *cp) +get_hex(const char *cp, const char *end) { unsigned char c = (unsigned char) *cp; int res = -1; @@ -184,7 +184,7 @@ get_hex(const char *cp) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid hexadecimal digit: \"%.*s\"", - pg_mblen(cp), cp))); + pg_mblen_range(cp, end), cp))); return (char) res; } @@ -208,14 +208,14 @@ hex_decode(const char *src, size_t len, char *dst) s++; continue; } - v1 = get_hex(s) << 4; + v1 = get_hex(s, srcend) << 4; s++; if (s >= srcend) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid hexadecimal data: odd number of digits"))); - v2 = get_hex(s); + v2 = get_hex(s, srcend); s++; *p++ = v1 | v2; } @@ -344,7 +344,7 @@ pg_base64_decode(const char *src, size_t len, char *dst) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid symbol \"%.*s\" found while decoding base64 sequence", - pg_mblen(s - 1), s - 1))); + pg_mblen_range(s - 1, srcend), s - 1))); } /* add it to buffer */ buf = (buf << 6) + b; diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index e301cf70f16..06bd8ca67c7 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -1427,7 +1427,7 @@ parse_format(FormatNode *node, const char *str, const KeyWord *kw, ereport(ERROR, (errcode(ERRCODE_INVALID_DATETIME_FORMAT), errmsg("invalid datetime format separator: \"%s\"", - pnstrdup(str, pg_mblen(str))))); + pnstrdup(str, pg_mblen_cstr(str))))); if (*str == ' ') n->type = NODE_TYPE_SPACE; @@ -1457,7 +1457,7 @@ parse_format(FormatNode *node, const char *str, const KeyWord *kw, /* backslash quotes the next character, if any */ if (*str == '\\' && *(str + 1)) str++; - chlen = pg_mblen(str); + chlen = pg_mblen_cstr(str); n->type = NODE_TYPE_CHAR; memcpy(n->character, str, chlen); n->character[chlen] = '\0'; @@ -1475,7 +1475,7 @@ parse_format(FormatNode *node, const char *str, const KeyWord *kw, */ if (*str == '\\' && *(str + 1) == '"') str++; - chlen = pg_mblen(str); + chlen = pg_mblen_cstr(str); if ((flags & DCH_FLAG) && is_separator_char(str)) n->type = NODE_TYPE_SEPARATOR; @@ -2180,8 +2180,8 @@ asc_toupper_z(const char *buff) do { \ if (S_THth(_suf)) \ { \ - if (*(ptr)) (ptr) += pg_mblen(ptr); \ - if (*(ptr)) (ptr) += pg_mblen(ptr); \ + if (*(ptr)) (ptr) += pg_mblen_cstr(ptr); \ + if (*(ptr)) (ptr) += pg_mblen_cstr(ptr); \ } \ } while (0) @@ -3396,7 +3396,7 @@ DCH_from_char(FormatNode *node, const char *in, TmFromChar *out, * insist that the consumed character match the format's * character. */ - s += pg_mblen(s); + s += pg_mblen_cstr(s); } continue; } @@ -3418,11 +3418,11 @@ DCH_from_char(FormatNode *node, const char *in, TmFromChar *out, if (extra_skip > 0) extra_skip--; else - s += pg_mblen(s); + s += pg_mblen_cstr(s); } else { - int chlen = pg_mblen(s); + int chlen = pg_mblen_cstr(s); /* * Standard mode requires strict match of format characters. @@ -5610,13 +5610,15 @@ NUM_numpart_to_char(NUMProc *Np, int id) static void NUM_eat_non_data_chars(NUMProc *Np, int n, int input_len) { + const char *end = Np->inout + input_len; + while (n-- > 0) { if (OVERLOAD_TEST) break; /* end of input */ if (strchr("0123456789.,+-", *Np->inout_p) != NULL) break; /* it's a data character */ - Np->inout_p += pg_mblen(Np->inout_p); + Np->inout_p += pg_mblen_range(Np->inout_p, end); } } @@ -6073,7 +6075,7 @@ NUM_processor(FormatNode *node, NUMDesc *Num, char *inout, } else { - Np->inout_p += pg_mblen(Np->inout_p); + Np->inout_p += pg_mblen_range(Np->inout_p, Np->inout + input_len); } continue; } diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c index d4736250bb6..6649e7b7feb 100644 --- a/src/backend/utils/adt/jsonfuncs.c +++ b/src/backend/utils/adt/jsonfuncs.c @@ -663,7 +663,7 @@ report_json_context(JsonLexContext *lex) { /* Advance to next multibyte character */ if (IS_HIGHBIT_SET(*context_start)) - context_start += pg_mblen(context_start); + context_start += pg_mblen_range(context_start, context_end); else context_start++; } diff --git a/src/backend/utils/adt/jsonpath_gram.y b/src/backend/utils/adt/jsonpath_gram.y index 91e4308d655..b79165fc608 100644 --- a/src/backend/utils/adt/jsonpath_gram.y +++ b/src/backend/utils/adt/jsonpath_gram.y @@ -528,7 +528,8 @@ makeItemLikeRegex(JsonPathParseItem *expr, JsonPathString *pattern, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("invalid input syntax for type %s", "jsonpath"), errdetail("Unrecognized flag character \"%.*s\" in LIKE_REGEX predicate.", - pg_mblen(flags->val + i), flags->val + i))); + pg_mblen_range(flags->val + i, flags->val + flags->len), + flags->val + i))); break; } } diff --git a/src/backend/utils/adt/levenshtein.c b/src/backend/utils/adt/levenshtein.c index 3026cc24311..c6445cdcbf7 100644 --- a/src/backend/utils/adt/levenshtein.c +++ b/src/backend/utils/adt/levenshtein.c @@ -84,6 +84,8 @@ varstr_levenshtein(const char *source, int slen, int i, j; const char *y; + const char *send = source + slen; + const char *tend = target + tlen; /* * For varstr_levenshtein_less_equal, we have real variables called @@ -184,10 +186,10 @@ varstr_levenshtein(const char *source, int slen, #endif /* - * In order to avoid calling pg_mblen() repeatedly on each character in s, - * we cache all the lengths before starting the main loop -- but if all - * the characters in both strings are single byte, then we skip this and - * use a fast-path in the main loop. If only one string contains + * In order to avoid calling pg_mblen_range() repeatedly on each character + * in s, we cache all the lengths before starting the main loop -- but if + * all the characters in both strings are single byte, then we skip this + * and use a fast-path in the main loop. If only one string contains * multi-byte characters, we still build the array, so that the fast-path * needn't deal with the case where the array hasn't been initialized. */ @@ -199,7 +201,7 @@ varstr_levenshtein(const char *source, int slen, s_char_len = (int *) palloc((m + 1) * sizeof(int)); for (i = 0; i < m; ++i) { - s_char_len[i] = pg_mblen(cp); + s_char_len[i] = pg_mblen_range(cp, send); cp += s_char_len[i]; } s_char_len[i] = 0; @@ -225,7 +227,7 @@ varstr_levenshtein(const char *source, int slen, { int *temp; const char *x = source; - int y_char_len = n != tlen + 1 ? pg_mblen(y) : 1; + int y_char_len = n != tlen + 1 ? pg_mblen_range(y, tend) : 1; #ifdef LEVENSHTEIN_LESS_EQUAL diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c index e02fc3725ad..b37bc0ceb55 100644 --- a/src/backend/utils/adt/like.c +++ b/src/backend/utils/adt/like.c @@ -54,20 +54,20 @@ static int Generic_Text_IC_like(text *str, text *pat, Oid collation); *-------------------- */ static inline int -wchareq(const char *p1, const char *p2) +wchareq(const char *p1, int p1len, const char *p2, int p2len) { - int p1_len; + int p1clen; /* Optimization: quickly compare the first byte. */ if (*p1 != *p2) return 0; - p1_len = pg_mblen(p1); - if (pg_mblen(p2) != p1_len) + p1clen = pg_mblen_with_len(p1, p1len); + if (pg_mblen_with_len(p2, p2len) != p1clen) return 0; /* They are the same length */ - while (p1_len--) + while (p1clen--) { if (*p1++ != *p2++) return 0; @@ -106,11 +106,11 @@ SB_lower_char(unsigned char c, pg_locale_t locale, bool locale_is_c) #define NextByte(p, plen) ((p)++, (plen)--) /* Set up to compile like_match.c for multibyte characters */ -#define CHAREQ(p1, p2) wchareq((p1), (p2)) +#define CHAREQ(p1, p1len, p2, p2len) wchareq((p1), (p1len), (p2), (p2len)) #define NextChar(p, plen) \ - do { int __l = pg_mblen(p); (p) +=__l; (plen) -=__l; } while (0) + do { int __l = pg_mblen_with_len((p), (plen)); (p) +=__l; (plen) -=__l; } while (0) #define CopyAdvChar(dst, src, srclen) \ - do { int __l = pg_mblen(src); \ + do { int __l = pg_mblen_with_len((src), (srclen)); \ (srclen) -= __l; \ while (__l-- > 0) \ *(dst)++ = *(src)++; \ @@ -122,7 +122,7 @@ SB_lower_char(unsigned char c, pg_locale_t locale, bool locale_is_c) #include "like_match.c" /* Set up to compile like_match.c for single-byte characters */ -#define CHAREQ(p1, p2) (*(p1) == *(p2)) +#define CHAREQ(p1, p1len, p2, p2len) (*(p1) == *(p2)) #define NextChar(p, plen) NextByte((p), (plen)) #define CopyAdvChar(dst, src, srclen) (*(dst)++ = *(src)++, (srclen)--) diff --git a/src/backend/utils/adt/like_match.c b/src/backend/utils/adt/like_match.c index e8765609913..e2e8c28ccfb 100644 --- a/src/backend/utils/adt/like_match.c +++ b/src/backend/utils/adt/like_match.c @@ -294,6 +294,7 @@ do_like_escape(text *pat, text *esc) errhint("Escape string must be empty or one character."))); e = VARDATA_ANY(esc); + elen = VARSIZE_ANY_EXHDR(esc); /* * If specified escape is '\', just copy the pattern as-is. @@ -312,7 +313,7 @@ do_like_escape(text *pat, text *esc) afterescape = false; while (plen > 0) { - if (CHAREQ(p, e) && !afterescape) + if (CHAREQ(p, plen, e, elen) && !afterescape) { *r++ = '\\'; NextChar(p, plen); diff --git a/src/backend/utils/adt/oracle_compat.c b/src/backend/utils/adt/oracle_compat.c index 6a5ce1cc102..102500192c0 100644 --- a/src/backend/utils/adt/oracle_compat.c +++ b/src/backend/utils/adt/oracle_compat.c @@ -152,8 +152,8 @@ lpad(PG_FUNCTION_ARGS) char *ptr1, *ptr2, *ptr2start, - *ptr2end, *ptr_ret; + const char *ptr2end; int m, s1len, s2len; @@ -198,7 +198,7 @@ lpad(PG_FUNCTION_ARGS) while (m--) { - int mlen = pg_mblen(ptr2); + int mlen = pg_mblen_range(ptr2, ptr2end); memcpy(ptr_ret, ptr2, mlen); ptr_ret += mlen; @@ -211,7 +211,7 @@ lpad(PG_FUNCTION_ARGS) while (s1len--) { - int mlen = pg_mblen(ptr1); + int mlen = pg_mblen_unbounded(ptr1); memcpy(ptr_ret, ptr1, mlen); ptr_ret += mlen; @@ -250,8 +250,8 @@ rpad(PG_FUNCTION_ARGS) char *ptr1, *ptr2, *ptr2start, - *ptr2end, *ptr_ret; + const char *ptr2end; int m, s1len, s2len; @@ -291,11 +291,12 @@ rpad(PG_FUNCTION_ARGS) m = len - s1len; ptr1 = VARDATA_ANY(string1); + ptr_ret = VARDATA(ret); while (s1len--) { - int mlen = pg_mblen(ptr1); + int mlen = pg_mblen_unbounded(ptr1); memcpy(ptr_ret, ptr1, mlen); ptr_ret += mlen; @@ -307,7 +308,7 @@ rpad(PG_FUNCTION_ARGS) while (m--) { - int mlen = pg_mblen(ptr2); + int mlen = pg_mblen_range(ptr2, ptr2end); memcpy(ptr_ret, ptr2, mlen); ptr_ret += mlen; @@ -392,6 +393,7 @@ dotrim(const char *string, int stringlen, */ const char **stringchars; const char **setchars; + const char *setend; int *stringmblen; int *setmblen; int stringnchars; @@ -399,6 +401,7 @@ dotrim(const char *string, int stringlen, int resultndx; int resultnchars; const char *p; + const char *pend; int len; int mblen; const char *str_pos; @@ -409,10 +412,11 @@ dotrim(const char *string, int stringlen, stringnchars = 0; p = string; len = stringlen; + pend = p + len; while (len > 0) { stringchars[stringnchars] = p; - stringmblen[stringnchars] = mblen = pg_mblen(p); + stringmblen[stringnchars] = mblen = pg_mblen_range(p, pend); stringnchars++; p += mblen; len -= mblen; @@ -423,10 +427,11 @@ dotrim(const char *string, int stringlen, setnchars = 0; p = set; len = setlen; + setend = set + setlen; while (len > 0) { setchars[setnchars] = p; - setmblen[setnchars] = mblen = pg_mblen(p); + setmblen[setnchars] = mblen = pg_mblen_range(p, setend); setnchars++; p += mblen; len -= mblen; @@ -804,6 +809,8 @@ translate(PG_FUNCTION_ARGS) *to_end; char *source, *target; + const char *source_end; + const char *from_end; int m, fromlen, tolen, @@ -818,9 +825,11 @@ translate(PG_FUNCTION_ARGS) if (m <= 0) PG_RETURN_TEXT_P(string); source = VARDATA_ANY(string); + source_end = source + m; fromlen = VARSIZE_ANY_EXHDR(from); from_ptr = VARDATA_ANY(from); + from_end = from_ptr + fromlen; tolen = VARSIZE_ANY_EXHDR(to); to_ptr = VARDATA_ANY(to); to_end = to_ptr + tolen; @@ -844,12 +853,12 @@ translate(PG_FUNCTION_ARGS) while (m > 0) { - source_len = pg_mblen(source); + source_len = pg_mblen_range(source, source_end); from_index = 0; for (i = 0; i < fromlen; i += len) { - len = pg_mblen(&from_ptr[i]); + len = pg_mblen_range(&from_ptr[i], from_end); if (len == source_len && memcmp(source, &from_ptr[i], len) == 0) break; @@ -865,11 +874,11 @@ translate(PG_FUNCTION_ARGS) { if (p >= to_end) break; - p += pg_mblen(p); + p += pg_mblen_range(p, to_end); } if (p < to_end) { - len = pg_mblen(p); + len = pg_mblen_range(p, to_end); memcpy(target, p, len); target += len; retlen += len; diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c index 35aea25ebb8..eeba9b6c15f 100644 --- a/src/backend/utils/adt/regexp.c +++ b/src/backend/utils/adt/regexp.c @@ -429,7 +429,7 @@ parse_re_flags(pg_re_flags *flags, text *opts) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid regular expression option: \"%.*s\"", - pg_mblen(opt_p + i), opt_p + i))); + pg_mblen_range(opt_p + i, opt_p + opt_len), opt_p + i))); break; } } @@ -659,12 +659,13 @@ textregexreplace(PG_FUNCTION_ARGS) if (VARSIZE_ANY_EXHDR(opt) > 0) { char *opt_p = VARDATA_ANY(opt); + const char *end_p = opt_p + VARSIZE_ANY_EXHDR(opt); if (*opt_p >= '0' && *opt_p <= '9') ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid regular expression option: \"%.*s\"", - pg_mblen(opt_p), opt_p), + pg_mblen_range(opt_p, end_p), opt_p), errhint("If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly."))); } @@ -758,6 +759,7 @@ similar_escape_internal(text *pat_text, text *esc_text) *r; int plen, elen; + const char *pend; bool afterescape = false; int nquotes = 0; int bracket_depth = 0; /* square bracket nesting level */ @@ -765,6 +767,7 @@ similar_escape_internal(text *pat_text, text *esc_text) p = VARDATA_ANY(pat_text); plen = VARSIZE_ANY_EXHDR(pat_text); + pend = p + plen; if (esc_text == NULL) { /* No ESCAPE clause provided; default to backslash as escape */ @@ -864,7 +867,7 @@ similar_escape_internal(text *pat_text, text *esc_text) if (elen > 1) { - int mblen = pg_mblen(p); + int mblen = pg_mblen_range(p, pend); if (mblen > 1) { diff --git a/src/backend/utils/adt/tsquery.c b/src/backend/utils/adt/tsquery.c index 1458b12f316..ee86122bf80 100644 --- a/src/backend/utils/adt/tsquery.c +++ b/src/backend/utils/adt/tsquery.c @@ -109,7 +109,7 @@ get_modifiers(char *buf, int16 *weight, bool *prefix) return buf; buf++; - while (*buf && pg_mblen(buf) == 1) + while (*buf && pg_mblen_cstr(buf) == 1) { switch (*buf) { @@ -186,7 +186,7 @@ parse_phrase_operator(TSQueryParserState pstate, int16 *distance) continue; } - if (!t_isdigit(ptr)) + if (!t_isdigit_cstr(ptr)) return false; errno = 0; @@ -248,12 +248,12 @@ parse_or_operator(TSQueryParserState pstate) return false; /* it shouldn't be a part of any word */ - if (t_iseq(ptr, '-') || t_iseq(ptr, '_') || t_isalpha(ptr) || t_isdigit(ptr)) + if (t_iseq(ptr, '-') || t_iseq(ptr, '_') || t_isalpha_cstr(ptr) || t_isdigit_cstr(ptr)) return false; for (;;) { - ptr += pg_mblen(ptr); + ptr += pg_mblen_cstr(ptr); if (*ptr == '\0') /* got end of string without operand */ return false; @@ -263,7 +263,7 @@ parse_or_operator(TSQueryParserState pstate) * So we still treat OR literal as operation with possibly incorrect * operand and will not search it as lexeme */ - if (!t_isspace(ptr)) + if (!t_isspace_cstr(ptr)) break; } @@ -306,7 +306,7 @@ gettoken_query_standard(TSQueryParserState state, int8 *operator, errmsg("syntax error in tsquery: \"%s\"", state->buffer))); } - else if (!t_isspace(state->buf)) + else if (!t_isspace_cstr(state->buf)) { /* * We rely on the tsvector parser to parse the value for @@ -364,14 +364,14 @@ gettoken_query_standard(TSQueryParserState state, int8 *operator, { return (state->count) ? PT_ERR : PT_END; } - else if (!t_isspace(state->buf)) + else if (!t_isspace_cstr(state->buf)) { return PT_ERR; } break; } - state->buf += pg_mblen(state->buf); + state->buf += pg_mblen_cstr(state->buf); } } @@ -425,7 +425,7 @@ gettoken_query_websearch(TSQueryParserState state, int8 *operator, state->state = WAITOPERAND; continue; } - else if (!t_isspace(state->buf)) + else if (!t_isspace_cstr(state->buf)) { /* * We rely on the tsvector parser to parse the value for @@ -468,7 +468,7 @@ gettoken_query_websearch(TSQueryParserState state, int8 *operator, state->buf++; continue; } - else if (!t_isspace(state->buf)) + else if (!t_isspace_cstr(state->buf)) { /* insert implicit AND between operands */ state->state = WAITOPERAND; @@ -478,7 +478,7 @@ gettoken_query_websearch(TSQueryParserState state, int8 *operator, break; } - state->buf += pg_mblen(state->buf); + state->buf += pg_mblen_cstr(state->buf); } } @@ -961,9 +961,8 @@ infix(INFIX *in, int parentPriority, bool rightPhraseOp) *(in->cur) = '\\'; in->cur++; } - COPYCHAR(in->cur, op); - clen = pg_mblen(op); + clen = ts_copychar_cstr(in->cur, op); op += clen; in->cur += clen; } diff --git a/src/backend/utils/adt/tsvector.c b/src/backend/utils/adt/tsvector.c index 4c489d72fe2..1b28911c43d 100644 --- a/src/backend/utils/adt/tsvector.c +++ b/src/backend/utils/adt/tsvector.c @@ -313,9 +313,9 @@ tsvectorout(PG_FUNCTION_ARGS) lenbuf = 0, pp; WordEntry *ptr = ARRPTR(out); - char *curbegin, - *curin, + char *curin, *curout; + const char *curend; lenbuf = out->size * 2 /* '' */ + out->size - 1 /* space */ + 2 /* \0 */ ; for (i = 0; i < out->size; i++) @@ -328,13 +328,14 @@ tsvectorout(PG_FUNCTION_ARGS) curout = outbuf = (char *) palloc(lenbuf); for (i = 0; i < out->size; i++) { - curbegin = curin = STRPTR(out) + ptr->pos; + curin = STRPTR(out) + ptr->pos; + curend = curin + ptr->len; if (i != 0) *curout++ = ' '; *curout++ = '\''; - while (curin - curbegin < ptr->len) + while (curin < curend) { - int len = pg_mblen(curin); + int len = pg_mblen_range(curin, curend); if (t_iseq(curin, '\'')) *curout++ = '\''; diff --git a/src/backend/utils/adt/tsvector_op.c b/src/backend/utils/adt/tsvector_op.c index 2ccd3bdbb0e..6343db87f57 100644 --- a/src/backend/utils/adt/tsvector_op.c +++ b/src/backend/utils/adt/tsvector_op.c @@ -2439,11 +2439,15 @@ ts_stat_sql(MemoryContext persistentContext, text *txt, text *ws) if (ws) { char *buf; + const char *end; buf = VARDATA_ANY(ws); - while (buf - VARDATA_ANY(ws) < VARSIZE_ANY_EXHDR(ws)) + end = buf + VARSIZE_ANY_EXHDR(ws); + while (buf < end) { - if (pg_mblen(buf) == 1) + int len = pg_mblen_range(buf, end); + + if (len == 1) { switch (*buf) { @@ -2467,7 +2471,7 @@ ts_stat_sql(MemoryContext persistentContext, text *txt, text *ws) stat->weight |= 0; } } - buf += pg_mblen(buf); + buf += len; } } diff --git a/src/backend/utils/adt/tsvector_parser.c b/src/backend/utils/adt/tsvector_parser.c index e2460d393ab..f7152029b0e 100644 --- a/src/backend/utils/adt/tsvector_parser.c +++ b/src/backend/utils/adt/tsvector_parser.c @@ -185,10 +185,9 @@ gettoken_tsvector(TSVectorParseState state, else if ((state->oprisdelim && ISOPERATOR(state->prsbuf)) || (state->is_web && t_iseq(state->prsbuf, '"'))) PRSSYNTAXERROR; - else if (!t_isspace(state->prsbuf)) + else if (!t_isspace_cstr(state->prsbuf)) { - COPYCHAR(curpos, state->prsbuf); - curpos += pg_mblen(state->prsbuf); + curpos += ts_copychar_cstr(curpos, state->prsbuf); statecode = WAITENDWORD; } } @@ -202,8 +201,7 @@ gettoken_tsvector(TSVectorParseState state, else { RESIZEPRSBUF; - COPYCHAR(curpos, state->prsbuf); - curpos += pg_mblen(state->prsbuf); + curpos += ts_copychar_cstr(curpos, state->prsbuf); Assert(oldstate != 0); statecode = oldstate; } @@ -215,7 +213,7 @@ gettoken_tsvector(TSVectorParseState state, statecode = WAITNEXTCHAR; oldstate = WAITENDWORD; } - else if (t_isspace(state->prsbuf) || *(state->prsbuf) == '\0' || + else if (t_isspace_cstr(state->prsbuf) || *(state->prsbuf) == '\0' || (state->oprisdelim && ISOPERATOR(state->prsbuf)) || (state->is_web && t_iseq(state->prsbuf, '"'))) { @@ -238,8 +236,7 @@ gettoken_tsvector(TSVectorParseState state, else { RESIZEPRSBUF; - COPYCHAR(curpos, state->prsbuf); - curpos += pg_mblen(state->prsbuf); + curpos += ts_copychar_cstr(curpos, state->prsbuf); } } else if (statecode == WAITENDCMPLX) @@ -258,8 +255,7 @@ gettoken_tsvector(TSVectorParseState state, else { RESIZEPRSBUF; - COPYCHAR(curpos, state->prsbuf); - curpos += pg_mblen(state->prsbuf); + curpos += ts_copychar_cstr(curpos, state->prsbuf); } } else if (statecode == WAITCHARCMPLX) @@ -267,8 +263,7 @@ gettoken_tsvector(TSVectorParseState state, if (!state->is_web && t_iseq(state->prsbuf, '\'')) { RESIZEPRSBUF; - COPYCHAR(curpos, state->prsbuf); - curpos += pg_mblen(state->prsbuf); + curpos += ts_copychar_cstr(curpos, state->prsbuf); statecode = WAITENDCMPLX; } else @@ -279,7 +274,7 @@ gettoken_tsvector(TSVectorParseState state, PRSSYNTAXERROR; if (state->oprisdelim) { - /* state->prsbuf+=pg_mblen(state->prsbuf); */ + /* state->prsbuf+=pg_mblen_cstr(state->prsbuf); */ RETURN_TOKEN; } else @@ -296,7 +291,7 @@ gettoken_tsvector(TSVectorParseState state, } else if (statecode == INPOSINFO) { - if (t_isdigit(state->prsbuf)) + if (t_isdigit_cstr(state->prsbuf)) { if (posalen == 0) { @@ -351,10 +346,10 @@ gettoken_tsvector(TSVectorParseState state, PRSSYNTAXERROR; WEP_SETWEIGHT(pos[npos - 1], 0); } - else if (t_isspace(state->prsbuf) || + else if (t_isspace_cstr(state->prsbuf) || *(state->prsbuf) == '\0') RETURN_TOKEN; - else if (!t_isdigit(state->prsbuf)) + else if (!t_isdigit_cstr(state->prsbuf)) PRSSYNTAXERROR; } else /* internal error */ @@ -362,6 +357,6 @@ gettoken_tsvector(TSVectorParseState state, statecode); /* get next char */ - state->prsbuf += pg_mblen(state->prsbuf); + state->prsbuf += pg_mblen_cstr(state->prsbuf); } } diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c index 73e41e0808f..532b6dcd097 100644 --- a/src/backend/utils/adt/varbit.c +++ b/src/backend/utils/adt/varbit.c @@ -232,7 +232,7 @@ bit_in(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("\"%.*s\" is not a valid binary digit", - pg_mblen(sp), sp))); + pg_mblen_cstr(sp), sp))); x >>= 1; if (x == 0) @@ -257,7 +257,7 @@ bit_in(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("\"%.*s\" is not a valid hexadecimal digit", - pg_mblen(sp), sp))); + pg_mblen_cstr(sp), sp))); if (bc) { @@ -533,7 +533,7 @@ varbit_in(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("\"%.*s\" is not a valid binary digit", - pg_mblen(sp), sp))); + pg_mblen_cstr(sp), sp))); x >>= 1; if (x == 0) @@ -558,7 +558,7 @@ varbit_in(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("\"%.*s\" is not a valid hexadecimal digit", - pg_mblen(sp), sp))); + pg_mblen_cstr(sp), sp))); if (bc) { diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c index 3732b79c21e..776ca094e60 100644 --- a/src/backend/utils/adt/varlena.c +++ b/src/backend/utils/adt/varlena.c @@ -778,8 +778,11 @@ text_catenate(text *t1, text *t2) * charlen_to_bytelen() * Compute the number of bytes occupied by n characters starting at *p * - * It is caller's responsibility that there actually are n characters; - * the string need not be null-terminated. + * The caller shall ensure there are n complete characters. Callers achieve + * this by deriving "n" from regmatch_t findings from searching a wchar array. + * pg_mb2wchar_with_len() skips any trailing incomplete character, so regex + * matches will end no later than the last complete character. (The string + * need not be null-terminated.) */ static int charlen_to_bytelen(const char *p, int n) @@ -794,7 +797,7 @@ charlen_to_bytelen(const char *p, int n) const char *s; for (s = p; n > 0; n--) - s += pg_mblen(s); + s += pg_mblen_unbounded(s); /* caller verified encoding */ return s - p; } @@ -927,6 +930,7 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified) int32 slice_start; int32 slice_size; int32 slice_strlen; + int32 slice_len; text *slice; int32 E1; int32 i; @@ -996,7 +1000,8 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified) slice = (text *) DatumGetPointer(str); /* see if we got back an empty string */ - if (VARSIZE_ANY_EXHDR(slice) == 0) + slice_len = VARSIZE_ANY_EXHDR(slice); + if (slice_len == 0) { if (slice != (text *) DatumGetPointer(str)) pfree(slice); @@ -1005,7 +1010,7 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified) /* Now we can get the actual length of the slice in MB characters */ slice_strlen = pg_mbstrlen_with_len(VARDATA_ANY(slice), - VARSIZE_ANY_EXHDR(slice)); + slice_len); /* * Check that the start position wasn't > slice_strlen. If so, SQL99 @@ -1032,7 +1037,7 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified) */ p = VARDATA_ANY(slice); for (i = 0; i < S1 - 1; i++) - p += pg_mblen(p); + p += pg_mblen_unbounded(p); /* hang onto a pointer to our start position */ s = p; @@ -1042,7 +1047,7 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified) * length. */ for (i = S1; i < E1; i++) - p += pg_mblen(p); + p += pg_mblen_unbounded(p); ret = (text *) palloc(VARHDRSZ + (p - s)); SET_VARSIZE(ret, VARHDRSZ + (p - s)); @@ -1340,6 +1345,8 @@ text_position_next(TextPositionState *state) */ if (state->is_multibyte_char_in_char) { + const char *haystack_end = state->str1 + state->len1; + /* Walk one character at a time, until we reach the match. */ /* the search should never move backwards. */ @@ -1348,7 +1355,7 @@ text_position_next(TextPositionState *state) while (state->refpoint < matchptr) { /* step to next character. */ - state->refpoint += pg_mblen(state->refpoint); + state->refpoint += pg_mblen_range(state->refpoint, haystack_end); state->refpos++; /* @@ -4940,6 +4947,8 @@ split_text(FunctionCallInfo fcinfo, SplitTextOutputData *tstate) } else { + const char *end_ptr; + /* * When fldsep is NULL, each character in the input string becomes a * separate element in the result set. The separator is effectively @@ -4948,10 +4957,11 @@ split_text(FunctionCallInfo fcinfo, SplitTextOutputData *tstate) inputstring_len = VARSIZE_ANY_EXHDR(inputstring); start_ptr = VARDATA_ANY(inputstring); + end_ptr = start_ptr + inputstring_len; while (inputstring_len > 0) { - int chunk_len = pg_mblen(start_ptr); + int chunk_len = pg_mblen_range(start_ptr, end_ptr); CHECK_FOR_INTERRUPTS(); @@ -5630,7 +5640,7 @@ text_reverse(PG_FUNCTION_ARGS) { int sz; - sz = pg_mblen(p); + sz = pg_mblen_range(p, endp); dst -= sz; memcpy(dst, p, sz); p += sz; @@ -5791,7 +5801,7 @@ text_format(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("unrecognized format() type specifier \"%.*s\"", - pg_mblen(cp), cp), + pg_mblen_range(cp, end_ptr), cp), errhint("For a single \"%%\" use \"%%%%\"."))); /* If indirect width was specified, get its value */ @@ -5912,7 +5922,7 @@ text_format(PG_FUNCTION_ARGS) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("unrecognized format() type specifier \"%.*s\"", - pg_mblen(cp), cp), + pg_mblen_range(cp, end_ptr), cp), errhint("For a single \"%%\" use \"%%%%\"."))); break; } diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index 279c15aa331..3dd6cc037ab 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -2036,8 +2036,7 @@ sqlchar_to_unicode(const char *s) char *utf8string; pg_wchar ret[2]; /* need space for trailing zero */ - /* note we're not assuming s is null-terminated */ - utf8string = pg_server_to_any(s, pg_mblen(s), PG_UTF8); + utf8string = pg_server_to_any(s, pg_mblen_cstr(s), PG_UTF8); pg_encoding_mb2wchar_with_len(PG_UTF8, utf8string, ret, pg_encoding_mblen(PG_UTF8, utf8string)); @@ -2090,7 +2089,7 @@ map_sql_identifier_to_xml_name(const char *ident, bool fully_escaped, initStringInfo(&buf); - for (p = ident; *p; p += pg_mblen(p)) + for (p = ident; *p; p += pg_mblen_cstr(p)) { if (*p == ':' && (p == ident || fully_escaped)) appendStringInfoString(&buf, "_x003A_"); @@ -2115,7 +2114,7 @@ map_sql_identifier_to_xml_name(const char *ident, bool fully_escaped, : !is_valid_xml_namechar(u)) appendStringInfo(&buf, "_x%04X_", (unsigned int) u); else - appendBinaryStringInfo(&buf, p, pg_mblen(p)); + appendBinaryStringInfo(&buf, p, pg_mblen_cstr(p)); } } @@ -2138,7 +2137,7 @@ map_xml_name_to_sql_identifier(const char *name) initStringInfo(&buf); - for (p = name; *p; p += pg_mblen(p)) + for (p = name; *p; p += pg_mblen_cstr(p)) { if (*p == '_' && *(p + 1) == 'x' && isxdigit((unsigned char) *(p + 2)) @@ -2156,7 +2155,7 @@ map_xml_name_to_sql_identifier(const char *name) p += 6; } else - appendBinaryStringInfo(&buf, p, pg_mblen(p)); + appendBinaryStringInfo(&buf, p, pg_mblen_cstr(p)); } return buf.data; diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index 39e5fcaf5a0..4033b6dc1d9 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -38,6 +38,7 @@ #include "catalog/namespace.h" #include "mb/pg_wchar.h" #include "utils/builtins.h" +#include "utils/memdebug.h" #include "utils/memutils.h" #include "utils/relcache.h" #include "utils/syscache.h" @@ -97,6 +98,13 @@ static char *perform_default_encoding_conversion(const char *src, int len, bool is_client_to_server); static int cliplen(const char *str, int len, int limit); +pg_attribute_noreturn() +static void report_invalid_encoding_int(int encoding, const char *mbstr, + int mblen, int len); + +pg_attribute_noreturn() +static void report_invalid_encoding_db(const char *mbstr, int mblen, int len); + /* * Prepare for a future call to SetClientEncoding. Success should mean @@ -962,11 +970,126 @@ pg_encoding_wchar2mb_with_len(int encoding, return pg_wchar_table[encoding].wchar2mb_with_len(from, (unsigned char *) to, len); } -/* returns the byte length of a multibyte character */ +/* + * Returns the byte length of a multibyte character sequence in a + * null-terminated string. Raises an illegal byte sequence error if the + * sequence would hit a null terminator. + * + * The caller is expected to have checked for a terminator at *mbstr == 0 + * before calling, but some callers want 1 in that case, so this function + * continues that tradition. + * + * This must only be used for strings that have a null-terminator to enable + * bounds detection. + */ +int +pg_mblen_cstr(const char *mbstr) +{ + int length = pg_wchar_table[DatabaseEncoding->encoding].mblen((const unsigned char *) mbstr); + + /* + * The .mblen functions return 1 when given a pointer to a terminator. + * Some callers depend on that, so we tolerate it for now. Well-behaved + * callers check the leading byte for a terminator *before* calling. + */ + for (int i = 1; i < length; ++i) + if (unlikely(mbstr[i] == 0)) + report_invalid_encoding_db(mbstr, length, i); + + /* + * String should be NUL-terminated, but checking that would make typical + * callers O(N^2), tripling Valgrind check-world time. Unless + * VALGRIND_EXPENSIVE, check 1 byte after each actual character. (If we + * found a character, not a terminator, the next byte must be a terminator + * or the start of the next character.) If the caller iterates the whole + * string, the last call will diagnose a missing terminator. + */ + if (mbstr[0] != '\0') + { +#ifdef VALGRIND_EXPENSIVE + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, strlen(mbstr)); +#else + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr + length, 1); +#endif + } + + return length; +} + +/* + * Returns the byte length of a multibyte character sequence bounded by a range + * [mbstr, end) of at least one byte in size. Raises an illegal byte sequence + * error if the sequence would exceed the range. + */ +int +pg_mblen_range(const char *mbstr, const char *end) +{ + int length = pg_wchar_table[DatabaseEncoding->encoding].mblen((const unsigned char *) mbstr); + + Assert(end > mbstr); +#ifdef VALGRIND_EXPENSIVE + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, end - mbstr); +#else + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, length); +#endif + + if (unlikely(mbstr + length > end)) + report_invalid_encoding_db(mbstr, length, end - mbstr); + + return length; +} + +/* + * Returns the byte length of a multibyte character sequence bounded by a range + * extending for 'limit' bytes, which must be at least one. Raises an illegal + * byte sequence error if the sequence would exceed the range. + */ +int +pg_mblen_with_len(const char *mbstr, int limit) +{ + int length = pg_wchar_table[DatabaseEncoding->encoding].mblen((const unsigned char *) mbstr); + + Assert(limit >= 1); +#ifdef VALGRIND_EXPENSIVE + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, limit); +#else + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, length); +#endif + + if (unlikely(length > limit)) + report_invalid_encoding_db(mbstr, length, limit); + + return length; +} + + +/* + * Returns the length of a multibyte character sequence, without any + * validation of bounds. + * + * PLEASE NOTE: This function can only be used safely if the caller has + * already verified the input string, since otherwise there is a risk of + * overrunning the buffer if the string is invalid. A prior call to a + * pg_mbstrlen* function suffices. + */ +int +pg_mblen_unbounded(const char *mbstr) +{ + int length = pg_wchar_table[DatabaseEncoding->encoding].mblen((const unsigned char *) mbstr); + + VALGRIND_CHECK_MEM_IS_DEFINED(mbstr, length); + + return length; +} + +/* + * Historical name for pg_mblen_unbounded(). Should not be used and will be + * removed in a later version. + */ int pg_mblen(const char *mbstr) { - return pg_wchar_table[DatabaseEncoding->encoding].mblen((const unsigned char *) mbstr); + return pg_mblen_unbounded(mbstr); } /* returns the display length of a multibyte character */ @@ -988,14 +1111,14 @@ pg_mbstrlen(const char *mbstr) while (*mbstr) { - mbstr += pg_mblen(mbstr); + mbstr += pg_mblen_cstr(mbstr); len++; } return len; } /* returns the length (counted in wchars) of a multibyte string - * (not necessarily NULL terminated) + * (stops at the first of "limit" or a NUL) */ int pg_mbstrlen_with_len(const char *mbstr, int limit) @@ -1008,7 +1131,7 @@ pg_mbstrlen_with_len(const char *mbstr, int limit) while (limit > 0 && *mbstr) { - int l = pg_mblen(mbstr); + int l = pg_mblen_with_len(mbstr, limit); limit -= l; mbstr += l; @@ -1078,7 +1201,7 @@ pg_mbcharcliplen(const char *mbstr, int len, int limit) while (len > 0 && *mbstr) { - l = pg_mblen(mbstr); + l = pg_mblen_with_len(mbstr, len); nch++; if (nch > limit) break; @@ -1648,12 +1771,19 @@ void report_invalid_encoding(int encoding, const char *mbstr, int len) { int l = pg_encoding_mblen_or_incomplete(encoding, mbstr, len); + + report_invalid_encoding_int(encoding, mbstr, l, len); +} + +static void +report_invalid_encoding_int(int encoding, const char *mbstr, int mblen, int len) +{ char buf[8 * 5 + 1]; char *p = buf; int j, jlimit; - jlimit = Min(l, len); + jlimit = Min(mblen, len); jlimit = Min(jlimit, 8); /* prevent buffer overrun */ for (j = 0; j < jlimit; j++) @@ -1670,6 +1800,12 @@ report_invalid_encoding(int encoding, const char *mbstr, int len) buf))); } +static void +report_invalid_encoding_db(const char *mbstr, int mblen, int len) +{ + report_invalid_encoding_int(GetDatabaseEncoding(), mbstr, mblen, len); +} + /* * report_untranslatable_char: complain about untranslatable character * diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index 45ef9cbba70..0412f3886e5 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -608,7 +608,14 @@ extern int pg_char_and_wchar_strcmp(const char *s1, const pg_wchar *s2); extern int pg_wchar_strncmp(const pg_wchar *s1, const pg_wchar *s2, size_t n); extern int pg_char_and_wchar_strncmp(const char *s1, const pg_wchar *s2, size_t n); extern size_t pg_wchar_strlen(const pg_wchar *wstr); +extern int pg_mblen_cstr(const char *mbstr); +extern int pg_mblen_range(const char *mbstr, const char *end); +extern int pg_mblen_with_len(const char *mbstr, int limit); +extern int pg_mblen_unbounded(const char *mbstr); + +/* deprecated */ extern int pg_mblen(const char *mbstr); + extern int pg_dsplen(const char *mbstr); extern int pg_mbstrlen(const char *mbstr); extern int pg_mbstrlen_with_len(const char *mbstr, int len); diff --git a/src/include/tsearch/ts_locale.h b/src/include/tsearch/ts_locale.h index 7d7c4e16c62..1a1e713a892 100644 --- a/src/include/tsearch/ts_locale.h +++ b/src/include/tsearch/ts_locale.h @@ -45,12 +45,36 @@ typedef struct /* The second argument of t_iseq() must be a plain ASCII character */ #define t_iseq(x,c) (TOUCHAR(x) == (unsigned char) (c)) -#define COPYCHAR(d,s) memcpy(d, s, pg_mblen(s)) +/* Copy multibyte character of known byte length, return byte length. */ +static inline int +ts_copychar_with_len(void *dest, const void *src, int length) +{ + memcpy(dest, src, length); + return length; +} + +/* Copy multibyte character from null-terminated string, return byte length. */ +static inline int +ts_copychar_cstr(void *dest, const void *src) +{ + return ts_copychar_with_len(dest, src, pg_mblen_cstr((const char *) src)); +} + +/* Historical macro for the above. */ +#define COPYCHAR ts_copychar_cstr + +#define GENERATE_T_ISCLASS_DECL(character_class) \ +extern int t_is##character_class##_with_len(const char *ptr, int len); \ +extern int t_is##character_class##_cstr(const char *ptr); \ +extern int t_is##character_class##_unbounded(const char *ptr); \ +\ +/* deprecated */ \ +extern int t_is##character_class(const char *ptr); -extern int t_isdigit(const char *ptr); -extern int t_isspace(const char *ptr); -extern int t_isalpha(const char *ptr); -extern int t_isprint(const char *ptr); +GENERATE_T_ISCLASS_DECL(alpha); +GENERATE_T_ISCLASS_DECL(digit); +GENERATE_T_ISCLASS_DECL(print); +GENERATE_T_ISCLASS_DECL(space); extern char *lowerstr(const char *str); extern char *lowerstr_with_len(const char *str, int len); diff --git a/src/include/tsearch/ts_utils.h b/src/include/tsearch/ts_utils.h index c36c711dae0..94ca47588ff 100644 --- a/src/include/tsearch/ts_utils.h +++ b/src/include/tsearch/ts_utils.h @@ -38,14 +38,12 @@ extern bool gettoken_tsvector(TSVectorParseState state, extern void close_tsvector_parser(TSVectorParseState state); /* phrase operator begins with '<' */ -#define ISOPERATOR(x) \ - ( pg_mblen(x) == 1 && ( *(x) == '!' || \ - *(x) == '&' || \ - *(x) == '|' || \ - *(x) == '(' || \ - *(x) == ')' || \ - *(x) == '<' \ - ) ) +#define ISOPERATOR(x) (*(x) == '!' || \ + *(x) == '&' || \ + *(x) == '|' || \ + *(x) == '(' || \ + *(x) == ')' || \ + *(x) == '<') /* parse_tsquery */ diff --git a/src/test/modules/test_regex/test_regex.c b/src/test/modules/test_regex/test_regex.c index e23a0bd0d7f..f7bf50b7609 100644 --- a/src/test/modules/test_regex/test_regex.c +++ b/src/test/modules/test_regex/test_regex.c @@ -424,7 +424,8 @@ parse_test_flags(test_re_flags *flags, text *opts) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("invalid regular expression test option: \"%.*s\"", - pg_mblen(opt_p + i), opt_p + i))); + pg_mblen_range(opt_p + i, opt_p + opt_len), + opt_p + i))); break; } } From 757bf8145e243b4ad1a76460264f6f4df7e0fb1f Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Mon, 12 Jan 2026 10:20:06 +1300 Subject: [PATCH 86/94] Code coverage for most pg_mblen* calls. A security patch changed them today, so close the coverage gap now. Test that buffer overrun is avoided when pg_mblen*() requires more than the number of bytes remaining. This does not cover the calls in dict_thesaurus.c or in dict_synonym.c. That code is straightforward. To change that code's input, one must have access to modify installed OS files, so low-privilege users are not a threat. Testing this would likewise require changing installed share/postgresql/tsearch_data, which was enough of an obstacle to not bother. Security: CVE-2026-2006 Backpatch-through: 14 Co-authored-by: Thomas Munro Co-authored-by: Noah Misch Reviewed-by: Heikki Linnakangas --- contrib/pg_trgm/Makefile | 2 +- contrib/pg_trgm/data/trgm_utf8.data | 50 +++ contrib/pg_trgm/expected/pg_utf8_trgm.out | 8 + contrib/pg_trgm/expected/pg_utf8_trgm_1.out | 3 + contrib/pg_trgm/sql/pg_utf8_trgm.sql | 9 + src/backend/utils/adt/arrayfuncs.c | 161 ++++++++ src/include/utils/array.h | 4 + src/test/regress/expected/encoding.out | 401 ++++++++++++++++++++ src/test/regress/expected/encoding_1.out | 4 + src/test/regress/expected/euc_kr.out | 16 + src/test/regress/expected/euc_kr_1.out | 6 + src/test/regress/parallel_schedule | 2 +- src/test/regress/regress.c | 139 +++++++ src/test/regress/sql/encoding.sql | 228 +++++++++++ src/test/regress/sql/euc_kr.sql | 12 + 15 files changed, 1043 insertions(+), 2 deletions(-) create mode 100644 contrib/pg_trgm/data/trgm_utf8.data create mode 100644 contrib/pg_trgm/expected/pg_utf8_trgm.out create mode 100644 contrib/pg_trgm/expected/pg_utf8_trgm_1.out create mode 100644 contrib/pg_trgm/sql/pg_utf8_trgm.sql create mode 100644 src/test/regress/expected/encoding.out create mode 100644 src/test/regress/expected/encoding_1.out create mode 100644 src/test/regress/expected/euc_kr.out create mode 100644 src/test/regress/expected/euc_kr_1.out create mode 100644 src/test/regress/sql/encoding.sql create mode 100644 src/test/regress/sql/euc_kr.sql diff --git a/contrib/pg_trgm/Makefile b/contrib/pg_trgm/Makefile index 1fbdc9ec1ef..c1756993ec7 100644 --- a/contrib/pg_trgm/Makefile +++ b/contrib/pg_trgm/Makefile @@ -14,7 +14,7 @@ DATA = pg_trgm--1.5--1.6.sql pg_trgm--1.4--1.5.sql pg_trgm--1.3--1.4.sql \ pg_trgm--1.0--1.1.sql PGFILEDESC = "pg_trgm - trigram matching" -REGRESS = pg_trgm pg_word_trgm pg_strict_word_trgm +REGRESS = pg_trgm pg_utf8_trgm pg_word_trgm pg_strict_word_trgm ifdef USE_PGXS PG_CONFIG = pg_config diff --git a/contrib/pg_trgm/data/trgm_utf8.data b/contrib/pg_trgm/data/trgm_utf8.data new file mode 100644 index 00000000000..713856e76a6 --- /dev/null +++ b/contrib/pg_trgm/data/trgm_utf8.data @@ -0,0 +1,50 @@ +Mathematics +数学 +गणित +Matemáticas +رياضيات +Mathématiques +গণিত +Matemática +Математика +ریاضی +Matematika +Mathematik +数学 +Mathematics +गणित +గణితం +Matematik +கணிதம் +數學 +Toán học +Matematika +数学 +수학 +ریاضی +Lissafi +Hisabati +Matematika +Matematica +ریاضی +ಗಣಿತ +ગણિત +คณิตศาสตร์ +ሂሳብ +गणित +ਗਣਿਤ +數學 +数学 +Iṣiro +數學 +သင်္ချာ +Herrega +رياضي +गणित +Математика +Matematyka +ഗണിതം +Matematika +رياضي +Matematika +Matematică diff --git a/contrib/pg_trgm/expected/pg_utf8_trgm.out b/contrib/pg_trgm/expected/pg_utf8_trgm.out new file mode 100644 index 00000000000..0768e7d6a83 --- /dev/null +++ b/contrib/pg_trgm/expected/pg_utf8_trgm.out @@ -0,0 +1,8 @@ +SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset +\if :skip_test +\quit +\endif +-- Index 50 translations of the word "Mathematics" +CREATE TEMP TABLE mb (s text); +\copy mb from 'data/trgm_utf8.data' +CREATE INDEX ON mb USING gist(s gist_trgm_ops); diff --git a/contrib/pg_trgm/expected/pg_utf8_trgm_1.out b/contrib/pg_trgm/expected/pg_utf8_trgm_1.out new file mode 100644 index 00000000000..8505c4fa552 --- /dev/null +++ b/contrib/pg_trgm/expected/pg_utf8_trgm_1.out @@ -0,0 +1,3 @@ +SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset +\if :skip_test +\quit diff --git a/contrib/pg_trgm/sql/pg_utf8_trgm.sql b/contrib/pg_trgm/sql/pg_utf8_trgm.sql new file mode 100644 index 00000000000..0dd962ced83 --- /dev/null +++ b/contrib/pg_trgm/sql/pg_utf8_trgm.sql @@ -0,0 +1,9 @@ +SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset +\if :skip_test +\quit +\endif + +-- Index 50 translations of the word "Mathematics" +CREATE TEMP TABLE mb (s text); +\copy mb from 'data/trgm_utf8.data' +CREATE INDEX ON mb USING gist(s gist_trgm_ops); diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 78ae2b5299c..3493a5374a1 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -3384,6 +3384,92 @@ construct_array(Datum *elems, int nelems, elmtype, elmlen, elmbyval, elmalign); } +/* + * Like construct_array(), where elmtype must be a built-in type, and + * elmlen/elmbyval/elmalign is looked up from hardcoded data. This is often + * useful when manipulating arrays from/for system catalogs. + */ +ArrayType * +construct_array_builtin(Datum *elems, int nelems, Oid elmtype) +{ + int elmlen; + bool elmbyval; + char elmalign; + + switch (elmtype) + { + case CHAROID: + elmlen = 1; + elmbyval = true; + elmalign = TYPALIGN_CHAR; + break; + + case CSTRINGOID: + elmlen = -2; + elmbyval = false; + elmalign = TYPALIGN_CHAR; + break; + + case FLOAT4OID: + elmlen = sizeof(float4); + elmbyval = true; + elmalign = TYPALIGN_INT; + break; + + case INT2OID: + elmlen = sizeof(int16); + elmbyval = true; + elmalign = TYPALIGN_SHORT; + break; + + case INT4OID: + elmlen = sizeof(int32); + elmbyval = true; + elmalign = TYPALIGN_INT; + break; + + case INT8OID: + elmlen = sizeof(int64); + elmbyval = FLOAT8PASSBYVAL; + elmalign = TYPALIGN_DOUBLE; + break; + + case NAMEOID: + elmlen = NAMEDATALEN; + elmbyval = false; + elmalign = TYPALIGN_CHAR; + break; + + case OIDOID: + case REGTYPEOID: + elmlen = sizeof(Oid); + elmbyval = true; + elmalign = TYPALIGN_INT; + break; + + case TEXTOID: + elmlen = -1; + elmbyval = false; + elmalign = TYPALIGN_INT; + break; + + case TIDOID: + elmlen = sizeof(ItemPointerData); + elmbyval = false; + elmalign = TYPALIGN_SHORT; + break; + + default: + elog(ERROR, "type %u not supported by construct_array_builtin()", elmtype); + /* keep compiler quiet */ + elmlen = 0; + elmbyval = false; + elmalign = 0; + } + + return construct_array(elems, nelems, elmtype, elmlen, elmbyval, elmalign); +} + /* * construct_md_array --- simple method for constructing an array object * with arbitrary dimensions and possible NULLs @@ -3602,6 +3688,81 @@ deconstruct_array(ArrayType *array, } } +/* + * Like deconstruct_array(), where elmtype must be a built-in type, and + * elmlen/elmbyval/elmalign is looked up from hardcoded data. This is often + * useful when manipulating arrays from/for system catalogs. + */ +void +deconstruct_array_builtin(ArrayType *array, + Oid elmtype, + Datum **elemsp, bool **nullsp, int *nelemsp) +{ + int elmlen; + bool elmbyval; + char elmalign; + + switch (elmtype) + { + case CHAROID: + elmlen = 1; + elmbyval = true; + elmalign = TYPALIGN_CHAR; + break; + + case CSTRINGOID: + elmlen = -2; + elmbyval = false; + elmalign = TYPALIGN_CHAR; + break; + + case FLOAT8OID: + elmlen = sizeof(float8); + elmbyval = FLOAT8PASSBYVAL; + elmalign = TYPALIGN_DOUBLE; + break; + + case INT2OID: + elmlen = sizeof(int16); + elmbyval = true; + elmalign = TYPALIGN_SHORT; + break; + + case INT4OID: + elmlen = sizeof(int32); + elmbyval = true; + elmalign = TYPALIGN_INT; + break; + + case OIDOID: + elmlen = sizeof(Oid); + elmbyval = true; + elmalign = TYPALIGN_INT; + break; + + case TEXTOID: + elmlen = -1; + elmbyval = false; + elmalign = TYPALIGN_INT; + break; + + case TIDOID: + elmlen = sizeof(ItemPointerData); + elmbyval = false; + elmalign = TYPALIGN_SHORT; + break; + + default: + elog(ERROR, "type %u not supported by deconstruct_array_builtin()", elmtype); + /* keep compiler quiet */ + elmlen = 0; + elmbyval = false; + elmalign = 0; + } + + deconstruct_array(array, elmtype, elmlen, elmbyval, elmalign, elemsp, nullsp, nelemsp); +} + /* * array_contains_nulls --- detect whether an array has any null elements * diff --git a/src/include/utils/array.h b/src/include/utils/array.h index b4327b4d911..6ef28dfcf3b 100644 --- a/src/include/utils/array.h +++ b/src/include/utils/array.h @@ -394,6 +394,7 @@ extern void array_bitmap_copy(bits8 *destbitmap, int destoffset, extern ArrayType *construct_array(Datum *elems, int nelems, Oid elmtype, int elmlen, bool elmbyval, char elmalign); +extern ArrayType *construct_array_builtin(Datum *elems, int nelems, Oid elmtype); extern ArrayType *construct_md_array(Datum *elems, bool *nulls, int ndims, @@ -408,6 +409,9 @@ extern void deconstruct_array(ArrayType *array, Oid elmtype, int elmlen, bool elmbyval, char elmalign, Datum **elemsp, bool **nullsp, int *nelemsp); +extern void deconstruct_array_builtin(ArrayType *array, + Oid elmtype, + Datum **elemsp, bool **nullsp, int *nelemsp); extern bool array_contains_nulls(ArrayType *array); extern ArrayBuildState *initArrayResult(Oid element_type, diff --git a/src/test/regress/expected/encoding.out b/src/test/regress/expected/encoding.out new file mode 100644 index 00000000000..ea1f38cff41 --- /dev/null +++ b/src/test/regress/expected/encoding.out @@ -0,0 +1,401 @@ +/* skip test if not UTF8 server encoding */ +SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset +\if :skip_test +\quit +\endif +\getenv libdir PG_LIBDIR +\getenv dlsuffix PG_DLSUFFIX +\set regresslib :libdir '/regress' :dlsuffix +CREATE FUNCTION test_bytea_to_text(bytea) RETURNS text + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_text_to_bytea(text) RETURNS bytea + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_mblen_func(text, text, text, int) RETURNS int + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_text_to_wchars(text, text) RETURNS int[] + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_wchars_to_text(text, int[]) RETURNS text + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_valid_server_encoding(text) RETURNS boolean + AS :'regresslib' LANGUAGE C STRICT; +CREATE TABLE regress_encoding(good text, truncated text, with_nul text, truncated_with_nul text); +INSERT INTO regress_encoding +VALUES ('café', + 'caf' || test_bytea_to_text('\xc3'), + 'café' || test_bytea_to_text('\x00') || 'dcba', + 'caf' || test_bytea_to_text('\xc300') || 'dcba'); +SELECT good, truncated, with_nul FROM regress_encoding; + good | truncated | with_nul +------+-----------+---------- + café | caf | café +(1 row) + +SELECT length(good) FROM regress_encoding; + length +-------- + 4 +(1 row) + +SELECT substring(good, 3, 1) FROM regress_encoding; + substring +----------- + f +(1 row) + +SELECT substring(good, 4, 1) FROM regress_encoding; + substring +----------- + é +(1 row) + +SELECT regexp_replace(good, '^caf(.)$', '\1') FROM regress_encoding; + regexp_replace +---------------- + é +(1 row) + +SELECT reverse(good) FROM regress_encoding; + reverse +--------- + éfac +(1 row) + +-- invalid short mb character = error +SELECT length(truncated) FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 +SELECT substring(truncated, 1, 1) FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 +SELECT reverse(truncated) FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 +-- invalid short mb character = silently dropped +SELECT regexp_replace(truncated, '^caf(.)$', '\1') FROM regress_encoding; + regexp_replace +---------------- + caf +(1 row) + +-- PostgreSQL doesn't allow strings to contain NUL. If a corrupted string +-- contains NUL at a character boundary position, some functions treat it as a +-- character while others treat it as a terminator, as implementation details. +-- NUL = terminator +SELECT length(with_nul) FROM regress_encoding; + length +-------- + 4 +(1 row) + +SELECT substring(with_nul, 3, 1) FROM regress_encoding; + substring +----------- + f +(1 row) + +SELECT substring(with_nul, 4, 1) FROM regress_encoding; + substring +----------- + é +(1 row) + +SELECT substring(with_nul, 5, 1) FROM regress_encoding; + substring +----------- + +(1 row) + +SELECT convert_to(substring(with_nul, 5, 1), 'UTF8') FROM regress_encoding; + convert_to +------------ + \x +(1 row) + +SELECT regexp_replace(with_nul, '^caf(.)$', '\1') FROM regress_encoding; + regexp_replace +---------------- + é +(1 row) + +-- NUL = character +SELECT with_nul, reverse(with_nul), reverse(reverse(with_nul)) FROM regress_encoding; + with_nul | reverse | reverse +----------+---------+--------- + café | abcd | café +(1 row) + +-- If a corrupted string contains NUL in the tail bytes of a multibyte +-- character (invalid in all encodings), it is considered part of the +-- character for length purposes. An error will only be raised in code paths +-- that convert or verify encodings. +SELECT length(truncated_with_nul) FROM regress_encoding; + length +-------- + 8 +(1 row) + +SELECT substring(truncated_with_nul, 3, 1) FROM regress_encoding; + substring +----------- + f +(1 row) + +SELECT substring(truncated_with_nul, 4, 1) FROM regress_encoding; + substring +----------- + +(1 row) + +SELECT convert_to(substring(truncated_with_nul, 4, 1), 'UTF8') FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 0x00 +SELECT substring(truncated_with_nul, 5, 1) FROM regress_encoding; + substring +----------- + d +(1 row) + +SELECT regexp_replace(truncated_with_nul, '^caf(.)dcba$', '\1') = test_bytea_to_text('\xc300') FROM regress_encoding; + ?column? +---------- + t +(1 row) + +SELECT reverse(truncated_with_nul) FROM regress_encoding; + reverse +--------- + abcd +(1 row) + +-- unbounded: sequence would overrun the string! +SELECT test_mblen_func('pg_mblen_unbounded', 'UTF8', truncated, 3) +FROM regress_encoding; + test_mblen_func +----------------- + 2 +(1 row) + +-- condition detected when using the length/range variants +SELECT test_mblen_func('pg_mblen_with_len', 'UTF8', truncated, 3) +FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 +SELECT test_mblen_func('pg_mblen_range', 'UTF8', truncated, 3) +FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 +-- unbounded: sequence would overrun the string, if the terminator were really +-- the end of it +SELECT test_mblen_func('pg_mblen_unbounded', 'UTF8', truncated_with_nul, 3) +FROM regress_encoding; + test_mblen_func +----------------- + 2 +(1 row) + +SELECT test_mblen_func('pg_encoding_mblen', 'GB18030', truncated_with_nul, 3) +FROM regress_encoding; + test_mblen_func +----------------- + 2 +(1 row) + +-- condition detected when using the cstr variants +SELECT test_mblen_func('pg_mblen_cstr', 'UTF8', truncated_with_nul, 3) +FROM regress_encoding; +ERROR: invalid byte sequence for encoding "UTF8": 0xc3 +DROP TABLE regress_encoding; +-- mb<->wchar conversions +CREATE FUNCTION test_encoding(encoding text, description text, input bytea) +RETURNS VOID LANGUAGE plpgsql AS +$$ +DECLARE + prefix text; + len int; + wchars int[]; + round_trip bytea; + result text; +BEGIN + prefix := rpad(encoding || ' ' || description || ':', 28); + + -- XXX could also test validation, length functions and include client + -- only encodings with these test cases + + IF test_valid_server_encoding(encoding) THEN + wchars := test_text_to_wchars(encoding, test_bytea_to_text(input)); + round_trip = test_text_to_bytea(test_wchars_to_text(encoding, wchars)); + if input = round_trip then + result := 'OK'; + elsif length(input) > length(round_trip) and round_trip = substr(input, 1, length(round_trip)) then + result := 'truncated'; + else + result := 'failed'; + end if; + RAISE NOTICE '% % -> % -> % = %', prefix, input, wchars, round_trip, result; + END IF; +END; +$$; +-- No validation is done on the encoding itself, just the length to avoid +-- overruns, so some of the byte sequences below are bogus. They cover +-- all code branches, server encodings only for now. +CREATE TABLE encoding_tests (encoding text, description text, input bytea); +INSERT INTO encoding_tests VALUES + -- LATIN1, other single-byte encodings + ('LATIN1', 'ASCII', 'a'), + ('LATIN1', 'extended', '\xe9'), + -- EUC_JP, EUC_JIS_2004, EUR_KR (for the purposes of wchar conversion): + -- 2 8e (CS2, not used by EUR_KR but arbitrarily considered to have EUC_JP length) + -- 3 8f (CS3, not used by EUR_KR but arbitrarily considered to have EUC_JP length) + -- 2 80..ff (CS1) + ('EUC_JP', 'ASCII', 'a'), + ('EUC_JP', 'CS1, short', '\x80'), + ('EUC_JP', 'CS1', '\x8002'), + ('EUC_JP', 'CS2, short', '\x8e'), + ('EUC_JP', 'CS2', '\x8e02'), + ('EUC_JP', 'CS3, short', '\x8f'), + ('EUC_JP', 'CS3, short', '\x8f02'), + ('EUC_JP', 'CS3', '\x8f0203'), + -- EUC_CN + -- 3 8e (CS2, not used but arbitrarily considered to have length 3) + -- 3 8f (CS3, not used but arbitrarily considered to have length 3) + -- 2 80..ff (CS1) + ('EUC_CN', 'ASCII', 'a'), + ('EUC_CN', 'CS1, short', '\x80'), + ('EUC_CN', 'CS1', '\x8002'), + ('EUC_CN', 'CS2, short', '\x8e'), + ('EUC_CN', 'CS2, short', '\x8e02'), + ('EUC_CN', 'CS2', '\x8e0203'), + ('EUC_CN', 'CS3, short', '\x8f'), + ('EUC_CN', 'CS3, short', '\x8f02'), + ('EUC_CN', 'CS3', '\x8f0203'), + -- EUC_TW: + -- 4 8e (CS2) + -- 3 8f (CS3, not used but arbitrarily considered to have length 3) + -- 2 80..ff (CS1) + ('EUC_TW', 'ASCII', 'a'), + ('EUC_TW', 'CS1, short', '\x80'), + ('EUC_TW', 'CS1', '\x8002'), + ('EUC_TW', 'CS2, short', '\x8e'), + ('EUC_TW', 'CS2, short', '\x8e02'), + ('EUC_TW', 'CS2, short', '\x8e0203'), + ('EUC_TW', 'CS2', '\x8e020304'), + ('EUC_TW', 'CS3, short', '\x8f'), + ('EUC_TW', 'CS3, short', '\x8f02'), + ('EUC_TW', 'CS3', '\x8f0203'), + -- UTF8 + -- 2 c0..df + -- 3 e0..ef + -- 4 f0..f7 (but maximum real codepoint U+10ffff has f4) + -- 5 f8..fb (not supported) + -- 6 fc..fd (not supported) + ('UTF8', 'ASCII', 'a'), + ('UTF8', '2 byte, short', '\xdf'), + ('UTF8', '2 byte', '\xdf82'), + ('UTF8', '3 byte, short', '\xef'), + ('UTF8', '3 byte, short', '\xef82'), + ('UTF8', '3 byte', '\xef8283'), + ('UTF8', '4 byte, short', '\xf7'), + ('UTF8', '4 byte, short', '\xf782'), + ('UTF8', '4 byte, short', '\xf78283'), + ('UTF8', '4 byte', '\xf7828384'), + ('UTF8', '5 byte, unsupported', '\xfb'), + ('UTF8', '5 byte, unsupported', '\xfb82'), + ('UTF8', '5 byte, unsupported', '\xfb8283'), + ('UTF8', '5 byte, unsupported', '\xfb828384'), + ('UTF8', '5 byte, unsupported', '\xfb82838485'), + ('UTF8', '6 byte, unsupported', '\xfd'), + ('UTF8', '6 byte, unsupported', '\xfd82'), + ('UTF8', '6 byte, unsupported', '\xfd8283'), + ('UTF8', '6 byte, unsupported', '\xfd828384'), + ('UTF8', '6 byte, unsupported', '\xfd82838485'), + ('UTF8', '6 byte, unsupported', '\xfd8283848586'), + -- MULE_INTERNAL + -- 2 81..8d LC1 + -- 3 90..99 LC2 + ('MULE_INTERNAL', 'ASCII', 'a'), + ('MULE_INTERNAL', 'LC1, short', '\x81'), + ('MULE_INTERNAL', 'LC1', '\x8182'), + ('MULE_INTERNAL', 'LC2, short', '\x90'), + ('MULE_INTERNAL', 'LC2, short', '\x9082'), + ('MULE_INTERNAL', 'LC2', '\x908283'); +SELECT COUNT(test_encoding(encoding, description, input)) > 0 +FROM encoding_tests; +NOTICE: LATIN1 ASCII: \x61 -> {97} -> \x61 = OK +NOTICE: LATIN1 extended: \xe9 -> {233} -> \xe9 = OK +NOTICE: EUC_JP ASCII: \x61 -> {97} -> \x61 = OK +NOTICE: EUC_JP CS1, short: \x80 -> {} -> \x = truncated +NOTICE: EUC_JP CS1: \x8002 -> {32770} -> \x8002 = OK +NOTICE: EUC_JP CS2, short: \x8e -> {} -> \x = truncated +NOTICE: EUC_JP CS2: \x8e02 -> {36354} -> \x8e02 = OK +NOTICE: EUC_JP CS3, short: \x8f -> {} -> \x = truncated +NOTICE: EUC_JP CS3, short: \x8f02 -> {} -> \x = truncated +NOTICE: EUC_JP CS3: \x8f0203 -> {9372163} -> \x8f0203 = OK +NOTICE: EUC_CN ASCII: \x61 -> {97} -> \x61 = OK +NOTICE: EUC_CN CS1, short: \x80 -> {} -> \x = truncated +NOTICE: EUC_CN CS1: \x8002 -> {32770} -> \x8002 = OK +NOTICE: EUC_CN CS2, short: \x8e -> {} -> \x = truncated +NOTICE: EUC_CN CS2, short: \x8e02 -> {} -> \x = truncated +NOTICE: EUC_CN CS2: \x8e0203 -> {9306627} -> \x8e0203 = OK +NOTICE: EUC_CN CS3, short: \x8f -> {} -> \x = truncated +NOTICE: EUC_CN CS3, short: \x8f02 -> {} -> \x = truncated +NOTICE: EUC_CN CS3: \x8f0203 -> {9372163} -> \x8f0203 = OK +NOTICE: EUC_TW ASCII: \x61 -> {97} -> \x61 = OK +NOTICE: EUC_TW CS1, short: \x80 -> {} -> \x = truncated +NOTICE: EUC_TW CS1: \x8002 -> {32770} -> \x8002 = OK +NOTICE: EUC_TW CS2, short: \x8e -> {} -> \x = truncated +NOTICE: EUC_TW CS2, short: \x8e02 -> {} -> \x = truncated +NOTICE: EUC_TW CS2, short: \x8e0203 -> {} -> \x = truncated +NOTICE: EUC_TW CS2: \x8e020304 -> {-1912470780} -> \x8e020304 = OK +NOTICE: EUC_TW CS3, short: \x8f -> {} -> \x = truncated +NOTICE: EUC_TW CS3, short: \x8f02 -> {} -> \x = truncated +NOTICE: EUC_TW CS3: \x8f0203 -> {9372163} -> \x8f0203 = OK +NOTICE: UTF8 ASCII: \x61 -> {97} -> \x61 = OK +NOTICE: UTF8 2 byte, short: \xdf -> {} -> \x = truncated +NOTICE: UTF8 2 byte: \xdf82 -> {1986} -> \xdf82 = OK +NOTICE: UTF8 3 byte, short: \xef -> {} -> \x = truncated +NOTICE: UTF8 3 byte, short: \xef82 -> {} -> \x = truncated +NOTICE: UTF8 3 byte: \xef8283 -> {61571} -> \xef8283 = OK +NOTICE: UTF8 4 byte, short: \xf7 -> {} -> \x = truncated +NOTICE: UTF8 4 byte, short: \xf782 -> {} -> \x = truncated +NOTICE: UTF8 4 byte, short: \xf78283 -> {} -> \x = truncated +NOTICE: UTF8 4 byte: \xf7828384 -> {1843396} -> \xf7828384 = OK +NOTICE: UTF8 5 byte, unsupported: \xfb -> {251} -> \xc3bb = failed +NOTICE: UTF8 5 byte, unsupported: \xfb82 -> {251,130} -> \xc3bbc282 = failed +NOTICE: UTF8 5 byte, unsupported: \xfb8283 -> {251,130,131} -> \xc3bbc282c283 = failed +NOTICE: UTF8 5 byte, unsupported: \xfb828384 -> {251,130,131,132} -> \xc3bbc282c283c284 = failed +NOTICE: UTF8 5 byte, unsupported: \xfb82838485 -> {251,130,131,132,133} -> \xc3bbc282c283c284c285 = failed +NOTICE: UTF8 6 byte, unsupported: \xfd -> {253} -> \xc3bd = failed +NOTICE: UTF8 6 byte, unsupported: \xfd82 -> {253,130} -> \xc3bdc282 = failed +NOTICE: UTF8 6 byte, unsupported: \xfd8283 -> {253,130,131} -> \xc3bdc282c283 = failed +NOTICE: UTF8 6 byte, unsupported: \xfd828384 -> {253,130,131,132} -> \xc3bdc282c283c284 = failed +NOTICE: UTF8 6 byte, unsupported: \xfd82838485 -> {253,130,131,132,133} -> \xc3bdc282c283c284c285 = failed +NOTICE: UTF8 6 byte, unsupported: \xfd8283848586 -> {253,130,131,132,133,134} -> \xc3bdc282c283c284c285c286 = failed +NOTICE: MULE_INTERNAL ASCII: \x61 -> {97} -> \x61 = OK +NOTICE: MULE_INTERNAL LC1, short: \x81 -> {} -> \x = truncated +NOTICE: MULE_INTERNAL LC1: \x8182 -> {8454274} -> \x8182 = OK +NOTICE: MULE_INTERNAL LC2, short: \x90 -> {} -> \x = truncated +NOTICE: MULE_INTERNAL LC2, short: \x9082 -> {} -> \x = truncated +NOTICE: MULE_INTERNAL LC2: \x908283 -> {9470595} -> \x908283 = OK + ?column? +---------- + t +(1 row) + +DROP TABLE encoding_tests; +DROP FUNCTION test_encoding; +DROP FUNCTION test_text_to_wchars; +DROP FUNCTION test_mblen_func; +DROP FUNCTION test_bytea_to_text; +DROP FUNCTION test_text_to_bytea; +-- substring slow path: multi-byte escape char vs. multi-byte pattern char. +SELECT SUBSTRING('a' SIMILAR U&'\00AC' ESCAPE U&'\00A7'); + substring +----------- + +(1 row) + +-- Levenshtein distance metric: exercise character length cache. +SELECT U&"real\00A7_name" FROM (select 1) AS x(real_name); +ERROR: column "real§_name" does not exist +LINE 1: SELECT U&"real\00A7_name" FROM (select 1) AS x(real_name); + ^ +HINT: Perhaps you meant to reference the column "x.real_name". +-- JSON errcontext: truncate long data. +SELECT repeat(U&'\00A7', 30)::json; +ERROR: invalid input syntax for type json +DETAIL: Token "§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§" is invalid. +CONTEXT: JSON data, line 1: ...§§§§§§§§§§§§§§§§§§§§§§§§ diff --git a/src/test/regress/expected/encoding_1.out b/src/test/regress/expected/encoding_1.out new file mode 100644 index 00000000000..a5b02090901 --- /dev/null +++ b/src/test/regress/expected/encoding_1.out @@ -0,0 +1,4 @@ +/* skip test if not UTF8 server encoding */ +SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset +\if :skip_test +\quit diff --git a/src/test/regress/expected/euc_kr.out b/src/test/regress/expected/euc_kr.out new file mode 100644 index 00000000000..7a61c89a43a --- /dev/null +++ b/src/test/regress/expected/euc_kr.out @@ -0,0 +1,16 @@ +-- This test is about EUC_KR encoding, chosen as perhaps the most prevalent +-- non-UTF8, multibyte encoding as of 2026-01. Since UTF8 can represent all +-- of EUC_KR, also run the test in UTF8. +SELECT getdatabaseencoding() NOT IN ('EUC_KR', 'UTF8') AS skip_test \gset +\if :skip_test +\quit +\endif +-- Exercise is_multibyte_char_in_char (non-UTF8) slow path. +SELECT POSITION( + convert_from('\xbcf6c7d0', 'EUC_KR') IN + convert_from('\xb0fac7d02c20bcf6c7d02c20b1e2bcfa2c20bbee', 'EUC_KR')); + position +---------- + 5 +(1 row) + diff --git a/src/test/regress/expected/euc_kr_1.out b/src/test/regress/expected/euc_kr_1.out new file mode 100644 index 00000000000..faaac5d6355 --- /dev/null +++ b/src/test/regress/expected/euc_kr_1.out @@ -0,0 +1,6 @@ +-- This test is about EUC_KR encoding, chosen as perhaps the most prevalent +-- non-UTF8, multibyte encoding as of 2026-01. Since UTF8 can represent all +-- of EUC_KR, also run the test in UTF8. +SELECT getdatabaseencoding() NOT IN ('EUC_KR', 'UTF8') AS skip_test \gset +\if :skip_test +\quit diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule index c54d9cb1d0e..554a2afadc3 100644 --- a/src/test/regress/parallel_schedule +++ b/src/test/regress/parallel_schedule @@ -33,7 +33,7 @@ test: strings numerology point lseg line box path polygon circle date time timet # geometry depends on point, lseg, line, box, path, polygon, circle # horology depends on date, time, timetz, timestamp, timestamptz, interval # ---------- -test: geometry horology tstypes regex type_sanity opr_sanity misc_sanity comments expressions unicode xid mvcc database +test: geometry horology tstypes regex type_sanity opr_sanity misc_sanity comments expressions unicode xid mvcc database encoding euc_kr # ---------- # Load huge amounts of data diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c index 580fddf2cec..e7cdb3acee9 100644 --- a/src/test/regress/regress.c +++ b/src/test/regress/regress.c @@ -1282,6 +1282,145 @@ test_enc_conversion(PG_FUNCTION_ARGS) PG_RETURN_DATUM(HeapTupleGetDatum(tuple)); } +/* Convert bytea to text without validation for corruption tests from SQL. */ +PG_FUNCTION_INFO_V1(test_bytea_to_text); +Datum +test_bytea_to_text(PG_FUNCTION_ARGS) +{ + PG_RETURN_TEXT_P(PG_GETARG_BYTEA_PP(0)); +} + +/* And the reverse. */ +PG_FUNCTION_INFO_V1(test_text_to_bytea); +Datum +test_text_to_bytea(PG_FUNCTION_ARGS) +{ + PG_RETURN_BYTEA_P(PG_GETARG_TEXT_PP(0)); +} + +/* Corruption tests in C. */ +PG_FUNCTION_INFO_V1(test_mblen_func); +Datum +test_mblen_func(PG_FUNCTION_ARGS) +{ + const char *func = text_to_cstring(PG_GETARG_BYTEA_PP(0)); + const char *encoding = text_to_cstring(PG_GETARG_BYTEA_PP(1)); + text *string = PG_GETARG_BYTEA_PP(2); + int offset = PG_GETARG_INT32(3); + const char *data = VARDATA_ANY(string); + size_t size = VARSIZE_ANY_EXHDR(string); + int result = 0; + + if (strcmp(func, "pg_mblen_unbounded") == 0) + result = pg_mblen_unbounded(data + offset); + else if (strcmp(func, "pg_mblen_cstr") == 0) + result = pg_mblen_cstr(data + offset); + else if (strcmp(func, "pg_mblen_with_len") == 0) + result = pg_mblen_with_len(data + offset, size - offset); + else if (strcmp(func, "pg_mblen_range") == 0) + result = pg_mblen_range(data + offset, data + size); + else if (strcmp(func, "pg_encoding_mblen") == 0) + result = pg_encoding_mblen(pg_char_to_encoding(encoding), data + offset); + else + elog(ERROR, "unknown function"); + + PG_RETURN_INT32(result); +} + +PG_FUNCTION_INFO_V1(test_text_to_wchars); +Datum +test_text_to_wchars(PG_FUNCTION_ARGS) +{ + const char *encoding_name = text_to_cstring(PG_GETARG_BYTEA_PP(0)); + text *string = PG_GETARG_TEXT_PP(1); + const char *data = VARDATA_ANY(string); + size_t size = VARSIZE_ANY_EXHDR(string); + pg_wchar *wchars = palloc(sizeof(pg_wchar) * (size + 1)); + Datum *datums; + int wlen; + int encoding; + + encoding = pg_char_to_encoding(encoding_name); + if (encoding < 0) + elog(ERROR, "unknown encoding name: %s", encoding_name); + + if (size > 0) + { + datums = palloc(sizeof(Datum) * size); + wlen = pg_encoding_mb2wchar_with_len(encoding, + data, + wchars, + size); + Assert(wlen >= 0); + Assert(wlen <= size); + Assert(wchars[wlen] == 0); + + for (int i = 0; i < wlen; ++i) + datums[i] = UInt32GetDatum(wchars[i]); + } + else + { + datums = NULL; + wlen = 0; + } + + PG_RETURN_ARRAYTYPE_P(construct_array_builtin(datums, wlen, INT4OID)); +} + +PG_FUNCTION_INFO_V1(test_wchars_to_text); +Datum +test_wchars_to_text(PG_FUNCTION_ARGS) +{ + const char *encoding_name = text_to_cstring(PG_GETARG_BYTEA_PP(0)); + ArrayType *array = PG_GETARG_ARRAYTYPE_P(1); + Datum *datums; + bool *nulls; + char *mb; + text *result; + int wlen; + int bytes; + int encoding; + + encoding = pg_char_to_encoding(encoding_name); + if (encoding < 0) + elog(ERROR, "unknown encoding name: %s", encoding_name); + + deconstruct_array_builtin(array, INT4OID, &datums, &nulls, &wlen); + + if (wlen > 0) + { + pg_wchar *wchars = palloc(sizeof(pg_wchar) * wlen); + + for (int i = 0; i < wlen; ++i) + { + if (nulls[i]) + elog(ERROR, "unexpected NULL in array"); + wchars[i] = DatumGetInt32(datums[i]); + } + + mb = palloc(pg_encoding_max_length(encoding) * wlen + 1); + bytes = pg_encoding_wchar2mb_with_len(encoding, wchars, mb, wlen); + } + else + { + mb = ""; + bytes = 0; + } + + result = palloc(bytes + VARHDRSZ); + SET_VARSIZE(result, bytes + VARHDRSZ); + memcpy(VARDATA(result), mb, bytes); + + PG_RETURN_TEXT_P(result); +} + +PG_FUNCTION_INFO_V1(test_valid_server_encoding); +Datum +test_valid_server_encoding(PG_FUNCTION_ARGS) +{ + return pg_valid_server_encoding(text_to_cstring(PG_GETARG_TEXT_PP(0))); +} + /* Provide SQL access to IsBinaryCoercible() */ PG_FUNCTION_INFO_V1(binary_coercible); Datum diff --git a/src/test/regress/sql/encoding.sql b/src/test/regress/sql/encoding.sql new file mode 100644 index 00000000000..b9543c0cb32 --- /dev/null +++ b/src/test/regress/sql/encoding.sql @@ -0,0 +1,228 @@ +/* skip test if not UTF8 server encoding */ +SELECT getdatabaseencoding() <> 'UTF8' AS skip_test \gset +\if :skip_test +\quit +\endif + +\getenv libdir PG_LIBDIR +\getenv dlsuffix PG_DLSUFFIX + +\set regresslib :libdir '/regress' :dlsuffix + +CREATE FUNCTION test_bytea_to_text(bytea) RETURNS text + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_text_to_bytea(text) RETURNS bytea + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_mblen_func(text, text, text, int) RETURNS int + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_text_to_wchars(text, text) RETURNS int[] + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_wchars_to_text(text, int[]) RETURNS text + AS :'regresslib' LANGUAGE C STRICT; +CREATE FUNCTION test_valid_server_encoding(text) RETURNS boolean + AS :'regresslib' LANGUAGE C STRICT; + + +CREATE TABLE regress_encoding(good text, truncated text, with_nul text, truncated_with_nul text); +INSERT INTO regress_encoding +VALUES ('café', + 'caf' || test_bytea_to_text('\xc3'), + 'café' || test_bytea_to_text('\x00') || 'dcba', + 'caf' || test_bytea_to_text('\xc300') || 'dcba'); + +SELECT good, truncated, with_nul FROM regress_encoding; + +SELECT length(good) FROM regress_encoding; +SELECT substring(good, 3, 1) FROM regress_encoding; +SELECT substring(good, 4, 1) FROM regress_encoding; +SELECT regexp_replace(good, '^caf(.)$', '\1') FROM regress_encoding; +SELECT reverse(good) FROM regress_encoding; + +-- invalid short mb character = error +SELECT length(truncated) FROM regress_encoding; +SELECT substring(truncated, 1, 1) FROM regress_encoding; +SELECT reverse(truncated) FROM regress_encoding; +-- invalid short mb character = silently dropped +SELECT regexp_replace(truncated, '^caf(.)$', '\1') FROM regress_encoding; + +-- PostgreSQL doesn't allow strings to contain NUL. If a corrupted string +-- contains NUL at a character boundary position, some functions treat it as a +-- character while others treat it as a terminator, as implementation details. + +-- NUL = terminator +SELECT length(with_nul) FROM regress_encoding; +SELECT substring(with_nul, 3, 1) FROM regress_encoding; +SELECT substring(with_nul, 4, 1) FROM regress_encoding; +SELECT substring(with_nul, 5, 1) FROM regress_encoding; +SELECT convert_to(substring(with_nul, 5, 1), 'UTF8') FROM regress_encoding; +SELECT regexp_replace(with_nul, '^caf(.)$', '\1') FROM regress_encoding; +-- NUL = character +SELECT with_nul, reverse(with_nul), reverse(reverse(with_nul)) FROM regress_encoding; + +-- If a corrupted string contains NUL in the tail bytes of a multibyte +-- character (invalid in all encodings), it is considered part of the +-- character for length purposes. An error will only be raised in code paths +-- that convert or verify encodings. + +SELECT length(truncated_with_nul) FROM regress_encoding; +SELECT substring(truncated_with_nul, 3, 1) FROM regress_encoding; +SELECT substring(truncated_with_nul, 4, 1) FROM regress_encoding; +SELECT convert_to(substring(truncated_with_nul, 4, 1), 'UTF8') FROM regress_encoding; +SELECT substring(truncated_with_nul, 5, 1) FROM regress_encoding; +SELECT regexp_replace(truncated_with_nul, '^caf(.)dcba$', '\1') = test_bytea_to_text('\xc300') FROM regress_encoding; +SELECT reverse(truncated_with_nul) FROM regress_encoding; + +-- unbounded: sequence would overrun the string! +SELECT test_mblen_func('pg_mblen_unbounded', 'UTF8', truncated, 3) +FROM regress_encoding; + +-- condition detected when using the length/range variants +SELECT test_mblen_func('pg_mblen_with_len', 'UTF8', truncated, 3) +FROM regress_encoding; +SELECT test_mblen_func('pg_mblen_range', 'UTF8', truncated, 3) +FROM regress_encoding; + +-- unbounded: sequence would overrun the string, if the terminator were really +-- the end of it +SELECT test_mblen_func('pg_mblen_unbounded', 'UTF8', truncated_with_nul, 3) +FROM regress_encoding; +SELECT test_mblen_func('pg_encoding_mblen', 'GB18030', truncated_with_nul, 3) +FROM regress_encoding; + +-- condition detected when using the cstr variants +SELECT test_mblen_func('pg_mblen_cstr', 'UTF8', truncated_with_nul, 3) +FROM regress_encoding; + +DROP TABLE regress_encoding; + +-- mb<->wchar conversions +CREATE FUNCTION test_encoding(encoding text, description text, input bytea) +RETURNS VOID LANGUAGE plpgsql AS +$$ +DECLARE + prefix text; + len int; + wchars int[]; + round_trip bytea; + result text; +BEGIN + prefix := rpad(encoding || ' ' || description || ':', 28); + + -- XXX could also test validation, length functions and include client + -- only encodings with these test cases + + IF test_valid_server_encoding(encoding) THEN + wchars := test_text_to_wchars(encoding, test_bytea_to_text(input)); + round_trip = test_text_to_bytea(test_wchars_to_text(encoding, wchars)); + if input = round_trip then + result := 'OK'; + elsif length(input) > length(round_trip) and round_trip = substr(input, 1, length(round_trip)) then + result := 'truncated'; + else + result := 'failed'; + end if; + RAISE NOTICE '% % -> % -> % = %', prefix, input, wchars, round_trip, result; + END IF; +END; +$$; +-- No validation is done on the encoding itself, just the length to avoid +-- overruns, so some of the byte sequences below are bogus. They cover +-- all code branches, server encodings only for now. +CREATE TABLE encoding_tests (encoding text, description text, input bytea); +INSERT INTO encoding_tests VALUES + -- LATIN1, other single-byte encodings + ('LATIN1', 'ASCII', 'a'), + ('LATIN1', 'extended', '\xe9'), + -- EUC_JP, EUC_JIS_2004, EUR_KR (for the purposes of wchar conversion): + -- 2 8e (CS2, not used by EUR_KR but arbitrarily considered to have EUC_JP length) + -- 3 8f (CS3, not used by EUR_KR but arbitrarily considered to have EUC_JP length) + -- 2 80..ff (CS1) + ('EUC_JP', 'ASCII', 'a'), + ('EUC_JP', 'CS1, short', '\x80'), + ('EUC_JP', 'CS1', '\x8002'), + ('EUC_JP', 'CS2, short', '\x8e'), + ('EUC_JP', 'CS2', '\x8e02'), + ('EUC_JP', 'CS3, short', '\x8f'), + ('EUC_JP', 'CS3, short', '\x8f02'), + ('EUC_JP', 'CS3', '\x8f0203'), + -- EUC_CN + -- 3 8e (CS2, not used but arbitrarily considered to have length 3) + -- 3 8f (CS3, not used but arbitrarily considered to have length 3) + -- 2 80..ff (CS1) + ('EUC_CN', 'ASCII', 'a'), + ('EUC_CN', 'CS1, short', '\x80'), + ('EUC_CN', 'CS1', '\x8002'), + ('EUC_CN', 'CS2, short', '\x8e'), + ('EUC_CN', 'CS2, short', '\x8e02'), + ('EUC_CN', 'CS2', '\x8e0203'), + ('EUC_CN', 'CS3, short', '\x8f'), + ('EUC_CN', 'CS3, short', '\x8f02'), + ('EUC_CN', 'CS3', '\x8f0203'), + -- EUC_TW: + -- 4 8e (CS2) + -- 3 8f (CS3, not used but arbitrarily considered to have length 3) + -- 2 80..ff (CS1) + ('EUC_TW', 'ASCII', 'a'), + ('EUC_TW', 'CS1, short', '\x80'), + ('EUC_TW', 'CS1', '\x8002'), + ('EUC_TW', 'CS2, short', '\x8e'), + ('EUC_TW', 'CS2, short', '\x8e02'), + ('EUC_TW', 'CS2, short', '\x8e0203'), + ('EUC_TW', 'CS2', '\x8e020304'), + ('EUC_TW', 'CS3, short', '\x8f'), + ('EUC_TW', 'CS3, short', '\x8f02'), + ('EUC_TW', 'CS3', '\x8f0203'), + -- UTF8 + -- 2 c0..df + -- 3 e0..ef + -- 4 f0..f7 (but maximum real codepoint U+10ffff has f4) + -- 5 f8..fb (not supported) + -- 6 fc..fd (not supported) + ('UTF8', 'ASCII', 'a'), + ('UTF8', '2 byte, short', '\xdf'), + ('UTF8', '2 byte', '\xdf82'), + ('UTF8', '3 byte, short', '\xef'), + ('UTF8', '3 byte, short', '\xef82'), + ('UTF8', '3 byte', '\xef8283'), + ('UTF8', '4 byte, short', '\xf7'), + ('UTF8', '4 byte, short', '\xf782'), + ('UTF8', '4 byte, short', '\xf78283'), + ('UTF8', '4 byte', '\xf7828384'), + ('UTF8', '5 byte, unsupported', '\xfb'), + ('UTF8', '5 byte, unsupported', '\xfb82'), + ('UTF8', '5 byte, unsupported', '\xfb8283'), + ('UTF8', '5 byte, unsupported', '\xfb828384'), + ('UTF8', '5 byte, unsupported', '\xfb82838485'), + ('UTF8', '6 byte, unsupported', '\xfd'), + ('UTF8', '6 byte, unsupported', '\xfd82'), + ('UTF8', '6 byte, unsupported', '\xfd8283'), + ('UTF8', '6 byte, unsupported', '\xfd828384'), + ('UTF8', '6 byte, unsupported', '\xfd82838485'), + ('UTF8', '6 byte, unsupported', '\xfd8283848586'), + -- MULE_INTERNAL + -- 2 81..8d LC1 + -- 3 90..99 LC2 + ('MULE_INTERNAL', 'ASCII', 'a'), + ('MULE_INTERNAL', 'LC1, short', '\x81'), + ('MULE_INTERNAL', 'LC1', '\x8182'), + ('MULE_INTERNAL', 'LC2, short', '\x90'), + ('MULE_INTERNAL', 'LC2, short', '\x9082'), + ('MULE_INTERNAL', 'LC2', '\x908283'); + +SELECT COUNT(test_encoding(encoding, description, input)) > 0 +FROM encoding_tests; + +DROP TABLE encoding_tests; +DROP FUNCTION test_encoding; +DROP FUNCTION test_text_to_wchars; +DROP FUNCTION test_mblen_func; +DROP FUNCTION test_bytea_to_text; +DROP FUNCTION test_text_to_bytea; + + +-- substring slow path: multi-byte escape char vs. multi-byte pattern char. +SELECT SUBSTRING('a' SIMILAR U&'\00AC' ESCAPE U&'\00A7'); +-- Levenshtein distance metric: exercise character length cache. +SELECT U&"real\00A7_name" FROM (select 1) AS x(real_name); +-- JSON errcontext: truncate long data. +SELECT repeat(U&'\00A7', 30)::json; diff --git a/src/test/regress/sql/euc_kr.sql b/src/test/regress/sql/euc_kr.sql new file mode 100644 index 00000000000..1851b2a8c14 --- /dev/null +++ b/src/test/regress/sql/euc_kr.sql @@ -0,0 +1,12 @@ +-- This test is about EUC_KR encoding, chosen as perhaps the most prevalent +-- non-UTF8, multibyte encoding as of 2026-01. Since UTF8 can represent all +-- of EUC_KR, also run the test in UTF8. +SELECT getdatabaseencoding() NOT IN ('EUC_KR', 'UTF8') AS skip_test \gset +\if :skip_test +\quit +\endif + +-- Exercise is_multibyte_char_in_char (non-UTF8) slow path. +SELECT POSITION( + convert_from('\xbcf6c7d0', 'EUC_KR') IN + convert_from('\xb0fac7d02c20bcf6c7d02c20b1e2bcfa2c20bbee', 'EUC_KR')); From 8f8b1ffac063afb22e3a07bdc6ddcb048116cfbb Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Mon, 9 Feb 2026 06:14:47 -0800 Subject: [PATCH 87/94] Require PGP-decrypted text to pass encoding validation. pgp_sym_decrypt() and pgp_pub_decrypt() will raise such errors, while bytea variants will not. The existing "dat3" test decrypted to non-UTF8 text, so switch that query to bytea. The long-term intent is for type "text" to always be valid in the database encoding. pgcrypto has long been known as a source of exceptions to that intent, but a report about exploiting invalid values of type "text" brought this module to the forefront. This particular exception is straightforward to fix, with reasonable effect on user queries. Back-patch to v14 (all supported versions). Reported-by: Paul Gerste (as part of zeroday.cloud) Reported-by: Moritz Sanft (as part of zeroday.cloud) Author: shihao zhong Reviewed-by: cary huang Discussion: https://postgr.es/m/CAGRkXqRZyo0gLxPJqUsDqtWYBbgM14betsHiLRPj9mo2=z9VvA@mail.gmail.com Backpatch-through: 14 Security: CVE-2026-2006 --- contrib/pgcrypto/expected/pgp-decrypt.out | 23 ++++++++++++++++++++- contrib/pgcrypto/expected/pgp-decrypt_1.out | 23 ++++++++++++++++++++- contrib/pgcrypto/pgp-pgsql.c | 2 ++ contrib/pgcrypto/sql/pgp-decrypt.sql | 22 +++++++++++++++++++- 4 files changed, 67 insertions(+), 3 deletions(-) diff --git a/contrib/pgcrypto/expected/pgp-decrypt.out b/contrib/pgcrypto/expected/pgp-decrypt.out index eb049ba9d44..1db89e8c00a 100644 --- a/contrib/pgcrypto/expected/pgp-decrypt.out +++ b/contrib/pgcrypto/expected/pgp-decrypt.out @@ -315,7 +315,7 @@ SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== \xda39a3ee5e6b4b0d3255bfef95601890afd80709 (1 row) -select digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt_bytea(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat3.aes.sha1.mdc.s2k3.z0 @@ -387,6 +387,27 @@ ERROR: Wrong key or corrupt data select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); NOTICE: dbg: parse_literal_data: data type=b ERROR: Not text data +-- NUL byte in text decrypt. Ciphertext source: +-- printf 'a\x00\xc' | gpg --homedir /nonexistent --textmode \ +-- --personal-cipher-preferences aes --no-emit-version --batch \ +-- --symmetric --passphrase key --armor +do $$ +begin + perform pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- + +jA0EBwMCLd9OvySmZNZg0jgBe7vGTmnje5HGXI+zsIQ99WPZu4Zs/P6pQcZ+HZ4n +SZQHOfE8tagjB6Rqow82QpSBiOfWn4qjhQ== +=c2cz +-----END PGP MESSAGE----- +'), 'key', 'debug=1'); +exception when others then + raise '%', + regexp_replace(sqlerrm, 'encoding "[^"]*"', 'encoding [REDACTED]'); +end +$$; +ERROR: invalid byte sequence for encoding [REDACTED]: 0x00 +CONTEXT: PL/pgSQL function inline_code_block line 12 at RAISE -- Decryption with a certain incorrect key yields an apparent BZip2-compressed -- plaintext. Ciphertext source: iterative pgp_sym_encrypt('secret', 'key') -- until the random prefix gave rise to that property. diff --git a/contrib/pgcrypto/expected/pgp-decrypt_1.out b/contrib/pgcrypto/expected/pgp-decrypt_1.out index 80a4c48613d..d214e0bc0e0 100644 --- a/contrib/pgcrypto/expected/pgp-decrypt_1.out +++ b/contrib/pgcrypto/expected/pgp-decrypt_1.out @@ -311,7 +311,7 @@ SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== \xda39a3ee5e6b4b0d3255bfef95601890afd80709 (1 row) -select digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt_bytea(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat3.aes.sha1.mdc.s2k3.z0 @@ -383,6 +383,27 @@ ERROR: Wrong key or corrupt data select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); NOTICE: dbg: parse_literal_data: data type=b ERROR: Not text data +-- NUL byte in text decrypt. Ciphertext source: +-- printf 'a\x00\xc' | gpg --homedir /nonexistent --textmode \ +-- --personal-cipher-preferences aes --no-emit-version --batch \ +-- --symmetric --passphrase key --armor +do $$ +begin + perform pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- + +jA0EBwMCLd9OvySmZNZg0jgBe7vGTmnje5HGXI+zsIQ99WPZu4Zs/P6pQcZ+HZ4n +SZQHOfE8tagjB6Rqow82QpSBiOfWn4qjhQ== +=c2cz +-----END PGP MESSAGE----- +'), 'key', 'debug=1'); +exception when others then + raise '%', + regexp_replace(sqlerrm, 'encoding "[^"]*"', 'encoding [REDACTED]'); +end +$$; +ERROR: invalid byte sequence for encoding [REDACTED]: 0x00 +CONTEXT: PL/pgSQL function inline_code_block line 12 at RAISE -- Decryption with a certain incorrect key yields an apparent BZip2-compressed -- plaintext. Ciphertext source: iterative pgp_sym_encrypt('secret', 'key') -- until the random prefix gave rise to that property. diff --git a/contrib/pgcrypto/pgp-pgsql.c b/contrib/pgcrypto/pgp-pgsql.c index 0536bfb8921..cf315b126b7 100644 --- a/contrib/pgcrypto/pgp-pgsql.c +++ b/contrib/pgcrypto/pgp-pgsql.c @@ -631,6 +631,7 @@ pgp_sym_decrypt_text(PG_FUNCTION_ARGS) arg = PG_GETARG_BYTEA_PP(2); res = decrypt_internal(0, 1, data, key, NULL, arg); + pg_verifymbstr(VARDATA_ANY(res), VARSIZE_ANY_EXHDR(res), false); PG_FREE_IF_COPY(data, 0); PG_FREE_IF_COPY(key, 1); @@ -732,6 +733,7 @@ pgp_pub_decrypt_text(PG_FUNCTION_ARGS) arg = PG_GETARG_BYTEA_PP(3); res = decrypt_internal(1, 1, data, key, psw, arg); + pg_verifymbstr(VARDATA_ANY(res), VARSIZE_ANY_EXHDR(res), false); PG_FREE_IF_COPY(data, 0); PG_FREE_IF_COPY(key, 1); diff --git a/contrib/pgcrypto/sql/pgp-decrypt.sql b/contrib/pgcrypto/sql/pgp-decrypt.sql index 49a0267bbcb..2fe498f2f02 100644 --- a/contrib/pgcrypto/sql/pgp-decrypt.sql +++ b/contrib/pgcrypto/sql/pgp-decrypt.sql @@ -228,7 +228,7 @@ SaV9L04ky1qECNDx3XjnoKLC+H7IOQ== -----END PGP MESSAGE----- '), '0123456789abcdefghij'), 'sha1'); -select digest(pgp_sym_decrypt(dearmor(' +select digest(pgp_sym_decrypt_bytea(dearmor(' -----BEGIN PGP MESSAGE----- Comment: dat3.aes.sha1.mdc.s2k3.z0 @@ -282,6 +282,26 @@ VsxxqLSPzNLAeIspJk5G -- Routine text/binary mismatch. select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); +-- NUL byte in text decrypt. Ciphertext source: +-- printf 'a\x00\xc' | gpg --homedir /nonexistent --textmode \ +-- --personal-cipher-preferences aes --no-emit-version --batch \ +-- --symmetric --passphrase key --armor +do $$ +begin + perform pgp_sym_decrypt(dearmor(' +-----BEGIN PGP MESSAGE----- + +jA0EBwMCLd9OvySmZNZg0jgBe7vGTmnje5HGXI+zsIQ99WPZu4Zs/P6pQcZ+HZ4n +SZQHOfE8tagjB6Rqow82QpSBiOfWn4qjhQ== +=c2cz +-----END PGP MESSAGE----- +'), 'key', 'debug=1'); +exception when others then + raise '%', + regexp_replace(sqlerrm, 'encoding "[^"]*"', 'encoding [REDACTED]'); +end +$$; + -- Decryption with a certain incorrect key yields an apparent BZip2-compressed -- plaintext. Ciphertext source: iterative pgp_sym_encrypt('secret', 'key') -- until the random prefix gave rise to that property. From 429aeaebd16d8c0e5356d7aa77d25c90b9794a6a Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 9 Feb 2026 09:57:44 -0500 Subject: [PATCH 88/94] Guard against unexpected dimensions of oidvector/int2vector. These data types are represented like full-fledged arrays, but functions that deal specifically with these types assume that the array is 1-dimensional and contains no nulls. However, there are cast pathways that allow general oid[] or int2[] arrays to be cast to these types, allowing these expectations to be violated. This can be exploited to cause server memory disclosure or SIGSEGV. Fix by installing explicit checks in functions that accept these types. Reported-by: Altan Birler Author: Tom Lane Reviewed-by: Noah Misch Security: CVE-2026-2003 Backpatch-through: 14 --- src/backend/access/hash/hashfunc.c | 2 ++ src/backend/access/nbtree/nbtcompare.c | 3 +++ src/backend/utils/adt/format_type.c | 6 ++++- src/backend/utils/adt/int.c | 31 +++++++++++++++++++++++++- src/backend/utils/adt/oid.c | 31 +++++++++++++++++++++++++- src/include/utils/builtins.h | 1 + src/test/regress/expected/arrays.out | 5 +++++ src/test/regress/sql/arrays.sql | 4 ++++ 8 files changed, 80 insertions(+), 3 deletions(-) diff --git a/src/backend/access/hash/hashfunc.c b/src/backend/access/hash/hashfunc.c index f890f79ee18..e2455e89375 100644 --- a/src/backend/access/hash/hashfunc.c +++ b/src/backend/access/hash/hashfunc.c @@ -234,6 +234,7 @@ hashoidvector(PG_FUNCTION_ARGS) { oidvector *key = (oidvector *) PG_GETARG_POINTER(0); + check_valid_oidvector(key); return hash_any((unsigned char *) key->values, key->dim1 * sizeof(Oid)); } @@ -242,6 +243,7 @@ hashoidvectorextended(PG_FUNCTION_ARGS) { oidvector *key = (oidvector *) PG_GETARG_POINTER(0); + check_valid_oidvector(key); return hash_any_extended((unsigned char *) key->values, key->dim1 * sizeof(Oid), PG_GETARG_INT64(1)); diff --git a/src/backend/access/nbtree/nbtcompare.c b/src/backend/access/nbtree/nbtcompare.c index 7e18e2fc62f..5b080fa89b5 100644 --- a/src/backend/access/nbtree/nbtcompare.c +++ b/src/backend/access/nbtree/nbtcompare.c @@ -299,6 +299,9 @@ btoidvectorcmp(PG_FUNCTION_ARGS) oidvector *b = (oidvector *) PG_GETARG_POINTER(1); int i; + check_valid_oidvector(a); + check_valid_oidvector(b); + /* We arbitrarily choose to sort first by vector length */ if (a->dim1 != b->dim1) PG_RETURN_INT32(a->dim1 - b->dim1); diff --git a/src/backend/utils/adt/format_type.c b/src/backend/utils/adt/format_type.c index 2918fdbfb65..9d6300d1efc 100644 --- a/src/backend/utils/adt/format_type.c +++ b/src/backend/utils/adt/format_type.c @@ -444,11 +444,15 @@ oidvectortypes(PG_FUNCTION_ARGS) { oidvector *oidArray = (oidvector *) PG_GETARG_POINTER(0); char *result; - int numargs = oidArray->dim1; + int numargs; int num; size_t total; size_t left; + /* validate input before fetching dim1 */ + check_valid_oidvector(oidArray); + numargs = oidArray->dim1; + total = 20 * numargs + 1; result = palloc(total); result[0] = '\0'; diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c index ff1f46e2b42..41d9cbcdd60 100644 --- a/src/backend/utils/adt/int.c +++ b/src/backend/utils/adt/int.c @@ -134,6 +134,30 @@ buildint2vector(const int16 *int2s, int n) return result; } +/* + * validate that an array object meets the restrictions of int2vector + * + * We need this because there are pathways by which a general int2[] array can + * be cast to int2vector, allowing the type's restrictions to be violated. + * All code that receives an int2vector as a SQL parameter should check this. + */ +static void +check_valid_int2vector(const int2vector *int2Array) +{ + /* + * We insist on ndim == 1 and dataoffset == 0 (that is, no nulls) because + * otherwise the array's layout will not be what calling code expects. We + * needn't be picky about the index lower bound though. Checking elemtype + * is just paranoia. + */ + if (int2Array->ndim != 1 || + int2Array->dataoffset != 0 || + int2Array->elemtype != INT2OID) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("array is not a valid int2vector"))); +} + /* * int2vectorin - converts "num num ..." to internal form */ @@ -207,10 +231,14 @@ int2vectorout(PG_FUNCTION_ARGS) { int2vector *int2Array = (int2vector *) PG_GETARG_POINTER(0); int num, - nnums = int2Array->dim1; + nnums; char *rp; char *result; + /* validate input before fetching dim1 */ + check_valid_int2vector(int2Array); + nnums = int2Array->dim1; + /* assumes sign, 5 digits, ' ' */ rp = result = (char *) palloc(nnums * 7 + 1); for (num = 0; num < nnums; num++) @@ -271,6 +299,7 @@ int2vectorrecv(PG_FUNCTION_ARGS) Datum int2vectorsend(PG_FUNCTION_ARGS) { + /* We don't do check_valid_int2vector, since array_send won't care */ return array_send(fcinfo); } diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c index 7de31d73d33..a0989455efb 100644 --- a/src/backend/utils/adt/oid.c +++ b/src/backend/utils/adt/oid.c @@ -187,6 +187,30 @@ buildoidvector(const Oid *oids, int n) return result; } +/* + * validate that an array object meets the restrictions of oidvector + * + * We need this because there are pathways by which a general oid[] array can + * be cast to oidvector, allowing the type's restrictions to be violated. + * All code that receives an oidvector as a SQL parameter should check this. + */ +void +check_valid_oidvector(const oidvector *oidArray) +{ + /* + * We insist on ndim == 1 and dataoffset == 0 (that is, no nulls) because + * otherwise the array's layout will not be what calling code expects. We + * needn't be picky about the index lower bound though. Checking elemtype + * is just paranoia. + */ + if (oidArray->ndim != 1 || + oidArray->dataoffset != 0 || + oidArray->elemtype != OIDOID) + ereport(ERROR, + (errcode(ERRCODE_DATATYPE_MISMATCH), + errmsg("array is not a valid oidvector"))); +} + /* * oidvectorin - converts "num num ..." to internal form */ @@ -235,10 +259,14 @@ oidvectorout(PG_FUNCTION_ARGS) { oidvector *oidArray = (oidvector *) PG_GETARG_POINTER(0); int num, - nnums = oidArray->dim1; + nnums; char *rp; char *result; + /* validate input before fetching dim1 */ + check_valid_oidvector(oidArray); + nnums = oidArray->dim1; + /* assumes sign, 10 digits, ' ' */ rp = result = (char *) palloc(nnums * 12 + 1); for (num = 0; num < nnums; num++) @@ -301,6 +329,7 @@ oidvectorrecv(PG_FUNCTION_ARGS) Datum oidvectorsend(PG_FUNCTION_ARGS) { + /* We don't do check_valid_oidvector, since array_send won't care */ return array_send(fcinfo); } diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index 221c3e6c3de..ec45fcaad02 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -56,6 +56,7 @@ extern char *pg_ultostr(char *str, uint32 value); /* oid.c */ extern oidvector *buildoidvector(const Oid *oids, int n); +extern void check_valid_oidvector(const oidvector *oidArray); extern Oid oidparse(Node *node); extern int oid_cmp(const void *p1, const void *p2); diff --git a/src/test/regress/expected/arrays.out b/src/test/regress/expected/arrays.out index 281aa3769c4..695481fceef 100644 --- a/src/test/regress/expected/arrays.out +++ b/src/test/regress/expected/arrays.out @@ -1556,6 +1556,11 @@ select '[0:1]={1.1,2.2}'::float8[]; (1 row) -- all of the above should be accepted +-- some day we might allow these cases, but for now they're errors: +select array[]::oidvector; +ERROR: array is not a valid oidvector +select array[]::int2vector; +ERROR: array is not a valid int2vector -- tests for array aggregates CREATE TEMP TABLE arraggtest ( f1 INT[], f2 TEXT[][], f3 FLOAT[]); INSERT INTO arraggtest (f1, f2, f3) VALUES diff --git a/src/test/regress/sql/arrays.sql b/src/test/regress/sql/arrays.sql index dd15d6174ef..c822133c1d8 100644 --- a/src/test/regress/sql/arrays.sql +++ b/src/test/regress/sql/arrays.sql @@ -491,6 +491,10 @@ select array[]::text[]; select '[0:1]={1.1,2.2}'::float8[]; -- all of the above should be accepted +-- some day we might allow these cases, but for now they're errors: +select array[]::oidvector; +select array[]::int2vector; + -- tests for array aggregates CREATE TEMP TABLE arraggtest ( f1 INT[], f2 TEXT[][], f3 FLOAT[]); From 3ecc84cce3c521894d86267df552a2d5f891a409 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 9 Feb 2026 10:02:23 -0500 Subject: [PATCH 89/94] Add a syscache on pg_extension.oid. An upcoming patch requires this cache so that it can track updates in the pg_extension catalog. So far though, the EXTENSIONOID cache only exists in v18 and up (see 490f869d9). We can add it in older branches without an ABI break, if we are careful not to disturb the numbering of existing syscache IDs. In v16 and before, that just requires adding the new ID at the end of the hand-assigned enum list, ignoring our convention about alphabetizing the IDs. But in v17, genbki.pl enforces alphabetical order of the IDs listed in MAKE_SYSCACHE macros. We can fake it out by calling the new cache ZEXTENSIONOID. Note that adding a syscache does change the required contents of the relcache init file (pg_internal.init). But that isn't problematic since we blow those away at postmaster start for other reasons. Author: Tom Lane Reviewed-by: Noah Misch Security: CVE-2026-2004 Backpatch-through: 14-17 --- src/backend/utils/cache/syscache.c | 13 +++++++++++++ src/include/utils/syscache.h | 6 ++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index 44a65a15f6c..da92610522a 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -39,6 +39,7 @@ #include "catalog/pg_description.h" #include "catalog/pg_enum.h" #include "catalog/pg_event_trigger.h" +#include "catalog/pg_extension.h" #include "catalog/pg_foreign_data_wrapper.h" #include "catalog/pg_foreign_server.h" #include "catalog/pg_foreign_table.h" @@ -1040,6 +1041,18 @@ static const struct cachedesc cacheinfo[] = { 0 }, 2 + }, + /* intentionally out of alphabetical order, to avoid an ABI break: */ + {ExtensionRelationId, /* EXTENSIONOID */ + ExtensionOidIndexId, + 1, + { + Anum_pg_extension_oid, + 0, + 0, + 0 + }, + 2 } }; diff --git a/src/include/utils/syscache.h b/src/include/utils/syscache.h index 8860a72b711..e0bafb58ead 100644 --- a/src/include/utils/syscache.h +++ b/src/include/utils/syscache.h @@ -113,9 +113,11 @@ enum SysCacheIdentifier TYPENAMENSP, TYPEOID, USERMAPPINGOID, - USERMAPPINGUSERSERVER + USERMAPPINGUSERSERVER, + /* intentionally out of alphabetical order, to avoid an ABI break: */ + EXTENSIONOID -#define SysCacheSize (USERMAPPINGUSERSERVER + 1) +#define SysCacheSize (EXTENSIONOID + 1) }; extern void InitCatalogCache(void); From b764b26f2e0a0a57057f301ca87e6a604f5e708b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 9 Feb 2026 10:07:31 -0500 Subject: [PATCH 90/94] Require superuser to install a non-built-in selectivity estimator. Selectivity estimators come in two flavors: those that make specific assumptions about the data types they are working with, and those that don't. Most of the built-in estimators are of the latter kind and are meant to be safely attachable to any operator. If the operator does not behave as the estimator expects, you might get a poor estimate, but it won't crash. However, estimators that do make datatype assumptions can malfunction if they are attached to the wrong operator, since then the data they get from pg_statistic may not be of the type they expect. This can rise to the level of a security problem, even permitting arbitrary code execution by a user who has the ability to create SQL objects. To close this hole, establish a rule that built-in estimators are required to protect themselves against being called on the wrong type of data. It does not seem practical however to expect estimators in extensions to reach a similar level of security, at least not in the near term. Therefore, also establish a rule that superuser privilege is required to attach a non-built-in estimator to an operator. We expect that this restriction will have little negative impact on extensions, since estimators generally have to be written in C and thus superuser privilege is required to create them in the first place. This commit changes the privilege checks in CREATE/ALTER OPERATOR to enforce the rule about superuser privilege, and fixes a couple of built-in estimators that were making datatype assumptions without sufficiently checking that they're valid. Reported-by: Daniel Firer as part of zeroday.cloud Author: Tom Lane Reviewed-by: Noah Misch Security: CVE-2026-2004 Backpatch-through: 14 --- src/backend/commands/operatorcmds.c | 55 ++++++++++++++++++------ src/backend/tsearch/ts_selfuncs.c | 8 ++-- src/backend/utils/adt/network_selfuncs.c | 48 ++++++++++++++------- 3 files changed, 81 insertions(+), 30 deletions(-) diff --git a/src/backend/commands/operatorcmds.c b/src/backend/commands/operatorcmds.c index a5924d7d564..610963aeda1 100644 --- a/src/backend/commands/operatorcmds.c +++ b/src/backend/commands/operatorcmds.c @@ -274,7 +274,6 @@ ValidateRestrictionEstimator(List *restrictionName) { Oid typeId[4]; Oid restrictionOid; - AclResult aclresult; typeId[0] = INTERNALOID; /* PlannerInfo */ typeId[1] = OIDOID; /* operator OID */ @@ -290,11 +289,32 @@ ValidateRestrictionEstimator(List *restrictionName) errmsg("restriction estimator function %s must return type %s", NameListToString(restrictionName), "float8"))); - /* Require EXECUTE rights for the estimator */ - aclresult = pg_proc_aclcheck(restrictionOid, GetUserId(), ACL_EXECUTE); - if (aclresult != ACLCHECK_OK) - aclcheck_error(aclresult, OBJECT_FUNCTION, - NameListToString(restrictionName)); + /* + * If the estimator is not a built-in function, require superuser + * privilege to install it. This protects against using something that is + * not a restriction estimator or has hard-wired assumptions about what + * data types it is working with. (Built-in estimators are required to + * defend themselves adequately against unexpected data type choices, but + * it seems impractical to expect that of extensions' estimators.) + * + * If it is built-in, only require EXECUTE rights. + */ + if (restrictionOid >= FirstGenbkiObjectId) + { + if (!superuser()) + ereport(ERROR, + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("must be superuser to specify a non-built-in restriction estimator function"))); + } + else + { + AclResult aclresult; + + aclresult = pg_proc_aclcheck(restrictionOid, GetUserId(), ACL_EXECUTE); + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, OBJECT_FUNCTION, + NameListToString(restrictionName)); + } return restrictionOid; } @@ -310,7 +330,6 @@ ValidateJoinEstimator(List *joinName) Oid typeId[5]; Oid joinOid; Oid joinOid2; - AclResult aclresult; typeId[0] = INTERNALOID; /* PlannerInfo */ typeId[1] = OIDOID; /* operator OID */ @@ -348,11 +367,23 @@ ValidateJoinEstimator(List *joinName) errmsg("join estimator function %s must return type %s", NameListToString(joinName), "float8"))); - /* Require EXECUTE rights for the estimator */ - aclresult = pg_proc_aclcheck(joinOid, GetUserId(), ACL_EXECUTE); - if (aclresult != ACLCHECK_OK) - aclcheck_error(aclresult, OBJECT_FUNCTION, - NameListToString(joinName)); + /* privilege checks are the same as in ValidateRestrictionEstimator */ + if (joinOid >= FirstGenbkiObjectId) + { + if (!superuser()) + ereport(ERROR, + (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE), + errmsg("must be superuser to specify a non-built-in join estimator function"))); + } + else + { + AclResult aclresult; + + aclresult = pg_proc_aclcheck(joinOid, GetUserId(), ACL_EXECUTE); + if (aclresult != ACLCHECK_OK) + aclcheck_error(aclresult, OBJECT_FUNCTION, + NameListToString(joinName)); + } return joinOid; } diff --git a/src/backend/tsearch/ts_selfuncs.c b/src/backend/tsearch/ts_selfuncs.c index 8f2679f57e1..2cebeada253 100644 --- a/src/backend/tsearch/ts_selfuncs.c +++ b/src/backend/tsearch/ts_selfuncs.c @@ -109,12 +109,14 @@ tsmatchsel(PG_FUNCTION_ARGS) * OK, there's a Var and a Const we're dealing with here. We need the * Const to be a TSQuery, else we can't do anything useful. We have to * check this because the Var might be the TSQuery not the TSVector. + * + * Also check that the Var really is a TSVector, in case this estimator is + * mistakenly attached to some other operator. */ - if (((Const *) other)->consttype == TSQUERYOID) + if (((Const *) other)->consttype == TSQUERYOID && + vardata.vartype == TSVECTOROID) { /* tsvector @@ tsquery or the other way around */ - Assert(vardata.vartype == TSVECTOROID); - selec = tsquerysel(&vardata, ((Const *) other)->constvalue); } else diff --git a/src/backend/utils/adt/network_selfuncs.c b/src/backend/utils/adt/network_selfuncs.c index 49196376a81..1bfafb4b5ef 100644 --- a/src/backend/utils/adt/network_selfuncs.c +++ b/src/backend/utils/adt/network_selfuncs.c @@ -43,9 +43,9 @@ /* Maximum number of items to consider in join selectivity calculations */ #define MAX_CONSIDERED_ELEMS 1024 -static Selectivity networkjoinsel_inner(Oid operator, +static Selectivity networkjoinsel_inner(Oid operator, int opr_codenum, VariableStatData *vardata1, VariableStatData *vardata2); -static Selectivity networkjoinsel_semi(Oid operator, +static Selectivity networkjoinsel_semi(Oid operator, int opr_codenum, VariableStatData *vardata1, VariableStatData *vardata2); static Selectivity mcv_population(float4 *mcv_numbers, int mcv_nvalues); static Selectivity inet_hist_value_sel(Datum *values, int nvalues, @@ -82,6 +82,7 @@ networksel(PG_FUNCTION_ARGS) Oid operator = PG_GETARG_OID(1); List *args = (List *) PG_GETARG_POINTER(2); int varRelid = PG_GETARG_INT32(3); + int opr_codenum; VariableStatData vardata; Node *other; bool varonleft; @@ -95,6 +96,14 @@ networksel(PG_FUNCTION_ARGS) nullfrac; FmgrInfo proc; + /* + * Before all else, verify that the operator is one of the ones supported + * by this function, which in turn proves that the input datatypes are + * what we expect. Otherwise, attaching this selectivity function to some + * unexpected operator could cause trouble. + */ + opr_codenum = inet_opr_codenum(operator); + /* * If expression is not (variable op something) or (something op * variable), then punt and return a default estimate. @@ -150,13 +159,12 @@ networksel(PG_FUNCTION_ARGS) STATISTIC_KIND_HISTOGRAM, InvalidOid, ATTSTATSSLOT_VALUES)) { - int opr_codenum = inet_opr_codenum(operator); + int h_codenum; /* Commute if needed, so we can consider histogram to be on the left */ - if (!varonleft) - opr_codenum = -opr_codenum; + h_codenum = varonleft ? opr_codenum : -opr_codenum; non_mcv_selec = inet_hist_value_sel(hslot.values, hslot.nvalues, - constvalue, opr_codenum); + constvalue, h_codenum); free_attstatsslot(&hslot); } @@ -203,10 +211,19 @@ networkjoinsel(PG_FUNCTION_ARGS) #endif SpecialJoinInfo *sjinfo = (SpecialJoinInfo *) PG_GETARG_POINTER(4); double selec; + int opr_codenum; VariableStatData vardata1; VariableStatData vardata2; bool join_is_reversed; + /* + * Before all else, verify that the operator is one of the ones supported + * by this function, which in turn proves that the input datatypes are + * what we expect. Otherwise, attaching this selectivity function to some + * unexpected operator could cause trouble. + */ + opr_codenum = inet_opr_codenum(operator); + get_join_variables(root, args, sjinfo, &vardata1, &vardata2, &join_is_reversed); @@ -220,15 +237,18 @@ networkjoinsel(PG_FUNCTION_ARGS) * Selectivity for left/full join is not exactly the same as inner * join, but we neglect the difference, as eqjoinsel does. */ - selec = networkjoinsel_inner(operator, &vardata1, &vardata2); + selec = networkjoinsel_inner(operator, opr_codenum, + &vardata1, &vardata2); break; case JOIN_SEMI: case JOIN_ANTI: /* Here, it's important that we pass the outer var on the left. */ if (!join_is_reversed) - selec = networkjoinsel_semi(operator, &vardata1, &vardata2); + selec = networkjoinsel_semi(operator, opr_codenum, + &vardata1, &vardata2); else selec = networkjoinsel_semi(get_commutator(operator), + -opr_codenum, &vardata2, &vardata1); break; default: @@ -260,7 +280,7 @@ networkjoinsel(PG_FUNCTION_ARGS) * Also, MCV vs histogram selectivity is not neglected as in eqjoinsel_inner(). */ static Selectivity -networkjoinsel_inner(Oid operator, +networkjoinsel_inner(Oid operator, int opr_codenum, VariableStatData *vardata1, VariableStatData *vardata2) { Form_pg_statistic stats; @@ -273,7 +293,6 @@ networkjoinsel_inner(Oid operator, mcv2_exists = false, hist1_exists = false, hist2_exists = false; - int opr_codenum; int mcv1_length = 0, mcv2_length = 0; AttStatsSlot mcv1_slot; @@ -325,8 +344,6 @@ networkjoinsel_inner(Oid operator, memset(&hist2_slot, 0, sizeof(hist2_slot)); } - opr_codenum = inet_opr_codenum(operator); - /* * Calculate selectivity for MCV vs MCV matches. */ @@ -387,7 +404,7 @@ networkjoinsel_inner(Oid operator, * histogram selectivity for semi/anti join cases. */ static Selectivity -networkjoinsel_semi(Oid operator, +networkjoinsel_semi(Oid operator, int opr_codenum, VariableStatData *vardata1, VariableStatData *vardata2) { Form_pg_statistic stats; @@ -401,7 +418,6 @@ networkjoinsel_semi(Oid operator, mcv2_exists = false, hist1_exists = false, hist2_exists = false; - int opr_codenum; FmgrInfo proc; int i, mcv1_length = 0, @@ -455,7 +471,6 @@ networkjoinsel_semi(Oid operator, memset(&hist2_slot, 0, sizeof(hist2_slot)); } - opr_codenum = inet_opr_codenum(operator); fmgr_info(get_opcode(operator), &proc); /* Estimate number of input rows represented by RHS histogram. */ @@ -827,6 +842,9 @@ inet_semi_join_sel(Datum lhs_value, /* * Assign useful code numbers for the subnet inclusion/overlap operators * + * This will throw an error if the operator is not one of the ones we + * support in networksel() and networkjoinsel(). + * * Only inet_masklen_inclusion_cmp() and inet_hist_match_divider() depend * on the exact codes assigned here; but many other places in this file * know that they can negate a code to obtain the code for the commutator From deb464a40852b381320264a2249b6f7641227db0 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 9 Feb 2026 10:14:22 -0500 Subject: [PATCH 91/94] Harden _int_matchsel() against being attached to the wrong operator. While the preceding commit prevented such attachments from occurring in future, this one aims to prevent further abuse of any already- created operator that exposes _int_matchsel to the wrong data types. (No other contrib module has a vulnerable selectivity estimator.) We need only check that the Const we've found in the query is indeed of the type we expect (query_int), but there's a difficulty: as an extension type, query_int doesn't have a fixed OID that we could hard-code into the estimator. Therefore, the bulk of this patch consists of infrastructure to let an extension function securely look up the OID of a datatype belonging to the same extension. (Extension authors have requested such functionality before, so we anticipate that this code will have additional non-security uses, and may soon be extended to allow looking up other kinds of SQL objects.) This is done by first finding the extension that owns the calling function (there can be only one), and then thumbing through the objects owned by that extension to find a type that has the desired name. This is relatively expensive, especially for large extensions, so a simple cache is put in front of these lookups. Reported-by: Daniel Firer as part of zeroday.cloud Author: Tom Lane Reviewed-by: Noah Misch Security: CVE-2026-2004 Backpatch-through: 14 --- contrib/intarray/_int_selfuncs.c | 14 +++- src/backend/catalog/pg_depend.c | 73 +++++++++++++++++ src/backend/commands/extension.c | 130 +++++++++++++++++++++++++++++++ src/include/catalog/dependency.h | 2 + src/include/commands/extension.h | 2 + src/tools/pgindent/typedefs.list | 1 + 6 files changed, 221 insertions(+), 1 deletion(-) diff --git a/contrib/intarray/_int_selfuncs.c b/contrib/intarray/_int_selfuncs.c index 5a47cc53834..d2df83404ef 100644 --- a/contrib/intarray/_int_selfuncs.c +++ b/contrib/intarray/_int_selfuncs.c @@ -19,6 +19,7 @@ #include "catalog/pg_operator.h" #include "catalog/pg_statistic.h" #include "catalog/pg_type.h" +#include "commands/extension.h" #include "miscadmin.h" #include "utils/builtins.h" #include "utils/lsyscache.h" @@ -171,7 +172,18 @@ _int_matchsel(PG_FUNCTION_ARGS) PG_RETURN_FLOAT8(0.0); } - /* The caller made sure the const is a query, so get it now */ + /* + * Verify that the Const is a query_int, else return a default estimate. + * (This could only fail if someone attached this estimator to the wrong + * operator.) + */ + if (((Const *) other)->consttype != + get_function_sibling_type(fcinfo->flinfo->fn_oid, "query_int")) + { + ReleaseVariableStats(vardata); + PG_RETURN_FLOAT8(DEFAULT_EQ_SEL); + } + query = DatumGetQueryTypeP(((Const *) other)->constvalue); /* Empty query matches nothing */ diff --git a/src/backend/catalog/pg_depend.c b/src/backend/catalog/pg_depend.c index 89bbb5c9e48..2907a91e4b6 100644 --- a/src/backend/catalog/pg_depend.c +++ b/src/backend/catalog/pg_depend.c @@ -23,11 +23,13 @@ #include "catalog/pg_constraint.h" #include "catalog/pg_depend.h" #include "catalog/pg_extension.h" +#include "catalog/pg_type.h" #include "commands/extension.h" #include "miscadmin.h" #include "utils/fmgroids.h" #include "utils/lsyscache.h" #include "utils/rel.h" +#include "utils/syscache.h" static bool isObjectPinned(const ObjectAddress *object); @@ -812,6 +814,77 @@ getAutoExtensionsOfObject(Oid classId, Oid objectId) return result; } +/* + * Look up a type belonging to an extension. + * + * Returns the type's OID, or InvalidOid if not found. + * + * Notice that the type is specified by name only, without a schema. + * That's because this will typically be used by relocatable extensions + * which can't make a-priori assumptions about which schema their objects + * are in. As long as the extension only defines one type of this name, + * the answer is unique anyway. + * + * We might later add the ability to look up functions, operators, etc. + */ +Oid +getExtensionType(Oid extensionOid, const char *typname) +{ + Oid result = InvalidOid; + Relation depRel; + ScanKeyData key[3]; + SysScanDesc scan; + HeapTuple tup; + + depRel = table_open(DependRelationId, AccessShareLock); + + ScanKeyInit(&key[0], + Anum_pg_depend_refclassid, + BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(ExtensionRelationId)); + ScanKeyInit(&key[1], + Anum_pg_depend_refobjid, + BTEqualStrategyNumber, F_OIDEQ, + ObjectIdGetDatum(extensionOid)); + ScanKeyInit(&key[2], + Anum_pg_depend_refobjsubid, + BTEqualStrategyNumber, F_INT4EQ, + Int32GetDatum(0)); + + scan = systable_beginscan(depRel, DependReferenceIndexId, true, + NULL, 3, key); + + while (HeapTupleIsValid(tup = systable_getnext(scan))) + { + Form_pg_depend depform = (Form_pg_depend) GETSTRUCT(tup); + + if (depform->classid == TypeRelationId && + depform->deptype == DEPENDENCY_EXTENSION) + { + Oid typoid = depform->objid; + HeapTuple typtup; + + typtup = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typoid)); + if (!HeapTupleIsValid(typtup)) + continue; /* should we throw an error? */ + if (strcmp(NameStr(((Form_pg_type) GETSTRUCT(typtup))->typname), + typname) == 0) + { + result = typoid; + ReleaseSysCache(typtup); + break; /* no need to keep searching */ + } + ReleaseSysCache(typtup); + } + } + + systable_endscan(scan); + + table_close(depRel, AccessShareLock); + + return result; +} + /* * Detect whether a sequence is marked as "owned" by a column * diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c index df6f021c300..f9c9c51331f 100644 --- a/src/backend/commands/extension.c +++ b/src/backend/commands/extension.c @@ -45,6 +45,7 @@ #include "catalog/pg_depend.h" #include "catalog/pg_extension.h" #include "catalog/pg_namespace.h" +#include "catalog/pg_proc.h" #include "catalog/pg_type.h" #include "commands/alter.h" #include "commands/comment.h" @@ -60,10 +61,12 @@ #include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" +#include "utils/inval.h" #include "utils/lsyscache.h" #include "utils/memutils.h" #include "utils/rel.h" #include "utils/snapmgr.h" +#include "utils/syscache.h" #include "utils/varlena.h" @@ -104,7 +107,26 @@ typedef struct ExtensionVersionInfo struct ExtensionVersionInfo *previous; /* current best predecessor */ } ExtensionVersionInfo; +/* + * Cache structure for get_function_sibling_type (and maybe later, + * allied lookup functions). + */ +typedef struct ExtensionSiblingCache +{ + struct ExtensionSiblingCache *next; /* list link */ + /* lookup key: requesting function's OID and type name */ + Oid reqfuncoid; + const char *typname; + bool valid; /* is entry currently valid? */ + uint32 exthash; /* cache hash of owning extension's OID */ + Oid typeoid; /* OID associated with typname */ +} ExtensionSiblingCache; + +/* Head of linked list of ExtensionSiblingCache structs */ +static ExtensionSiblingCache *ext_sibling_list = NULL; + /* Local functions */ +static void ext_sibling_callback(Datum arg, int cacheid, uint32 hashvalue); static List *find_update_path(List *evi_list, ExtensionVersionInfo *evi_start, ExtensionVersionInfo *evi_target, @@ -254,6 +276,114 @@ get_extension_schema(Oid ext_oid) return result; } +/* + * get_function_sibling_type - find a type belonging to same extension as func + * + * Returns the type's OID, or InvalidOid if not found. + * + * This is useful in extensions, which won't have fixed object OIDs. + * We work from the calling function's own OID, which it can get from its + * FunctionCallInfo parameter, and look up the owning extension and thence + * a type belonging to the same extension. + * + * Notice that the type is specified by name only, without a schema. + * That's because this will typically be used by relocatable extensions + * which can't make a-priori assumptions about which schema their objects + * are in. As long as the extension only defines one type of this name, + * the answer is unique anyway. + * + * We might later add the ability to look up functions, operators, etc. + * + * This code is simply a frontend for some pg_depend lookups. Those lookups + * are fairly expensive, so we provide a simple cache facility. We assume + * that the passed typname is actually a C constant, or at least permanently + * allocated, so that we need not copy that string. + */ +Oid +get_function_sibling_type(Oid funcoid, const char *typname) +{ + ExtensionSiblingCache *cache_entry; + Oid extoid; + Oid typeoid; + + /* + * See if we have the answer cached. Someday there may be enough callers + * to justify a hash table, but for now, a simple linked list is fine. + */ + for (cache_entry = ext_sibling_list; cache_entry != NULL; + cache_entry = cache_entry->next) + { + if (funcoid == cache_entry->reqfuncoid && + strcmp(typname, cache_entry->typname) == 0) + break; + } + if (cache_entry && cache_entry->valid) + return cache_entry->typeoid; + + /* + * Nope, so do the expensive lookups. We do not expect failures, so we do + * not cache negative results. + */ + extoid = getExtensionOfObject(ProcedureRelationId, funcoid); + if (!OidIsValid(extoid)) + return InvalidOid; + typeoid = getExtensionType(extoid, typname); + if (!OidIsValid(typeoid)) + return InvalidOid; + + /* + * Build, or revalidate, cache entry. + */ + if (cache_entry == NULL) + { + /* Register invalidation hook if this is first entry */ + if (ext_sibling_list == NULL) + CacheRegisterSyscacheCallback(EXTENSIONOID, + ext_sibling_callback, + (Datum) 0); + + /* Momentarily zero the space to ensure valid flag is false */ + cache_entry = (ExtensionSiblingCache *) + MemoryContextAllocZero(CacheMemoryContext, + sizeof(ExtensionSiblingCache)); + cache_entry->next = ext_sibling_list; + ext_sibling_list = cache_entry; + } + + cache_entry->reqfuncoid = funcoid; + cache_entry->typname = typname; + cache_entry->exthash = GetSysCacheHashValue1(EXTENSIONOID, + ObjectIdGetDatum(extoid)); + cache_entry->typeoid = typeoid; + /* Mark it valid only once it's fully populated */ + cache_entry->valid = true; + + return typeoid; +} + +/* + * ext_sibling_callback + * Syscache inval callback function for EXTENSIONOID cache + * + * It seems sufficient to invalidate ExtensionSiblingCache entries when + * the owning extension's pg_extension entry is modified or deleted. + * Neither a requesting function's OID, nor the OID of the object it's + * looking for, could change without an extension update or drop/recreate. + */ +static void +ext_sibling_callback(Datum arg, int cacheid, uint32 hashvalue) +{ + ExtensionSiblingCache *cache_entry; + + for (cache_entry = ext_sibling_list; cache_entry != NULL; + cache_entry = cache_entry->next) + { + if (hashvalue == 0 || + cache_entry->exthash == hashvalue) + cache_entry->valid = false; + } +} + /* * Utility functions to check validity of extension and version names */ diff --git a/src/include/catalog/dependency.h b/src/include/catalog/dependency.h index 6684933dacf..96bbeec172c 100644 --- a/src/include/catalog/dependency.h +++ b/src/include/catalog/dependency.h @@ -220,6 +220,8 @@ extern long changeDependenciesOn(Oid refClassId, Oid oldRefObjectId, extern Oid getExtensionOfObject(Oid classId, Oid objectId); extern List *getAutoExtensionsOfObject(Oid classId, Oid objectId); +extern Oid getExtensionType(Oid extensionOid, const char *typname); + extern bool sequenceIsOwned(Oid seqId, char deptype, Oid *tableId, int32 *colId); extern List *getOwnedSequences(Oid relid); extern Oid getIdentitySequence(Oid relid, AttrNumber attnum, bool missing_ok); diff --git a/src/include/commands/extension.h b/src/include/commands/extension.h index e24e3759f0c..8a70573834b 100644 --- a/src/include/commands/extension.h +++ b/src/include/commands/extension.h @@ -49,6 +49,8 @@ extern Oid get_extension_oid(const char *extname, bool missing_ok); extern char *get_extension_name(Oid ext_oid); extern bool extension_file_exists(const char *extensionName); +extern Oid get_function_sibling_type(Oid funcoid, const char *typname); + extern ObjectAddress AlterExtensionNamespace(const char *extensionName, const char *newschema, Oid *oldschema); diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 5bbee96d1aa..aa2b01767e6 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -709,6 +709,7 @@ ExtensibleNodeEntry ExtensibleNodeMethods ExtensionControlFile ExtensionInfo +ExtensionSiblingCache ExtensionVersionInfo FDWCollateState FD_SET From 6f741bcb6aa4d78b2e3c96b6f3830b371c8cdf47 Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Mon, 9 Feb 2026 09:08:10 -0800 Subject: [PATCH 92/94] Fix test "NUL byte in text decrypt" for --without-zlib builds. Backpatch-through: 14 Security: CVE-2026-2006 --- contrib/pgcrypto/expected/pgp-decrypt.out | 9 +++++---- contrib/pgcrypto/expected/pgp-decrypt_1.out | 9 +++++---- contrib/pgcrypto/sql/pgp-decrypt.sql | 9 +++++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/contrib/pgcrypto/expected/pgp-decrypt.out b/contrib/pgcrypto/expected/pgp-decrypt.out index 1db89e8c00a..8ce6466f2e9 100644 --- a/contrib/pgcrypto/expected/pgp-decrypt.out +++ b/contrib/pgcrypto/expected/pgp-decrypt.out @@ -388,7 +388,8 @@ select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); NOTICE: dbg: parse_literal_data: data type=b ERROR: Not text data -- NUL byte in text decrypt. Ciphertext source: --- printf 'a\x00\xc' | gpg --homedir /nonexistent --textmode \ +-- printf 'a\x00\xc' | gpg --homedir /nonexistent \ +-- --personal-compress-preferences uncompressed --textmode \ -- --personal-cipher-preferences aes --no-emit-version --batch \ -- --symmetric --passphrase key --armor do $$ @@ -396,9 +397,9 @@ begin perform pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- -jA0EBwMCLd9OvySmZNZg0jgBe7vGTmnje5HGXI+zsIQ99WPZu4Zs/P6pQcZ+HZ4n -SZQHOfE8tagjB6Rqow82QpSBiOfWn4qjhQ== -=c2cz +jA0EBwMCXLc8pozB10Fg0jQBVUID59TLvWutJp0j6eh9ZgjqIRzdYaIymFB8y4XH +vu0YlJP5D5BX7yqZ+Pry7TlDmiFO +=rV7z -----END PGP MESSAGE----- '), 'key', 'debug=1'); exception when others then diff --git a/contrib/pgcrypto/expected/pgp-decrypt_1.out b/contrib/pgcrypto/expected/pgp-decrypt_1.out index d214e0bc0e0..ee57ad43cb7 100644 --- a/contrib/pgcrypto/expected/pgp-decrypt_1.out +++ b/contrib/pgcrypto/expected/pgp-decrypt_1.out @@ -384,7 +384,8 @@ select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); NOTICE: dbg: parse_literal_data: data type=b ERROR: Not text data -- NUL byte in text decrypt. Ciphertext source: --- printf 'a\x00\xc' | gpg --homedir /nonexistent --textmode \ +-- printf 'a\x00\xc' | gpg --homedir /nonexistent \ +-- --personal-compress-preferences uncompressed --textmode \ -- --personal-cipher-preferences aes --no-emit-version --batch \ -- --symmetric --passphrase key --armor do $$ @@ -392,9 +393,9 @@ begin perform pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- -jA0EBwMCLd9OvySmZNZg0jgBe7vGTmnje5HGXI+zsIQ99WPZu4Zs/P6pQcZ+HZ4n -SZQHOfE8tagjB6Rqow82QpSBiOfWn4qjhQ== -=c2cz +jA0EBwMCXLc8pozB10Fg0jQBVUID59TLvWutJp0j6eh9ZgjqIRzdYaIymFB8y4XH +vu0YlJP5D5BX7yqZ+Pry7TlDmiFO +=rV7z -----END PGP MESSAGE----- '), 'key', 'debug=1'); exception when others then diff --git a/contrib/pgcrypto/sql/pgp-decrypt.sql b/contrib/pgcrypto/sql/pgp-decrypt.sql index 2fe498f2f02..b499bf757b0 100644 --- a/contrib/pgcrypto/sql/pgp-decrypt.sql +++ b/contrib/pgcrypto/sql/pgp-decrypt.sql @@ -283,7 +283,8 @@ VsxxqLSPzNLAeIspJk5G select pgp_sym_decrypt(pgp_sym_encrypt_bytea('P', 'key'), 'key', 'debug=1'); -- NUL byte in text decrypt. Ciphertext source: --- printf 'a\x00\xc' | gpg --homedir /nonexistent --textmode \ +-- printf 'a\x00\xc' | gpg --homedir /nonexistent \ +-- --personal-compress-preferences uncompressed --textmode \ -- --personal-cipher-preferences aes --no-emit-version --batch \ -- --symmetric --passphrase key --armor do $$ @@ -291,9 +292,9 @@ begin perform pgp_sym_decrypt(dearmor(' -----BEGIN PGP MESSAGE----- -jA0EBwMCLd9OvySmZNZg0jgBe7vGTmnje5HGXI+zsIQ99WPZu4Zs/P6pQcZ+HZ4n -SZQHOfE8tagjB6Rqow82QpSBiOfWn4qjhQ== -=c2cz +jA0EBwMCXLc8pozB10Fg0jQBVUID59TLvWutJp0j6eh9ZgjqIRzdYaIymFB8y4XH +vu0YlJP5D5BX7yqZ+Pry7TlDmiFO +=rV7z -----END PGP MESSAGE----- '), 'key', 'debug=1'); exception when others then From 749e616b7693cec9baaaf8744d740d436693ac91 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 9 Feb 2026 14:01:20 -0500 Subject: [PATCH 93/94] Last-minute updates for release notes. Security: CVE-2026-2003, CVE-2026-2004, CVE-2026-2005, CVE-2026-2006, CVE-2026-2007 --- doc/src/sgml/release-15.sgml | 177 +++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) diff --git a/doc/src/sgml/release-15.sgml b/doc/src/sgml/release-15.sgml index 0ae4930e141..a519b16ccba 100644 --- a/doc/src/sgml/release-15.sgml +++ b/doc/src/sgml/release-15.sgml @@ -36,6 +36,183 @@ + + Guard against unexpected dimensions + of oidvector/int2vector (Tom Lane) + § + + + + These data types are expected to be 1-dimensional arrays containing + no nulls, but there are cast pathways that permit violating those + expectations. Add checks to some functions that were depending on + those expectations without verifying them, and could misbehave in + consequence. + + + + The PostgreSQL Project thanks + Altan Birler for reporting this problem. + (CVE-2026-2003) + + + + + + + Harden selectivity estimators against being attached to operators + that accept unexpected data types (Tom Lane) + § + § + § + + + + contrib/intarray contained a selectivity + estimation function that could be abused for arbitrary code + execution, because it did not check that its input was of the + expected data type. Third-party extensions should check for similar + hazards and add defenses using the technique intarray now uses. + Since such extension fixes will take time, we now require superuser + privilege to attach a non-built-in selectivity estimator to an + operator. + + + + The PostgreSQL Project thanks + Daniel Firer, as part of zeroday.cloud, for reporting this problem. + (CVE-2026-2004) + + + + + + + Fix buffer overrun in contrib/pgcrypto's + PGP decryption functions (Michael Paquier) + § + + + + Decrypting a crafted message with an overlength session key caused a + buffer overrun, with consequences as bad as arbitrary code + execution. + + + + The PostgreSQL Project thanks + Team Xint Code, as part of zeroday.cloud, for reporting this problem. + (CVE-2026-2005) + + + + + + + Fix inadequate validation of multibyte character lengths + (Thomas Munro, Noah Misch) + § + § + § + § + § + § + + + + Assorted bugs allowed an attacker able to issue crafted SQL to + overrun string buffers, with consequences as bad as arbitrary code + execution. After these fixes, applications may + observe invalid byte sequence for encoding errors + when string functions process invalid text that has been stored in + the database. + + + + The PostgreSQL Project thanks Paul Gerste + and Moritz Sanft, as part of zeroday.cloud, for reporting this + problem. + (CVE-2026-2006) + + + + +