diff options
Diffstat (limited to '')
157 files changed, 10429 insertions, 8211 deletions
diff --git a/src/backend/access/brin/brin_bloom.c b/src/backend/access/brin/brin_bloom.c index 6812ca9..23de868 100644 --- a/src/backend/access/brin/brin_bloom.c +++ b/src/backend/access/brin/brin_bloom.c @@ -279,8 +279,7 @@ bloom_init(int ndistinct, double false_positive_rate) double k; /* number of hash functions */ Assert(ndistinct > 0); - Assert((false_positive_rate >= BLOOM_MIN_FALSE_POSITIVE_RATE) && - (false_positive_rate < BLOOM_MAX_FALSE_POSITIVE_RATE)); + Assert(false_positive_rate > 0 && false_positive_rate < 1); /* sizing bloom filter: -(n * ln(p)) / (ln(2))^2 */ nbits = ceil(-(ndistinct * log(false_positive_rate)) / pow(log(2.0), 2)); diff --git a/src/backend/access/gin/ginbtree.c b/src/backend/access/gin/ginbtree.c index cc6d4e6..8520e37 100644 --- a/src/backend/access/gin/ginbtree.c +++ b/src/backend/access/gin/ginbtree.c @@ -28,6 +28,8 @@ static bool ginPlaceToPage(GinBtree btree, GinBtreeStack *stack, Buffer childbuf, GinStatsData *buildStats); static void ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, GinStatsData *buildStats); +static void ginFinishOldSplit(GinBtree btree, GinBtreeStack *stack, + GinStatsData *buildStats, int access); /* * Lock buffer by needed method for search. @@ -109,7 +111,7 @@ ginFindLeafPage(GinBtree btree, bool searchMode, * encounter on the way. */ if (!searchMode && GinPageIsIncompleteSplit(page)) - ginFinishSplit(btree, stack, false, NULL); + ginFinishOldSplit(btree, stack, NULL, access); /* * ok, page is correctly locked, we should check to move right .., @@ -130,7 +132,7 @@ ginFindLeafPage(GinBtree btree, bool searchMode, TestForOldSnapshot(snapshot, btree->index, page); if (!searchMode && GinPageIsIncompleteSplit(page)) - ginFinishSplit(btree, stack, false, NULL); + ginFinishOldSplit(btree, stack, NULL, access); } if (GinPageIsLeaf(page)) /* we found, return locked page */ @@ -166,8 +168,11 @@ ginFindLeafPage(GinBtree btree, bool searchMode, * Step right from current page. * * The next page is locked first, before releasing the current page. This is - * crucial to protect from concurrent page deletion (see comment in - * ginDeletePage). + * crucial to prevent concurrent VACUUM from deleting a page that we are about + * to step to. (The lock-coupling isn't strictly necessary when we are + * traversing the tree to find an insert location, because page deletion grabs + * a cleanup lock on the root to prevent any concurrent inserts. See Page + * deletion section in the README. But there's no harm in doing it always.) */ Buffer ginStepRight(Buffer buffer, Relation index, int lockmode) @@ -264,7 +269,7 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack) ptr->parent = root; ptr->off = InvalidOffsetNumber; - ginFinishSplit(btree, ptr, false, NULL); + ginFinishOldSplit(btree, ptr, NULL, GIN_EXCLUSIVE); } leftmostBlkno = btree->getLeftMostChild(btree, page); @@ -274,7 +279,11 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack) blkno = GinPageGetOpaque(page)->rightlink; if (blkno == InvalidBlockNumber) { - UnlockReleaseBuffer(buffer); + /* Link not present in this level */ + LockBuffer(buffer, GIN_UNLOCK); + /* Do not release pin on the root buffer */ + if (buffer != root->buffer) + ReleaseBuffer(buffer); break; } buffer = ginStepRight(buffer, btree->index, GIN_EXCLUSIVE); @@ -289,7 +298,7 @@ ginFindParents(GinBtree btree, GinBtreeStack *stack) ptr->parent = root; ptr->off = InvalidOffsetNumber; - ginFinishSplit(btree, ptr, false, NULL); + ginFinishOldSplit(btree, ptr, NULL, GIN_EXCLUSIVE); } } @@ -670,15 +679,6 @@ ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, bool done; bool first = true; - /* - * freestack == false when we encounter an incompletely split page during - * a scan, while freestack == true is used in the normal scenario that a - * split is finished right after the initial insert. - */ - if (!freestack) - elog(DEBUG1, "finishing incomplete split of block %u in gin index \"%s\"", - stack->blkno, RelationGetRelationName(btree->index)); - /* this loop crawls up the stack until the insertion is complete */ do { @@ -699,7 +699,7 @@ ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, * would fail. */ if (GinPageIsIncompleteSplit(BufferGetPage(parent->buffer))) - ginFinishSplit(btree, parent, false, buildStats); + ginFinishOldSplit(btree, parent, buildStats, GIN_EXCLUSIVE); /* move right if it's needed */ page = BufferGetPage(parent->buffer); @@ -723,7 +723,7 @@ ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, page = BufferGetPage(parent->buffer); if (GinPageIsIncompleteSplit(BufferGetPage(parent->buffer))) - ginFinishSplit(btree, parent, false, buildStats); + ginFinishOldSplit(btree, parent, buildStats, GIN_EXCLUSIVE); } /* insert the downlink */ @@ -760,6 +760,42 @@ ginFinishSplit(GinBtree btree, GinBtreeStack *stack, bool freestack, } /* + * An entry point to ginFinishSplit() that is used when we stumble upon an + * existing incompletely split page in the tree, as opposed to completing a + * split that we just made outselves. The difference is that stack->buffer may + * be merely share-locked on entry, and will be upgraded to exclusive mode. + * + * Note: Upgrading the lock momentarily releases it. Doing that in a scan + * would not be OK, because a concurrent VACUUM might delete the page while + * we're not holding the lock. It's OK in an insert, though, because VACUUM + * has a different mechanism that prevents it from running concurrently with + * inserts. (Namely, it holds a cleanup lock on the root.) + */ +static void +ginFinishOldSplit(GinBtree btree, GinBtreeStack *stack, GinStatsData *buildStats, int access) +{ + elog(DEBUG1, "finishing incomplete split of block %u in gin index \"%s\"", + stack->blkno, RelationGetRelationName(btree->index)); + + if (access == GIN_SHARE) + { + LockBuffer(stack->buffer, GIN_UNLOCK); + LockBuffer(stack->buffer, GIN_EXCLUSIVE); + + if (!GinPageIsIncompleteSplit(BufferGetPage(stack->buffer))) + { + /* + * Someone else already completed the split while we were not + * holding the lock. + */ + return; + } + } + + ginFinishSplit(btree, stack, false, buildStats); +} + +/* * Insert a value to tree described by stack. * * The value to be inserted is given in 'insertdata'. Its format depends @@ -779,7 +815,7 @@ ginInsertValue(GinBtree btree, GinBtreeStack *stack, void *insertdata, /* If the leaf page was incompletely split, finish the split first */ if (GinPageIsIncompleteSplit(BufferGetPage(stack->buffer))) - ginFinishSplit(btree, stack, false, buildStats); + ginFinishOldSplit(btree, stack, buildStats, GIN_EXCLUSIVE); done = ginPlaceToPage(btree, stack, insertdata, InvalidBlockNumber, diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index c74fbd0..30bc88e 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -2856,13 +2856,7 @@ l1: result = TM_Deleted; } - if (crosscheck != InvalidSnapshot && result == TM_Ok) - { - /* Perform additional check for transaction-snapshot mode RI updates */ - if (!HeapTupleSatisfiesVisibility(&tp, crosscheck, buffer)) - result = TM_Updated; - } - + /* sanity check the result HeapTupleSatisfiesUpdate() and the logic above */ if (result != TM_Ok) { Assert(result == TM_SelfModified || @@ -2872,6 +2866,17 @@ l1: Assert(!(tp.t_data->t_infomask & HEAP_XMAX_INVALID)); Assert(result != TM_Updated || !ItemPointerEquals(&tp.t_self, &tp.t_data->t_ctid)); + } + + if (crosscheck != InvalidSnapshot && result == TM_Ok) + { + /* Perform additional check for transaction-snapshot mode RI updates */ + if (!HeapTupleSatisfiesVisibility(&tp, crosscheck, buffer)) + result = TM_Updated; + } + + if (result != TM_Ok) + { tmfd->ctid = tp.t_data->t_ctid; tmfd->xmax = HeapTupleHeaderGetUpdateXid(tp.t_data); if (result == TM_SelfModified) @@ -3483,16 +3488,7 @@ l2: result = TM_Deleted; } - if (crosscheck != InvalidSnapshot && result == TM_Ok) - { - /* Perform additional check for transaction-snapshot mode RI updates */ - if (!HeapTupleSatisfiesVisibility(&oldtup, crosscheck, buffer)) - { - result = TM_Updated; - Assert(!ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid)); - } - } - + /* Sanity check the result HeapTupleSatisfiesUpdate() and the logic above */ if (result != TM_Ok) { Assert(result == TM_SelfModified || @@ -3502,6 +3498,17 @@ l2: Assert(!(oldtup.t_data->t_infomask & HEAP_XMAX_INVALID)); Assert(result != TM_Updated || !ItemPointerEquals(&oldtup.t_self, &oldtup.t_data->t_ctid)); + } + + if (crosscheck != InvalidSnapshot && result == TM_Ok) + { + /* Perform additional check for transaction-snapshot mode RI updates */ + if (!HeapTupleSatisfiesVisibility(&oldtup, crosscheck, buffer)) + result = TM_Updated; + } + + if (result != TM_Ok) + { tmfd->ctid = oldtup.t_data->t_ctid; tmfd->xmax = HeapTupleHeaderGetUpdateXid(oldtup.t_data); if (result == TM_SelfModified) diff --git a/src/backend/access/heap/hio.c b/src/backend/access/heap/hio.c index b0ece66..6e1ff45 100644 --- a/src/backend/access/heap/hio.c +++ b/src/backend/access/heap/hio.c @@ -387,7 +387,7 @@ RelationGetBufferForTuple(Relation relation, Size len, * on, as cached in the BulkInsertState or relcache entry. If that * doesn't work, we ask the Free Space Map to locate a suitable page. * Since the FSM's info might be out of date, we have to be prepared to - * loop around and retry multiple times. (To insure this isn't an infinite + * loop around and retry multiple times. (To ensure this isn't an infinite * loop, we must update the FSM with the correct amount of free space on * each page that proves not to be suitable.) If the FSM has no record of * a page with enough free space, we give up and extend the relation. diff --git a/src/backend/access/index/indexam.c b/src/backend/access/index/indexam.c index fe80b8b..cd5f07f 100644 --- a/src/backend/access/index/indexam.c +++ b/src/backend/access/index/indexam.c @@ -107,6 +107,7 @@ do { \ static IndexScanDesc index_beginscan_internal(Relation indexRelation, int nkeys, int norderbys, Snapshot snapshot, ParallelIndexScanDesc pscan, bool temp_snap); +static inline void validate_relation_kind(Relation r); /* ---------------------------------------------------------------- @@ -135,12 +136,30 @@ index_open(Oid relationId, LOCKMODE lockmode) r = relation_open(relationId, lockmode); - if (r->rd_rel->relkind != RELKIND_INDEX && - r->rd_rel->relkind != RELKIND_PARTITIONED_INDEX) - ereport(ERROR, - (errcode(ERRCODE_WRONG_OBJECT_TYPE), - errmsg("\"%s\" is not an index", - RelationGetRelationName(r)))); + validate_relation_kind(r); + + return r; +} + +/* ---------------- + * try_index_open - open a index relation by relation OID + * + * Same as index_open, except return NULL instead of failing + * if the relation does not exist. + * ---------------- + */ +Relation +try_index_open(Oid relationId, LOCKMODE lockmode) +{ + Relation r; + + r = try_relation_open(relationId, lockmode); + + /* leave if index does not exist */ + if (!r) + return NULL; + + validate_relation_kind(r); return r; } @@ -169,6 +188,24 @@ index_close(Relation relation, LOCKMODE lockmode) } /* ---------------- + * validate_relation_kind - check the relation's kind + * + * Make sure relkind is an index or a partitioned index. + * ---------------- + */ +static inline void +validate_relation_kind(Relation r) +{ + if (r->rd_rel->relkind != RELKIND_INDEX && + r->rd_rel->relkind != RELKIND_PARTITIONED_INDEX) + ereport(ERROR, + (errcode(ERRCODE_WRONG_OBJECT_TYPE), + errmsg("\"%s\" is not an index", + RelationGetRelationName(r)))); +} + + +/* ---------------- * index_insert - insert an index tuple into a relation * ---------------- */ diff --git a/src/backend/access/spgist/spgutils.c b/src/backend/access/spgist/spgutils.c index f2da02e..bff33f3 100644 --- a/src/backend/access/spgist/spgutils.c +++ b/src/backend/access/spgist/spgutils.c @@ -185,8 +185,6 @@ spgGetCache(Relation index) Oid atttype; spgConfigIn in; FmgrInfo *procinfo; - Buffer metabuffer; - SpGistMetaPageData *metadata; cache = MemoryContextAllocZero(index->rd_indexcxt, sizeof(SpGistCache)); @@ -254,19 +252,28 @@ spgGetCache(Relation index) fillTypeDesc(&cache->attPrefixType, cache->config.prefixType); fillTypeDesc(&cache->attLabelType, cache->config.labelType); - /* Last, get the lastUsedPages data from the metapage */ - metabuffer = ReadBuffer(index, SPGIST_METAPAGE_BLKNO); - LockBuffer(metabuffer, BUFFER_LOCK_SHARE); + /* + * Finally, if it's a real index (not a partitioned one), get the + * lastUsedPages data from the metapage + */ + if (index->rd_rel->relkind != RELKIND_PARTITIONED_INDEX) + { + Buffer metabuffer; + SpGistMetaPageData *metadata; + + metabuffer = ReadBuffer(index, SPGIST_METAPAGE_BLKNO); + LockBuffer(metabuffer, BUFFER_LOCK_SHARE); - metadata = SpGistPageGetMeta(BufferGetPage(metabuffer)); + metadata = SpGistPageGetMeta(BufferGetPage(metabuffer)); - if (metadata->magicNumber != SPGIST_MAGIC_NUMBER) - elog(ERROR, "index \"%s\" is not an SP-GiST index", - RelationGetRelationName(index)); + if (metadata->magicNumber != SPGIST_MAGIC_NUMBER) + elog(ERROR, "index \"%s\" is not an SP-GiST index", + RelationGetRelationName(index)); - cache->lastUsedPages = metadata->lastUsedPages; + cache->lastUsedPages = metadata->lastUsedPages; - UnlockReleaseBuffer(metabuffer); + UnlockReleaseBuffer(metabuffer); + } index->rd_amcache = (void *) cache; } diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index 5293c69..ca7037e 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -486,7 +486,7 @@ MarkAsPreparingGuts(GlobalTransaction gxact, TransactionId xid, const char *gid, proc->roleId = owner; proc->tempNamespaceId = InvalidOid; proc->isBackgroundWorker = false; - proc->lwWaiting = false; + proc->lwWaiting = LW_WS_NOT_WAITING; proc->lwWaitMode = 0; proc->waitLock = NULL; proc->waitProcLock = NULL; diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index e0c7ad1..7a3d9b4 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -5265,6 +5265,7 @@ PushTransaction(void) s->blockState = TBLOCK_SUBBEGIN; GetUserIdAndSecContext(&s->prevUser, &s->prevSecContext); s->prevXactReadOnly = XactReadOnly; + s->startedInRecovery = p->startedInRecovery; s->parallelModeLevel = 0; s->topXidLogged = false; diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 59f94b0..9795ce7 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -974,8 +974,10 @@ XLogInsertRecord(XLogRecData *rdata, if (!debug_reader) debug_reader = XLogReaderAllocate(wal_segment_size, NULL, - XL_ROUTINE(), NULL); - + XL_ROUTINE(.page_read = NULL, + .segment_open = NULL, + .segment_close = NULL), + NULL); if (!debug_reader) { appendStringInfoString(&buf, "error decoding record: out of memory while allocating a WAL reading processor"); diff --git a/src/backend/access/transam/xlogreader.c b/src/backend/access/transam/xlogreader.c index c15da9d..e7ad331 100644 --- a/src/backend/access/transam/xlogreader.c +++ b/src/backend/access/transam/xlogreader.c @@ -457,18 +457,37 @@ XLogReadRecordAlloc(XLogReaderState *state, size_t xl_tot_len, bool allow_oversi if (state->decode_buffer_tail >= state->decode_buffer_head) { /* Empty, or tail is to the right of head. */ - if (state->decode_buffer_tail + required_space <= - state->decode_buffer + state->decode_buffer_size) + if (required_space <= + state->decode_buffer_size - + (state->decode_buffer_tail - state->decode_buffer)) { - /* There is space between tail and end. */ + /*- + * There is space between tail and end. + * + * +-----+--------------------+-----+ + * | |////////////////////|here!| + * +-----+--------------------+-----+ + * ^ ^ + * | | + * h t + */ decoded = (DecodedXLogRecord *) state->decode_buffer_tail; decoded->oversized = false; return decoded; } - else if (state->decode_buffer + required_space < - state->decode_buffer_head) + else if (required_space < + state->decode_buffer_head - state->decode_buffer) { - /* There is space between start and head. */ + /*- + * There is space between start and head. + * + * +-----+--------------------+-----+ + * |here!|////////////////////| | + * +-----+--------------------+-----+ + * ^ ^ + * | | + * h t + */ decoded = (DecodedXLogRecord *) state->decode_buffer; decoded->oversized = false; return decoded; @@ -477,10 +496,19 @@ XLogReadRecordAlloc(XLogReaderState *state, size_t xl_tot_len, bool allow_oversi else { /* Tail is to the left of head. */ - if (state->decode_buffer_tail + required_space < - state->decode_buffer_head) + if (required_space < + state->decode_buffer_head - state->decode_buffer_tail) { - /* There is space between tail and head. */ + /*- + * There is space between tail and head. + * + * +-----+--------------------+-----+ + * |/////|here! |/////| + * +-----+--------------------+-----+ + * ^ ^ + * | | + * t h + */ decoded = (DecodedXLogRecord *) state->decode_buffer_tail; decoded->oversized = false; return decoded; diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c index 166f7b7..1503b21 100644 --- a/src/backend/access/transam/xlogrecovery.c +++ b/src/backend/access/transam/xlogrecovery.c @@ -622,6 +622,22 @@ InitWalRecovery(ControlFileData *ControlFile, bool *wasShutdown_ptr, EnableStandbyMode(); /* + * Omitting backup_label when creating a new replica, PITR node etc. + * unfortunately is a common cause of corruption. Logging that + * backup_label was used makes it a bit easier to exclude that as the + * cause of observed corruption. + * + * Do so before we try to read the checkpoint record (which can fail), + * as otherwise it can be hard to understand why a checkpoint other + * than ControlFile->checkPoint is used. + */ + ereport(LOG, + (errmsg("starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u", + LSN_FORMAT_ARGS(RedoStartLSN), + LSN_FORMAT_ARGS(CheckPointLoc), + CheckPointTLI))); + + /* * When a backup_label file is present, we want to roll forward from * the checkpoint it identifies, rather than using pg_control. */ @@ -759,6 +775,16 @@ InitWalRecovery(ControlFileData *ControlFile, bool *wasShutdown_ptr, EnableStandbyMode(); } + /* + * For the same reason as when starting up with backup_label present, + * emit a log message when we continue initializing from a base + * backup. + */ + if (!XLogRecPtrIsInvalid(ControlFile->backupStartPoint)) + ereport(LOG, + (errmsg("restarting backup recovery with redo LSN %X/%X", + LSN_FORMAT_ARGS(ControlFile->backupStartPoint)))); + /* Get the last valid checkpoint record. */ CheckPointLoc = ControlFile->checkPoint; CheckPointTLI = ControlFile->checkPointCopy.ThisTimeLineID; @@ -2102,6 +2128,9 @@ CheckRecoveryConsistency(void) if (!XLogRecPtrIsInvalid(backupEndPoint) && backupEndPoint <= lastReplayedEndRecPtr) { + XLogRecPtr saveBackupStartPoint = backupStartPoint; + XLogRecPtr saveBackupEndPoint = backupEndPoint; + elog(DEBUG1, "end of backup reached"); /* @@ -2112,6 +2141,11 @@ CheckRecoveryConsistency(void) backupStartPoint = InvalidXLogRecPtr; backupEndPoint = InvalidXLogRecPtr; backupEndRequired = false; + + ereport(LOG, + (errmsg("completed backup recovery with redo LSN %X/%X and end LSN %X/%X", + LSN_FORMAT_ARGS(saveBackupStartPoint), + LSN_FORMAT_ARGS(saveBackupEndPoint)))); } /* diff --git a/src/backend/catalog/aclchk.c b/src/backend/catalog/aclchk.c index 95d85a7..567807b 100644 --- a/src/backend/catalog/aclchk.c +++ b/src/backend/catalog/aclchk.c @@ -6135,9 +6135,9 @@ recordExtObjInitPriv(Oid objoid, Oid classoid) ReleaseSysCache(tuple); } - /* pg_largeobject_metadata */ - else if (classoid == LargeObjectMetadataRelationId) + else if (classoid == LargeObjectRelationId) { + /* For large objects, we must consult pg_largeobject_metadata */ Datum aclDatum; bool isNull; HeapTuple tuple; diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index a21de89..bd6b9c4 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -2328,7 +2328,8 @@ AddRelationNewConstraints(Relation rel, continue; /* If the DEFAULT is volatile we cannot use a missing value */ - if (colDef->missingMode && contain_volatile_functions((Node *) expr)) + if (colDef->missingMode && + contain_volatile_functions_after_planning((Expr *) expr)) colDef->missingMode = false; defOid = StoreAttrDefault(rel, colDef->attnum, expr, is_internal, @@ -2763,9 +2764,11 @@ cookDefault(ParseState *pstate, if (attgenerated) { + /* Disallow refs to other generated columns */ check_nested_generated(pstate, expr); - if (contain_mutable_functions(expr)) + /* Disallow mutable functions */ + if (contain_mutable_functions_after_planning((Expr *) expr)) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("generation expression is not immutable"))); diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index db697a9..bab02e1 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -3621,7 +3621,24 @@ reindex_index(Oid indexId, bool skip_constraint_checks, char persistence, * Open the target index relation and get an exclusive lock on it, to * ensure that no one else is touching this particular index. */ - iRel = index_open(indexId, AccessExclusiveLock); + if ((params->options & REINDEXOPT_MISSING_OK) != 0) + iRel = try_index_open(indexId, AccessExclusiveLock); + else + iRel = index_open(indexId, AccessExclusiveLock); + + /* if index relation is gone, leave */ + if (!iRel) + { + /* Roll back any GUC changes */ + AtEOXact_GUC(false, save_nestlevel); + + /* Restore userid and security context */ + SetUserIdAndSecContext(save_userid, save_sec_context); + + /* Close parent heap relation, but keep locks */ + table_close(heapRelation, NoLock); + return; + } if (progress) pgstat_progress_update_param(PROGRESS_CREATEIDX_ACCESS_METHOD_OID, diff --git a/src/backend/commands/alter.c b/src/backend/commands/alter.c index 5456b82..6f27a49 100644 --- a/src/backend/commands/alter.c +++ b/src/backend/commands/alter.c @@ -1046,9 +1046,14 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId) /* Perform actual update */ CatalogTupleUpdate(rel, &newtup->t_self, newtup); - /* Update owner dependency reference */ + /* + * Update owner dependency reference. When working on a large object, + * we have to translate back to the OID conventionally used for LOs' + * classId. + */ if (classId == LargeObjectMetadataRelationId) classId = LargeObjectRelationId; + changeDependencyOnOwner(classId, objectId, new_ownerId); /* Release memory */ @@ -1056,6 +1061,16 @@ AlterObjectOwner_internal(Relation rel, Oid objectId, Oid new_ownerId) pfree(nulls); pfree(replaces); } + else + { + /* + * No need to change anything. But when working on a large object, we + * have to translate back to the OID conventionally used for LOs' + * classId, or the post-alter hook (if any) will get confused. + */ + if (classId == LargeObjectMetadataRelationId) + classId = LargeObjectRelationId; + } InvokeObjectPostAlterHook(classId, objectId, 0); } diff --git a/src/backend/commands/copyfrom.c b/src/backend/commands/copyfrom.c index c6dbd97..182047a 100644 --- a/src/backend/commands/copyfrom.c +++ b/src/backend/commands/copyfrom.c @@ -758,6 +758,9 @@ CopyFrom(CopyFromState cstate) * Can't support multi-inserts if there are any volatile function * expressions in WHERE clause. Similarly to the trigger case above, * such expressions may query the table we're inserting into. + * + * Note: the whereClause was already preprocessed in DoCopy(), so it's + * okay to use contain_volatile_functions() directly. */ insertMethod = CIM_SINGLE; } @@ -1453,7 +1456,8 @@ BeginCopyFrom(ParseState *pstate, * known to be safe for use with the multi-insert * optimization. Hence we use this special case function * checker rather than the standard check for - * contain_volatile_functions(). + * contain_volatile_functions(). Note also that we already + * ran the expression through expression_planner(). */ if (!volatile_defexprs) volatile_defexprs = contain_volatile_functions_not_nextval((Node *) defexpr); diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index 93f0c73..5ced6da 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -461,35 +461,12 @@ CreateDirAndVersionFile(char *dbpath, Oid dbid, Oid tsid, bool isRedo) char buf[16]; /* - * Prepare version data before starting a critical section. - * - * Note that we don't have to copy this from the source database; there's - * only one legal value. + * Note that we don't have to copy version data from the source database; + * there's only one legal value. */ sprintf(buf, "%s\n", PG_MAJORVERSION); nbytes = strlen(PG_MAJORVERSION) + 1; - /* If we are not in WAL replay then write the WAL. */ - if (!isRedo) - { - xl_dbase_create_wal_log_rec xlrec; - XLogRecPtr lsn; - - START_CRIT_SECTION(); - - xlrec.db_id = dbid; - xlrec.tablespace_id = tsid; - - XLogBeginInsert(); - XLogRegisterData((char *) (&xlrec), - sizeof(xl_dbase_create_wal_log_rec)); - - lsn = XLogInsert(RM_DBASE_ID, XLOG_DBASE_CREATE_WAL_LOG); - - /* As always, WAL must hit the disk before the data update does. */ - XLogFlush(lsn); - } - /* Create database directory. */ if (MakePGDirectory(dbpath) < 0) { @@ -530,12 +507,35 @@ CreateDirAndVersionFile(char *dbpath, Oid dbid, Oid tsid, bool isRedo) } pgstat_report_wait_end(); + pgstat_report_wait_start(WAIT_EVENT_VERSION_FILE_SYNC); + if (pg_fsync(fd) != 0) + ereport(data_sync_elevel(ERROR), + (errcode_for_file_access(), + errmsg("could not fsync file \"%s\": %m", versionfile))); + fsync_fname(dbpath, true); + pgstat_report_wait_end(); + /* Close the version file. */ CloseTransientFile(fd); - /* Critical section done. */ + /* If we are not in WAL replay then write the WAL. */ if (!isRedo) + { + xl_dbase_create_wal_log_rec xlrec; + + START_CRIT_SECTION(); + + xlrec.db_id = dbid; + xlrec.tablespace_id = tsid; + + XLogBeginInsert(); + XLogRegisterData((char *) (&xlrec), + sizeof(xl_dbase_create_wal_log_rec)); + + (void) XLogInsert(RM_DBASE_ID, XLOG_DBASE_CREATE_WAL_LOG); + END_CRIT_SECTION(); + } } /* diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index 060c618..fa0b79d 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -3597,7 +3597,7 @@ show_buffer_usage(ExplainState *es, const BufferUsage *usage, bool planning) if (has_timing) { - appendStringInfoString(es->str, " shared/local"); + appendStringInfoString(es->str, " shared"); if (!INSTR_TIME_IS_ZERO(usage->blk_read_time)) appendStringInfo(es->str, " read=%0.3f", INSTR_TIME_GET_MILLISEC(usage->blk_read_time)); diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index d3f7b09..c623432 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -1003,10 +1003,13 @@ DefineIndex(Oid relationId, { if (key->partattrs[i] == indexInfo->ii_IndexAttrNumbers[j]) { - /* Matched the column, now what about the equality op? */ + /* Matched the column, now what about the collation and equality op? */ Oid idx_opfamily; Oid idx_opcintype; + if (key->partcollation[i] != collationObjectId[j]) + continue; + if (get_opclass_opfamily_and_input_type(classObjectId[j], &idx_opfamily, &idx_opcintype)) @@ -1712,33 +1715,6 @@ DefineIndex(Oid relationId, /* - * CheckMutability - * Test whether given expression is mutable - */ -static bool -CheckMutability(Expr *expr) -{ - /* - * First run the expression through the planner. This has a couple of - * important consequences. First, function default arguments will get - * inserted, which may affect volatility (consider "default now()"). - * Second, inline-able functions will get inlined, which may allow us to - * conclude that the function is really less volatile than it's marked. As - * an example, polymorphic functions must be marked with the most volatile - * behavior that they have for any input type, but once we inline the - * function we may be able to conclude that it's not so volatile for the - * particular input type we're dealing with. - * - * We assume here that expression_planner() won't scribble on its input. - */ - expr = expression_planner(expr); - - /* Now we can search for non-immutable functions */ - return contain_mutable_functions((Node *) expr); -} - - -/* * CheckPredicate * Checks that the given partial-index predicate is valid. * @@ -1761,7 +1737,7 @@ CheckPredicate(Expr *predicate) * A predicate using mutable functions is probably wrong, for the same * reasons that we don't allow an index expression to use one. */ - if (CheckMutability(predicate)) + if (contain_mutable_functions_after_planning(predicate)) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("functions in index predicate must be marked IMMUTABLE"))); @@ -1904,7 +1880,7 @@ ComputeIndexAttrs(IndexInfo *indexInfo, * same data every time, it's not clear what the index entries * mean at all. */ - if (CheckMutability((Expr *) expr)) + if (contain_mutable_functions_after_planning((Expr *) expr)) ereport(ERROR, (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), errmsg("functions in index expression must be marked IMMUTABLE"))); diff --git a/src/backend/commands/matview.c b/src/backend/commands/matview.c index d1ee106..a5f8972 100644 --- a/src/backend/commands/matview.c +++ b/src/backend/commands/matview.c @@ -656,13 +656,35 @@ refresh_by_match_merge(Oid matviewOid, Oid tempOid, Oid relowner, SPI_getvalue(SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1)))); } + /* + * Create the temporary "diff" table. + * + * Temporarily switch out of the SECURITY_RESTRICTED_OPERATION context, + * because you cannot create temp tables in SRO context. For extra + * paranoia, add the composite type column only after switching back to + * SRO context. + */ SetUserIdAndSecContext(relowner, save_sec_context | SECURITY_LOCAL_USERID_CHANGE); + resetStringInfo(&querybuf); + appendStringInfo(&querybuf, + "CREATE TEMP TABLE %s (tid pg_catalog.tid)", + diffname); + if (SPI_exec(querybuf.data, 0) != SPI_OK_UTILITY) + elog(ERROR, "SPI_exec failed: %s", querybuf.data); + SetUserIdAndSecContext(relowner, + save_sec_context | SECURITY_RESTRICTED_OPERATION); + resetStringInfo(&querybuf); + appendStringInfo(&querybuf, + "ALTER TABLE %s ADD COLUMN newdata %s", + diffname, tempname); + if (SPI_exec(querybuf.data, 0) != SPI_OK_UTILITY) + elog(ERROR, "SPI_exec failed: %s", querybuf.data); - /* Start building the query for creating the diff table. */ + /* Start building the query for populating the diff table. */ resetStringInfo(&querybuf); appendStringInfo(&querybuf, - "CREATE TEMP TABLE %s AS " + "INSERT INTO %s " "SELECT mv.ctid AS tid, newdata.*::%s AS newdata " "FROM %s mv FULL JOIN %s newdata ON (", diffname, tempname, matviewname, tempname); @@ -782,22 +804,22 @@ refresh_by_match_merge(Oid matviewOid, Oid tempOid, Oid relowner, * * ExecRefreshMatView() checks that after taking the exclusive lock on the * matview. So at least one unique index is guaranteed to exist here - * because the lock is still being held; so an Assert seems sufficient. + * because the lock is still being held. (One known exception is if a + * function called as part of refreshing the matview drops the index. + * That's a pretty silly thing to do.) */ - Assert(foundUniqueIndex); + if (!foundUniqueIndex) + elog(ERROR, "could not find suitable unique index on materialized view"); appendStringInfoString(&querybuf, " AND newdata.* OPERATOR(pg_catalog.*=) mv.*) " "WHERE newdata.* IS NULL OR mv.* IS NULL " "ORDER BY tid"); - /* Create the temporary "diff" table. */ - if (SPI_exec(querybuf.data, 0) != SPI_OK_UTILITY) + /* Populate the temporary "diff" table. */ + if (SPI_exec(querybuf.data, 0) != SPI_OK_INSERT) elog(ERROR, "SPI_exec failed: %s", querybuf.data); - SetUserIdAndSecContext(relowner, - save_sec_context | SECURITY_RESTRICTED_OPERATION); - /* * We have no further use for data from the "full-data" temp table, but we * must keep it around because its type is referenced from the diff table. diff --git a/src/backend/commands/statscmds.c b/src/backend/commands/statscmds.c index f442d85..fa7a0c0 100644 --- a/src/backend/commands/statscmds.c +++ b/src/backend/commands/statscmds.c @@ -735,19 +735,12 @@ void RemoveStatisticsById(Oid statsOid) { Relation relation; + Relation rel; HeapTuple tup; Form_pg_statistic_ext statext; Oid relid; /* - * First delete the pg_statistic_ext_data tuples holding the actual - * statistical data. There might be data with/without inheritance, so - * attempt deleting both. - */ - RemoveStatisticsDataById(statsOid, true); - RemoveStatisticsDataById(statsOid, false); - - /* * Delete the pg_statistic_ext tuple. Also send out a cache inval on the * associated table, so that dependent plans will be rebuilt. */ @@ -761,12 +754,26 @@ RemoveStatisticsById(Oid statsOid) statext = (Form_pg_statistic_ext) GETSTRUCT(tup); relid = statext->stxrelid; + /* + * Delete the pg_statistic_ext_data tuples holding the actual statistical + * data. There might be data with/without inheritance, so attempt deleting + * both. We lock the user table first, to prevent other processes (e.g. + * DROP STATISTICS) from removing the row concurrently. + */ + rel = table_open(relid, ShareUpdateExclusiveLock); + + RemoveStatisticsDataById(statsOid, true); + RemoveStatisticsDataById(statsOid, false); + CacheInvalidateRelcacheByRelid(relid); CatalogTupleDelete(relation, &tup->t_self); ReleaseSysCache(tup); + /* Keep lock until the end of the transaction. */ + table_close(rel, NoLock); + table_close(relation, RowExclusiveLock); } diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 97f9a22..5daa560 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -6805,6 +6805,10 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel, colDef->colname, RelationGetRelationName(rel)))); table_close(attrdesc, RowExclusiveLock); + + /* Make the child column change visible */ + CommandCounterIncrement(); + return InvalidObjectAddress; } } @@ -11410,15 +11414,19 @@ transformFkeyGetPrimaryKey(Relation pkrel, Oid *indexOid, /* * transformFkeyCheckAttrs - * - * Make sure that the attributes of a referenced table belong to a unique - * (or primary key) constraint. Return the OID of the index supporting - * the constraint, as well as the opclasses associated with the index - * columns. + * Validate that the 'attnums' columns in the 'pkrel' relation are valid to + * reference as part of a foreign key constraint. + * + * Returns the OID of the unique index supporting the constraint and + * populates the caller-provided 'opclasses' array with the opclasses + * associated with the index columns. + * + * Raises an ERROR on validation failure. */ static Oid transformFkeyCheckAttrs(Relation pkrel, int numattrs, int16 *attnums, - Oid *opclasses) /* output parameter */ + Oid *opclasses) { Oid indexoid = InvalidOid; bool found = false; @@ -17407,30 +17415,6 @@ ComputePartitionAttrs(ParseState *pstate, Relation rel, List *partParams, AttrNu *partexprs = lappend(*partexprs, expr); /* - * Try to simplify the expression before checking for - * mutability. The main practical value of doing it in this - * order is that an inline-able SQL-language function will be - * accepted if its expansion is immutable, whether or not the - * function itself is marked immutable. - * - * Note that expression_planner does not change the passed in - * expression destructively and we have already saved the - * expression to be stored into the catalog above. - */ - expr = (Node *) expression_planner((Expr *) expr); - - /* - * Partition expression cannot contain mutable functions, - * because a given row must always map to the same partition - * as long as there is no change in the partition boundary - * structure. - */ - if (contain_mutable_functions(expr)) - ereport(ERROR, - (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), - errmsg("functions in partition key expression must be marked IMMUTABLE"))); - - /* * transformPartitionSpec() should have already rejected * subqueries, aggregates, window functions, and SRFs, based * on the EXPR_KIND_ for partition expressions. @@ -17472,6 +17456,32 @@ ComputePartitionAttrs(ParseState *pstate, Relation rel, List *partParams, AttrNu } /* + * Preprocess the expression before checking for mutability. + * This is essential for the reasons described in + * contain_mutable_functions_after_planning. However, we call + * expression_planner for ourselves rather than using that + * function, because if constant-folding reduces the + * expression to a constant, we'd like to know that so we can + * complain below. + * + * Like contain_mutable_functions_after_planning, assume that + * expression_planner won't scribble on its input, so this + * won't affect the partexprs entry we saved above. + */ + expr = (Node *) expression_planner((Expr *) expr); + + /* + * Partition expressions cannot contain mutable functions, + * because a given row must always map to the same partition + * as long as there is no change in the partition boundary + * structure. + */ + if (contain_mutable_functions(expr)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_OBJECT_DEFINITION), + errmsg("functions in partition key expression must be marked IMMUTABLE"))); + + /* * While it is not exactly *wrong* for a partition expression * to be a constant, it seems better to reject such keys. */ diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 0769ae3..72b1134 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -3056,10 +3056,6 @@ ExecBRUpdateTriggersNew(EState *estate, EPQState *epqstate, * received in newslot. Neither we nor our callers have any further * interest in the passed-in tuple, so it's okay to overwrite newslot * with the newer data. - * - * (Typically, newslot was also generated by ExecGetUpdateNewTuple, so - * that epqslot_clean will be that same slot and the copy step below - * is not needed.) */ if (epqslot_candidate != NULL) { @@ -3068,14 +3064,36 @@ ExecBRUpdateTriggersNew(EState *estate, EPQState *epqstate, epqslot_clean = ExecGetUpdateNewTuple(relinfo, epqslot_candidate, oldslot); - if (newslot != epqslot_clean) + /* + * Typically, the caller's newslot was also generated by + * ExecGetUpdateNewTuple, so that epqslot_clean will be the same + * slot and copying is not needed. But do the right thing if it + * isn't. + */ + if (unlikely(newslot != epqslot_clean)) ExecCopySlot(newslot, epqslot_clean); + + /* + * At this point newslot contains a virtual tuple that may + * reference some fields of oldslot's tuple in some disk buffer. + * If that tuple is in a different page than the original target + * tuple, then our only pin on that buffer is oldslot's, and we're + * about to release it. Hence we'd better materialize newslot to + * ensure it doesn't contain references into an unpinned buffer. + * (We'd materialize it below anyway, but too late for safety.) + */ + ExecMaterializeSlot(newslot); } + /* + * Here we convert oldslot to a materialized slot holding trigtuple. + * Neither slot passed to the triggers will hold any buffer pin. + */ trigtuple = ExecFetchSlotHeapTuple(oldslot, true, &should_free_trig); } else { + /* Put the FDW-supplied tuple into oldslot to unify the cases */ ExecForceStoreHeapTuple(fdw_trigtuple, oldslot, false); trigtuple = fdw_trigtuple; } diff --git a/src/backend/commands/tsearchcmds.c b/src/backend/commands/tsearchcmds.c index 4cc4e3c..7aa166f 100644 --- a/src/backend/commands/tsearchcmds.c +++ b/src/backend/commands/tsearchcmds.c @@ -48,6 +48,12 @@ #include "utils/rel.h" #include "utils/syscache.h" +/* Single entry of List returned by getTokenTypes() */ +typedef struct +{ + int num; /* token type number */ + char *name; /* token type name */ +} TSTokenTypeItem; static void MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, HeapTuple tup, Relation relMap); @@ -1151,22 +1157,45 @@ AlterTSConfiguration(AlterTSConfigurationStmt *stmt) } /* - * Translate a list of token type names to an array of token type numbers + * Check whether a token type name is a member of a TSTokenTypeItem list. */ -static int * +static bool +tstoken_list_member(char *token_name, List *tokens) +{ + ListCell *c; + bool found = false; + + foreach(c, tokens) + { + TSTokenTypeItem *ts = (TSTokenTypeItem *) lfirst(c); + + if (strcmp(token_name, ts->name) == 0) + { + found = true; + break; + } + } + + return found; +} + +/* + * Translate a list of token type names to a list of unique TSTokenTypeItem. + * + * Duplicated entries list are removed from tokennames. + */ +static List * getTokenTypes(Oid prsId, List *tokennames) { TSParserCacheEntry *prs = lookup_ts_parser_cache(prsId); LexDescr *list; - int *res, - i, - ntoken; + List *result = NIL; + int ntoken; ListCell *tn; ntoken = list_length(tokennames); if (ntoken == 0) - return NULL; - res = (int *) palloc(sizeof(int) * ntoken); + return NIL; if (!OidIsValid(prs->lextypeOid)) elog(ERROR, "method lextype isn't defined for text search parser %u", @@ -1176,19 +1205,26 @@ getTokenTypes(Oid prsId, List *tokennames) list = (LexDescr *) DatumGetPointer(OidFunctionCall1(prs->lextypeOid, (Datum) 0)); - i = 0; foreach(tn, tokennames) { String *val = lfirst_node(String, tn); bool found = false; int j; + /* Skip if this token is already in the result */ + if (tstoken_list_member(strVal(val), result)) + continue; + j = 0; while (list && list[j].lexid) { if (strcmp(strVal(val), list[j].alias) == 0) { - res[i] = list[j].lexid; + TSTokenTypeItem *ts = (TSTokenTypeItem *) palloc0(sizeof(TSTokenTypeItem)); + + ts->num = list[j].lexid; + ts->name = pstrdup(strVal(val)); + result = lappend(result, ts); found = true; break; } @@ -1199,10 +1235,9 @@ getTokenTypes(Oid prsId, List *tokennames) (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("token type \"%s\" does not exist", strVal(val)))); - i++; } - return res; + return result; } /* @@ -1220,8 +1255,7 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, int i; int j; Oid prsId; - int *tokens, - ntoken; + List *tokens = NIL; Oid *dictIds; int ndict; ListCell *c; @@ -1231,15 +1265,16 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, prsId = tsform->cfgparser; tokens = getTokenTypes(prsId, stmt->tokentype); - ntoken = list_length(stmt->tokentype); if (stmt->override) { /* * delete maps for tokens if they exist and command was ALTER */ - for (i = 0; i < ntoken; i++) + foreach(c, tokens) { + TSTokenTypeItem *ts = (TSTokenTypeItem *) lfirst(c); + ScanKeyInit(&skey[0], Anum_pg_ts_config_map_mapcfg, BTEqualStrategyNumber, F_OIDEQ, @@ -1247,7 +1282,7 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, ScanKeyInit(&skey[1], Anum_pg_ts_config_map_maptokentype, BTEqualStrategyNumber, F_INT4EQ, - Int32GetDatum(tokens[i])); + Int32GetDatum(ts->num)); scan = systable_beginscan(relMap, TSConfigMapIndexId, true, NULL, 2, skey); @@ -1302,9 +1337,11 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, { bool tokmatch = false; - for (j = 0; j < ntoken; j++) + foreach(c, tokens) { - if (cfgmap->maptokentype == tokens[j]) + TSTokenTypeItem *ts = (TSTokenTypeItem *) lfirst(c); + + if (cfgmap->maptokentype == ts->num) { tokmatch = true; break; @@ -1345,8 +1382,10 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, /* * Insertion of new entries */ - for (i = 0; i < ntoken; i++) + foreach(c, tokens) { + TSTokenTypeItem *ts = (TSTokenTypeItem *) lfirst(c); + for (j = 0; j < ndict; j++) { Datum values[Natts_pg_ts_config_map]; @@ -1354,7 +1393,7 @@ MakeConfigurationMapping(AlterTSConfigurationStmt *stmt, memset(nulls, false, sizeof(nulls)); values[Anum_pg_ts_config_map_mapcfg - 1] = ObjectIdGetDatum(cfgId); - values[Anum_pg_ts_config_map_maptokentype - 1] = Int32GetDatum(tokens[i]); + values[Anum_pg_ts_config_map_maptokentype - 1] = Int32GetDatum(ts->num); values[Anum_pg_ts_config_map_mapseqno - 1] = Int32GetDatum(j + 1); values[Anum_pg_ts_config_map_mapdict - 1] = ObjectIdGetDatum(dictIds[j]); @@ -1381,9 +1420,8 @@ DropConfigurationMapping(AlterTSConfigurationStmt *stmt, ScanKeyData skey[2]; SysScanDesc scan; HeapTuple maptup; - int i; Oid prsId; - int *tokens; + List *tokens = NIL; ListCell *c; tsform = (Form_pg_ts_config) GETSTRUCT(tup); @@ -1392,10 +1430,9 @@ DropConfigurationMapping(AlterTSConfigurationStmt *stmt, tokens = getTokenTypes(prsId, stmt->tokentype); - i = 0; - foreach(c, stmt->tokentype) + foreach(c, tokens) { - String *val = lfirst_node(String, c); + TSTokenTypeItem *ts = (TSTokenTypeItem *) lfirst(c); bool found = false; ScanKeyInit(&skey[0], @@ -1405,7 +1442,7 @@ DropConfigurationMapping(AlterTSConfigurationStmt *stmt, ScanKeyInit(&skey[1], Anum_pg_ts_config_map_maptokentype, BTEqualStrategyNumber, F_INT4EQ, - Int32GetDatum(tokens[i])); + Int32GetDatum(ts->num)); scan = systable_beginscan(relMap, TSConfigMapIndexId, true, NULL, 2, skey); @@ -1425,17 +1462,15 @@ DropConfigurationMapping(AlterTSConfigurationStmt *stmt, ereport(ERROR, (errcode(ERRCODE_UNDEFINED_OBJECT), errmsg("mapping for token type \"%s\" does not exist", - strVal(val)))); + ts->name))); } else { ereport(NOTICE, (errmsg("mapping for token type \"%s\" does not exist, skipping", - strVal(val)))); + ts->name))); } } - - i++; } EventTriggerCollectAlterTSConfig(stmt, cfgId, NULL, 0); diff --git a/src/backend/executor/nodeAppend.c b/src/backend/executor/nodeAppend.c index 357e10a..68f13f2 100644 --- a/src/backend/executor/nodeAppend.c +++ b/src/backend/executor/nodeAppend.c @@ -1016,43 +1016,51 @@ ExecAppendAsyncEventWait(AppendState *node) /* We should never be called when there are no valid async subplans. */ Assert(node->as_nasyncremain > 0); + Assert(node->as_eventset == NULL); node->as_eventset = CreateWaitEventSet(CurrentMemoryContext, nevents); - AddWaitEventToSet(node->as_eventset, WL_EXIT_ON_PM_DEATH, PGINVALID_SOCKET, - NULL, NULL); - - /* Give each waiting subplan a chance to add an event. */ - i = -1; - while ((i = bms_next_member(node->as_asyncplans, i)) >= 0) + PG_TRY(); { - AsyncRequest *areq = node->as_asyncrequests[i]; + AddWaitEventToSet(node->as_eventset, WL_EXIT_ON_PM_DEATH, PGINVALID_SOCKET, + NULL, NULL); - if (areq->callback_pending) - ExecAsyncConfigureWait(areq); - } + /* Give each waiting subplan a chance to add an event. */ + i = -1; + while ((i = bms_next_member(node->as_asyncplans, i)) >= 0) + { + AsyncRequest *areq = node->as_asyncrequests[i]; - /* - * No need for further processing if there are no configured events other - * than the postmaster death event. - */ - if (GetNumRegisteredWaitEvents(node->as_eventset) == 1) + if (areq->callback_pending) + ExecAsyncConfigureWait(areq); + } + + /* + * No need for further processing if there are no configured events + * other than the postmaster death event. + */ + if (GetNumRegisteredWaitEvents(node->as_eventset) == 1) + { + FreeWaitEventSet(node->as_eventset); + node->as_eventset = NULL; + return; + } + + /* Return at most EVENT_BUFFER_SIZE events in one call. */ + if (nevents > EVENT_BUFFER_SIZE) + nevents = EVENT_BUFFER_SIZE; + + /* + * If the timeout is -1, wait until at least one event occurs. If the + * timeout is 0, poll for events, but do not wait at all. + */ + noccurred = WaitEventSetWait(node->as_eventset, timeout, occurred_event, + nevents, WAIT_EVENT_APPEND_READY); + } + PG_FINALLY(); { FreeWaitEventSet(node->as_eventset); node->as_eventset = NULL; - return; } - - /* We wait on at most EVENT_BUFFER_SIZE events. */ - if (nevents > EVENT_BUFFER_SIZE) - nevents = EVENT_BUFFER_SIZE; - - /* - * If the timeout is -1, wait until at least one event occurs. If the - * timeout is 0, poll for events, but do not wait at all. - */ - noccurred = WaitEventSetWait(node->as_eventset, timeout, occurred_event, - nevents, WAIT_EVENT_APPEND_READY); - FreeWaitEventSet(node->as_eventset); - node->as_eventset = NULL; + PG_END_TRY(); if (noccurred == 0) return; diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 59a720d..34dd9a2 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -1162,6 +1162,7 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable) double dtuples; double dbuckets; int new_nbuckets; + uint32 max_buckets; /* * We probably also need a smaller bucket array. How many @@ -1174,9 +1175,17 @@ ExecParallelHashIncreaseNumBatches(HashJoinTable hashtable) * array. */ dtuples = (old_batch0->ntuples * 2.0) / new_nbatch; + + /* + * We need to calculate the maximum number of buckets to + * stay within the MaxAllocSize boundary. Round the + * maximum number to the previous power of 2 given that + * later we round the number to the next power of 2. + */ + max_buckets = pg_prevpower2_32((uint32) + (MaxAllocSize / sizeof(dsa_pointer_atomic))); dbuckets = ceil(dtuples / NTUP_PER_BUCKET); - dbuckets = Min(dbuckets, - MaxAllocSize / sizeof(dsa_pointer_atomic)); + dbuckets = Min(dbuckets, max_buckets); new_nbuckets = (int) dbuckets; new_nbuckets = Max(new_nbuckets, 1024); new_nbuckets = pg_nextpower2_32(new_nbuckets); diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 7f822ef..6fea82e 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -1404,6 +1404,7 @@ ExecDelete(ModifyTableContext *context, bool processReturning, bool changingPart, bool canSetTag, + TM_Result *tmresult, bool *tupleDeleted, TupleTableSlot **epqreturnslot) { @@ -1420,7 +1421,7 @@ ExecDelete(ModifyTableContext *context, * done if it says we are. */ if (!ExecDeletePrologue(context, resultRelInfo, tupleid, oldtuple, - epqreturnslot, NULL)) + epqreturnslot, tmresult)) return NULL; /* INSTEAD OF ROW DELETE Triggers */ @@ -1475,6 +1476,9 @@ ExecDelete(ModifyTableContext *context, ldelete:; result = ExecDeleteAct(context, resultRelInfo, tupleid, changingPart); + if (tmresult) + *tmresult = result; + switch (result) { case TM_SelfModified: @@ -1713,6 +1717,7 @@ ExecCrossPartitionUpdate(ModifyTableContext *context, TupleTableSlot *slot, bool canSetTag, UpdateContext *updateCxt, + TM_Result *tmresult, TupleTableSlot **retry_slot, TupleTableSlot **inserted_tuple, ResultRelInfo **insert_destrel) @@ -1776,7 +1781,7 @@ ExecCrossPartitionUpdate(ModifyTableContext *context, false, /* processReturning */ true, /* changingPart */ false, /* canSetTag */ - &tuple_deleted, &epqslot); + tmresult, &tuple_deleted, &epqslot); /* * For some reason if DELETE didn't happen (e.g. trigger prevented it, or @@ -1808,7 +1813,7 @@ ExecCrossPartitionUpdate(ModifyTableContext *context, * action entirely). */ if (context->relaction != NULL) - return false; + return *tmresult == TM_Ok; else if (TupIsNull(epqslot)) return true; else @@ -2013,6 +2018,7 @@ lreplace: if (ExecCrossPartitionUpdate(context, resultRelInfo, tupleid, oldtuple, slot, canSetTag, updateCxt, + &result, &retry_slot, &inserted_tuple, &insert_destrel)) @@ -2052,7 +2058,7 @@ lreplace: * here; instead let it handle that on its own rules. */ if (context->relaction != NULL) - return TM_Updated; + return result; /* * ExecCrossPartitionUpdate installed an updated version of the new @@ -2879,7 +2885,21 @@ lmerge_matched:; break; /* concurrent update/delete */ } result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL, - newslot, false, &updateCxt); + newslot, canSetTag, &updateCxt); + + /* + * As in ExecUpdate(), if ExecUpdateAct() reports that a + * cross-partition update was done, then there's nothing else + * for us to do --- the UPDATE has been turned into a DELETE + * and an INSERT, and we must not perform any of the usual + * post-update tasks. + */ + if (updateCxt.crossPartUpdate) + { + mtstate->mt_merge_updated += 1; + return true; + } + if (result == TM_Ok && updateCxt.updated) { ExecUpdateEpilogue(context, &updateCxt, resultRelInfo, @@ -3808,7 +3828,7 @@ ExecModifyTable(PlanState *pstate) case CMD_DELETE: slot = ExecDelete(&context, resultRelInfo, tupleid, oldtuple, - true, false, node->canSetTag, NULL, NULL); + true, false, node->canSetTag, NULL, NULL, NULL); break; case CMD_MERGE: diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index a9f1ce7..a4b9ede 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -47,6 +47,8 @@ #include "utils/memutils.h" #include "utils/resowner_private.h" +#define LLVMJIT_LLVM_CONTEXT_REUSE_MAX 100 + /* Handle of a module emitted via ORC JIT */ typedef struct LLVMJitHandle { @@ -100,8 +102,15 @@ LLVMModuleRef llvm_types_module = NULL; static bool llvm_session_initialized = false; static size_t llvm_generation = 0; + +/* number of LLVMJitContexts that currently are in use */ +static size_t llvm_jit_context_in_use_count = 0; + +/* how many times has the current LLVMContextRef been used */ +static size_t llvm_llvm_context_reuse_count = 0; static const char *llvm_triple = NULL; static const char *llvm_layout = NULL; +static LLVMContextRef llvm_context; static LLVMTargetRef llvm_targetref; @@ -122,6 +131,8 @@ static void llvm_compile_module(LLVMJitContext *context); static void llvm_optimize_module(LLVMJitContext *context, LLVMModuleRef module); static void llvm_create_types(void); +static void llvm_set_target(void); +static void llvm_recreate_llvm_context(void); static uint64_t llvm_resolve_symbol(const char *name, void *ctx); #if LLVM_VERSION_MAJOR > 11 @@ -143,6 +154,63 @@ _PG_jit_provider_init(JitProviderCallbacks *cb) cb->compile_expr = llvm_compile_expr; } + +/* + * Every now and then create a new LLVMContextRef. Unfortunately, during every + * round of inlining, types may "leak" (they can still be found/used via the + * context, but new types will be created the next time in inlining is + * performed). To prevent that from slowly accumulating problematic amounts of + * memory, recreate the LLVMContextRef we use. We don't want to do so too + * often, as that implies some overhead (particularly re-loading the module + * summaries / modules is fairly expensive). A future TODO would be to make + * this more finegrained and only drop/recreate the LLVMContextRef when we know + * there has been inlining. If we can get the size of the context from LLVM + * then that might be a better way to determine when to drop/recreate rather + * then the usagecount heuristic currently employed. + */ +static void +llvm_recreate_llvm_context(void) +{ + if (!llvm_context) + elog(ERROR, "Trying to recreate a non-existing context"); + + /* + * We can only safely recreate the LLVM context if no other code is being + * JITed, otherwise we'd release the types in use for that. + */ + if (llvm_jit_context_in_use_count > 0) + { + llvm_llvm_context_reuse_count++; + return; + } + + if (llvm_llvm_context_reuse_count <= LLVMJIT_LLVM_CONTEXT_REUSE_MAX) + { + llvm_llvm_context_reuse_count++; + return; + } + + /* + * Need to reset the modules that the inlining code caches before + * disposing of the context. LLVM modules exist within a specific LLVM + * context, therefore disposing of the context before resetting the cache + * would lead to dangling pointers to modules. + */ + llvm_inline_reset_caches(); + + LLVMContextDispose(llvm_context); + llvm_context = LLVMContextCreate(); + llvm_llvm_context_reuse_count = 0; + + /* + * Re-build cached type information, so code generation code can rely on + * that information to be present (also prevents the variables to be + * dangling references). + */ + llvm_create_types(); +} + + /* * Create a context for JITing work. * @@ -159,6 +227,8 @@ llvm_create_context(int jitFlags) llvm_session_initialize(); + llvm_recreate_llvm_context(); + ResourceOwnerEnlargeJIT(CurrentResourceOwner); context = MemoryContextAllocZero(TopMemoryContext, @@ -169,6 +239,8 @@ llvm_create_context(int jitFlags) context->base.resowner = CurrentResourceOwner; ResourceOwnerRememberJIT(CurrentResourceOwner, PointerGetDatum(context)); + llvm_jit_context_in_use_count++; + return context; } @@ -178,10 +250,16 @@ llvm_create_context(int jitFlags) static void llvm_release_context(JitContext *context) { - LLVMJitContext *llvm_context = (LLVMJitContext *) context; + LLVMJitContext *llvm_jit_context = (LLVMJitContext *) context; ListCell *lc; /* + * Consider as cleaned up even if we skip doing so below, that way we can + * verify the tracking is correct (see llvm_shutdown()). + */ + llvm_jit_context_in_use_count--; + + /* * When this backend is exiting, don't clean up LLVM. As an error might * have occurred from within LLVM, we do not want to risk reentering. All * resource cleanup is going to happen through process exit. @@ -191,13 +269,13 @@ llvm_release_context(JitContext *context) llvm_enter_fatal_on_oom(); - if (llvm_context->module) + if (llvm_jit_context->module) { - LLVMDisposeModule(llvm_context->module); - llvm_context->module = NULL; + LLVMDisposeModule(llvm_jit_context->module); + llvm_jit_context->module = NULL; } - foreach(lc, llvm_context->handles) + foreach(lc, llvm_jit_context->handles) { LLVMJitHandle *jit_handle = (LLVMJitHandle *) lfirst(lc); @@ -227,8 +305,8 @@ llvm_release_context(JitContext *context) pfree(jit_handle); } - list_free(llvm_context->handles); - llvm_context->handles = NIL; + list_free(llvm_jit_context->handles); + llvm_jit_context->handles = NIL; llvm_leave_fatal_on_oom(); } @@ -248,7 +326,7 @@ llvm_mutable_module(LLVMJitContext *context) { context->compiled = false; context->module_generation = llvm_generation++; - context->module = LLVMModuleCreateWithName("pg"); + context->module = LLVMModuleCreateWithNameInContext("pg", llvm_context); LLVMSetTarget(context->module, llvm_triple); LLVMSetDataLayout(context->module, llvm_layout); } @@ -832,6 +910,14 @@ llvm_session_initialize(void) LLVMInitializeNativeAsmPrinter(); LLVMInitializeNativeAsmParser(); + if (llvm_context == NULL) + { + llvm_context = LLVMContextCreate(); + + llvm_jit_context_in_use_count = 0; + llvm_llvm_context_reuse_count = 0; + } + /* * When targeting LLVM 15, turn off opaque pointers for the context we * build our code in. We don't need to do so for other contexts (e.g. @@ -851,6 +937,11 @@ llvm_session_initialize(void) */ llvm_create_types(); + /* + * Extract target information from loaded module. + */ + llvm_set_target(); + if (LLVMGetTargetFromTriple(llvm_triple, &llvm_targetref, &error) != 0) { elog(FATAL, "failed to query triple %s", error); @@ -946,6 +1037,10 @@ llvm_shutdown(int code, Datum arg) return; } + if (llvm_jit_context_in_use_count != 0) + elog(PANIC, "LLVMJitContext in use count not 0 at exit (is %zu)", + llvm_jit_context_in_use_count); + #if LLVM_VERSION_MAJOR > 11 { if (llvm_opt3_orc) @@ -1009,6 +1104,23 @@ load_return_type(LLVMModuleRef mod, const char *name) } /* + * Load triple & layout from clang emitted file so we're guaranteed to be + * compatible. + */ +static void +llvm_set_target(void) +{ + if (!llvm_types_module) + elog(ERROR, "failed to extract target information, llvmjit_types.c not loaded"); + + if (llvm_triple == NULL) + llvm_triple = pstrdup(LLVMGetTarget(llvm_types_module)); + + if (llvm_layout == NULL) + llvm_layout = pstrdup(LLVMGetDataLayoutStr(llvm_types_module)); +} + +/* * Load required information, types, function signatures from llvmjit_types.c * and make them available in global variables. * @@ -1031,19 +1143,12 @@ llvm_create_types(void) } /* eagerly load contents, going to need it all */ - if (LLVMParseBitcode2(buf, &llvm_types_module)) + if (LLVMParseBitcodeInContext2(llvm_context, buf, &llvm_types_module)) { - elog(ERROR, "LLVMParseBitcode2 of %s failed", path); + elog(ERROR, "LLVMParseBitcodeInContext2 of %s failed", path); } LLVMDisposeMemoryBuffer(buf); - /* - * Load triple & layout from clang emitted file so we're guaranteed to be - * compatible. - */ - llvm_triple = pstrdup(LLVMGetTarget(llvm_types_module)); - llvm_layout = pstrdup(LLVMGetDataLayoutStr(llvm_types_module)); - TypeSizeT = llvm_pg_var_type("TypeSizeT"); TypeParamBool = load_return_type(llvm_types_module, "FunctionReturningBool"); TypeStorageBool = llvm_pg_var_type("TypeStorageBool"); diff --git a/src/backend/jit/llvm/llvmjit_deform.c b/src/backend/jit/llvm/llvmjit_deform.c index 88a2eec..489ef34 100644 --- a/src/backend/jit/llvm/llvmjit_deform.c +++ b/src/backend/jit/llvm/llvmjit_deform.c @@ -37,6 +37,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, char *funcname; LLVMModuleRef mod; + LLVMContextRef lc; LLVMBuilderRef b; LLVMTypeRef deform_sig; @@ -99,6 +100,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, return NULL; mod = llvm_mutable_module(context); + lc = LLVMGetModuleContext(mod); funcname = llvm_expand_funcname(context, "deform"); @@ -133,8 +135,8 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, param_types[0] = l_ptr(StructTupleTableSlot); - deform_sig = LLVMFunctionType(LLVMVoidType(), param_types, - lengthof(param_types), 0); + deform_sig = LLVMFunctionType(LLVMVoidTypeInContext(lc), + param_types, lengthof(param_types), 0); } v_deform_fn = LLVMAddFunction(mod, funcname, deform_sig); LLVMSetLinkage(v_deform_fn, LLVMInternalLinkage); @@ -142,17 +144,17 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, llvm_copy_attributes(AttributeTemplate, v_deform_fn); b_entry = - LLVMAppendBasicBlock(v_deform_fn, "entry"); + LLVMAppendBasicBlockInContext(lc, v_deform_fn, "entry"); b_adjust_unavail_cols = - LLVMAppendBasicBlock(v_deform_fn, "adjust_unavail_cols"); + LLVMAppendBasicBlockInContext(lc, v_deform_fn, "adjust_unavail_cols"); b_find_start = - LLVMAppendBasicBlock(v_deform_fn, "find_startblock"); + LLVMAppendBasicBlockInContext(lc, v_deform_fn, "find_startblock"); b_out = - LLVMAppendBasicBlock(v_deform_fn, "outblock"); + LLVMAppendBasicBlockInContext(lc, v_deform_fn, "outblock"); b_dead = - LLVMAppendBasicBlock(v_deform_fn, "deadblock"); + LLVMAppendBasicBlockInContext(lc, v_deform_fn, "deadblock"); - b = LLVMCreateBuilder(); + b = LLVMCreateBuilderInContext(lc); attcheckattnoblocks = palloc(sizeof(LLVMBasicBlockRef) * natts); attstartblocks = palloc(sizeof(LLVMBasicBlockRef) * natts); @@ -232,7 +234,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, v_tuplep, FIELDNO_HEAPTUPLEHEADERDATA_BITS, ""), - l_ptr(LLVMInt8Type()), + l_ptr(LLVMInt8TypeInContext(lc)), "t_bits"); v_infomask1 = l_load_struct_gep(b, @@ -250,14 +252,14 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, v_hasnulls = LLVMBuildICmp(b, LLVMIntNE, LLVMBuildAnd(b, - l_int16_const(HEAP_HASNULL), + l_int16_const(lc, HEAP_HASNULL), v_infomask1, ""), - l_int16_const(0), + l_int16_const(lc, 0), "hasnulls"); /* t_infomask2 & HEAP_NATTS_MASK */ v_maxatt = LLVMBuildAnd(b, - l_int16_const(HEAP_NATTS_MASK), + l_int16_const(lc, HEAP_NATTS_MASK), v_infomask2, "maxatt"); @@ -272,13 +274,13 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, v_tuplep, FIELDNO_HEAPTUPLEHEADERDATA_HOFF, ""), - LLVMInt32Type(), "t_hoff"); + LLVMInt32TypeInContext(lc), "t_hoff"); v_tupdata_base = l_gep(b, - LLVMInt8Type(), + LLVMInt8TypeInContext(lc), LLVMBuildBitCast(b, v_tuplep, - l_ptr(LLVMInt8Type()), + l_ptr(LLVMInt8TypeInContext(lc)), ""), &v_hoff, 1, "v_tupdata_base"); @@ -290,7 +292,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, { LLVMValueRef v_off_start; - v_off_start = l_load(b, LLVMInt32Type(), v_slotoffp, "v_slot_off"); + v_off_start = l_load(b, LLVMInt32TypeInContext(lc), v_slotoffp, "v_slot_off"); v_off_start = LLVMBuildZExt(b, v_off_start, TypeSizeT, ""); LLVMBuildStore(b, v_off_start, v_offp); } @@ -336,7 +338,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, LLVMBuildCondBr(b, LLVMBuildICmp(b, LLVMIntULT, v_maxatt, - l_int16_const(natts), + l_int16_const(lc, natts), ""), b_adjust_unavail_cols, b_find_start); @@ -345,8 +347,8 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, LLVMPositionBuilderAtEnd(b, b_adjust_unavail_cols); v_params[0] = v_slot; - v_params[1] = LLVMBuildZExt(b, v_maxatt, LLVMInt32Type(), ""); - v_params[2] = l_int32_const(natts); + v_params[1] = LLVMBuildZExt(b, v_maxatt, LLVMInt32TypeInContext(lc), ""); + v_params[2] = l_int32_const(lc, natts); f = llvm_pg_func(mod, "slot_getmissingattrs"); l_call(b, LLVMGetFunctionType(f), f, @@ -356,7 +358,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, LLVMPositionBuilderAtEnd(b, b_find_start); - v_nvalid = l_load(b, LLVMInt16Type(), v_nvalidp, ""); + v_nvalid = l_load(b, LLVMInt16TypeInContext(lc), v_nvalidp, ""); /* * Build switch to go from nvalid to the right startblock. Callers @@ -371,7 +373,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, for (attnum = 0; attnum < natts; attnum++) { - LLVMValueRef v_attno = l_int16_const(attnum); + LLVMValueRef v_attno = l_int16_const(lc, attnum); LLVMAddCase(v_switch, v_attno, attcheckattnoblocks[attnum]); } @@ -394,7 +396,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, Form_pg_attribute att = TupleDescAttr(desc, attnum); LLVMValueRef v_incby; int alignto; - LLVMValueRef l_attno = l_int16_const(attnum); + LLVMValueRef l_attno = l_int16_const(lc, attnum); LLVMValueRef v_attdatap; LLVMValueRef v_resultp; @@ -455,14 +457,14 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, else b_next = attcheckattnoblocks[attnum + 1]; - v_nullbyteno = l_int32_const(attnum >> 3); - v_nullbytemask = l_int8_const(1 << ((attnum) & 0x07)); - v_nullbyte = l_load_gep1(b, LLVMInt8Type(), v_bits, v_nullbyteno, "attnullbyte"); + v_nullbyteno = l_int32_const(lc, attnum >> 3); + v_nullbytemask = l_int8_const(lc, 1 << ((attnum) & 0x07)); + v_nullbyte = l_load_gep1(b, LLVMInt8TypeInContext(lc), v_bits, v_nullbyteno, "attnullbyte"); v_nullbit = LLVMBuildICmp(b, LLVMIntEQ, LLVMBuildAnd(b, v_nullbyte, v_nullbytemask, ""), - l_int8_const(0), + l_int8_const(lc, 0), "attisnull"); v_attisnull = LLVMBuildAnd(b, v_hasnulls, v_nullbit, ""); @@ -473,8 +475,8 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, /* store null-byte */ LLVMBuildStore(b, - l_int8_const(1), - l_gep(b, LLVMInt8Type(), v_tts_nulls, &l_attno, 1, "")); + l_int8_const(lc, 1), + l_gep(b, LLVMInt8TypeInContext(lc), v_tts_nulls, &l_attno, 1, "")); /* store zero datum */ LLVMBuildStore(b, l_sizet_const(0), @@ -540,10 +542,11 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, v_off = l_load(b, TypeSizeT, v_offp, ""); v_possible_padbyte = - l_load_gep1(b, LLVMInt8Type(), v_tupdata_base, v_off, "padbyte"); + l_load_gep1(b, LLVMInt8TypeInContext(lc), v_tupdata_base, + v_off, "padbyte"); v_ispad = LLVMBuildICmp(b, LLVMIntEQ, - v_possible_padbyte, l_int8_const(0), + v_possible_padbyte, l_int8_const(lc, 0), "ispadbyte"); LLVMBuildCondBr(b, v_ispad, attalignblocks[attnum], @@ -651,14 +654,14 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, LLVMValueRef v_off = l_load(b, TypeSizeT, v_offp, ""); v_attdatap = - l_gep(b, LLVMInt8Type(), v_tupdata_base, &v_off, 1, ""); + l_gep(b, LLVMInt8TypeInContext(lc), v_tupdata_base, &v_off, 1, ""); } /* compute address to store value at */ v_resultp = l_gep(b, TypeSizeT, v_tts_values, &l_attno, 1, ""); /* store null-byte (false) */ - LLVMBuildStore(b, l_int8_const(0), + LLVMBuildStore(b, l_int8_const(lc, 0), l_gep(b, TypeStorageBool, v_tts_nulls, &l_attno, 1, "")); /* @@ -668,7 +671,7 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, if (att->attbyval) { LLVMValueRef v_tmp_loaddata; - LLVMTypeRef vartype = LLVMIntType(att->attlen * 8); + LLVMTypeRef vartype = LLVMIntTypeInContext(lc, att->attlen * 8); LLVMTypeRef vartypep = LLVMPointerType(vartype, 0); v_tmp_loaddata = @@ -760,11 +763,11 @@ slot_compile_deform(LLVMJitContext *context, TupleDesc desc, LLVMValueRef v_off = l_load(b, TypeSizeT, v_offp, ""); LLVMValueRef v_flags; - LLVMBuildStore(b, l_int16_const(natts), v_nvalidp); - v_off = LLVMBuildTrunc(b, v_off, LLVMInt32Type(), ""); + LLVMBuildStore(b, l_int16_const(lc, natts), v_nvalidp); + v_off = LLVMBuildTrunc(b, v_off, LLVMInt32TypeInContext(lc), ""); LLVMBuildStore(b, v_off, v_slotoffp); - v_flags = l_load(b, LLVMInt16Type(), v_flagsp, "tts_flags"); - v_flags = LLVMBuildOr(b, v_flags, l_int16_const(TTS_FLAG_SLOW), ""); + v_flags = l_load(b, LLVMInt16TypeInContext(lc), v_flagsp, "tts_flags"); + v_flags = LLVMBuildOr(b, v_flags, l_int16_const(lc, TTS_FLAG_SLOW), ""); LLVMBuildStore(b, v_flags, v_flagsp); LLVMBuildRetVoid(b); } diff --git a/src/backend/jit/llvm/llvmjit_expr.c b/src/backend/jit/llvm/llvmjit_expr.c index 49b19c9..95836af 100644 --- a/src/backend/jit/llvm/llvmjit_expr.c +++ b/src/backend/jit/llvm/llvmjit_expr.c @@ -84,6 +84,7 @@ llvm_compile_expr(ExprState *state) LLVMBuilderRef b; LLVMModuleRef mod; + LLVMContextRef lc; LLVMValueRef eval_fn; LLVMBasicBlockRef entry; LLVMBasicBlockRef *opblocks; @@ -143,8 +144,9 @@ llvm_compile_expr(ExprState *state) INSTR_TIME_SET_CURRENT(starttime); mod = llvm_mutable_module(context); + lc = LLVMGetModuleContext(mod); - b = LLVMCreateBuilder(); + b = LLVMCreateBuilderInContext(lc); funcname = llvm_expand_funcname(context, "evalexpr"); @@ -155,7 +157,7 @@ llvm_compile_expr(ExprState *state) LLVMSetVisibility(eval_fn, LLVMDefaultVisibility); llvm_copy_attributes(AttributeTemplate, eval_fn); - entry = LLVMAppendBasicBlock(eval_fn, "entry"); + entry = LLVMAppendBasicBlockInContext(lc, eval_fn, "entry"); /* build state */ v_state = LLVMGetParam(eval_fn, 0); @@ -337,7 +339,7 @@ llvm_compile_expr(ExprState *state) ""); LLVMBuildCondBr(b, LLVMBuildICmp(b, LLVMIntUGE, v_nvalid, - l_int16_const(op->d.fetch.last_var), + l_int16_const(lc, op->d.fetch.last_var), ""), opblocks[opno + 1], b_fetch); @@ -373,7 +375,7 @@ llvm_compile_expr(ExprState *state) LLVMValueRef params[2]; params[0] = v_slot; - params[1] = l_int32_const(op->d.fetch.last_var); + params[1] = l_int32_const(lc, op->d.fetch.last_var); l_call(b, llvm_pg_var_func_type("slot_getsomeattrs_int"), @@ -411,7 +413,7 @@ llvm_compile_expr(ExprState *state) v_nulls = v_scannulls; } - v_attnum = l_int32_const(op->d.var.attnum); + v_attnum = l_int32_const(lc, op->d.var.attnum); value = l_load_gep1(b, TypeSizeT, v_values, v_attnum, ""); isnull = l_load_gep1(b, TypeStorageBool, v_nulls, v_attnum, ""); LLVMBuildStore(b, value, v_resvaluep); @@ -477,12 +479,12 @@ llvm_compile_expr(ExprState *state) } /* load data */ - v_attnum = l_int32_const(op->d.assign_var.attnum); + v_attnum = l_int32_const(lc, op->d.assign_var.attnum); v_value = l_load_gep1(b, TypeSizeT, v_values, v_attnum, ""); v_isnull = l_load_gep1(b, TypeStorageBool, v_nulls, v_attnum, ""); /* compute addresses of targets */ - v_resultnum = l_int32_const(op->d.assign_var.resultnum); + v_resultnum = l_int32_const(lc, op->d.assign_var.resultnum); v_rvaluep = l_gep(b, TypeSizeT, v_resultvalues, @@ -515,7 +517,7 @@ llvm_compile_expr(ExprState *state) v_isnull = l_load(b, TypeStorageBool, v_tmpisnullp, ""); /* compute addresses of targets */ - v_resultnum = l_int32_const(resultnum); + v_resultnum = l_int32_const(lc, resultnum); v_rvaluep = l_gep(b, TypeSizeT, v_resultvalues, &v_resultnum, 1, ""); v_risnullp = @@ -1749,7 +1751,7 @@ llvm_compile_expr(ExprState *state) v_cmpresult = LLVMBuildTrunc(b, l_load(b, TypeSizeT, v_resvaluep, ""), - LLVMInt32Type(), ""); + LLVMInt32TypeInContext(lc), ""); switch (rctype) { @@ -1775,7 +1777,7 @@ llvm_compile_expr(ExprState *state) v_result = LLVMBuildICmp(b, predicate, v_cmpresult, - l_int32_const(0), + l_int32_const(lc, 0), ""); v_result = LLVMBuildZExt(b, v_result, TypeSizeT, ""); @@ -1910,7 +1912,7 @@ llvm_compile_expr(ExprState *state) LLVMValueRef value, isnull; - v_aggno = l_int32_const(op->d.aggref.aggno); + v_aggno = l_int32_const(lc, op->d.aggref.aggno); /* load agg value / null */ value = l_load_gep1(b, TypeSizeT, v_aggvalues, v_aggno, "aggvalue"); @@ -1944,8 +1946,8 @@ llvm_compile_expr(ExprState *state) * expression). So load it from memory each time round. */ v_wfuncnop = l_ptr_const(&wfunc->wfuncno, - l_ptr(LLVMInt32Type())); - v_wfuncno = l_load(b, LLVMInt32Type(), v_wfuncnop, "v_wfuncno"); + l_ptr(LLVMInt32TypeInContext(lc))); + v_wfuncno = l_load(b, LLVMInt32TypeInContext(lc), v_wfuncnop, "v_wfuncno"); /* load window func value / null */ value = l_load_gep1(b, TypeSizeT, v_aggvalues, v_wfuncno, @@ -2052,7 +2054,7 @@ llvm_compile_expr(ExprState *state) /* strict function, check for NULL args */ for (int argno = 0; argno < nargs; argno++) { - LLVMValueRef v_argno = l_int32_const(argno); + LLVMValueRef v_argno = l_int32_const(lc, argno); LLVMValueRef v_argisnull; LLVMBasicBlockRef b_argnotnull; @@ -2111,7 +2113,7 @@ llvm_compile_expr(ExprState *state) FIELDNO_AGGSTATE_ALL_PERGROUPS, "aggstate.all_pergroups"); - v_setoff = l_int32_const(op->d.agg_plain_pergroup_nullcheck.setoff); + v_setoff = l_int32_const(lc, op->d.agg_plain_pergroup_nullcheck.setoff); v_pergroup_allaggs = l_load_gep1(b, l_ptr(StructAggStatePerGroupData), v_allpergroupsp, v_setoff, ""); @@ -2183,8 +2185,8 @@ llvm_compile_expr(ExprState *state) v_aggstatep, FIELDNO_AGGSTATE_ALL_PERGROUPS, "aggstate.all_pergroups"); - v_setoff = l_int32_const(op->d.agg_trans.setoff); - v_transno = l_int32_const(op->d.agg_trans.transno); + v_setoff = l_int32_const(lc, op->d.agg_trans.setoff); + v_transno = l_int32_const(lc, op->d.agg_trans.transno); v_pergroupp = l_gep(b, StructAggStatePerGroupData, @@ -2297,7 +2299,7 @@ llvm_compile_expr(ExprState *state) /* set aggstate globals */ LLVMBuildStore(b, v_aggcontext, v_curaggcontext); - LLVMBuildStore(b, l_int32_const(op->d.agg_trans.setno), + LLVMBuildStore(b, l_int32_const(lc, op->d.agg_trans.setno), v_current_setp); LLVMBuildStore(b, v_pertransp, v_current_pertransp); @@ -2493,11 +2495,14 @@ BuildV1Call(LLVMJitContext *context, LLVMBuilderRef b, LLVMModuleRef mod, FunctionCallInfo fcinfo, LLVMValueRef *v_fcinfo_isnull) { + LLVMContextRef lc; LLVMValueRef v_fn; LLVMValueRef v_fcinfo_isnullp; LLVMValueRef v_retval; LLVMValueRef v_fcinfo; + lc = LLVMGetModuleContext(mod); + v_fn = llvm_function_reference(context, b, mod, fcinfo); v_fcinfo = l_ptr_const(fcinfo, l_ptr(StructFunctionCallInfoData)); @@ -2521,12 +2526,12 @@ BuildV1Call(LLVMJitContext *context, LLVMBuilderRef b, LLVMValueRef v_lifetime = create_LifetimeEnd(mod); LLVMValueRef params[2]; - params[0] = l_int64_const(sizeof(NullableDatum) * fcinfo->nargs); - params[1] = l_ptr_const(fcinfo->args, l_ptr(LLVMInt8Type())); + params[0] = l_int64_const(lc, sizeof(NullableDatum) * fcinfo->nargs); + params[1] = l_ptr_const(fcinfo->args, l_ptr(LLVMInt8TypeInContext(lc))); l_call(b, LLVMGetFunctionType(v_lifetime), v_lifetime, params, lengthof(params), ""); - params[0] = l_int64_const(sizeof(fcinfo->isnull)); - params[1] = l_ptr_const(&fcinfo->isnull, l_ptr(LLVMInt8Type())); + params[0] = l_int64_const(lc, sizeof(fcinfo->isnull)); + params[1] = l_ptr_const(&fcinfo->isnull, l_ptr(LLVMInt8TypeInContext(lc))); l_call(b, LLVMGetFunctionType(v_lifetime), v_lifetime, params, lengthof(params), ""); } @@ -2572,6 +2577,7 @@ create_LifetimeEnd(LLVMModuleRef mod) LLVMTypeRef sig; LLVMValueRef fn; LLVMTypeRef param_types[2]; + LLVMContextRef lc; /* LLVM 5+ has a variadic pointer argument */ #if LLVM_VERSION_MAJOR < 5 @@ -2584,12 +2590,12 @@ create_LifetimeEnd(LLVMModuleRef mod) if (fn) return fn; - param_types[0] = LLVMInt64Type(); - param_types[1] = l_ptr(LLVMInt8Type()); + lc = LLVMGetModuleContext(mod); + param_types[0] = LLVMInt64TypeInContext(lc); + param_types[1] = l_ptr(LLVMInt8TypeInContext(lc)); - sig = LLVMFunctionType(LLVMVoidType(), - param_types, lengthof(param_types), - false); + sig = LLVMFunctionType(LLVMVoidTypeInContext(lc), param_types, + lengthof(param_types), false); fn = LLVMAddFunction(mod, nm, sig); LLVMSetFunctionCallConv(fn, LLVMCCallConv); diff --git a/src/backend/jit/llvm/llvmjit_inline.cpp b/src/backend/jit/llvm/llvmjit_inline.cpp index 0e4ddc5..b3382a7 100644 --- a/src/backend/jit/llvm/llvmjit_inline.cpp +++ b/src/backend/jit/llvm/llvmjit_inline.cpp @@ -114,12 +114,12 @@ typedef llvm::StringMap<std::unique_ptr<llvm::ModuleSummaryIndex> > SummaryCache llvm::ManagedStatic<SummaryCache> summary_cache; -static std::unique_ptr<ImportMapTy> llvm_build_inline_plan(llvm::Module *mod); +static std::unique_ptr<ImportMapTy> llvm_build_inline_plan(LLVMContextRef lc, llvm::Module *mod); static void llvm_execute_inline_plan(llvm::Module *mod, ImportMapTy *globalsToInline); -static llvm::Module* load_module_cached(llvm::StringRef modPath); -static std::unique_ptr<llvm::Module> load_module(llvm::StringRef Identifier); +static llvm::Module* load_module_cached(LLVMContextRef c, llvm::StringRef modPath); +static std::unique_ptr<llvm::Module> load_module(LLVMContextRef c, llvm::StringRef Identifier); static std::unique_ptr<llvm::ModuleSummaryIndex> llvm_load_summary(llvm::StringRef path); @@ -153,15 +153,28 @@ summaries_for_guid(const InlineSearchPath& path, llvm::GlobalValue::GUID guid); #endif /* + * Reset inlining related state. This needs to be called before the currently + * used LLVMContextRef is disposed (and a new one create), otherwise we would + * have dangling references to deleted modules. + */ +void +llvm_inline_reset_caches(void) +{ + module_cache->clear(); + summary_cache->clear(); +} + +/* * Perform inlining of external function references in M based on a simple * cost based analysis. */ void llvm_inline(LLVMModuleRef M) { + LLVMContextRef lc = LLVMGetModuleContext(M); llvm::Module *mod = llvm::unwrap(M); - std::unique_ptr<ImportMapTy> globalsToInline = llvm_build_inline_plan(mod); + std::unique_ptr<ImportMapTy> globalsToInline = llvm_build_inline_plan(lc, mod); if (!globalsToInline) return; llvm_execute_inline_plan(mod, globalsToInline.get()); @@ -172,7 +185,7 @@ llvm_inline(LLVMModuleRef M) * mod. */ static std::unique_ptr<ImportMapTy> -llvm_build_inline_plan(llvm::Module *mod) +llvm_build_inline_plan(LLVMContextRef lc, llvm::Module *mod) { std::unique_ptr<ImportMapTy> globalsToInline(new ImportMapTy()); FunctionInlineStates functionStates; @@ -271,7 +284,7 @@ llvm_build_inline_plan(llvm::Module *mod) continue; } - defMod = load_module_cached(modPath); + defMod = load_module_cached(lc, modPath); if (defMod->materializeMetadata()) elog(FATAL, "failed to materialize metadata"); @@ -466,20 +479,20 @@ llvm_execute_inline_plan(llvm::Module *mod, ImportMapTy *globalsToInline) * the cache state would get corrupted. */ static llvm::Module* -load_module_cached(llvm::StringRef modPath) +load_module_cached(LLVMContextRef lc, llvm::StringRef modPath) { auto it = module_cache->find(modPath); if (it == module_cache->end()) { it = module_cache->insert( - std::make_pair(modPath, load_module(modPath))).first; + std::make_pair(modPath, load_module(lc, modPath))).first; } return it->second.get(); } static std::unique_ptr<llvm::Module> -load_module(llvm::StringRef Identifier) +load_module(LLVMContextRef lc, llvm::StringRef Identifier) { LLVMMemoryBufferRef buf; LLVMModuleRef mod; @@ -491,7 +504,7 @@ load_module(llvm::StringRef Identifier) if (LLVMCreateMemoryBufferWithContentsOfFile(path, &buf, &msg)) elog(FATAL, "failed to open bitcode file \"%s\": %s", path, msg); - if (LLVMGetBitcodeModuleInContext2(LLVMGetGlobalContext(), buf, &mod)) + if (LLVMGetBitcodeModuleInContext2(lc, buf, &mod)) elog(FATAL, "failed to parse bitcode in file \"%s\"", path); /* @@ -808,7 +821,10 @@ static void add_module_to_inline_search_path(InlineSearchPath& searchpath, llvm::StringRef modpath) { /* only extension in libdir are candidates for inlining for now */ - if (!modpath.startswith("$libdir/")) +#if LLVM_VERSION_MAJOR < 16 +#define starts_with startswith +#endif + if (!modpath.starts_with("$libdir/")) return; /* if there's no match, attempt to load */ diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index efc53f3..235152e 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -850,15 +850,13 @@ CheckPWChallengeAuth(Port *port, const char **logdetail) if (shadow_pass) pfree(shadow_pass); - - /* - * If get_role_password() returned error, return error, even if the - * authentication succeeded. - */ - if (!shadow_pass) + else { + /* + * If get_role_password() returned error, authentication better not + * have succeeded. + */ Assert(auth_result != STATUS_OK); - return STATUS_ERROR; } if (auth_result == STATUS_OK) diff --git a/src/backend/libpq/be-secure-gssapi.c b/src/backend/libpq/be-secure-gssapi.c index 2844c5a..d3337a3 100644 --- a/src/backend/libpq/be-secure-gssapi.c +++ b/src/backend/libpq/be-secure-gssapi.c @@ -60,8 +60,8 @@ static char *PqGSSSendBuffer; /* Encrypted data waiting to be sent */ static int PqGSSSendLength; /* End of data available in PqGSSSendBuffer */ static int PqGSSSendNext; /* Next index to send a byte from * PqGSSSendBuffer */ -static int PqGSSSendConsumed; /* Number of *unencrypted* bytes consumed for - * current contents of PqGSSSendBuffer */ +static int PqGSSSendConsumed; /* Number of source bytes encrypted but not + * yet reported as sent */ static char *PqGSSRecvBuffer; /* Received, encrypted data */ static int PqGSSRecvLength; /* End of data available in PqGSSRecvBuffer */ @@ -83,8 +83,8 @@ static uint32 PqGSSMaxPktSize; /* Maximum size we can encrypt and fit the * * On success, returns the number of data bytes consumed (possibly less than * len). On failure, returns -1 with errno set appropriately. For retryable - * errors, caller should call again (passing the same data) once the socket - * is ready. + * errors, caller should call again (passing the same or more data) once the + * socket is ready. * * Dealing with fatal errors here is a bit tricky: we can't invoke elog(FATAL) * since it would try to write to the client, probably resulting in infinite @@ -98,19 +98,25 @@ be_gssapi_write(Port *port, void *ptr, size_t len) minor; gss_buffer_desc input, output; - size_t bytes_sent = 0; size_t bytes_to_encrypt; size_t bytes_encrypted; gss_ctx_id_t gctx = port->gss->ctx; /* - * When we get a failure, we must not tell the caller we have successfully - * transmitted everything, else it won't retry. Hence a "success" - * (positive) return value must only count source bytes corresponding to - * fully-transmitted encrypted packets. The amount of source data - * corresponding to the current partly-transmitted packet is remembered in + * When we get a retryable failure, we must not tell the caller we have + * successfully transmitted everything, else it won't retry. For + * simplicity, we claim we haven't transmitted anything until we have + * successfully transmitted all "len" bytes. Between calls, the amount of + * the current input data that's already been encrypted and placed into + * PqGSSSendBuffer (and perhaps transmitted) is remembered in * PqGSSSendConsumed. On a retry, the caller *must* be sending that data * again, so if it offers a len less than that, something is wrong. + * + * Note: it may seem attractive to report partial write completion once + * we've successfully sent any encrypted packets. However, that can cause + * problems for callers; notably, pqPutMsgEnd's heuristic to send only + * full 8K blocks interacts badly with such a hack. We won't save much, + * typically, by letting callers discard data early, so don't risk it. */ if (len < PqGSSSendConsumed) { @@ -118,6 +124,7 @@ be_gssapi_write(Port *port, void *ptr, size_t len) errno = ECONNRESET; return -1; } + /* Discount whatever source data we already encrypted. */ bytes_to_encrypt = len - PqGSSSendConsumed; bytes_encrypted = PqGSSSendConsumed; @@ -146,33 +153,20 @@ be_gssapi_write(Port *port, void *ptr, size_t len) ret = secure_raw_write(port, PqGSSSendBuffer + PqGSSSendNext, amount); if (ret <= 0) - { - /* - * Report any previously-sent data; if there was none, reflect - * the secure_raw_write result up to our caller. When there - * was some, we're effectively assuming that any interesting - * failure condition will recur on the next try. - */ - if (bytes_sent) - return bytes_sent; return ret; - } /* * Check if this was a partial write, and if so, move forward that * far in our buffer and try again. */ - if (ret != amount) + if (ret < amount) { PqGSSSendNext += ret; continue; } - /* We've successfully sent whatever data was in that packet. */ - bytes_sent += PqGSSSendConsumed; - - /* All encrypted data was sent, our buffer is empty now. */ - PqGSSSendLength = PqGSSSendNext = PqGSSSendConsumed = 0; + /* We've successfully sent whatever data was in the buffer. */ + PqGSSSendLength = PqGSSSendNext = 0; } /* @@ -196,7 +190,10 @@ be_gssapi_write(Port *port, void *ptr, size_t len) output.value = NULL; output.length = 0; - /* Create the next encrypted packet */ + /* + * Create the next encrypted packet. Any failure here is considered a + * hard failure, so we return -1 even if some data has been sent. + */ major = gss_wrap(&minor, gctx, 1, GSS_C_QOP_DEFAULT, &input, &conf_state, &output); if (major != GSS_S_COMPLETE) @@ -239,10 +236,13 @@ be_gssapi_write(Port *port, void *ptr, size_t len) } /* If we get here, our counters should all match up. */ - Assert(bytes_sent == len); - Assert(bytes_sent == bytes_encrypted); + Assert(len == PqGSSSendConsumed); + Assert(len == bytes_encrypted); + + /* We're reporting all the data as sent, so reset PqGSSSendConsumed. */ + PqGSSSendConsumed = 0; - return bytes_sent; + return bytes_encrypted; } /* diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index f5c5ed2..ed13e8b 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -457,6 +457,7 @@ aloop: * per-thread error queue following another call to an OpenSSL I/O * routine. */ + errno = 0; ERR_clear_error(); r = SSL_accept(port->ssl); if (r <= 0) @@ -493,7 +494,7 @@ aloop: WAIT_EVENT_SSL_OPEN_SERVER); goto aloop; case SSL_ERROR_SYSCALL: - if (r < 0) + if (r < 0 && errno != 0) ereport(COMMERROR, (errcode_for_socket_access(), errmsg("could not accept SSL connection: %m"))); @@ -727,7 +728,7 @@ be_tls_read(Port *port, void *ptr, size_t len, int *waitfor) break; case SSL_ERROR_SYSCALL: /* leave it to caller to ereport the value of errno */ - if (n != -1) + if (n != -1 || errno == 0) { errno = ECONNRESET; n = -1; @@ -785,8 +786,14 @@ be_tls_write(Port *port, void *ptr, size_t len, int *waitfor) n = -1; break; case SSL_ERROR_SYSCALL: - /* leave it to caller to ereport the value of errno */ - if (n != -1) + + /* + * Leave it to caller to ereport the value of errno. However, if + * errno is still zero then assume it's a read EOF situation, and + * report ECONNRESET. (This seems possible because SSL_write can + * also do reads.) + */ + if (n != -1 || errno == 0) { errno = ECONNRESET; n = -1; @@ -839,11 +846,6 @@ be_tls_write(Port *port, void *ptr, size_t len, int *waitfor) * to retry; do we need to adopt their logic for that? */ -#ifndef HAVE_BIO_GET_DATA -#define BIO_get_data(bio) (bio->ptr) -#define BIO_set_data(bio, data) (bio->ptr = data) -#endif - static BIO_METHOD *my_bio_methods = NULL; static int @@ -853,7 +855,7 @@ my_sock_read(BIO *h, char *buf, int size) if (buf != NULL) { - res = secure_raw_read(((Port *) BIO_get_data(h)), buf, size); + res = secure_raw_read(((Port *) BIO_get_app_data(h)), buf, size); BIO_clear_retry_flags(h); if (res <= 0) { @@ -873,7 +875,7 @@ my_sock_write(BIO *h, const char *buf, int size) { int res = 0; - res = secure_raw_write(((Port *) BIO_get_data(h)), buf, size); + res = secure_raw_write(((Port *) BIO_get_app_data(h)), buf, size); BIO_clear_retry_flags(h); if (res <= 0) { @@ -949,7 +951,7 @@ my_SSL_set_fd(Port *port, int fd) SSLerr(SSL_F_SSL_SET_FD, ERR_R_BUF_LIB); goto err; } - BIO_set_data(bio, port); + BIO_set_app_data(bio, port); BIO_set_fd(bio, fd, BIO_NOCLOSE); SSL_set_bio(port->ssl, bio, bio); diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 75392a8..bb9fa77 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -954,6 +954,8 @@ pq_recvbuf(void) { int r; + errno = 0; + r = secure_read(MyProcPort, PqRecvBuffer + PqRecvLength, PQ_RECV_BUFFER_SIZE - PqRecvLength); @@ -966,10 +968,13 @@ pq_recvbuf(void) * Careful: an ereport() that tries to write to the client would * cause recursion to here, leading to stack overflow and core * dump! This message must go *only* to the postmaster log. + * + * If errno is zero, assume it's EOF and let the caller complain. */ - ereport(COMMERROR, - (errcode_for_socket_access(), - errmsg("could not receive data from client: %m"))); + if (errno != 0) + ereport(COMMERROR, + (errcode_for_socket_access(), + errmsg("could not receive data from client: %m"))); return EOF; } if (r == 0) @@ -1046,6 +1051,8 @@ pq_getbyte_if_available(unsigned char *c) /* Put the socket into non-blocking mode */ socket_set_nonblocking(true); + errno = 0; + r = secure_read(MyProcPort, c, 1); if (r < 0) { @@ -1062,10 +1069,13 @@ pq_getbyte_if_available(unsigned char *c) * Careful: an ereport() that tries to write to the client would * cause recursion to here, leading to stack overflow and core * dump! This message must go *only* to the postmaster log. + * + * If errno is zero, assume it's EOF and let the caller complain. */ - ereport(COMMERROR, - (errcode_for_socket_access(), - errmsg("could not receive data from client: %m"))); + if (errno != 0) + ereport(COMMERROR, + (errcode_for_socket_access(), + errmsg("could not receive data from client: %m"))); r = EOF; } } diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index a7080f5..675041f 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -2180,6 +2180,8 @@ expression_tree_walker(Node *node, return true; if (walker(wc->endOffset, context)) return true; + if (walker(wc->runCondition, context)) + return true; } break; case T_CTECycleClause: @@ -2457,6 +2459,8 @@ query_tree_walker(Query *query, return true; if (walker(wc->endOffset, context)) return true; + if (walker(wc->runCondition, context)) + return true; } } @@ -3094,6 +3098,7 @@ expression_tree_mutator(Node *node, MUTATE(newnode->orderClause, wc->orderClause, List *); MUTATE(newnode->startOffset, wc->startOffset, Node *); MUTATE(newnode->endOffset, wc->endOffset, Node *); + MUTATE(newnode->runCondition, wc->runCondition, List *); return (Node *) newnode; } break; @@ -3423,6 +3428,7 @@ query_tree_mutator(Query *query, FLATCOPY(newnode, wc, WindowClause); MUTATE(newnode->startOffset, wc->startOffset, Node *); MUTATE(newnode->endOffset, wc->endOffset, Node *); + MUTATE(newnode->runCondition, wc->runCondition, List *); resultlist = lappend(resultlist, (Node *) newnode); } diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c index 7f4bb7b..ea05763 100644 --- a/src/backend/optimizer/prep/prepjointree.c +++ b/src/backend/optimizer/prep/prepjointree.c @@ -2471,8 +2471,13 @@ pullup_replace_vars_callback(Var *var, else if (newnode && IsA(newnode, PlaceHolderVar) && ((PlaceHolderVar *) newnode)->phlevelsup == 0) { - /* No need to wrap a PlaceHolderVar with another one, either */ - wrap = false; + /* The same rules apply for a PlaceHolderVar */ + if (rcon->target_rte->lateral && + !bms_is_subset(((PlaceHolderVar *) newnode)->phrels, + rcon->relids)) + wrap = true; + else + wrap = false; } else if (rcon->wrap_non_vars) { diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index f2216f5..e1cedd9 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -357,6 +357,11 @@ contain_subplans_walker(Node *node, void *context) * mistakenly think that something like "WHERE random() < 0.5" can be treated * as a constant qualification. * + * This will give the right answer only for clauses that have been put + * through expression preprocessing. Callers outside the planner typically + * should use contain_mutable_functions_after_planning() instead, for the + * reasons given there. + * * We will recursively look into Query nodes (i.e., SubLink sub-selects) * but not into SubPlans. See comments for contain_volatile_functions(). */ @@ -416,6 +421,34 @@ contain_mutable_functions_walker(Node *node, void *context) context); } +/* + * contain_mutable_functions_after_planning + * Test whether given expression contains mutable functions. + * + * This is a wrapper for contain_mutable_functions() that is safe to use from + * outside the planner. The difference is that it first runs the expression + * through expression_planner(). There are two key reasons why we need that: + * + * First, function default arguments will get inserted, which may affect + * volatility (consider "default now()"). + * + * Second, inline-able functions will get inlined, which may allow us to + * conclude that the function is really less volatile than it's marked. + * As an example, polymorphic functions must be marked with the most volatile + * behavior that they have for any input type, but once we inline the + * function we may be able to conclude that it's not so volatile for the + * particular input type we're dealing with. + */ +bool +contain_mutable_functions_after_planning(Expr *expr) +{ + /* We assume here that expression_planner() won't scribble on its input */ + expr = expression_planner(expr); + + /* Now we can search for non-immutable functions */ + return contain_mutable_functions((Node *) expr); +} + /***************************************************************************** * Check clauses for volatile functions @@ -429,6 +462,11 @@ contain_mutable_functions_walker(Node *node, void *context) * volatile function) is found. This test prevents, for example, * invalid conversions of volatile expressions into indexscan quals. * + * This will give the right answer only for clauses that have been put + * through expression preprocessing. Callers outside the planner typically + * should use contain_volatile_functions_after_planning() instead, for the + * reasons given there. + * * We will recursively look into Query nodes (i.e., SubLink sub-selects) * but not into SubPlans. This is a bit odd, but intentional. If we are * looking at a SubLink, we are probably deciding whether a query tree @@ -553,6 +591,34 @@ contain_volatile_functions_walker(Node *node, void *context) } /* + * contain_volatile_functions_after_planning + * Test whether given expression contains volatile functions. + * + * This is a wrapper for contain_volatile_functions() that is safe to use from + * outside the planner. The difference is that it first runs the expression + * through expression_planner(). There are two key reasons why we need that: + * + * First, function default arguments will get inserted, which may affect + * volatility (consider "default random()"). + * + * Second, inline-able functions will get inlined, which may allow us to + * conclude that the function is really less volatile than it's marked. + * As an example, polymorphic functions must be marked with the most volatile + * behavior that they have for any input type, but once we inline the + * function we may be able to conclude that it's not so volatile for the + * particular input type we're dealing with. + */ +bool +contain_volatile_functions_after_planning(Expr *expr) +{ + /* We assume here that expression_planner() won't scribble on its input */ + expr = expression_planner(expr); + + /* Now we can search for volatile functions */ + return contain_volatile_functions((Node *) expr); +} + +/* * Special purpose version of contain_volatile_functions() for use in COPY: * ignore nextval(), but treat all other functions normally. */ diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c index 33affaf..46fd29b 100644 --- a/src/backend/optimizer/util/pathnode.c +++ b/src/backend/optimizer/util/pathnode.c @@ -26,6 +26,7 @@ #include "optimizer/optimizer.h" #include "optimizer/pathnode.h" #include "optimizer/paths.h" +#include "optimizer/placeholder.h" #include "optimizer/planmain.h" #include "optimizer/prep.h" #include "optimizer/restrictinfo.h" @@ -56,6 +57,10 @@ static int append_startup_cost_compare(const ListCell *a, const ListCell *b); static List *reparameterize_pathlist_by_child(PlannerInfo *root, List *pathlist, RelOptInfo *child_rel); +static bool contain_references_to(PlannerInfo *root, Node *clause, + Relids relids); +static bool ris_contain_references_to(PlannerInfo *root, List *rinfos, + Relids relids); /***************************************************************************** @@ -4052,6 +4057,40 @@ do { \ switch (nodeTag(path)) { case T_Path: + + /* + * If the path's restriction clauses contain lateral references to + * the other relation, we can't reparameterize, because we must + * not change the RelOptInfo's contents here. (Doing so would + * break things if we end up using a non-partitionwise join.) + */ + if (ris_contain_references_to(root, + path->parent->baserestrictinfo, + child_rel->top_parent_relids)) + return NULL; + + /* + * If it's a SampleScan with tablesample parameters referencing + * the other relation, we can't reparameterize, because we must + * not change the RTE's contents here. (Doing so would break + * things if we end up using a non-partitionwise join.) + */ + if (path->pathtype == T_SampleScan) + { + Index scan_relid = path->parent->relid; + RangeTblEntry *rte; + + /* it should be a base rel with a tablesample clause... */ + Assert(scan_relid > 0); + rte = planner_rt_fetch(scan_relid, root); + Assert(rte->rtekind == RTE_RELATION); + Assert(rte->tablesample != NULL); + + if (contain_references_to(root, (Node *) rte->tablesample, + child_rel->top_parent_relids)) + return NULL; + } + FLAT_COPY_PATH(new_path, path, Path); break; @@ -4059,6 +4098,18 @@ do { \ { IndexPath *ipath; + /* + * If the path's restriction clauses contain lateral + * references to the other relation, we can't reparameterize, + * because we must not change the IndexOptInfo's contents + * here. (Doing so would break things if we end up using a + * non-partitionwise join.) + */ + if (ris_contain_references_to(root, + path->parent->baserestrictinfo, + child_rel->top_parent_relids)) + return NULL; + FLAT_COPY_PATH(ipath, path, IndexPath); ADJUST_CHILD_ATTRS(ipath->indexclauses); new_path = (Path *) ipath; @@ -4069,6 +4120,18 @@ do { \ { BitmapHeapPath *bhpath; + /* + * If the path's restriction clauses contain lateral + * references to the other relation, we can't reparameterize, + * because we must not change the RelOptInfo's contents here. + * (Doing so would break things if we end up using a + * non-partitionwise join.) + */ + if (ris_contain_references_to(root, + path->parent->baserestrictinfo, + child_rel->top_parent_relids)) + return NULL; + FLAT_COPY_PATH(bhpath, path, BitmapHeapPath); REPARAMETERIZE_CHILD_PATH(bhpath->bitmapqual); new_path = (Path *) bhpath; @@ -4100,6 +4163,18 @@ do { \ ForeignPath *fpath; ReparameterizeForeignPathByChild_function rfpc_func; + /* + * If the path's restriction clauses contain lateral + * references to the other relation, we can't reparameterize, + * because we must not change the RelOptInfo's contents here. + * (Doing so would break things if we end up using a + * non-partitionwise join.) + */ + if (ris_contain_references_to(root, + path->parent->baserestrictinfo, + child_rel->top_parent_relids)) + return NULL; + FLAT_COPY_PATH(fpath, path, ForeignPath); if (fpath->fdw_outerpath) REPARAMETERIZE_CHILD_PATH(fpath->fdw_outerpath); @@ -4118,6 +4193,18 @@ do { \ { CustomPath *cpath; + /* + * If the path's restriction clauses contain lateral + * references to the other relation, we can't reparameterize, + * because we must not change the RelOptInfo's contents here. + * (Doing so would break things if we end up using a + * non-partitionwise join.) + */ + if (ris_contain_references_to(root, + path->parent->baserestrictinfo, + child_rel->top_parent_relids)) + return NULL; + FLAT_COPY_PATH(cpath, path, CustomPath); REPARAMETERIZE_CHILD_PATH_LIST(cpath->custom_paths); if (cpath->methods && @@ -4296,3 +4383,91 @@ reparameterize_pathlist_by_child(PlannerInfo *root, return result; } + +/* + * contain_references_to + * Detect whether any Vars or PlaceHolderVars in the given clause contain + * lateral references to the given 'relids'. + */ +static bool +contain_references_to(PlannerInfo *root, Node *clause, Relids relids) +{ + bool ret = false; + List *vars; + ListCell *lc; + + /* + * Examine all Vars and PlaceHolderVars used in the clause. + * + * By omitting the relevant flags, this also gives us a cheap sanity check + * that no aggregates or window functions appear in the clause. We don't + * expect any of those in scan-level restrictions or tablesamples. + */ + vars = pull_var_clause(clause, PVC_INCLUDE_PLACEHOLDERS); + foreach(lc, vars) + { + Node *node = (Node *) lfirst(lc); + + if (IsA(node, Var)) + { + Var *var = (Var *) node; + + if (bms_is_member(var->varno, relids)) + { + ret = true; + break; + } + } + else if (IsA(node, PlaceHolderVar)) + { + PlaceHolderVar *phv = (PlaceHolderVar *) node; + PlaceHolderInfo *phinfo = find_placeholder_info(root, phv, false); + + /* + * We should check both ph_eval_at (in case the PHV is to be + * computed at the other relation and then laterally referenced + * here) and ph_lateral (in case the PHV is to be evaluated here + * but contains lateral references to the other relation). The + * former case should not occur in baserestrictinfo clauses, but + * it can occur in tablesample clauses. + */ + if (bms_overlap(phinfo->ph_eval_at, relids) || + bms_overlap(phinfo->ph_lateral, relids)) + { + ret = true; + break; + } + } + else + Assert(false); + } + + list_free(vars); + + return ret; +} + +/* + * ris_contain_references_to + * Apply contain_references_to() to a list of RestrictInfos. + * + * We need extra code for this because pull_var_clause() can't descend + * through RestrictInfos. + */ +static bool +ris_contain_references_to(PlannerInfo *root, List *rinfos, Relids relids) +{ + ListCell *lc; + + foreach(lc, rinfos) + { + RestrictInfo *rinfo = lfirst_node(RestrictInfo, lc); + + /* Pseudoconstant clauses can't contain any Vars or PHVs */ + if (rinfo->pseudoconstant) + continue; + if (contain_references_to(root, (Node *) rinfo->clause, relids)) + return true; + } + return false; +} diff --git a/src/backend/po/de.po b/src/backend/po/de.po index 921303f..ccf1ee9 100644 --- a/src/backend/po/de.po +++ b/src/backend/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: 2023-11-03 14:56+0000\n" -"PO-Revision-Date: 2023-08-01 10:14+0200\n" +"POT-Creation-Date: 2024-02-01 22:27+0000\n" +"PO-Revision-Date: 2023-11-08 21:53+0100\n" "Last-Translator: Peter Eisentraut <peter@eisentraut.org>\n" "Language-Team: German <pgsql-translators@postgresql.org>\n" "Language: de\n" @@ -65,35 +65,35 @@ msgid "not recorded" msgstr "nicht aufgezeichnet" #: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 -#: commands/copyfrom.c:1521 commands/extension.c:3401 utils/adt/genfile.c:123 +#: commands/copyfrom.c:1525 commands/extension.c:3401 utils/adt/genfile.c:123 #, c-format msgid "could not open file \"%s\" for reading: %m" 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:3207 -#: access/transam/xlog.c:4022 access/transam/xlogrecovery.c:1197 -#: access/transam/xlogrecovery.c:1289 access/transam/xlogrecovery.c:1326 -#: access/transam/xlogrecovery.c:1386 backup/basebackup.c:1844 +#: access/transam/twophase.c:1349 access/transam/xlog.c:3209 +#: access/transam/xlog.c:4024 access/transam/xlogrecovery.c:1223 +#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 +#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1844 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:4958 #: replication/logical/snapbuild.c:1870 replication/logical/snapbuild.c:1912 #: replication/logical/snapbuild.c:1939 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:863 utils/cache/relmapper.c:813 +#: utils/adt/genfile.c:197 utils/adt/misc.c:863 utils/cache/relmapper.c:816 #, c-format msgid "could not read file \"%s\": %m" msgstr "konnte Datei »%s« nicht lesen: %m" #: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 -#: access/transam/xlog.c:3212 access/transam/xlog.c:4027 +#: access/transam/xlog.c:3214 access/transam/xlog.c:4029 #: backup/basebackup.c:1848 replication/logical/origin.c:734 #: replication/logical/origin.c:773 replication/logical/snapbuild.c:1875 #: replication/logical/snapbuild.c:1917 replication/logical/snapbuild.c:1944 #: replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 -#: utils/cache/relmapper.c:817 +#: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" @@ -103,18 +103,18 @@ msgstr "konnte Datei »%s« nicht lesen: %d von %zu gelesen" #: access/heap/rewriteheap.c:1178 access/heap/rewriteheap.c:1281 #: access/transam/timeline.c:392 access/transam/timeline.c:438 #: access/transam/timeline.c:516 access/transam/twophase.c:1361 -#: access/transam/twophase.c:1773 access/transam/xlog.c:3054 -#: access/transam/xlog.c:3247 access/transam/xlog.c:3252 -#: access/transam/xlog.c:3390 access/transam/xlog.c:3992 -#: access/transam/xlog.c:4738 commands/copyfrom.c:1581 commands/copyto.c:327 +#: access/transam/twophase.c:1773 access/transam/xlog.c:3056 +#: access/transam/xlog.c:3249 access/transam/xlog.c:3254 +#: access/transam/xlog.c:3392 access/transam/xlog.c:3994 +#: access/transam/xlog.c:4740 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:5016 #: replication/logical/snapbuild.c:1779 replication/logical/snapbuild.c:1952 #: 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:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:828 -#: utils/cache/relmapper.c:956 +#: storage/file/fd.c:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:831 +#: utils/cache/relmapper.c:968 #, c-format msgid "could not close file \"%s\": %m" msgstr "konnte Datei »%s« nicht schließen: %m" @@ -142,10 +142,10 @@ msgstr "" #: ../common/file_utils.c:365 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:2941 access/transam/xlog.c:3123 -#: access/transam/xlog.c:3162 access/transam/xlog.c:3357 -#: access/transam/xlog.c:4012 access/transam/xlogrecovery.c:4209 -#: access/transam/xlogrecovery.c:4312 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:2943 access/transam/xlog.c:3125 +#: access/transam/xlog.c:3164 access/transam/xlog.c:3359 +#: access/transam/xlog.c:4014 access/transam/xlogrecovery.c:4243 +#: access/transam/xlogrecovery.c:4346 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1520 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3611 #: replication/logical/reorderbuffer.c:4162 @@ -154,21 +154,21 @@ msgstr "" #: 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:3630 -#: storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:792 -#: utils/cache/relmapper.c:900 utils/error/elog.c:1933 -#: utils/init/miscinit.c:1366 utils/init/miscinit.c:1500 -#: utils/init/miscinit.c:1577 utils/misc/guc.c:8991 utils/misc/guc.c:9040 +#: storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:795 +#: utils/cache/relmapper.c:912 utils/error/elog.c:1933 +#: utils/init/miscinit.c:1374 utils/init/miscinit.c:1508 +#: utils/init/miscinit.c:1585 utils/misc/guc.c:8998 utils/misc/guc.c:9047 #, c-format msgid "could not open file \"%s\": %m" msgstr "konnte Datei »%s« nicht öffnen: %m" #: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1746 access/transam/twophase.c:1755 -#: access/transam/xlog.c:8674 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8676 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 #: postmaster/postmaster.c:5633 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:934 +#: utils/cache/relmapper.c:946 #, c-format msgid "could not write file \"%s\": %m" msgstr "konnte Datei »%s« nicht schreiben: %m" @@ -178,13 +178,13 @@ msgstr "konnte Datei »%s« nicht schreiben: %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:510 access/transam/twophase.c:1767 -#: access/transam/xlog.c:3047 access/transam/xlog.c:3241 -#: access/transam/xlog.c:3985 access/transam/xlog.c:7977 -#: access/transam/xlog.c:8020 backup/basebackup_server.c:207 -#: replication/logical/snapbuild.c:1772 replication/slot.c:1684 -#: replication/slot.c:1789 storage/file/fd.c:737 storage/file/fd.c:3741 -#: storage/smgr/md.c:992 storage/smgr/md.c:1033 storage/sync/sync.c:453 -#: utils/cache/relmapper.c:949 utils/misc/guc.c:8760 +#: access/transam/xlog.c:3049 access/transam/xlog.c:3243 +#: access/transam/xlog.c:3987 access/transam/xlog.c:7979 +#: access/transam/xlog.c:8022 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1772 +#: replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:737 +#: storage/file/fd.c:3741 storage/smgr/md.c:992 storage/smgr/md.c:1033 +#: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8767 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fsyncen: %m" @@ -196,8 +196,8 @@ msgstr "konnte Datei »%s« nicht fsyncen: %m" #: ../common/md5_common.c:155 ../common/psprintf.c:143 #: ../common/scram-common.c:247 ../common/stringinfo.c:305 ../port/path.c:751 #: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1414 -#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1338 -#: libpq/auth.c:1406 libpq/auth.c:1964 libpq/be-secure-gssapi.c:520 +#: 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:2594 postmaster/postmaster.c:4180 #: postmaster/postmaster.c:5558 postmaster/postmaster.c:5929 @@ -205,15 +205,15 @@ msgstr "konnte Datei »%s« nicht fsyncen: %m" #: replication/logical/logical.c:205 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:1451 -#: storage/ipc/procarray.c:2281 storage/ipc/procarray.c:2288 -#: storage/ipc/procarray.c:2793 storage/ipc/procarray.c:3424 +#: storage/ipc/procarray.c:2280 storage/ipc/procarray.c:2287 +#: storage/ipc/procarray.c:2792 storage/ipc/procarray.c:3423 #: 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:5192 -#: utils/misc/guc.c:5208 utils/misc/guc.c:5221 utils/misc/guc.c:8738 +#: utils/misc/guc.c:5208 utils/misc/guc.c:5221 utils/misc/guc.c:8745 #: 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 @@ -265,7 +265,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:8323 backup/basebackup.c:1340 +#: ../common/exec.c:299 access/transam/xlog.c:8325 backup/basebackup.c:1340 #: utils/adt/misc.c:342 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -296,7 +296,7 @@ msgstr "kann NULL-Zeiger nicht kopieren (interner Fehler)\n" #: ../common/file_utils.c:455 access/transam/twophase.c:1317 #: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:237 #: backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 -#: commands/copyfrom.c:1531 commands/copyto.c:725 commands/extension.c:3390 +#: commands/copyfrom.c:1535 commands/copyto.c:725 commands/extension.c:3390 #: commands/tablespace.c:826 commands/tablespace.c:917 guc-file.l:1061 #: postmaster/pgarch.c:597 replication/logical/snapbuild.c:1651 #: storage/file/copydir.c:68 storage/file/copydir.c:107 storage/file/fd.c:1951 @@ -450,7 +450,7 @@ msgstr "ungültiger Fork-Name" msgid "Valid fork names are \"main\", \"fsm\", \"vm\", and \"init\"." msgstr "Gültige Fork-Namen sind »main«, »fsm«, »vm« und »init«." -#: ../common/restricted_token.c:64 libpq/auth.c:1368 libpq/auth.c:2400 +#: ../common/restricted_token.c:64 libpq/auth.c:1366 libpq/auth.c:2398 #, c-format msgid "could not load library \"%s\": error code %lu" msgstr "konnte Bibliothek »%s« nicht laden: Fehlercode %lu" @@ -533,7 +533,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "konnte effektive Benutzer-ID %ld nicht nachschlagen: %s" -#: ../common/username.c:45 libpq/auth.c:1900 +#: ../common/username.c:45 libpq/auth.c:1898 msgid "user does not exist" msgstr "Benutzer existiert nicht" @@ -700,7 +700,7 @@ msgstr "konnte Basistabelle von Index »%s« nicht öffnen" msgid "index \"%s\" is not valid" msgstr "Index »%s« ist nicht gültig" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 +#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 #: access/brin/brin_minmax_multi.c:2986 access/brin/brin_minmax_multi.c:3129 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 @@ -821,7 +821,7 @@ msgstr "Anzahl der Spalten (%d) überschreitet Maximum (%d)" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "Anzahl der Indexspalten (%d) überschreitet Maximum (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:958 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:965 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "Indexzeile benötigt %zu Bytes, Maximalgröße ist %zu" @@ -855,7 +855,7 @@ msgstr "RESET darf keinen Parameterwert enthalten" msgid "unrecognized parameter namespace \"%s\"" msgstr "unbekannter Parameter-Namensraum »%s«" -#: access/common/reloptions.c:1303 utils/misc/guc.c:12995 +#: access/common/reloptions.c:1303 utils/misc/guc.c:13002 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "Tabellen mit WITH OIDS werden nicht unterstützt" @@ -962,7 +962,7 @@ msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Um das zu reparieren, führen Sie REINDEX INDEX \"%s\" aus." #: access/gin/ginutil.c:145 executor/execExpr.c:2168 -#: utils/adt/arrayfuncs.c:3817 utils/adt/arrayfuncs.c:6486 +#: utils/adt/arrayfuncs.c:3866 utils/adt/arrayfuncs.c:6535 #: utils/adt/rowtypes.c:957 #, c-format msgid "could not identify a comparison function for type %s" @@ -1049,7 +1049,7 @@ msgstr "konnte die für das Zeichenketten-Hashing zu verwendende Sortierfolge ni #: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:668 #: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:1979 commands/tablecmds.c:17503 commands/view.c:86 +#: commands/indexcmds.c:1955 commands/tablecmds.c:17513 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 @@ -1064,7 +1064,7 @@ msgid "index row size %zu exceeds hash maximum %zu" msgstr "Größe der Indexzeile %zu überschreitet Maximum für Hash-Index %zu" #: access/hash/hashinsert.c:85 access/spgist/spgdoinsert.c:2005 -#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1019 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1026 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "Werte, die größer sind als eine Pufferseite, können nicht indiziert werden." @@ -1119,18 +1119,18 @@ msgstr "während einer parallelen Operation können keine Tupel gelöscht werden msgid "attempted to delete invisible tuple" msgstr "Versuch ein unsichtbares Tupel zu löschen" -#: access/heap/heapam.c:3183 access/heap/heapam.c:6025 +#: access/heap/heapam.c:3188 access/heap/heapam.c:6032 #, 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:3307 +#: access/heap/heapam.c:3312 #, c-format msgid "attempted to update invisible tuple" msgstr "Versuch ein unsichtbares Tupel zu aktualisieren" -#: access/heap/heapam.c:4669 access/heap/heapam.c:4707 -#: access/heap/heapam.c:4972 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4676 access/heap/heapam.c:4714 +#: access/heap/heapam.c:4979 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" @@ -1152,10 +1152,10 @@ 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:485 -#: access/transam/xlog.c:2963 access/transam/xlog.c:3176 -#: access/transam/xlog.c:3964 access/transam/xlog.c:8657 +#: access/transam/xlog.c:2965 access/transam/xlog.c:3178 +#: access/transam/xlog.c:3966 access/transam/xlog.c:8659 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 -#: backup/basebackup_server.c:242 commands/dbcommands.c:517 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 #: postmaster/postmaster.c:4607 postmaster/postmaster.c:5620 #: replication/logical/origin.c:587 replication/slot.c:1631 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 @@ -1170,15 +1170,15 @@ msgstr "konnte Datei »%s« nicht auf %u kürzen: %m" #: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3035 access/transam/xlog.c:3232 -#: access/transam/xlog.c:3976 commands/dbcommands.c:529 +#: access/transam/xlog.c:3037 access/transam/xlog.c:3234 +#: access/transam/xlog.c:3978 commands/dbcommands.c:506 #: postmaster/postmaster.c:4617 postmaster/postmaster.c:4627 #: replication/logical/origin.c:599 replication/logical/origin.c:641 #: replication/logical/origin.c:660 replication/logical/snapbuild.c:1748 #: replication/slot.c:1666 storage/file/buffile.c:537 -#: storage/file/copydir.c:207 utils/init/miscinit.c:1441 -#: utils/init/miscinit.c:1452 utils/init/miscinit.c:1460 utils/misc/guc.c:8721 -#: utils/misc/guc.c:8752 utils/misc/guc.c:10750 utils/misc/guc.c:10764 +#: storage/file/copydir.c:207 utils/init/miscinit.c:1449 +#: utils/init/miscinit.c:1460 utils/init/miscinit.c:1468 utils/misc/guc.c:8728 +#: utils/misc/guc.c:8759 utils/misc/guc.c:10757 utils/misc/guc.c:10771 #: utils/time/snapmgr.c:1266 utils/time/snapmgr.c:1273 #, c-format msgid "could not write to file \"%s\": %m" @@ -1422,14 +1422,14 @@ msgstr "Indexzugriffsmethode »%s« hat keinen Handler" msgid "transaction aborted during system catalog scan" msgstr "Transaktion während eines Systemkatalog-Scans abgebrochen" -#: access/index/indexam.c:142 catalog/objectaddress.c:1376 -#: commands/indexcmds.c:2807 commands/tablecmds.c:271 commands/tablecmds.c:295 -#: commands/tablecmds.c:17191 commands/tablecmds.c:18974 +#: access/index/indexam.c:203 catalog/objectaddress.c:1376 +#: commands/indexcmds.c:2783 commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:17199 commands/tablecmds.c:18984 #, c-format msgid "\"%s\" is not an index" msgstr "»%s« ist kein Index" -#: access/index/indexam.c:973 +#: access/index/indexam.c:1010 #, c-format msgid "operator class %s has no options" msgstr "Operatorklasse %s hat keine Optionen" @@ -1494,12 +1494,12 @@ msgstr "" msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "in Operatorfamilie »%s« für Zugriffsmethode %s fehlt Support-Funktion für Typen %s und %s" -#: access/spgist/spgutils.c:244 +#: access/spgist/spgutils.c:242 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "Compress-Methode muss definiert sein, wenn der Leaf-Typ verschieden vom Eingabetyp ist" -#: access/spgist/spgutils.c:1016 +#: access/spgist/spgutils.c:1023 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "innere Tupelgröße %zu überschreitet SP-GiST-Maximum %zu" @@ -1521,8 +1521,8 @@ msgid "\"%s\" is an index" msgstr "»%s« ist ein Index" #: access/table/table.c:54 access/table/table.c:88 access/table/table.c:117 -#: access/table/table.c:150 catalog/aclchk.c:1842 commands/tablecmds.c:13880 -#: commands/tablecmds.c:17200 +#: access/table/table.c:150 catalog/aclchk.c:1842 commands/tablecmds.c:13888 +#: commands/tablecmds.c:17208 #, c-format msgid "\"%s\" is a composite type" msgstr "»%s« ist ein zusammengesetzter Typ" @@ -1537,7 +1537,7 @@ msgstr "tid (%u, %u) ist nicht gültig für Relation »%s«" msgid "%s cannot be empty." msgstr "%s kann nicht leer sein." -#: access/table/tableamapi.c:122 utils/misc/guc.c:12919 +#: access/table/tableamapi.c:122 utils/misc/guc.c:12926 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s ist zu lang (maximal %d Zeichen)." @@ -1723,7 +1723,7 @@ msgstr "ungültige magische Zahl in dynamischem Shared-Memory-Segment" #: access/transam/rmgr.c:84 #, c-format msgid "resource manager with ID %d not registered" -msgstr "Resouce-Manager mit ID %d nicht registriert" +msgstr "Resource-Manager mit ID %d nicht registriert" #: access/transam/rmgr.c:85 #, c-format @@ -1733,7 +1733,7 @@ msgstr "Fügen Sie das Erweiterungsmodul, das diesen Resource-Manager implementi #: access/transam/rmgr.c:101 #, c-format msgid "custom resource manager name is invalid" -msgstr "Custom-Resouce-Manager-Name ist ungültig" +msgstr "Custom-Resource-Manager-Name ist ungültig" #: access/transam/rmgr.c:102 #, c-format @@ -1743,7 +1743,7 @@ msgstr "Geben Sie einen nicht leeren Namen für den Custom-Resource-Manager an." #: access/transam/rmgr.c:105 #, c-format msgid "custom resource manager ID %d is out of range" -msgstr "Custom-Resouce-Manager-ID %d ist außerhalb des gültigen Bereichs" +msgstr "Custom-Resource-Manager-ID %d ist außerhalb des gültigen Bereichs" #: access/transam/rmgr.c:106 #, c-format @@ -1754,7 +1754,7 @@ msgstr "Geben Sie eine Custom-Resource-Manager-ID zwischen %d und %d an." #: access/transam/rmgr.c:128 #, c-format msgid "failed to register custom resource manager \"%s\" with ID %d" -msgstr "konnte Custom-Resouce-Manager »%s« mit ID %d nicht registrieren" +msgstr "konnte Custom-Resource-Manager »%s« mit ID %d nicht registrieren" #: access/transam/rmgr.c:112 #, c-format @@ -1764,7 +1764,7 @@ msgstr "Custom-Resource-Manager muss beim Initialisieren von Modulen in shared_p #: access/transam/rmgr.c:117 #, c-format msgid "Custom resource manager \"%s\" already registered with the same ID." -msgstr "Custom-Resouce-Manager »%s« ist schon mit der gleichen ID registriert." +msgstr "Custom-Resource-Manager »%s« ist schon mit der gleichen ID registriert." #: access/transam/rmgr.c:129 #, c-format @@ -1774,7 +1774,7 @@ msgstr "Bestehender Resource-Manager mit ID %d hat den gleichen Namen." #: access/transam/rmgr.c:135 #, c-format msgid "registered custom resource manager \"%s\" with ID %d" -msgstr "Custom-Resouce-Manager »%s« mit ID %d wurde registriert" +msgstr "Custom-Resource-Manager »%s« mit ID %d wurde registriert" #: access/transam/slru.c:714 #, c-format @@ -2199,439 +2199,439 @@ msgstr "während einer parallelen Operation können keine Subtransaktionen commi 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" -#: access/transam/xlog.c:1463 +#: access/transam/xlog.c:1465 #, c-format msgid "request to flush past end of generated WAL; request %X/%X, current position %X/%X" msgstr "Flush hinter das Ende des erzeugten WAL angefordert; Anforderung %X/%X, aktuelle Position %X/%X" -#: access/transam/xlog.c:2224 +#: access/transam/xlog.c:2226 #, c-format msgid "could not write to log file %s at offset %u, length %zu: %m" msgstr "konnte nicht in Logdatei %s bei Position %u, Länge %zu schreiben: %m" -#: access/transam/xlog.c:3471 access/transam/xlogutils.c:847 +#: access/transam/xlog.c:3473 access/transam/xlogutils.c:847 #: replication/walsender.c:2716 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "das angeforderte WAL-Segment %s wurde schon entfernt" -#: access/transam/xlog.c:3756 +#: access/transam/xlog.c:3758 #, c-format msgid "could not rename file \"%s\": %m" msgstr "konnte Datei »%s« nicht umbenennen: %m" -#: access/transam/xlog.c:3798 access/transam/xlog.c:3808 +#: access/transam/xlog.c:3800 access/transam/xlog.c:3810 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "benötigtes WAL-Verzeichnis »%s« existiert nicht" -#: access/transam/xlog.c:3814 +#: access/transam/xlog.c:3816 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "erzeuge fehlendes WAL-Verzeichnis »%s«" -#: access/transam/xlog.c:3817 commands/dbcommands.c:3115 +#: access/transam/xlog.c:3819 commands/dbcommands.c:3115 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "konnte fehlendes Verzeichnis »%s« nicht erzeugen: %m" -#: access/transam/xlog.c:3884 +#: access/transam/xlog.c:3886 #, c-format msgid "could not generate secret authorization token" msgstr "konnte geheimes Autorisierungstoken nicht erzeugen" -#: 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 -#: utils/init/miscinit.c:1598 +#: access/transam/xlog.c:4045 access/transam/xlog.c:4054 +#: access/transam/xlog.c:4078 access/transam/xlog.c:4085 +#: access/transam/xlog.c:4092 access/transam/xlog.c:4097 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 +#: access/transam/xlog.c:4118 access/transam/xlog.c:4125 +#: access/transam/xlog.c:4132 access/transam/xlog.c:4139 +#: access/transam/xlog.c:4148 access/transam/xlog.c:4155 +#: utils/init/miscinit.c:1606 #, c-format msgid "database files are incompatible with server" msgstr "Datenbankdateien sind inkompatibel mit Server" -#: access/transam/xlog.c:4044 +#: access/transam/xlog.c:4046 #, 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 "Der Datenbank-Cluster wurde mit PG_CONTROL_VERSION %d (0x%08x) initialisiert, aber der Server wurde mit PG_CONTROL_VERSION %d (0x%08x) kompiliert." -#: access/transam/xlog.c:4048 +#: access/transam/xlog.c:4050 #, c-format msgid "This could be a problem of mismatched byte ordering. It looks like you need to initdb." msgstr "Das Problem könnte eine falsche Byte-Reihenfolge sein. Es sieht so aus, dass Sie initdb ausführen müssen." -#: access/transam/xlog.c:4053 +#: access/transam/xlog.c:4055 #, c-format msgid "The database cluster was initialized with PG_CONTROL_VERSION %d, but the server was compiled with PG_CONTROL_VERSION %d." msgstr "Der Datenbank-Cluster wurde mit PG_CONTROL_VERSION %d initialisiert, aber der Server wurde mit PG_CONTROL_VERSION %d kompiliert." -#: access/transam/xlog.c:4056 access/transam/xlog.c:4080 -#: access/transam/xlog.c:4087 access/transam/xlog.c:4092 +#: access/transam/xlog.c:4058 access/transam/xlog.c:4082 +#: access/transam/xlog.c:4089 access/transam/xlog.c:4094 #, c-format msgid "It looks like you need to initdb." msgstr "Es sieht so aus, dass Sie initdb ausführen müssen." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4069 #, c-format msgid "incorrect checksum in control file" msgstr "falsche Prüfsumme in Kontrolldatei" -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4079 #, c-format msgid "The database cluster was initialized with CATALOG_VERSION_NO %d, but the server was compiled with CATALOG_VERSION_NO %d." msgstr "Der Datenbank-Cluster wurde mit CATALOG_VERSION_NO %d initialisiert, aber der Server wurde mit CATALOG_VERSION_NO %d kompiliert." -#: access/transam/xlog.c:4084 +#: access/transam/xlog.c:4086 #, c-format msgid "The database cluster was initialized with MAXALIGN %d, but the server was compiled with MAXALIGN %d." msgstr "Der Datenbank-Cluster wurde mit MAXALIGN %d initialisiert, aber der Server wurde mit MAXALIGN %d kompiliert." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4093 #, c-format msgid "The database cluster appears to use a different floating-point number format than the server executable." msgstr "Der Datenbank-Cluster verwendet anscheinend ein anderes Fließkommazahlenformat als das Serverprogramm." -#: access/transam/xlog.c:4096 +#: access/transam/xlog.c:4098 #, c-format msgid "The database cluster was initialized with BLCKSZ %d, but the server was compiled with BLCKSZ %d." msgstr "Der Datenbank-Cluster wurde mit BLCKSZ %d initialisiert, aber der Server wurde mit BLCKSZ %d kompiliert." -#: 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:4101 access/transam/xlog.c:4108 +#: access/transam/xlog.c:4115 access/transam/xlog.c:4122 +#: access/transam/xlog.c:4129 access/transam/xlog.c:4136 +#: access/transam/xlog.c:4143 access/transam/xlog.c:4151 +#: access/transam/xlog.c:4158 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "Es sieht so aus, dass Sie neu kompilieren oder initdb ausführen müssen." -#: access/transam/xlog.c:4103 +#: access/transam/xlog.c:4105 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "Der Datenbank-Cluster wurde mit RELSEG_SIZE %d initialisiert, aber der Server wurde mit RELSEGSIZE %d kompiliert." -#: access/transam/xlog.c:4110 +#: access/transam/xlog.c:4112 #, c-format msgid "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was compiled with XLOG_BLCKSZ %d." msgstr "Der Datenbank-Cluster wurde mit XLOG_BLCKSZ %d initialisiert, aber der Server wurde mit XLOG_BLCKSZ %d kompiliert." -#: access/transam/xlog.c:4117 +#: access/transam/xlog.c:4119 #, c-format msgid "The database cluster was initialized with NAMEDATALEN %d, but the server was compiled with NAMEDATALEN %d." msgstr "Der Datenbank-Cluster wurde mit NAMEDATALEN %d initialisiert, aber der Server wurde mit NAMEDATALEN %d kompiliert." -#: access/transam/xlog.c:4124 +#: access/transam/xlog.c:4126 #, c-format msgid "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server was compiled with INDEX_MAX_KEYS %d." msgstr "Der Datenbank-Cluster wurde mit INDEX_MAX_KEYS %d initialisiert, aber der Server wurde mit INDEX_MAX_KEYS %d kompiliert." -#: access/transam/xlog.c:4131 +#: access/transam/xlog.c:4133 #, 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 "Der Datenbank-Cluster wurde mit TOAST_MAX_CHUNK_SIZE %d initialisiert, aber der Server wurde mit TOAST_MAX_CHUNK_SIZE %d kompiliert." -#: access/transam/xlog.c:4138 +#: access/transam/xlog.c:4140 #, c-format msgid "The database cluster was initialized with LOBLKSIZE %d, but the server was compiled with LOBLKSIZE %d." msgstr "Der Datenbank-Cluster wurde mit LOBLKSIZE %d initialisiert, aber der Server wurde mit LOBLKSIZE %d kompiliert." -#: access/transam/xlog.c:4147 +#: access/transam/xlog.c:4149 #, c-format msgid "The database cluster was initialized without USE_FLOAT8_BYVAL but the server was compiled with USE_FLOAT8_BYVAL." msgstr "Der Datenbank-Cluster wurde ohne USE_FLOAT8_BYVAL initialisiert, aber der Server wurde mit USE_FLOAT8_BYVAL kompiliert." -#: access/transam/xlog.c:4154 +#: access/transam/xlog.c:4156 #, c-format msgid "The database cluster was initialized with USE_FLOAT8_BYVAL but the server was compiled without USE_FLOAT8_BYVAL." msgstr "Der Datenbank-Cluster wurde mit USE_FLOAT8_BYVAL initialisiert, aber der Server wurde ohne USE_FLOAT8_BYVAL kompiliert." -#: access/transam/xlog.c:4163 +#: access/transam/xlog.c:4165 #, 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-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber die Kontrolldatei gibt %d Byte an" msgstr[1] "WAL-Segmentgröße muss eine Zweierpotenz zwischen 1 MB und 1 GB sein, aber die Kontrolldatei gibt %d Bytes an" -#: access/transam/xlog.c:4175 +#: access/transam/xlog.c:4177 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "»min_wal_size« muss mindestens zweimal so groß wie »wal_segment_size« sein" -#: access/transam/xlog.c:4179 +#: access/transam/xlog.c:4181 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "»max_wal_size« muss mindestens zweimal so groß wie »wal_segment_size« sein" -#: access/transam/xlog.c:4620 +#: access/transam/xlog.c:4622 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "konnte Bootstrap-Write-Ahead-Log-Datei nicht schreiben: %m" -#: access/transam/xlog.c:4628 +#: access/transam/xlog.c:4630 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "konnte Bootstrap-Write-Ahead-Log-Datei nicht fsyncen: %m" -#: access/transam/xlog.c:4634 +#: access/transam/xlog.c:4636 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "konnte Bootstrap-Write-Ahead-Log-Datei nicht schließen: %m" -#: access/transam/xlog.c:4852 +#: access/transam/xlog.c:4854 #, c-format msgid "WAL was generated with wal_level=minimal, cannot continue recovering" msgstr "WAL wurde mit wal_level=minimal erzeugt, Wiederherstellung kann nicht fortgesetzt werden" -#: access/transam/xlog.c:4853 +#: access/transam/xlog.c:4855 #, c-format msgid "This happens if you temporarily set wal_level=minimal on the server." msgstr "Das passiert, wenn auf dem Server vorübergehend wal_level=minimal gesetzt wurde." -#: access/transam/xlog.c:4854 +#: access/transam/xlog.c:4856 #, c-format msgid "Use a backup taken after setting wal_level to higher than minimal." msgstr "Verwenden Sie ein Backup, das durchgeführt wurde, nachdem wal_level auf höher als minimal gesetzt wurde." -#: access/transam/xlog.c:4918 +#: access/transam/xlog.c:4920 #, c-format msgid "control file contains invalid checkpoint location" msgstr "Kontrolldatei enthält ungültige Checkpoint-Position" -#: access/transam/xlog.c:4929 +#: access/transam/xlog.c:4931 #, c-format msgid "database system was shut down at %s" msgstr "Datenbanksystem wurde am %s heruntergefahren" -#: access/transam/xlog.c:4935 +#: access/transam/xlog.c:4937 #, c-format msgid "database system was shut down in recovery at %s" msgstr "Datenbanksystem wurde während der Wiederherstellung am %s heruntergefahren" -#: access/transam/xlog.c:4941 +#: access/transam/xlog.c:4943 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "Datenbanksystem wurde beim Herunterfahren unterbrochen; letzte bekannte Aktion am %s" -#: access/transam/xlog.c:4947 +#: access/transam/xlog.c:4949 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "Datenbanksystem wurde während der Wiederherstellung am %s unterbrochen" -#: access/transam/xlog.c:4949 +#: access/transam/xlog.c:4951 #, c-format msgid "This probably means that some data is corrupted and you will have to use the last backup for recovery." msgstr "Das bedeutet wahrscheinlich, dass einige Daten verfälscht sind und Sie die letzte Datensicherung zur Wiederherstellung verwenden müssen." -#: access/transam/xlog.c:4955 +#: access/transam/xlog.c:4957 #, c-format msgid "database system was interrupted while in recovery at log time %s" msgstr "Datenbanksystem wurde während der Wiederherstellung bei Logzeit %s unterbrochen" -#: access/transam/xlog.c:4957 +#: access/transam/xlog.c:4959 #, 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 "Wenn dies mehr als einmal vorgekommen ist, dann sind einige Daten möglicherweise verfälscht und Sie müssen ein früheres Wiederherstellungsziel wählen." -#: access/transam/xlog.c:4963 +#: access/transam/xlog.c:4965 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "Datenbanksystem wurde unterbrochen; letzte bekannte Aktion am %s" -#: access/transam/xlog.c:4969 +#: access/transam/xlog.c:4971 #, c-format msgid "control file contains invalid database cluster state" msgstr "Kontrolldatei enthält ungültigen Datenbankclusterstatus" -#: access/transam/xlog.c:5353 +#: access/transam/xlog.c:5355 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL endet vor dem Ende der Online-Sicherung" -#: access/transam/xlog.c:5354 +#: access/transam/xlog.c:5356 #, c-format msgid "All WAL generated while online backup was taken must be available at recovery." msgstr "Der komplette WAL, der während der Online-Sicherung erzeugt wurde, muss bei der Wiederherstellung verfügbar sein." -#: access/transam/xlog.c:5357 +#: access/transam/xlog.c:5359 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL endet vor einem konsistenten Wiederherstellungspunkt" -#: access/transam/xlog.c:5405 +#: access/transam/xlog.c:5407 #, c-format msgid "selected new timeline ID: %u" msgstr "gewählte neue Zeitleisten-ID: %u" -#: access/transam/xlog.c:5438 +#: access/transam/xlog.c:5440 #, c-format msgid "archive recovery complete" msgstr "Wiederherstellung aus Archiv abgeschlossen" -#: access/transam/xlog.c:6044 +#: access/transam/xlog.c:6046 #, c-format msgid "shutting down" msgstr "fahre herunter" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6083 +#: access/transam/xlog.c:6085 #, c-format msgid "restartpoint starting:%s%s%s%s%s%s%s%s" msgstr "Restart-Punkt beginnt:%s%s%s%s%s%s%s%s" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6095 +#: access/transam/xlog.c:6097 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "Checkpoint beginnt:%s%s%s%s%s%s%s%s" -#: access/transam/xlog.c:6155 +#: access/transam/xlog.c:6157 #, 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 "Restart-Punkt 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:6175 +#: access/transam/xlog.c:6177 #, 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 "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:6610 +#: access/transam/xlog.c:6612 #, 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:7167 +#: access/transam/xlog.c:7169 #, c-format msgid "recovery restart point at %X/%X" msgstr "Recovery-Restart-Punkt bei %X/%X" -#: access/transam/xlog.c:7169 +#: access/transam/xlog.c:7171 #, 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:7416 +#: access/transam/xlog.c:7418 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "Restore-Punkt »%s« erzeugt bei %X/%X" -#: access/transam/xlog.c:7623 +#: access/transam/xlog.c:7625 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "Online-Sicherung wurde storniert, Wiederherstellung kann nicht fortgesetzt werden" -#: access/transam/xlog.c:7680 +#: access/transam/xlog.c:7682 #, 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:7738 +#: access/transam/xlog.c:7740 #, 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:7767 +#: access/transam/xlog.c:7769 #, 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:8025 +#: access/transam/xlog.c:8027 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "konnte Write-Through-Logdatei »%s« nicht fsyncen: %m" -#: access/transam/xlog.c:8031 +#: access/transam/xlog.c:8033 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "konnte Datei »%s« nicht fdatasyncen: %m" -#: access/transam/xlog.c:8126 access/transam/xlog.c:8493 +#: access/transam/xlog.c:8128 access/transam/xlog.c:8495 #, 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:8127 access/transam/xlog.c:8494 +#: access/transam/xlog.c:8129 access/transam/xlog.c:8496 #: 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:8132 +#: access/transam/xlog.c:8134 #, c-format msgid "backup label too long (max %d bytes)" msgstr "Backup-Label zu lang (maximal %d Bytes)" -#: access/transam/xlog.c:8248 +#: access/transam/xlog.c:8250 #, 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:8250 access/transam/xlog.c:8606 +#: access/transam/xlog.c:8252 access/transam/xlog.c:8608 #, 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:8330 backup/basebackup.c:1345 utils/adt/misc.c:347 +#: access/transam/xlog.c:8332 backup/basebackup.c:1345 utils/adt/misc.c:347 #, 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:8380 backup/basebackup.c:1360 +#: access/transam/xlog.c:8382 backup/basebackup.c:1360 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:355 #, c-format msgid "tablespaces are not supported on this platform" msgstr "Tablespaces werden auf dieser Plattform nicht unterstützt" -#: access/transam/xlog.c:8539 access/transam/xlog.c:8552 -#: access/transam/xlogrecovery.c:1211 access/transam/xlogrecovery.c:1218 -#: access/transam/xlogrecovery.c:1277 access/transam/xlogrecovery.c:1357 -#: access/transam/xlogrecovery.c:1381 +#: access/transam/xlog.c:8541 access/transam/xlog.c:8554 +#: 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 #, c-format msgid "invalid data in file \"%s\"" msgstr "ungültige Daten in Datei »%s«" -#: access/transam/xlog.c:8556 backup/basebackup.c:1200 +#: access/transam/xlog.c:8558 backup/basebackup.c:1200 #, 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:8557 backup/basebackup.c:1201 +#: access/transam/xlog.c:8559 backup/basebackup.c:1201 #, 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:8604 +#: access/transam/xlog.c:8606 #, 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:8729 +#: access/transam/xlog.c:8731 #, 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:8743 +#: access/transam/xlog.c:8745 #, 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:8745 +#: access/transam/xlog.c:8747 #, 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:8752 +#: access/transam/xlog.c:8754 #, c-format msgid "all required WAL segments have been archived" msgstr "alle benötigten WAL-Segmente wurden archiviert" -#: access/transam/xlog.c:8756 +#: access/transam/xlog.c:8758 #, 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:8805 +#: access/transam/xlog.c:8807 #, 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" @@ -2740,7 +2740,7 @@ msgstr "%s kann nicht ausgeführt werden, nachdem eine Beförderung angestoßen msgid "\"wait_seconds\" must not be negative or zero" msgstr "»wait_seconds« darf nicht negativ oder null sein" -#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:252 +#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:257 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "konnte Signal nicht an Postmaster senden: %m" @@ -2757,157 +2757,157 @@ msgstr[1] "Befördern des Servers wurde nicht innerhalb von %d Sekunden abgeschl msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." msgstr "recovery_prefetch wird auf Plattformen ohne posix_fadvise() nicht unterstützt." -#: access/transam/xlogreader.c:592 +#: access/transam/xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "ungültiger Datensatz-Offset bei %X/%X" -#: access/transam/xlogreader.c:600 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "Contrecord angefordert von %X/%X" -#: access/transam/xlogreader.c:641 access/transam/xlogreader.c:1106 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "ungültige Datensatzlänge bei %X/%X: %u erwartet, %u erhalten" -#: access/transam/xlogreader.c:730 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "keine Contrecord-Flag bei %X/%X" -#: access/transam/xlogreader.c:743 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "ungültige Contrecord-Länge %u (erwartet %lld) bei %X/%X" -#: access/transam/xlogreader.c:1114 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "ungültige Resource-Manager-ID %u bei %X/%X" -#: access/transam/xlogreader.c:1127 access/transam/xlogreader.c:1143 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "Datensatz mit falschem Prev-Link %X/%X bei %X/%X" -#: access/transam/xlogreader.c:1181 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "ungültige Resource-Manager-Datenprüfsumme in Datensatz bei %X/%X" -#: access/transam/xlogreader.c:1218 +#: access/transam/xlogreader.c:1246 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "ungültige magische Zahl %04X in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:1232 access/transam/xlogreader.c:1273 +#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ungültige Info-Bits %04X in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:1247 +#: access/transam/xlogreader.c:1275 #, 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-Datei ist von einem anderen Datenbanksystem: Datenbanksystemidentifikator in WAL-Datei ist %llu, Datenbanksystemidentifikator in pg_control ist %llu" -#: access/transam/xlogreader.c:1255 +#: access/transam/xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: falsche Segmentgröße im Seitenkopf" -#: access/transam/xlogreader.c:1261 +#: access/transam/xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL-Datei ist von einem anderen Datenbanksystem: falsche XLOG_BLCKSZ im Seitenkopf" -#: access/transam/xlogreader.c:1292 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "unerwartete Pageaddr %X/%X in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:1317 +#: access/transam/xlogreader.c:1345 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "Zeitleisten-ID %u außer der Reihe (nach %u) in Logsegment %s, Offset %u" -#: access/transam/xlogreader.c:1722 +#: access/transam/xlogreader.c:1750 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %u außer der Reihe bei %X/%X" -#: access/transam/xlogreader.c:1746 +#: access/transam/xlogreader.c:1774 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA gesetzt, aber keine Daten enthalten bei %X/%X" -#: access/transam/xlogreader.c:1753 +#: access/transam/xlogreader.c:1781 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA nicht gesetzt, aber Datenlänge ist %u bei %X/%X" -#: access/transam/xlogreader.c:1789 +#: access/transam/xlogreader.c:1817 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE gesetzt, aber Loch Offset %u Länge %u Block-Abbild-Länge %u bei %X/%X" -#: access/transam/xlogreader.c:1805 +#: access/transam/xlogreader.c:1833 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE nicht gesetzt, aber Loch Offset %u Länge %u bei %X/%X" -#: access/transam/xlogreader.c:1819 +#: access/transam/xlogreader.c:1847 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED gesetzt, aber Block-Abbild-Länge %u bei %X/%X" -#: access/transam/xlogreader.c:1834 +#: access/transam/xlogreader.c:1862 #, c-format msgid "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image length is %u at %X/%X" msgstr "weder BKPIMAGE_HAS_HOLE noch BKPIMAGE_COMPRESSED gesetzt, aber Block-Abbild-Länge ist %u bei %X/%X" -#: access/transam/xlogreader.c:1850 +#: access/transam/xlogreader.c:1878 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL gesetzt, aber keine vorangehende Relation bei %X/%X" -#: access/transam/xlogreader.c:1862 +#: access/transam/xlogreader.c:1890 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "ungültige block_id %u bei %X/%X" -#: access/transam/xlogreader.c:1929 +#: access/transam/xlogreader.c:1957 #, c-format msgid "record with invalid length at %X/%X" msgstr "Datensatz mit ungültiger Länge bei %X/%X" -#: access/transam/xlogreader.c:1954 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "konnte Backup-Block mit ID %d nicht im WAL-Eintrag finden" -#: access/transam/xlogreader.c:2038 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "konnte Abbild bei %X/%X mit ungültigem angegebenen Block %d nicht wiederherstellen" -#: access/transam/xlogreader.c:2045 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "konnte Abbild mit ungültigem Zustand bei %X/%X nicht wiederherstellen, Block %d" -#: access/transam/xlogreader.c:2072 access/transam/xlogreader.c:2089 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "konnte Abbild bei %X/%X nicht wiederherstellen, komprimiert mit %s, nicht unterstützt von dieser Installation, Block %d" -#: access/transam/xlogreader.c:2098 +#: access/transam/xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "konnte Abbild bei %X/%X nicht wiederherstellen, komprimiert mit unbekannter Methode, Block %d" -#: access/transam/xlogreader.c:2106 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "konnte Abbild bei %X/%X nicht dekomprimieren, Block %d" @@ -2947,12 +2947,17 @@ msgstr "starte Point-in-Time-Recovery bis zum frühesten konsistenten Punkt" msgid "starting archive recovery" msgstr "starte Wiederherstellung aus Archiv" -#: access/transam/xlogrecovery.c:651 +#: access/transam/xlogrecovery.c:635 +#, c-format +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "starte Wiederherstellung aus Backup mit Redo-LSN %X/%X, Checkpoint-LSN %X/%X, auf Zeitleisten-ID %u" + +#: access/transam/xlogrecovery.c:667 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "konnte die vom Checkpoint-Datensatz referenzierte Redo-Position nicht finden" -#: access/transam/xlogrecovery.c:652 access/transam/xlogrecovery.c:662 +#: access/transam/xlogrecovery.c:668 access/transam/xlogrecovery.c:678 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -2963,399 +2968,409 @@ msgstr "" "Wenn Sie gerade kein Backup wiederherstellen, dann versuchen Sie, die Datei »%s/backup_label« zu entfernen.\n" "Vorsicht: Wenn ein Backup wiederhergestellt wird und »%s/backup_label« gelöscht wird, dann wird das den Cluster verfälschen." -#: access/transam/xlogrecovery.c:661 +#: access/transam/xlogrecovery.c:677 #, c-format msgid "could not locate required checkpoint record" msgstr "konnte den nötigen Checkpoint-Datensatz nicht finden" -#: access/transam/xlogrecovery.c:690 commands/tablespace.c:685 +#: access/transam/xlogrecovery.c:706 commands/tablespace.c:685 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "konnte symbolische Verknüpfung »%s« nicht erstellen: %m" -#: access/transam/xlogrecovery.c:722 access/transam/xlogrecovery.c:728 +#: access/transam/xlogrecovery.c:738 access/transam/xlogrecovery.c:744 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ignoriere Datei »%s«, weil keine Datei »%s« existiert" -#: access/transam/xlogrecovery.c:724 +#: access/transam/xlogrecovery.c:740 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Datei »%s« wurde in »%s« umbenannt." -#: access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:746 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Konnte Datei »%s« nicht in »%s« umbenennen: %m." -#: access/transam/xlogrecovery.c:784 +#: access/transam/xlogrecovery.c:785 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "starte Wiederherstellung aus Backup neu mit Redo-LSN %X/%X" + +#: access/transam/xlogrecovery.c:810 #, c-format msgid "could not locate a valid checkpoint record" msgstr "konnte keinen gültigen Checkpoint-Datensatz finden" -#: access/transam/xlogrecovery.c:808 +#: access/transam/xlogrecovery.c:834 #, 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:810 +#: access/transam/xlogrecovery.c:836 #, 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:824 +#: access/transam/xlogrecovery.c:850 #, 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:852 +#: access/transam/xlogrecovery.c:878 #, c-format msgid "invalid next transaction ID" msgstr "ungültige nächste Transaktions-ID" -#: access/transam/xlogrecovery.c:857 +#: access/transam/xlogrecovery.c:883 #, c-format msgid "invalid redo in checkpoint record" msgstr "ungültiges Redo im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:868 +#: access/transam/xlogrecovery.c:894 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "ungültiger Redo-Datensatz im Shutdown-Checkpoint" -#: access/transam/xlogrecovery.c:897 +#: access/transam/xlogrecovery.c:923 #, 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:901 +#: access/transam/xlogrecovery.c:927 #, 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:944 +#: access/transam/xlogrecovery.c:970 #, 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:945 +#: access/transam/xlogrecovery.c:971 #, 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:999 +#: access/transam/xlogrecovery.c:1025 #, 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:1064 +#: access/transam/xlogrecovery.c:1090 #, 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:1081 +#: access/transam/xlogrecovery.c:1107 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "weder primary_conninfo noch restore_command angegeben" -#: access/transam/xlogrecovery.c:1082 +#: access/transam/xlogrecovery.c:1108 #, 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:1090 +#: access/transam/xlogrecovery.c:1116 #, 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:1128 +#: access/transam/xlogrecovery.c:1154 #, c-format msgid "recovery target timeline %u does not exist" msgstr "recovery_target_timeline %u existiert nicht" -#: access/transam/xlogrecovery.c:1278 +#: access/transam/xlogrecovery.c:1304 #, 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:1660 +#: access/transam/xlogrecovery.c:1686 #, c-format msgid "redo starts at %X/%X" msgstr "Redo beginnt bei %X/%X" -#: access/transam/xlogrecovery.c:1673 +#: access/transam/xlogrecovery.c:1699 #, 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:1765 +#: access/transam/xlogrecovery.c:1791 #, 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:1797 +#: access/transam/xlogrecovery.c:1823 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "Redo fertig bei %X/%X Systembenutzung: %s" -#: access/transam/xlogrecovery.c:1803 +#: access/transam/xlogrecovery.c:1829 #, c-format msgid "last completed transaction was at log time %s" msgstr "letzte vollständige Transaktion war bei Logzeit %s" -#: access/transam/xlogrecovery.c:1812 +#: access/transam/xlogrecovery.c:1838 #, c-format msgid "redo is not required" msgstr "Redo nicht nötig" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1849 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "Wiederherstellung endete bevor das konfigurierte Wiederherstellungsziel erreicht wurde" -#: access/transam/xlogrecovery.c:1998 +#: access/transam/xlogrecovery.c:2024 #, 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:2065 +#: access/transam/xlogrecovery.c:2091 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "unerwarteter Verzeichniseintrag »%s« in %s gefunden" -#: access/transam/xlogrecovery.c:2067 +#: access/transam/xlogrecovery.c:2093 #, 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:2068 +#: access/transam/xlogrecovery.c:2094 #, 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:2142 +#: access/transam/xlogrecovery.c:2146 +#, 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 #, 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:2180 +#: access/transam/xlogrecovery.c:2214 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "WAL-Redo bei %X/%X für %s" -#: access/transam/xlogrecovery.c:2276 +#: access/transam/xlogrecovery.c:2310 #, 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:2285 +#: access/transam/xlogrecovery.c:2319 #, 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:2301 +#: access/transam/xlogrecovery.c:2335 #, 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:2485 access/transam/xlogrecovery.c:2761 +#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 #, c-format msgid "recovery stopping after reaching consistency" msgstr "Wiederherstellung beendet nachdem Konsistenz erreicht wurde" -#: access/transam/xlogrecovery.c:2506 +#: access/transam/xlogrecovery.c:2540 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "Wiederherstellung beendet vor WAL-Position (LSN) »%X/%X«" -#: access/transam/xlogrecovery.c:2596 +#: access/transam/xlogrecovery.c:2630 #, 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:2603 +#: access/transam/xlogrecovery.c:2637 #, 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:2656 +#: access/transam/xlogrecovery.c:2690 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "Wiederherstellung beendet bei Restore-Punkt »%s«, Zeit %s" -#: access/transam/xlogrecovery.c:2674 +#: access/transam/xlogrecovery.c:2708 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "Wiederherstellung beendet nach WAL-Position (LSN) »%X/%X«" -#: access/transam/xlogrecovery.c:2741 +#: access/transam/xlogrecovery.c:2775 #, 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:2749 +#: access/transam/xlogrecovery.c:2783 #, 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:2830 +#: access/transam/xlogrecovery.c:2864 #, c-format msgid "pausing at the end of recovery" msgstr "pausiere am Ende der Wiederherstellung" -#: access/transam/xlogrecovery.c:2831 +#: access/transam/xlogrecovery.c:2865 #, 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:2834 access/transam/xlogrecovery.c:4644 +#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4678 #, c-format msgid "recovery has paused" msgstr "Wiederherstellung wurde pausiert" -#: access/transam/xlogrecovery.c:2835 +#: access/transam/xlogrecovery.c:2869 #, 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:3101 +#: access/transam/xlogrecovery.c:3135 #, 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:3306 +#: access/transam/xlogrecovery.c:3340 #, 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:3312 +#: access/transam/xlogrecovery.c:3346 #, 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:3961 +#: access/transam/xlogrecovery.c:3995 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "ungültige primäre Checkpoint-Verknüpfung in Kontrolldatei" -#: access/transam/xlogrecovery.c:3965 +#: access/transam/xlogrecovery.c:3999 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "ungültige Checkpoint-Verknüpfung in backup_label-Datei" -#: access/transam/xlogrecovery.c:3983 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint record" msgstr "ungültiger primärer Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:3987 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint record" msgstr "ungültiger Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:3998 +#: access/transam/xlogrecovery.c:4032 #, 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:4002 +#: access/transam/xlogrecovery.c:4036 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ungültige Resource-Manager-ID im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4015 +#: access/transam/xlogrecovery.c:4049 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "ungültige xl_info im primären Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4019 +#: access/transam/xlogrecovery.c:4053 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ungültige xl_info im Checkpoint-Datensatz" -#: access/transam/xlogrecovery.c:4030 +#: access/transam/xlogrecovery.c:4064 #, c-format msgid "invalid length of primary checkpoint record" msgstr "ungültige Länge des primären Checkpoint-Datensatzes" -#: access/transam/xlogrecovery.c:4034 +#: access/transam/xlogrecovery.c:4068 #, c-format msgid "invalid length of checkpoint record" msgstr "ungültige Länge des Checkpoint-Datensatzes" -#: access/transam/xlogrecovery.c:4090 +#: access/transam/xlogrecovery.c:4124 #, 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:4104 +#: access/transam/xlogrecovery.c:4138 #, 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:4123 +#: access/transam/xlogrecovery.c:4157 #, c-format msgid "new target timeline is %u" msgstr "neue Zielzeitleiste ist %u" -#: access/transam/xlogrecovery.c:4326 +#: access/transam/xlogrecovery.c:4360 #, c-format msgid "WAL receiver process shutdown requested" msgstr "Herunterfahren des WAL-Receiver-Prozesses verlangt" -#: access/transam/xlogrecovery.c:4389 +#: access/transam/xlogrecovery.c:4423 #, c-format msgid "received promote request" msgstr "Anforderung zum Befördern empfangen" -#: access/transam/xlogrecovery.c:4402 +#: access/transam/xlogrecovery.c:4436 #, c-format msgid "promote trigger file found: %s" msgstr "Promote-Triggerdatei gefunden: %s" -#: access/transam/xlogrecovery.c:4410 +#: access/transam/xlogrecovery.c:4444 #, 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:4635 +#: access/transam/xlogrecovery.c:4669 #, 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:4636 access/transam/xlogrecovery.c:4663 -#: access/transam/xlogrecovery.c:4693 +#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4727 #, 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:4645 +#: access/transam/xlogrecovery.c:4679 #, 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:4646 +#: access/transam/xlogrecovery.c:4680 #, 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:4657 +#: access/transam/xlogrecovery.c:4691 #, 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:4667 +#: access/transam/xlogrecovery.c:4701 #, 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:4691 +#: access/transam/xlogrecovery.c:4725 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "Wiederherstellung abgebrochen wegen unzureichender Parametereinstellungen" -#: access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4731 #, 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." @@ -3553,7 +3568,7 @@ msgstr "nur Superuser oder Rollen mit den Privilegien der Rolle pg_write_server_ msgid "relative path not allowed for backup stored on server" msgstr "relativer Pfad nicht erlaubt für auf dem Server abgelegtes Backup" -#: backup/basebackup_server.c:102 commands/dbcommands.c:500 +#: 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 @@ -3778,16 +3793,16 @@ msgstr "Klausel IN SCHEMA kann nicht verwendet werden, wenn GRANT/REVOKE ON SCHE #: catalog/aclchk.c:1587 catalog/catalog.c:627 catalog/objectaddress.c:1543 #: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 -#: commands/sequence.c:1663 commands/tablecmds.c:7271 commands/tablecmds.c:7427 -#: commands/tablecmds.c:7477 commands/tablecmds.c:7551 -#: commands/tablecmds.c:7621 commands/tablecmds.c:7733 -#: commands/tablecmds.c:7827 commands/tablecmds.c:7886 -#: commands/tablecmds.c:7975 commands/tablecmds.c:8005 -#: commands/tablecmds.c:8133 commands/tablecmds.c:8215 -#: commands/tablecmds.c:8371 commands/tablecmds.c:8489 -#: commands/tablecmds.c:12218 commands/tablecmds.c:12399 -#: commands/tablecmds.c:12559 commands/tablecmds.c:13723 -#: commands/tablecmds.c:16292 commands/trigger.c:954 parser/analyze.c:2506 +#: commands/sequence.c:1663 commands/tablecmds.c:7275 commands/tablecmds.c:7431 +#: commands/tablecmds.c:7481 commands/tablecmds.c:7555 +#: commands/tablecmds.c:7625 commands/tablecmds.c:7737 +#: commands/tablecmds.c:7831 commands/tablecmds.c:7890 +#: commands/tablecmds.c:7979 commands/tablecmds.c:8009 +#: commands/tablecmds.c:8137 commands/tablecmds.c:8219 +#: commands/tablecmds.c:8375 commands/tablecmds.c:8493 +#: commands/tablecmds.c:12226 commands/tablecmds.c:12407 +#: commands/tablecmds.c:12567 commands/tablecmds.c:13731 +#: commands/tablecmds.c:16300 commands/trigger.c:954 parser/analyze.c:2506 #: parser/parse_relation.c:725 parser/parse_target.c:1063 #: parser/parse_type.c:144 parser/parse_utilcmd.c:3435 #: parser/parse_utilcmd.c:3471 parser/parse_utilcmd.c:3513 utils/adt/acl.c:2869 @@ -3797,7 +3812,7 @@ msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "Spalte »%s« von Relation »%s« existiert nicht" #: catalog/aclchk.c:1850 catalog/objectaddress.c:1383 commands/sequence.c:1172 -#: commands/tablecmds.c:253 commands/tablecmds.c:17164 utils/adt/acl.c:2077 +#: commands/tablecmds.c:253 commands/tablecmds.c:17172 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 #, c-format @@ -4400,12 +4415,12 @@ msgstr "kann %s nicht löschen, weil andere Objekte davon abhängen" #: catalog/dependency.c:1194 catalog/dependency.c:1201 #: catalog/dependency.c:1212 commands/tablecmds.c:1328 -#: commands/tablecmds.c:14365 commands/tablespace.c:476 commands/user.c:1008 +#: commands/tablecmds.c:14373 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:7402 -#: utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11873 -#: utils/misc/guc.c:11907 utils/misc/guc.c:11941 utils/misc/guc.c:11984 -#: utils/misc/guc.c:12026 +#: utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11880 +#: utils/misc/guc.c:11914 utils/misc/guc.c:11948 utils/misc/guc.c:11991 +#: utils/misc/guc.c:12033 #, c-format msgid "%s" msgstr "%s" @@ -4449,12 +4464,12 @@ msgid "System catalog modifications are currently disallowed." msgstr "Änderungen an Systemkatalogen sind gegenwärtig nicht erlaubt." #: catalog/heap.c:466 commands/tablecmds.c:2348 commands/tablecmds.c:2985 -#: commands/tablecmds.c:6861 +#: commands/tablecmds.c:6865 #, c-format msgid "tables can have at most %d columns" msgstr "Tabellen können höchstens %d Spalten haben" -#: catalog/heap.c:484 commands/tablecmds.c:7161 +#: catalog/heap.c:484 commands/tablecmds.c:7165 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "Spaltenname »%s« steht im Konflikt mit dem Namen einer Systemspalte" @@ -4530,100 +4545,100 @@ msgstr "Relfilenode-Wert ist im Binary-Upgrade-Modus nicht gesetzt" msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "zur partitionierten Tabelle »%s« kann kein NO-INHERIT-Constraint hinzugefügt werden" -#: catalog/heap.c:2401 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "Check-Constraint »%s« existiert bereits" -#: catalog/heap.c:2571 catalog/index.c:889 catalog/pg_constraint.c:689 -#: commands/tablecmds.c:8863 +#: catalog/heap.c:2572 catalog/index.c:889 catalog/pg_constraint.c:689 +#: commands/tablecmds.c:8867 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "Constraint »%s« existiert bereits für Relation »%s«" -#: catalog/heap.c:2578 +#: catalog/heap.c:2579 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "Constraint »%s« kollidiert mit nicht vererbtem Constraint für Relation »%s«" -#: catalog/heap.c:2589 +#: catalog/heap.c:2590 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "Constraint »%s« kollidiert mit vererbtem Constraint für Relation »%s«" -#: catalog/heap.c:2599 +#: catalog/heap.c:2600 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "Constraint »%s« kollidiert mit NOT-VALID-Constraint für Relation »%s«" -#: catalog/heap.c:2604 +#: catalog/heap.c:2605 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "Constraint »%s« wird mit geerbter Definition zusammengeführt" -#: catalog/heap.c:2709 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "generierte Spalte »%s« kann nicht im Spaltengenerierungsausdruck verwendet werden" -#: catalog/heap.c:2711 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Eine generierte Spalte kann nicht auf eine andere generierte Spalte verweisen." -#: catalog/heap.c:2717 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "Variable mit Verweis auf die ganze Zeile kann nicht im Spaltengenerierungsausdruck verwendet werden" -#: catalog/heap.c:2718 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Dadurch würde die generierte Spalte von ihrem eigenen Wert abhängen." -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "Generierungsausdruck ist nicht »immutable«" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1290 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1290 #, 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:2804 commands/prepare.c:334 parser/analyze.c:2730 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2730 #: parser/parse_target.c:594 parser/parse_target.c:882 #: parser/parse_target.c:892 rewrite/rewriteHandler.c:1295 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Sie müssen den Ausdruck umschreiben oder eine Typumwandlung vornehmen." -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "nur Verweise auf Tabelle »%s« sind im Check-Constraint zugelassen" -#: catalog/heap.c:3149 +#: catalog/heap.c:3152 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "nicht unterstützte Kombination aus ON COMMIT und Fremdschlüssel" -#: catalog/heap.c:3150 +#: catalog/heap.c:3153 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "Tabelle »%s« verweist auf »%s«, aber sie haben nicht die gleiche ON-COMMIT-Einstellung." -#: catalog/heap.c:3155 +#: catalog/heap.c:3158 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "kann eine Tabelle, die in einen Fremdschlüssel-Constraint eingebunden ist, nicht leeren" -#: catalog/heap.c:3156 +#: catalog/heap.c:3159 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Tabelle »%s« verweist auf »%s«." -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Leeren Sie die Tabelle »%s« gleichzeitig oder verwenden Sie TRUNCATE ... CASCADE." @@ -4689,34 +4704,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:3646 +#: catalog/index.c:3663 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht reindizieren" -#: catalog/index.c:3657 commands/indexcmds.c:3560 +#: catalog/index.c:3674 commands/indexcmds.c:3536 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "ungültiger Index einer TOAST-Tabelle kann nicht reindiziert werden" -#: catalog/index.c:3673 commands/indexcmds.c:3440 commands/indexcmds.c:3584 +#: catalog/index.c:3690 commands/indexcmds.c:3416 commands/indexcmds.c:3560 #: commands/tablecmds.c:3305 #, c-format msgid "cannot move system relation \"%s\"" msgstr "Systemrelation »%s« kann nicht verschoben werden" -#: catalog/index.c:3817 +#: catalog/index.c:3834 #, c-format msgid "index \"%s\" was reindexed" msgstr "Index »%s« wurde neu indiziert" -#: catalog/index.c:3954 +#: catalog/index.c:3971 #, 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:5812 +#: commands/trigger.c:5830 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "Verweise auf andere Datenbanken sind nicht implementiert: »%s.%s.%s«" @@ -4788,7 +4803,7 @@ msgstr "Textsuchewörterbuch »%s« existiert nicht" msgid "text search template \"%s\" does not exist" msgstr "Textsuchevorlage »%s« existiert nicht" -#: catalog/namespace.c:2770 commands/tsearchcmds.c:1121 +#: catalog/namespace.c:2770 commands/tsearchcmds.c:1127 #: utils/cache/ts_cache.c:613 #, c-format msgid "text search configuration \"%s\" does not exist" @@ -4852,32 +4867,32 @@ msgid "cannot create temporary tables during a parallel operation" msgstr "während einer parallelen Operation können keine temporären Tabellen erzeugt werden" #: catalog/namespace.c:4338 commands/tablespace.c:1236 commands/variable.c:64 -#: utils/misc/guc.c:12058 utils/misc/guc.c:12160 +#: utils/misc/guc.c:12065 utils/misc/guc.c:12167 #, c-format msgid "List syntax is invalid." msgstr "Die Listensyntax ist ungültig." #: catalog/objectaddress.c:1391 commands/policy.c:96 commands/policy.c:376 #: commands/tablecmds.c:247 commands/tablecmds.c:289 commands/tablecmds.c:2184 -#: commands/tablecmds.c:12335 +#: commands/tablecmds.c:12343 #, c-format msgid "\"%s\" is not a table" msgstr "»%s« ist keine Tabelle" #: catalog/objectaddress.c:1398 commands/tablecmds.c:259 -#: commands/tablecmds.c:17169 commands/view.c:119 +#: commands/tablecmds.c:17177 commands/view.c:119 #, c-format msgid "\"%s\" is not a view" msgstr "»%s« ist keine Sicht" #: catalog/objectaddress.c:1405 commands/matview.c:186 commands/tablecmds.c:265 -#: commands/tablecmds.c:17174 +#: commands/tablecmds.c:17182 #, c-format msgid "\"%s\" is not a materialized view" msgstr "»%s« ist keine materialisierte Sicht" #: catalog/objectaddress.c:1412 commands/tablecmds.c:283 -#: commands/tablecmds.c:17179 +#: commands/tablecmds.c:17187 #, c-format msgid "\"%s\" is not a foreign table" msgstr "»%s« ist keine Fremdtabelle" @@ -5638,7 +5653,7 @@ msgid "The partition is being detached concurrently or has an unfinished detach. msgstr "Die Partition wird nebenläufig abgetrennt oder hat eine unfertige Abtrennoperation." #: catalog/pg_inherits.c:596 commands/tablecmds.c:4488 -#: commands/tablecmds.c:15481 +#: commands/tablecmds.c:15489 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "Verwendet Sie ALTER TABLE ... DETACH PARTITION ... FINALIZE, um die unerledigte Abtrennoperation abzuschließen." @@ -6323,7 +6338,7 @@ msgstr "kann temporäre Tabellen anderer Sitzungen nicht clustern" msgid "there is no previously clustered index for table \"%s\"" msgstr "es gibt keinen bereits geclusterten Index für Tabelle »%s«" -#: commands/cluster.c:190 commands/tablecmds.c:14179 commands/tablecmds.c:16060 +#: commands/cluster.c:190 commands/tablecmds.c:14187 commands/tablecmds.c:16068 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "Index »%s« für Tabelle »%s« existiert nicht" @@ -6338,7 +6353,7 @@ msgstr "globaler Katalog kann nicht geclustert werden" msgid "cannot vacuum temporary tables of other sessions" msgstr "temporäre Tabellen anderer Sitzungen können nicht gevacuumt werden" -#: commands/cluster.c:511 commands/tablecmds.c:16070 +#: commands/cluster.c:511 commands/tablecmds.c:16078 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "»%s« ist kein Index für Tabelle »%s«" @@ -6398,7 +6413,7 @@ msgid "collation attribute \"%s\" not recognized" msgstr "Attribut »%s« für Sortierfolge unbekannt" #: commands/collationcmds.c:119 commands/collationcmds.c:125 -#: commands/define.c:389 commands/tablecmds.c:7808 +#: commands/define.c:389 commands/tablecmds.c:7812 #: replication/pgoutput/pgoutput.c:311 replication/pgoutput/pgoutput.c:334 #: replication/pgoutput/pgoutput.c:348 replication/pgoutput/pgoutput.c:358 #: replication/pgoutput/pgoutput.c:368 replication/pgoutput/pgoutput.c:378 @@ -6483,7 +6498,7 @@ msgstr "konnte Locale-Namen »%s« nicht in Sprach-Tag umwandeln: %s" msgid "must be superuser to import system collations" msgstr "nur Superuser können Systemsortierfolgen importieren" -#: commands/collationcmds.c:618 commands/copyfrom.c:1505 commands/copyto.c:679 +#: commands/collationcmds.c:618 commands/copyfrom.c:1509 commands/copyto.c:679 #: libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" @@ -6725,7 +6740,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:784 commands/indexcmds.c:1850 commands/statscmds.c:243 +#: commands/copy.c:784 commands/indexcmds.c:1826 commands/statscmds.c:243 #: commands/tablecmds.c:2379 commands/tablecmds.c:3035 #: commands/tablecmds.c:3529 parser/parse_relation.c:3660 #: parser/parse_relation.c:3680 utils/adt/tsvector_op.c:2688 @@ -6804,37 +6819,37 @@ msgstr "COPY FREEZE kann nicht durchgeführt werden wegen vorheriger Aktivität msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "COPY FREEZE kann nicht durchgeführt werden, weil die Tabelle nicht in der aktuellen Transaktion erzeugt oder geleert wurde" -#: commands/copyfrom.c:1267 commands/copyto.c:611 +#: commands/copyfrom.c:1270 commands/copyto.c:611 #, c-format msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" msgstr "Spalte »%s« mit FORCE_NOT_NULL wird von COPY nicht verwendet" -#: commands/copyfrom.c:1290 commands/copyto.c:634 +#: commands/copyfrom.c:1293 commands/copyto.c:634 #, c-format msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "Spalte »%s« mit FORCE_NULL wird von COPY nicht verwendet" -#: commands/copyfrom.c:1343 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 #, c-format msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "Standardumwandlung von Kodierung »%s« nach »%s« existiert nicht" -#: commands/copyfrom.c:1524 +#: commands/copyfrom.c:1528 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "Mit COPY FROM liest der PostgreSQL-Serverprozess eine Datei. Möglicherweise möchten Sie Funktionalität auf Client-Seite verwenden, wie zum Beispiel \\copy in psql." -#: commands/copyfrom.c:1537 commands/copyto.c:731 +#: commands/copyfrom.c:1541 commands/copyto.c:731 #, c-format msgid "\"%s\" is a directory" msgstr "»%s« ist ein Verzeichnis" -#: commands/copyfrom.c:1605 commands/copyto.c:301 libpq/be-secure-common.c:105 +#: commands/copyfrom.c:1609 commands/copyto.c:301 libpq/be-secure-common.c:105 #, c-format msgid "could not close pipe to external command: %m" msgstr "konnte Pipe zu externem Programm nicht schließen: %m" -#: commands/copyfrom.c:1620 commands/copyto.c:306 +#: commands/copyfrom.c:1624 commands/copyto.c:306 #, c-format msgid "program \"%s\" failed" msgstr "Programm »%s« fehlgeschlagen" @@ -7437,7 +7452,7 @@ msgid_plural "There are %d other sessions using the database." msgstr[0] "%d andere Sitzung verwendet die Datenbank." msgstr[1] "%d andere Sitzungen verwenden die Datenbank." -#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3848 +#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3847 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -7505,7 +7520,7 @@ msgstr "Verwenden Sie DROP AGGREGATE, um Aggregatfunktionen zu löschen." #: commands/dropcmds.c:158 commands/sequence.c:475 commands/tablecmds.c:3613 #: commands/tablecmds.c:3771 commands/tablecmds.c:3823 -#: commands/tablecmds.c:16487 tcop/utility.c:1332 +#: commands/tablecmds.c:16495 tcop/utility.c:1332 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "Relation »%s« existiert nicht, wird übersprungen" @@ -8548,218 +8563,218 @@ msgstr "nicht unterstützter %s-Constraint mit Partitionierungsschlüsseldefinit msgid "%s constraints cannot be used when partition keys include expressions." msgstr "%s-Constraints können nicht verwendet werden, wenn Partitionierungsschlüssel Ausdrücke enthalten." -#: commands/indexcmds.c:1037 +#: commands/indexcmds.c:1040 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "Unique-Constraint für partitionierte Tabelle muss alle Partitionierungsspalten enthalten" -#: commands/indexcmds.c:1038 +#: commands/indexcmds.c:1041 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "Im %s-Constraint in Tabelle »%s« fehlt Spalte »%s«, welche Teil des Partitionierungsschlüssels ist." -#: commands/indexcmds.c:1057 commands/indexcmds.c:1076 +#: commands/indexcmds.c:1060 commands/indexcmds.c:1079 #, c-format msgid "index creation on system columns is not supported" msgstr "Indexerzeugung für Systemspalten wird nicht unterstützt" -#: commands/indexcmds.c:1276 tcop/utility.c:1518 +#: commands/indexcmds.c:1279 tcop/utility.c:1518 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "kann keinen Unique Index für partitionierte Tabelle »%s« erzeugen" -#: commands/indexcmds.c:1278 tcop/utility.c:1520 +#: commands/indexcmds.c:1281 tcop/utility.c:1520 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Tabelle »%s« enthält Partitionen, die Fremdtabellen sind." -#: commands/indexcmds.c:1767 +#: commands/indexcmds.c:1743 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "Funktionen im Indexprädikat müssen als IMMUTABLE markiert sein" -#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:2529 +#: commands/indexcmds.c:1821 parser/parse_utilcmd.c:2529 #: parser/parse_utilcmd.c:2664 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "Spalte »%s«, die im Schlüssel verwendet wird, existiert nicht" -#: commands/indexcmds.c:1869 parser/parse_utilcmd.c:1826 +#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:1826 #, c-format msgid "expressions are not supported in included columns" msgstr "in eingeschlossenen Spalten werden keine Ausdrücke unterstützt" -#: commands/indexcmds.c:1910 +#: commands/indexcmds.c:1886 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "Funktionen im Indexausdruck müssen als IMMUTABLE markiert sein" -#: commands/indexcmds.c:1925 +#: commands/indexcmds.c:1901 #, c-format msgid "including column does not support a collation" msgstr "inkludierte Spalte unterstützt keine Sortierfolge" -#: commands/indexcmds.c:1929 +#: commands/indexcmds.c:1905 #, c-format msgid "including column does not support an operator class" msgstr "inkludierte Spalte unterstützt keine Operatorklasse" -#: commands/indexcmds.c:1933 +#: commands/indexcmds.c:1909 #, c-format msgid "including column does not support ASC/DESC options" msgstr "inkludierte Spalte unterstützt die Optionen ASC/DESC nicht" -#: commands/indexcmds.c:1937 +#: commands/indexcmds.c:1913 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "inkludierte Spalte unterstützt die Optionen NULLS FIRST/LAST nicht" -#: commands/indexcmds.c:1978 +#: commands/indexcmds.c:1954 #, c-format msgid "could not determine which collation to use for index expression" msgstr "konnte die für den Indexausdruck zu verwendende Sortierfolge nicht bestimmen" -#: commands/indexcmds.c:1986 commands/tablecmds.c:17510 commands/typecmds.c:807 +#: commands/indexcmds.c:1962 commands/tablecmds.c:17520 commands/typecmds.c:807 #: parser/parse_expr.c:2690 parser/parse_type.c:570 parser/parse_utilcmd.c:3796 #: utils/adt/misc.c:601 #, c-format msgid "collations are not supported by type %s" msgstr "Sortierfolgen werden von Typ %s nicht unterstützt" -#: commands/indexcmds.c:2051 +#: commands/indexcmds.c:2027 #, c-format msgid "operator %s is not commutative" msgstr "Operator %s ist nicht kommutativ" -#: commands/indexcmds.c:2053 +#: commands/indexcmds.c:2029 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "In Exclusion-Constraints können nur kommutative Operatoren verwendet werden." -#: commands/indexcmds.c:2079 +#: commands/indexcmds.c:2055 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "Operator %s ist kein Mitglied der Operatorfamilie »%s«" -#: commands/indexcmds.c:2082 +#: commands/indexcmds.c:2058 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "Der Exklusionsoperator muss in Beziehung zur Indexoperatorklasse des Constraints stehen." -#: commands/indexcmds.c:2117 +#: commands/indexcmds.c:2093 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "Zugriffsmethode »%s« unterstützt die Optionen ASC/DESC nicht" -#: commands/indexcmds.c:2122 +#: commands/indexcmds.c:2098 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "Zugriffsmethode »%s« unterstützt die Optionen NULLS FIRST/LAST nicht" -#: commands/indexcmds.c:2168 commands/tablecmds.c:17535 -#: commands/tablecmds.c:17541 commands/typecmds.c:2302 +#: commands/indexcmds.c:2144 commands/tablecmds.c:17545 +#: commands/tablecmds.c:17551 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "Datentyp %s hat keine Standardoperatorklasse für Zugriffsmethode »%s«" -#: commands/indexcmds.c:2170 +#: commands/indexcmds.c:2146 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "Sie müssen für den Index eine Operatorklasse angeben oder eine Standardoperatorklasse für den Datentyp definieren." -#: commands/indexcmds.c:2199 commands/indexcmds.c:2207 +#: commands/indexcmds.c:2175 commands/indexcmds.c:2183 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "Operatorklasse »%s« existiert nicht für Zugriffsmethode »%s«" -#: commands/indexcmds.c:2221 commands/typecmds.c:2290 +#: commands/indexcmds.c:2197 commands/typecmds.c:2290 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "Operatorklasse »%s« akzeptiert Datentyp %s nicht" -#: commands/indexcmds.c:2311 +#: commands/indexcmds.c:2287 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "es gibt mehrere Standardoperatorklassen für Datentyp %s" -#: commands/indexcmds.c:2639 +#: commands/indexcmds.c:2615 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "unbekannte REINDEX-Option »%s«" -#: commands/indexcmds.c:2863 +#: commands/indexcmds.c:2839 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "Tabelle »%s« hat keine Indexe, die nebenläufig reindiziert werden können" -#: commands/indexcmds.c:2877 +#: commands/indexcmds.c:2853 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "Tabelle »%s« hat keine zu reindizierenden Indexe" -#: commands/indexcmds.c:2917 commands/indexcmds.c:3421 -#: commands/indexcmds.c:3549 +#: commands/indexcmds.c:2893 commands/indexcmds.c:3397 +#: commands/indexcmds.c:3525 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "Systemkataloge können nicht nebenläufig reindiziert werden" -#: commands/indexcmds.c:2940 +#: commands/indexcmds.c:2916 #, c-format msgid "can only reindex the currently open database" msgstr "nur die aktuell geöffnete Datenbank kann reindiziert werden" -#: commands/indexcmds.c:3028 +#: commands/indexcmds.c:3004 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "Systemkataloge können nicht nebenläufig reindiziert werden, werden alle übersprungen" -#: commands/indexcmds.c:3061 +#: commands/indexcmds.c:3037 #, c-format msgid "cannot move system relations, skipping all" msgstr "Systemrelationen können nicht verschoben werden, werden alle übersprungen" -#: commands/indexcmds.c:3107 +#: commands/indexcmds.c:3083 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "beim Reindizieren der partitionierten Tabelle »%s.%s«" -#: commands/indexcmds.c:3110 +#: commands/indexcmds.c:3086 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "beim Reindizieren des partitionierten Index »%s.%s«" -#: commands/indexcmds.c:3301 commands/indexcmds.c:4157 +#: commands/indexcmds.c:3277 commands/indexcmds.c:4133 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "Tabelle »%s.%s« wurde neu indiziert" -#: commands/indexcmds.c:3453 commands/indexcmds.c:3505 +#: commands/indexcmds.c:3429 commands/indexcmds.c:3481 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "ungültiger Index »%s.%s« kann nicht nebenläufig reindizert werden, wird übersprungen" -#: commands/indexcmds.c:3459 +#: commands/indexcmds.c:3435 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "Exclusion-Constraint-Index »%s.%s« kann nicht nebenläufig reindizert werden, wird übersprungen" -#: commands/indexcmds.c:3614 +#: commands/indexcmds.c:3590 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "diese Art Relation kann nicht nebenläufig reindiziert werden" -#: commands/indexcmds.c:3635 +#: commands/indexcmds.c:3611 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "nicht geteilte Relation kann nicht nach Tablespace »%s« verschoben werden" -#: commands/indexcmds.c:4138 commands/indexcmds.c:4150 +#: commands/indexcmds.c:4114 commands/indexcmds.c:4126 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "Index »%s.%s« wurde neu indiziert" -#: commands/indexcmds.c:4140 commands/indexcmds.c:4159 +#: commands/indexcmds.c:4116 commands/indexcmds.c:4135 #, c-format msgid "%s." msgstr "%s." @@ -9074,8 +9089,8 @@ msgstr "Operator-Attribut »%s« kann nicht geändert werden" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 #: commands/tablecmds.c:1609 commands/tablecmds.c:2197 #: commands/tablecmds.c:3423 commands/tablecmds.c:6312 -#: commands/tablecmds.c:9144 commands/tablecmds.c:17090 -#: commands/tablecmds.c:17125 commands/trigger.c:328 commands/trigger.c:1378 +#: commands/tablecmds.c:9148 commands/tablecmds.c:17098 +#: commands/tablecmds.c:17133 commands/trigger.c:328 commands/trigger.c:1378 #: commands/trigger.c:1488 rewrite/rewriteDefine.c:278 #: rewrite/rewriteDefine.c:957 rewrite/rewriteRemove.c:80 #, c-format @@ -9128,7 +9143,7 @@ msgid "cannot create a cursor WITH HOLD within security-restricted operation" msgstr "kann WITH-HOLD-Cursor nicht in einer sicherheitsbeschränkten Operation erzeugen" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2593 utils/adt/xml.c:2763 +#: executor/execCurrent.c:70 utils/adt/xml.c:2603 utils/adt/xml.c:2773 #, c-format msgid "cursor \"%s\" does not exist" msgstr "Cursor »%s« existiert nicht" @@ -9174,7 +9189,7 @@ 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:1222 -#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1651 +#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1659 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "ungültige Listensyntax für Parameter »%s«" @@ -9514,8 +9529,8 @@ msgstr "Sequenz muss im selben Schema wie die verknüpfte Tabelle sein" msgid "cannot change ownership of identity sequence" msgstr "kann Eigentümer einer Identitätssequenz nicht ändern" -#: commands/sequence.c:1679 commands/tablecmds.c:13870 -#: commands/tablecmds.c:16507 +#: commands/sequence.c:1679 commands/tablecmds.c:13878 +#: commands/tablecmds.c:16515 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "Sequenz »%s« ist mit Tabelle »%s« verknüpft." @@ -9585,12 +9600,12 @@ msgstr "doppelter Spaltenname in Statistikdefinition" msgid "duplicate expression in statistics definition" msgstr "doppelter Ausdruck in Statistikdefinition" -#: commands/statscmds.c:620 commands/tablecmds.c:8112 +#: commands/statscmds.c:620 commands/tablecmds.c:8116 #, c-format msgid "statistics target %d is too low" msgstr "Statistikziel %d ist zu niedrig" -#: commands/statscmds.c:628 commands/tablecmds.c:8120 +#: commands/statscmds.c:628 commands/tablecmds.c:8124 #, c-format msgid "lowering statistics target to %d" msgstr "setze Statistikziel auf %d herab" @@ -9642,7 +9657,7 @@ msgid "must be superuser to create subscriptions" msgstr "nur Superuser können Subskriptionen erzeugen" #: commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:776 -#: replication/logical/tablesync.c:1229 replication/logical/worker.c:3738 +#: replication/logical/tablesync.c:1247 replication/logical/worker.c:3738 #, c-format msgid "could not connect to the publisher: %s" msgstr "konnte nicht mit dem Publikationsserver verbinden: %s" @@ -9755,7 +9770,7 @@ msgstr "Der Eigentümer einer Subskription muss ein Superuser sein." 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:1810 replication/logical/tablesync.c:809 +#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:819 #: replication/pgoutput/pgoutput.c:1072 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" @@ -9848,7 +9863,7 @@ msgstr "materialisierte Sicht »%s« existiert nicht, wird übersprungen" msgid "Use DROP MATERIALIZED VIEW to remove a materialized view." msgstr "Verwenden Sie DROP MATERIALIZED VIEW, um eine materialisierte Sicht zu löschen." -#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19017 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19027 #: parser/parse_utilcmd.c:2261 #, c-format msgid "index \"%s\" does not exist" @@ -9872,8 +9887,8 @@ msgstr "»%s« ist kein Typ" msgid "Use DROP TYPE to remove a type." msgstr "Verwenden Sie DROP TYPE, um einen Typen zu löschen." -#: commands/tablecmds.c:281 commands/tablecmds.c:13709 -#: commands/tablecmds.c:16210 +#: commands/tablecmds.c:281 commands/tablecmds.c:13717 +#: commands/tablecmds.c:16218 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "Fremdtabelle »%s« existiert nicht" @@ -9897,7 +9912,7 @@ msgstr "ON COMMIT kann nur mit temporären Tabellen verwendet werden" msgid "cannot create temporary table within security-restricted operation" msgstr "kann temporäre Tabelle nicht in einer sicherheitsbeschränkten Operation erzeugen" -#: commands/tablecmds.c:764 commands/tablecmds.c:15017 +#: commands/tablecmds.c:764 commands/tablecmds.c:15025 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "von der Relation »%s« würde mehrmals geerbt werden" @@ -9967,7 +9982,7 @@ msgstr "kann Fremdtabelle »%s« nicht leeren" msgid "cannot truncate temporary tables of other sessions" msgstr "kann temporäre Tabellen anderer Sitzungen nicht leeren" -#: commands/tablecmds.c:2462 commands/tablecmds.c:14914 +#: commands/tablecmds.c:2462 commands/tablecmds.c:14922 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "von partitionierter Tabelle »%s« kann nicht geerbt werden" @@ -9988,12 +10003,12 @@ msgstr "geerbte Relation »%s« ist keine Tabelle oder Fremdtabelle" msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "eine temporäre Relation kann nicht als Partition der permanenten Relation »%s« erzeugt werden" -#: commands/tablecmds.c:2496 commands/tablecmds.c:14893 +#: commands/tablecmds.c:2496 commands/tablecmds.c:14901 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "von temporärer Relation »%s« kann nicht geerbt werden" -#: commands/tablecmds.c:2506 commands/tablecmds.c:14901 +#: commands/tablecmds.c:2506 commands/tablecmds.c:14909 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "von temporärer Relation einer anderen Sitzung kann nicht geerbt werden" @@ -10048,7 +10063,7 @@ msgid "inherited column \"%s\" has a generation conflict" msgstr "geerbte Spalte »%s« hat einen Generierungskonflikt" #: commands/tablecmds.c:2717 commands/tablecmds.c:2772 -#: commands/tablecmds.c:12433 parser/parse_utilcmd.c:1302 +#: commands/tablecmds.c:12441 parser/parse_utilcmd.c:1302 #: parser/parse_utilcmd.c:1345 parser/parse_utilcmd.c:1754 #: parser/parse_utilcmd.c:1862 #, c-format @@ -10288,12 +10303,12 @@ msgstr "zu einer getypten Tabelle kann keine Spalte hinzugefügt werden" msgid "cannot add column to a partition" msgstr "zu einer Partition kann keine Spalte hinzugefügt werden" -#: commands/tablecmds.c:6784 commands/tablecmds.c:15144 +#: commands/tablecmds.c:6784 commands/tablecmds.c:15152 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedlichen Typ für Spalte »%s«" -#: commands/tablecmds.c:6790 commands/tablecmds.c:15151 +#: commands/tablecmds.c:6790 commands/tablecmds.c:15159 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Sortierfolge für Spalte »%s«" @@ -10303,937 +10318,937 @@ msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Sortierfolge für Spalte msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "Definition von Spalte »%s« für abgeleitete Tabelle »%s« wird zusammengeführt" -#: commands/tablecmds.c:6847 +#: commands/tablecmds.c:6851 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "eine Identitätsspalte kann nicht rekursiv zu einer Tabelle hinzugefügt werden, die abgeleitete Tabellen hat" -#: commands/tablecmds.c:7091 +#: commands/tablecmds.c:7095 #, c-format msgid "column must be added to child tables too" msgstr "Spalte muss ebenso in den abgeleiteten Tabellen hinzugefügt werden" -#: commands/tablecmds.c:7169 +#: commands/tablecmds.c:7173 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "Spalte »%s« von Relation »%s« existiert bereits, wird übersprungen" -#: commands/tablecmds.c:7176 +#: commands/tablecmds.c:7180 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "Spalte »%s« von Relation »%s« existiert bereits" -#: commands/tablecmds.c:7242 commands/tablecmds.c:12072 +#: commands/tablecmds.c:7246 commands/tablecmds.c:12080 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "Constraint kann nicht nur von der partitionierten Tabelle entfernt werden, wenn Partitionen existieren" -#: commands/tablecmds.c:7243 commands/tablecmds.c:7560 -#: commands/tablecmds.c:8557 commands/tablecmds.c:12073 +#: commands/tablecmds.c:7247 commands/tablecmds.c:7564 +#: commands/tablecmds.c:8561 commands/tablecmds.c:12081 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Lassen Sie das Schlüsselwort ONLY weg." -#: commands/tablecmds.c:7280 commands/tablecmds.c:7486 -#: commands/tablecmds.c:7628 commands/tablecmds.c:7742 -#: commands/tablecmds.c:7836 commands/tablecmds.c:7895 -#: commands/tablecmds.c:8014 commands/tablecmds.c:8153 -#: commands/tablecmds.c:8223 commands/tablecmds.c:8379 -#: commands/tablecmds.c:12227 commands/tablecmds.c:13732 -#: commands/tablecmds.c:16301 +#: commands/tablecmds.c:7284 commands/tablecmds.c:7490 +#: commands/tablecmds.c:7632 commands/tablecmds.c:7746 +#: commands/tablecmds.c:7840 commands/tablecmds.c:7899 +#: commands/tablecmds.c:8018 commands/tablecmds.c:8157 +#: commands/tablecmds.c:8227 commands/tablecmds.c:8383 +#: commands/tablecmds.c:12235 commands/tablecmds.c:13740 +#: commands/tablecmds.c:16309 #, c-format msgid "cannot alter system column \"%s\"" msgstr "Systemspalte »%s« kann nicht geändert werden" -#: commands/tablecmds.c:7286 commands/tablecmds.c:7634 +#: commands/tablecmds.c:7290 commands/tablecmds.c:7638 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "Spalte »%s« von Relation »%s« ist eine Identitätsspalte" -#: commands/tablecmds.c:7329 +#: commands/tablecmds.c:7333 #, c-format msgid "column \"%s\" is in a primary key" msgstr "Spalte »%s« ist in einem Primärschlüssel" -#: commands/tablecmds.c:7334 +#: commands/tablecmds.c:7338 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "Spalte »%s« ist in einem Index, der als Replik-Identität verwendet wird" -#: commands/tablecmds.c:7357 +#: commands/tablecmds.c:7361 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "Spalte »%s« ist in Elterntabelle als NOT NULL markiert" -#: commands/tablecmds.c:7557 commands/tablecmds.c:9040 +#: commands/tablecmds.c:7561 commands/tablecmds.c:9044 #, c-format msgid "constraint must be added to child tables too" msgstr "Constraint muss ebenso in den abgeleiteten Tabellen hinzugefügt werden" -#: commands/tablecmds.c:7558 +#: commands/tablecmds.c:7562 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Spalte »%s« von Relation »%s« ist nicht bereits NOT NULL." -#: commands/tablecmds.c:7636 +#: commands/tablecmds.c:7640 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "Verwenden Sie stattdessen ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." -#: commands/tablecmds.c:7641 +#: commands/tablecmds.c:7645 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "Spalte »%s« von Relation »%s« ist eine generierte Spalte" -#: commands/tablecmds.c:7644 +#: commands/tablecmds.c:7648 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "Verwenden Sie stattdessen ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION." -#: commands/tablecmds.c:7753 +#: commands/tablecmds.c:7757 #, c-format msgid "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity can be added" msgstr "Spalte »%s« von Relation »%s« muss als NOT NULL deklariert werden, bevor Sie Identitätsspalte werden kann" -#: commands/tablecmds.c:7759 +#: commands/tablecmds.c:7763 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "Spalte »%s« von Relation »%s« ist bereits eine Identitätsspalte" -#: commands/tablecmds.c:7765 +#: commands/tablecmds.c:7769 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "Spalte »%s« von Relation »%s« hat bereits einen Vorgabewert" -#: commands/tablecmds.c:7842 commands/tablecmds.c:7903 +#: commands/tablecmds.c:7846 commands/tablecmds.c:7907 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "Spalte »%s« von Relation »%s« ist keine Identitätsspalte" -#: commands/tablecmds.c:7908 +#: commands/tablecmds.c:7912 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "Spalte »%s« von Relation »%s« ist keine Identitätsspalte, wird übersprungen" -#: commands/tablecmds.c:7961 +#: commands/tablecmds.c:7965 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSION muss auch auf abgeleitete Tabellen angewendet werden" -#: commands/tablecmds.c:7983 +#: commands/tablecmds.c:7987 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "Generierungsausdruck von vererbter Spalte kann nicht gelöscht werden" -#: commands/tablecmds.c:8022 +#: commands/tablecmds.c:8026 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "Spalte »%s« von Relation »%s« ist keine gespeicherte generierte Spalte" -#: commands/tablecmds.c:8027 +#: commands/tablecmds.c:8031 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "Spalte »%s« von Relation »%s« ist keine gespeicherte generierte Spalte, wird übersprungen" -#: commands/tablecmds.c:8100 +#: commands/tablecmds.c:8104 #, c-format msgid "cannot refer to non-index column by number" msgstr "auf eine Nicht-Index-Spalte kann nicht per Nummer verwiesen werden" -#: commands/tablecmds.c:8143 +#: commands/tablecmds.c:8147 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "Spalte Nummer %d von Relation »%s« existiert nicht" -#: commands/tablecmds.c:8162 +#: commands/tablecmds.c:8166 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "Statistiken von eingeschlossener Spalte »%s« von Index »%s« können nicht geändert werden" -#: commands/tablecmds.c:8167 +#: commands/tablecmds.c:8171 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "kann Statistiken von Spalte »%s« von Index »%s«, welche kein Ausdruck ist, nicht ändern" -#: commands/tablecmds.c:8169 +#: commands/tablecmds.c:8173 #, c-format msgid "Alter statistics on table column instead." msgstr "Ändern Sie stattdessen die Statistiken für die Tabellenspalte." -#: commands/tablecmds.c:8359 +#: commands/tablecmds.c:8363 #, c-format msgid "invalid storage type \"%s\"" msgstr "ungültiger Storage-Typ »%s«" -#: commands/tablecmds.c:8391 +#: commands/tablecmds.c:8395 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "Spaltendatentyp %s kann nur Storage-Typ PLAIN" -#: commands/tablecmds.c:8436 +#: commands/tablecmds.c:8440 #, c-format msgid "cannot drop column from typed table" msgstr "aus einer getypten Tabelle können keine Spalten gelöscht werden" -#: commands/tablecmds.c:8495 +#: commands/tablecmds.c:8499 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Spalte »%s« von Relation »%s« existiert nicht, wird übersprungen" -#: commands/tablecmds.c:8508 +#: commands/tablecmds.c:8512 #, c-format msgid "cannot drop system column \"%s\"" msgstr "Systemspalte »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:8518 +#: commands/tablecmds.c:8522 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "geerbte Spalte »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:8531 +#: commands/tablecmds.c:8535 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "Spalte »%s« kann nicht gelöscht werden, weil sie Teil des Partitionierungsschlüssels von Relation »%s« ist" -#: commands/tablecmds.c:8556 +#: commands/tablecmds.c:8560 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "Spalte kann nicht nur aus der partitionierten Tabelle gelöscht werden, wenn Partitionen existieren" -#: commands/tablecmds.c:8760 +#: commands/tablecmds.c:8764 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned tables" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX wird für partitionierte Tabellen nicht unterstützt" -#: commands/tablecmds.c:8785 +#: commands/tablecmds.c:8789 #, c-format msgid "ALTER TABLE / ADD CONSTRAINT USING INDEX will rename index \"%s\" to \"%s\"" msgstr "ALTER TABLE / ADD CONSTRAINT USING INDEX benennt Index »%s« um in »%s«" -#: commands/tablecmds.c:9122 +#: commands/tablecmds.c:9126 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "ONLY nicht möglich für Fremdschlüssel für partitionierte Tabelle »%s« verweisend auf Relation »%s«" -#: commands/tablecmds.c:9128 +#: commands/tablecmds.c:9132 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "Hinzufügen von Fremdschlüssel mit NOT VALID nicht möglich für partitionierte Tabelle »%s« verweisend auf Relation »%s«" -#: commands/tablecmds.c:9131 +#: commands/tablecmds.c:9135 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "Dieses Feature wird für partitionierte Tabellen noch nicht unterstützt." -#: commands/tablecmds.c:9138 commands/tablecmds.c:9604 +#: commands/tablecmds.c:9142 commands/tablecmds.c:9608 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "Relation »%s«, auf die verwiesen wird, ist keine Tabelle" -#: commands/tablecmds.c:9161 +#: commands/tablecmds.c:9165 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "Constraints für permanente Tabellen dürfen nur auf permanente Tabellen verweisen" -#: commands/tablecmds.c:9168 +#: commands/tablecmds.c:9172 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "Constraints für ungeloggte Tabellen dürfen nur auf permanente oder ungeloggte Tabellen verweisen" -#: commands/tablecmds.c:9174 +#: commands/tablecmds.c:9178 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "Constraints für temporäre Tabellen dürfen nur auf temporäre Tabellen verweisen" -#: commands/tablecmds.c:9178 +#: commands/tablecmds.c:9182 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "Constraints für temporäre Tabellen müssen temporäre Tabellen dieser Sitzung beinhalten" -#: commands/tablecmds.c:9252 commands/tablecmds.c:9258 +#: commands/tablecmds.c:9256 commands/tablecmds.c:9262 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "ungültige %s-Aktion für Fremdschlüssel-Constraint, der eine generierte Spalte enthält" -#: commands/tablecmds.c:9274 +#: commands/tablecmds.c:9278 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "Anzahl der Quell- und Zielspalten im Fremdschlüssel stimmt nicht überein" -#: commands/tablecmds.c:9381 +#: commands/tablecmds.c:9385 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "Fremdschlüssel-Constraint »%s« kann nicht implementiert werden" -#: commands/tablecmds.c:9383 +#: commands/tablecmds.c:9387 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Schlüsselspalten »%s« und »%s« haben inkompatible Typen: %s und %s." -#: commands/tablecmds.c:9540 +#: commands/tablecmds.c:9544 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "Spalte »%s«, auf die in der ON-DELETE-SET-Aktion verwiesen wird, muss Teil des Fremdschlüssels sein" -#: commands/tablecmds.c:9813 commands/tablecmds.c:10281 +#: commands/tablecmds.c:9817 commands/tablecmds.c:10285 #: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:925 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "Fremdschlüssel-Constraints auf Fremdtabellen werden nicht unterstützt" -#: commands/tablecmds.c:10833 commands/tablecmds.c:11111 -#: commands/tablecmds.c:12029 commands/tablecmds.c:12104 +#: commands/tablecmds.c:10837 commands/tablecmds.c:11115 +#: commands/tablecmds.c:12037 commands/tablecmds.c:12112 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "Constraint »%s« von Relation »%s« existiert nicht" -#: commands/tablecmds.c:10840 +#: commands/tablecmds.c:10844 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "Constraint »%s« von Relation »%s« ist kein Fremdschlüssel-Constraint" -#: commands/tablecmds.c:10878 +#: commands/tablecmds.c:10882 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "Constraint »%s« von Relation »%s« kann nicht geändert werden" -#: commands/tablecmds.c:10881 +#: commands/tablecmds.c:10885 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "Constraint »%s« ist von Constraint »%s« von Relation »%s« abgeleitet." -#: commands/tablecmds.c:10883 +#: commands/tablecmds.c:10887 #, c-format msgid "You may alter the constraint it derives from, instead." msgstr "Sie können stattdessen den Constraint, von dem er abgeleitet ist, ändern." -#: commands/tablecmds.c:11119 +#: commands/tablecmds.c:11123 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "Constraint »%s« von Relation »%s« ist kein Fremdschlüssel- oder Check-Constraint" -#: commands/tablecmds.c:11197 +#: commands/tablecmds.c:11201 #, c-format msgid "constraint must be validated on child tables too" msgstr "Constraint muss ebenso in den abgeleiteten Tabellen validiert werden" -#: commands/tablecmds.c:11287 +#: commands/tablecmds.c:11291 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "Spalte »%s«, die im Fremdschlüssel verwendet wird, existiert nicht" -#: commands/tablecmds.c:11293 +#: commands/tablecmds.c:11297 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "Systemspalten können nicht in Fremdschlüsseln verwendet werden" -#: commands/tablecmds.c:11297 +#: commands/tablecmds.c:11301 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "Fremdschlüssel kann nicht mehr als %d Schlüssel haben" -#: commands/tablecmds.c:11363 +#: commands/tablecmds.c:11367 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "aufschiebbarer Primärschlüssel kann nicht für Tabelle »%s«, auf die verwiesen wird, verwendet werden" -#: commands/tablecmds.c:11380 +#: commands/tablecmds.c:11384 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "in Tabelle »%s«, auf die verwiesen wird, gibt es keinen Primärschlüssel" -#: commands/tablecmds.c:11445 +#: commands/tablecmds.c:11453 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "die Liste der Spalten, auf die ein Fremdschlüssel verweist, darf keine doppelten Einträge enthalten" -#: commands/tablecmds.c:11539 +#: commands/tablecmds.c:11547 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "aufschiebbarer Unique-Constraint kann nicht für Tabelle »%s«, auf die verwiesen wird, verwendet werden" -#: commands/tablecmds.c:11544 +#: commands/tablecmds.c:11552 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "in Tabelle »%s«, auf die verwiesen wird, gibt es keinen Unique-Constraint, der auf die angegebenen Schlüssel passt" -#: commands/tablecmds.c:11985 +#: commands/tablecmds.c:11993 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "geerbter Constraint »%s« von Relation »%s« kann nicht gelöscht werden" -#: commands/tablecmds.c:12035 +#: commands/tablecmds.c:12043 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Constraint »%s« von Relation »%s« existiert nicht, wird übersprungen" -#: commands/tablecmds.c:12211 +#: commands/tablecmds.c:12219 #, c-format msgid "cannot alter column type of typed table" msgstr "Spaltentyp einer getypten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:12238 +#: commands/tablecmds.c:12246 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "kann vererbte Spalte »%s« nicht ändern" -#: commands/tablecmds.c:12247 +#: commands/tablecmds.c:12255 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "Spalte »%s« kann nicht geändert werden, weil sie Teil des Partitionierungsschlüssels von Relation »%s« ist" -#: commands/tablecmds.c:12297 +#: commands/tablecmds.c:12305 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "Ergebnis der USING-Klausel für Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:12300 +#: commands/tablecmds.c:12308 #, c-format msgid "You might need to add an explicit cast." msgstr "Sie müssen möglicherweise eine ausdrückliche Typumwandlung hinzufügen." -#: commands/tablecmds.c:12304 +#: commands/tablecmds.c:12312 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12307 +#: commands/tablecmds.c:12315 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Sie müssen möglicherweise »USING %s::%s« angeben." -#: commands/tablecmds.c:12406 +#: commands/tablecmds.c:12414 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "geerbte Spalte »%s« von Relation »%s« kann nicht geändert werden" -#: commands/tablecmds.c:12434 +#: commands/tablecmds.c:12442 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "USING-Ausdruck enthält einen Verweis auf die ganze Zeile der Tabelle." -#: commands/tablecmds.c:12445 +#: commands/tablecmds.c:12453 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "Typ der vererbten Spalte »%s« muss ebenso in den abgeleiteten Tabellen geändert werden" -#: commands/tablecmds.c:12570 +#: commands/tablecmds.c:12578 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "Typ der Spalte »%s« kann nicht zweimal geändert werden" -#: commands/tablecmds.c:12608 +#: commands/tablecmds.c:12616 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "Generierungsausdruck der Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:12613 +#: commands/tablecmds.c:12621 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "Vorgabewert der Spalte »%s« kann nicht automatisch in Typ %s umgewandelt werden" -#: commands/tablecmds.c:12694 +#: commands/tablecmds.c:12702 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "Typ einer Spalte, die von einer Sicht oder Regel verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12695 commands/tablecmds.c:12714 -#: commands/tablecmds.c:12732 +#: commands/tablecmds.c:12703 commands/tablecmds.c:12722 +#: commands/tablecmds.c:12740 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s hängt von Spalte »%s« ab" -#: commands/tablecmds.c:12713 +#: commands/tablecmds.c:12721 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "Typ einer Spalte, die in einer Trigger-Definition verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12731 +#: commands/tablecmds.c:12739 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "Typ einer Spalte, die in einer Policy-Definition verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12762 +#: commands/tablecmds.c:12770 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "Typ einer Spalte, die von einer generierten Spalte verwendet wird, kann nicht geändert werden" -#: commands/tablecmds.c:12763 +#: commands/tablecmds.c:12771 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Spalte »%s« wird von generierter Spalte »%s« verwendet." -#: commands/tablecmds.c:13840 commands/tablecmds.c:13852 +#: commands/tablecmds.c:13848 commands/tablecmds.c:13860 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "kann Eigentümer des Index »%s« nicht ändern" -#: commands/tablecmds.c:13842 commands/tablecmds.c:13854 +#: commands/tablecmds.c:13850 commands/tablecmds.c:13862 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "Ändern Sie stattdessen den Eigentümer der Tabelle des Index." -#: commands/tablecmds.c:13868 +#: commands/tablecmds.c:13876 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "kann Eigentümer der Sequenz »%s« nicht ändern" -#: commands/tablecmds.c:13882 commands/tablecmds.c:17201 -#: commands/tablecmds.c:17220 +#: commands/tablecmds.c:13890 commands/tablecmds.c:17209 +#: commands/tablecmds.c:17228 #, c-format msgid "Use ALTER TYPE instead." msgstr "Verwenden Sie stattdessen ALTER TYPE." -#: commands/tablecmds.c:13891 +#: commands/tablecmds.c:13899 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "kann Eigentümer der Relation »%s« nicht ändern" -#: commands/tablecmds.c:14253 +#: commands/tablecmds.c:14261 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "mehrere SET TABLESPACE Unterbefehle sind ungültig" -#: commands/tablecmds.c:14330 +#: commands/tablecmds.c:14338 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "für Relation »%s« können keine Optionen gesetzt werden" -#: commands/tablecmds.c:14364 commands/view.c:521 +#: commands/tablecmds.c:14372 commands/view.c:521 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTION wird nur für automatisch aktualisierbare Sichten unterstützt" -#: commands/tablecmds.c:14614 +#: commands/tablecmds.c:14622 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "nur Tabellen, Indexe und materialisierte Sichten existieren in Tablespaces" -#: commands/tablecmds.c:14626 +#: commands/tablecmds.c:14634 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "Relationen können nicht in den oder aus dem Tablespace »pg_global« verschoben werden" -#: commands/tablecmds.c:14718 +#: commands/tablecmds.c:14726 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "Abbruch weil Sperre für Relation »%s.%s« nicht verfügbar ist" -#: commands/tablecmds.c:14734 +#: commands/tablecmds.c:14742 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "keine passenden Relationen in Tablespace »%s« gefunden" -#: commands/tablecmds.c:14852 +#: commands/tablecmds.c:14860 #, c-format msgid "cannot change inheritance of typed table" msgstr "Vererbung einer getypten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:14857 commands/tablecmds.c:15413 +#: commands/tablecmds.c:14865 commands/tablecmds.c:15421 #, c-format msgid "cannot change inheritance of a partition" msgstr "Vererbung einer Partition kann nicht geändert werden" -#: commands/tablecmds.c:14862 +#: commands/tablecmds.c:14870 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "Vererbung einer partitionierten Tabelle kann nicht geändert werden" -#: commands/tablecmds.c:14908 +#: commands/tablecmds.c:14916 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "an temporäre Relation einer anderen Sitzung kann nicht vererbt werden" -#: commands/tablecmds.c:14921 +#: commands/tablecmds.c:14929 #, c-format msgid "cannot inherit from a partition" msgstr "von einer Partition kann nicht geerbt werden" -#: commands/tablecmds.c:14943 commands/tablecmds.c:17854 +#: commands/tablecmds.c:14951 commands/tablecmds.c:17864 #, c-format msgid "circular inheritance not allowed" msgstr "zirkuläre Vererbung ist nicht erlaubt" -#: commands/tablecmds.c:14944 commands/tablecmds.c:17855 +#: commands/tablecmds.c:14952 commands/tablecmds.c:17865 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "»%s« ist schon von »%s« abgeleitet." -#: commands/tablecmds.c:14957 +#: commands/tablecmds.c:14965 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "Trigger »%s« verhindert, dass Tabelle »%s« ein Vererbungskind werden kann" -#: commands/tablecmds.c:14959 +#: commands/tablecmds.c:14967 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "ROW-Trigger mit Ãœbergangstabellen werden in Vererbungshierarchien nicht unterstützt." -#: commands/tablecmds.c:15162 +#: commands/tablecmds.c:15170 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "Spalte »%s« in abgeleiteter Tabelle muss als NOT NULL markiert sein" -#: commands/tablecmds.c:15171 +#: commands/tablecmds.c:15179 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "Spalte »%s« in abgeleiteter Tabelle muss eine generierte Spalte sein" -#: commands/tablecmds.c:15221 +#: commands/tablecmds.c:15229 #, c-format msgid "column \"%s\" in child table has a conflicting generation expression" msgstr "Spalte »%s« in abgeleiteter Tabelle hat einen widersprüchlichen Generierungsausdruck" -#: commands/tablecmds.c:15249 +#: commands/tablecmds.c:15257 #, c-format msgid "child table is missing column \"%s\"" msgstr "Spalte »%s« fehlt in abgeleiteter Tabelle" -#: commands/tablecmds.c:15337 +#: commands/tablecmds.c:15345 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "abgeleitete Tabelle »%s« hat unterschiedliche Definition für Check-Constraint »%s«" -#: commands/tablecmds.c:15345 +#: commands/tablecmds.c:15353 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "Constraint »%s« kollidiert mit nicht vererbtem Constraint für abgeleitete Tabelle »%s«" -#: commands/tablecmds.c:15356 +#: commands/tablecmds.c:15364 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "Constraint »%s« kollidiert mit NOT-VALID-Constraint für abgeleitete Tabelle »%s«" -#: commands/tablecmds.c:15391 +#: commands/tablecmds.c:15399 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "Constraint »%s« fehlt in abgeleiteter Tabelle" -#: commands/tablecmds.c:15477 +#: commands/tablecmds.c:15485 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "Partition »%s« hat schon eine unerledigte Abtrennoperation in der partitionierten Tabelle »%s.%s«" -#: commands/tablecmds.c:15506 commands/tablecmds.c:15554 +#: commands/tablecmds.c:15514 commands/tablecmds.c:15562 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "Relation »%s« ist keine Partition von Relation »%s«" -#: commands/tablecmds.c:15560 +#: commands/tablecmds.c:15568 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "Relation »%s« ist keine Basisrelation von Relation »%s«" -#: commands/tablecmds.c:15788 +#: commands/tablecmds.c:15796 #, c-format msgid "typed tables cannot inherit" msgstr "getypte Tabellen können nicht erben" -#: commands/tablecmds.c:15818 +#: commands/tablecmds.c:15826 #, c-format msgid "table is missing column \"%s\"" msgstr "Spalte »%s« fehlt in Tabelle" -#: commands/tablecmds.c:15829 +#: commands/tablecmds.c:15837 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "Tabelle hat Spalte »%s«, aber Typ benötigt »%s«" -#: commands/tablecmds.c:15838 +#: commands/tablecmds.c:15846 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "Tabelle »%s« hat unterschiedlichen Typ für Spalte »%s«" -#: commands/tablecmds.c:15852 +#: commands/tablecmds.c:15860 #, c-format msgid "table has extra column \"%s\"" msgstr "Tabelle hat zusätzliche Spalte »%s«" -#: commands/tablecmds.c:15904 +#: commands/tablecmds.c:15912 #, c-format msgid "\"%s\" is not a typed table" msgstr "»%s« ist keine getypte Tabelle" -#: commands/tablecmds.c:16078 +#: commands/tablecmds.c:16086 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "nicht eindeutiger Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:16084 +#: commands/tablecmds.c:16092 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil er nicht IMMEDIATE ist" -#: commands/tablecmds.c:16090 +#: commands/tablecmds.c:16098 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "Ausdrucksindex »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:16096 +#: commands/tablecmds.c:16104 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "partieller Index »%s« kann nicht als Replik-Identität verwendet werden" -#: commands/tablecmds.c:16113 +#: commands/tablecmds.c:16121 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil Spalte %d eine Systemspalte ist" -#: commands/tablecmds.c:16120 +#: commands/tablecmds.c:16128 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "Index »%s« kann nicht als Replik-Identität verwendet werden, weil Spalte »%s« NULL-Werte akzeptiert" -#: commands/tablecmds.c:16367 +#: commands/tablecmds.c:16375 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "kann den geloggten Status der Tabelle »%s« nicht ändern, weil sie temporär ist" -#: commands/tablecmds.c:16391 +#: commands/tablecmds.c:16399 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "kann Tabelle »%s« nicht in ungeloggt ändern, weil sie Teil einer Publikation ist" -#: commands/tablecmds.c:16393 +#: commands/tablecmds.c:16401 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Ungeloggte Relationen können nicht repliziert werden." -#: commands/tablecmds.c:16438 +#: commands/tablecmds.c:16446 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "konnte Tabelle »%s« nicht in geloggt ändern, weil sie auf die ungeloggte Tabelle »%s« verweist" -#: commands/tablecmds.c:16448 +#: commands/tablecmds.c:16456 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "konnte Tabelle »%s« nicht in ungeloggt ändern, weil sie auf die geloggte Tabelle »%s« verweist" -#: commands/tablecmds.c:16506 +#: commands/tablecmds.c:16514 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "einer Tabelle zugeordnete Sequenz kann nicht in ein anderes Schema verschoben werden" -#: commands/tablecmds.c:16613 +#: commands/tablecmds.c:16621 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "Relation »%s« existiert bereits in Schema »%s«" -#: commands/tablecmds.c:17034 +#: commands/tablecmds.c:17042 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "»%s« ist keine Tabelle oder materialisierte Sicht" -#: commands/tablecmds.c:17184 +#: commands/tablecmds.c:17192 #, c-format msgid "\"%s\" is not a composite type" msgstr "»%s« ist kein zusammengesetzter Typ" -#: commands/tablecmds.c:17212 +#: commands/tablecmds.c:17220 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "kann Schema des Index »%s« nicht ändern" -#: commands/tablecmds.c:17214 commands/tablecmds.c:17226 +#: commands/tablecmds.c:17222 commands/tablecmds.c:17234 #, c-format msgid "Change the schema of the table instead." msgstr "Ändern Sie stattdessen das Schema der Tabelle." -#: commands/tablecmds.c:17218 +#: commands/tablecmds.c:17226 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "kann Schema des zusammengesetzten Typs »%s« nicht ändern" -#: commands/tablecmds.c:17224 +#: commands/tablecmds.c:17232 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "kann Schema der TOAST-Tabelle »%s« nicht ändern" -#: commands/tablecmds.c:17261 +#: commands/tablecmds.c:17269 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "unbekannte Partitionierungsstrategie »%s«" -#: commands/tablecmds.c:17269 +#: commands/tablecmds.c:17277 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "Partitionierungsstrategie »list« kann nicht mit mehr als einer Spalte verwendet werden" -#: commands/tablecmds.c:17335 +#: commands/tablecmds.c:17343 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "Spalte »%s«, die im Partitionierungsschlüssel verwendet wird, existiert nicht" -#: commands/tablecmds.c:17343 +#: commands/tablecmds.c:17351 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "Systemspalte »%s« kann nicht im Partitionierungsschlüssel verwendet werden" -#: commands/tablecmds.c:17354 commands/tablecmds.c:17468 +#: commands/tablecmds.c:17362 commands/tablecmds.c:17452 #, c-format msgid "cannot use generated column in partition key" msgstr "generierte Spalte kann nicht im Partitionierungsschlüssel verwendet werden" -#: commands/tablecmds.c:17355 commands/tablecmds.c:17469 commands/trigger.c:668 +#: commands/tablecmds.c:17363 commands/tablecmds.c:17453 commands/trigger.c:668 #: rewrite/rewriteHandler.c:929 rewrite/rewriteHandler.c:964 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Spalte »%s« ist eine generierte Spalte." -#: commands/tablecmds.c:17431 -#, c-format -msgid "functions in partition key expression must be marked IMMUTABLE" -msgstr "Funktionen im Partitionierungsschlüsselausdruck müssen als IMMUTABLE markiert sein" - -#: commands/tablecmds.c:17451 +#: commands/tablecmds.c:17435 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "Partitionierungsschlüsselausdruck kann nicht auf Systemspalten verweisen" -#: commands/tablecmds.c:17481 +#: commands/tablecmds.c:17482 +#, c-format +msgid "functions in partition key expression must be marked IMMUTABLE" +msgstr "Funktionen im Partitionierungsschlüsselausdruck müssen als IMMUTABLE markiert sein" + +#: commands/tablecmds.c:17491 #, c-format msgid "cannot use constant expression as partition key" msgstr "Partitionierungsschlüssel kann kein konstanter Ausdruck sein" -#: commands/tablecmds.c:17502 +#: commands/tablecmds.c:17512 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "konnte die für den Partitionierungsausdruck zu verwendende Sortierfolge nicht bestimmen" -#: commands/tablecmds.c:17537 +#: commands/tablecmds.c:17547 #, c-format msgid "You must specify a hash operator class or define a default hash operator class for the data type." msgstr "Sie müssen eine hash-Operatorklasse angeben oder eine hash-Standardoperatorklasse für den Datentyp definieren." -#: commands/tablecmds.c:17543 +#: commands/tablecmds.c:17553 #, c-format msgid "You must specify a btree operator class or define a default btree operator class for the data type." msgstr "Sie müssen eine btree-Operatorklasse angeben oder eine btree-Standardoperatorklasse für den Datentyp definieren." -#: commands/tablecmds.c:17794 +#: commands/tablecmds.c:17804 #, c-format msgid "\"%s\" is already a partition" msgstr "»%s« ist bereits eine Partition" -#: commands/tablecmds.c:17800 +#: commands/tablecmds.c:17810 #, c-format msgid "cannot attach a typed table as partition" msgstr "eine getypte Tabelle kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17816 +#: commands/tablecmds.c:17826 #, c-format msgid "cannot attach inheritance child as partition" msgstr "ein Vererbungskind kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17830 +#: commands/tablecmds.c:17840 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "eine Tabelle mit abgeleiteten Tabellen kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17864 +#: commands/tablecmds.c:17874 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "eine temporäre Relation kann nicht als Partition an permanente Relation »%s« angefügt werden" -#: commands/tablecmds.c:17872 +#: commands/tablecmds.c:17882 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "eine permanente Relation kann nicht als Partition an temporäre Relation »%s« angefügt werden" -#: commands/tablecmds.c:17880 +#: commands/tablecmds.c:17890 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "kann nicht als Partition an temporäre Relation einer anderen Sitzung anfügen" -#: commands/tablecmds.c:17887 +#: commands/tablecmds.c:17897 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "temporäre Relation einer anderen Sitzung kann nicht als Partition angefügt werden" -#: commands/tablecmds.c:17907 +#: commands/tablecmds.c:17917 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "Tabelle »%s« enthält Spalte »%s«, die nicht in der Elterntabelle »%s« gefunden wurde" -#: commands/tablecmds.c:17910 +#: commands/tablecmds.c:17920 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Die neue Partition darf nur Spalten enthalten, die auch die Elterntabelle hat." -#: commands/tablecmds.c:17922 +#: commands/tablecmds.c:17932 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "Trigger »%s« verhindert, dass Tabelle »%s« eine Partition werden kann" -#: commands/tablecmds.c:17924 +#: commands/tablecmds.c:17934 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "ROW-Trigger mit Ãœbergangstabellen werden für Partitionen nicht unterstützt." -#: commands/tablecmds.c:18103 +#: commands/tablecmds.c:18113 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "kann Fremdtabelle »%s« nicht als Partition an partitionierte Tabelle »%s« anfügen" -#: commands/tablecmds.c:18106 +#: commands/tablecmds.c:18116 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Partitionierte Tabelle »%s« enthält Unique-Indexe." -#: commands/tablecmds.c:18421 +#: commands/tablecmds.c:18431 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "nebenläufiges Abtrennen einer Partition ist nicht möglich, wenn eine Standardpartition existiert" -#: commands/tablecmds.c:18530 +#: commands/tablecmds.c:18540 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "partitionierte Tabelle »%s« wurde nebenläufig entfernt" -#: commands/tablecmds.c:18536 +#: commands/tablecmds.c:18546 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "Partition »%s« wurde nebenläufig entfernt" -#: commands/tablecmds.c:19051 commands/tablecmds.c:19071 -#: commands/tablecmds.c:19091 commands/tablecmds.c:19110 -#: commands/tablecmds.c:19152 +#: commands/tablecmds.c:19061 commands/tablecmds.c:19081 +#: commands/tablecmds.c:19101 commands/tablecmds.c:19120 +#: commands/tablecmds.c:19162 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "kann Index »%s« nicht als Partition an Index »%s« anfügen" -#: commands/tablecmds.c:19054 +#: commands/tablecmds.c:19064 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Index »%s« ist bereits an einen anderen Index angefügt." -#: commands/tablecmds.c:19074 +#: commands/tablecmds.c:19084 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Index »%s« ist kein Index irgendeiner Partition von Tabelle »%s«." -#: commands/tablecmds.c:19094 +#: commands/tablecmds.c:19104 #, c-format msgid "The index definitions do not match." msgstr "Die Indexdefinitionen stimmen nicht überein." -#: commands/tablecmds.c:19113 +#: commands/tablecmds.c:19123 #, c-format msgid "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint exists for index \"%s\"." msgstr "Der Index »%s« gehört zu einem Constraint in Tabelle »%s«, aber kein Constraint existiert für Index »%s«." -#: commands/tablecmds.c:19155 +#: commands/tablecmds.c:19165 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "Ein anderer Index ist bereits für Partition »%s« angefügt." -#: commands/tablecmds.c:19392 +#: commands/tablecmds.c:19402 #, c-format msgid "column data type %s does not support compression" msgstr "Spaltendatentyp %s unterstützt keine Komprimierung" -#: commands/tablecmds.c:19399 +#: commands/tablecmds.c:19409 #, c-format msgid "invalid compression method \"%s\"" msgstr "ungültige Komprimierungsmethode »%s«" @@ -11599,7 +11614,7 @@ msgid "trigger function %u returned null value" msgstr "Triggerfunktion %u gab NULL-Wert zurück" #: commands/trigger.c:2509 commands/trigger.c:2727 commands/trigger.c:2995 -#: commands/trigger.c:3346 +#: commands/trigger.c:3364 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "Trigger für BEFORE STATEMENT kann keinen Wert zurückgeben" @@ -11614,140 +11629,140 @@ msgstr "Verschieben einer Zeile in eine andere Partition durch einen BEFORE-FOR- msgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "Vor der Ausführung von Trigger »%s« gehörte die Zeile in Partition »%s.%s«." -#: commands/trigger.c:3423 executor/nodeModifyTable.c:2344 -#: executor/nodeModifyTable.c:2427 +#: commands/trigger.c:3441 executor/nodeModifyTable.c:2350 +#: executor/nodeModifyTable.c:2433 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" msgstr "das zu aktualisierende Tupel wurde schon durch eine vom aktuellen Befehl ausgelöste Operation verändert" -#: commands/trigger.c:3424 executor/nodeModifyTable.c:1510 -#: executor/nodeModifyTable.c:1584 executor/nodeModifyTable.c:2345 -#: executor/nodeModifyTable.c:2428 executor/nodeModifyTable.c:3059 +#: commands/trigger.c:3442 executor/nodeModifyTable.c:1514 +#: executor/nodeModifyTable.c:1588 executor/nodeModifyTable.c:2351 +#: executor/nodeModifyTable.c:2434 executor/nodeModifyTable.c:3079 #, 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." -#: commands/trigger.c:3465 executor/nodeLockRows.c:229 +#: commands/trigger.c:3483 executor/nodeLockRows.c:229 #: executor/nodeLockRows.c:238 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1526 executor/nodeModifyTable.c:2362 -#: executor/nodeModifyTable.c:2570 +#: executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:2368 +#: executor/nodeModifyTable.c:2576 #, c-format msgid "could not serialize access due to concurrent update" msgstr "konnte Zugriff nicht serialisieren wegen gleichzeitiger Aktualisierung" -#: commands/trigger.c:3473 executor/nodeModifyTable.c:1616 -#: executor/nodeModifyTable.c:2445 executor/nodeModifyTable.c:2594 -#: executor/nodeModifyTable.c:2947 +#: commands/trigger.c:3491 executor/nodeModifyTable.c:1620 +#: executor/nodeModifyTable.c:2451 executor/nodeModifyTable.c:2600 +#: executor/nodeModifyTable.c:2967 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "konnte Zugriff nicht serialisieren wegen gleichzeitigem Löschen" -#: commands/trigger.c:4680 +#: commands/trigger.c:4698 #, 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:5863 +#: commands/trigger.c:5881 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "Constraint »%s« ist nicht aufschiebbar" -#: commands/trigger.c:5886 +#: commands/trigger.c:5904 #, c-format msgid "constraint \"%s\" does not exist" msgstr "Constraint »%s« existiert nicht" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "Funktion %s sollte Rückgabetyp %s haben" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "nur Superuser können Textsucheparser anlegen" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "Textsucheparserparameter »%s« nicht erkannt" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "Textsucheparserstartmethode muss angegeben werden" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "Gettoken-Methode für Textsucheparser muss angegeben werden" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "Textsucheparserendemethode muss angegeben werden" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "Lextypes-Methode für Textsucheparser muss angegeben werden" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "Textsuchevorlage »%s« akzeptiert keine Optionen" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "Textsuchevorlage muss angegeben werden" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "nur Superuser können Textsuchevorlagen erzeugen" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "Textsuchevorlageparameter »%s« nicht erkannt" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "Lexize-Methode für Textsuchevorlage muss angegeben werden" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "Textsuchekonfigurationsparameter »%s« nicht erkannt" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "Optionen PARSER und COPY können nicht beide angegeben werden" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "Textsucheparser muss angegeben werden" -#: commands/tsearchcmds.c:1200 +#: commands/tsearchcmds.c:1236 #, c-format msgid "token type \"%s\" does not exist" msgstr "Tokentyp »%s« existiert nicht" -#: commands/tsearchcmds.c:1427 +#: commands/tsearchcmds.c:1464 #, c-format msgid "mapping for token type \"%s\" does not exist" msgstr "Mapping für Tokentyp »%s« existiert nicht" -#: commands/tsearchcmds.c:1433 +#: commands/tsearchcmds.c:1470 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "Mapping für Tokentyp »%s« existiert nicht, wird übersprungen" -#: commands/tsearchcmds.c:1596 commands/tsearchcmds.c:1711 +#: commands/tsearchcmds.c:1631 commands/tsearchcmds.c:1746 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "ungültiges Parameterlistenformat: »%s«" @@ -12465,7 +12480,7 @@ msgid_plural "launched %d parallel vacuum workers for index cleanup (planned: %d msgstr[0] "%d parallelen Vacuum-Worker für Index-Cleanup gestartet (geplant: %d)" msgstr[1] "%d parallele Vacuum-Worker für Index-Cleanup gestartet (geplant: %d)" -#: commands/variable.c:165 utils/misc/guc.c:12108 utils/misc/guc.c:12186 +#: commands/variable.c:165 utils/misc/guc.c:12115 utils/misc/guc.c:12193 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Unbekanntes Schlüsselwort: »%s«." @@ -12691,7 +12706,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:826 +#: executor/execExpr.c:1098 parser/parse_agg.c:837 #, c-format msgid "window function calls cannot be nested" msgstr "Aufrufe von Fensterfunktionen können nicht geschachtelt werden" @@ -12769,10 +12784,10 @@ msgstr "kann inkompatible Arrays nicht verschmelzen" msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "Arrayelement mit Typ %s kann nicht in ARRAY-Konstrukt mit Elementtyp %s verwendet werden." -#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:263 -#: utils/adt/arrayfuncs.c:563 utils/adt/arrayfuncs.c:1305 -#: utils/adt/arrayfuncs.c:3373 utils/adt/arrayfuncs.c:5370 -#: utils/adt/arrayfuncs.c:5887 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:264 +#: utils/adt/arrayfuncs.c:564 utils/adt/arrayfuncs.c:1306 +#: utils/adt/arrayfuncs.c:3422 utils/adt/arrayfuncs.c:5419 +#: utils/adt/arrayfuncs.c:5936 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" @@ -12784,11 +12799,14 @@ msgid "multidimensional arrays must have array expressions with matching dimensi msgstr "mehrdimensionale Arrays müssen Arraysausdrücke mit gleicher Anzahl Dimensionen haben" #: executor/execExprInterp.c:2811 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:936 utils/adt/arrayfuncs.c:1544 -#: utils/adt/arrayfuncs.c:3261 utils/adt/arrayfuncs.c:3403 -#: utils/adt/arrayfuncs.c:5979 utils/adt/arrayfuncs.c:6320 -#: utils/adt/arrayutils.c:94 utils/adt/arrayutils.c:103 -#: utils/adt/arrayutils.c:110 +#: utils/adt/arrayfuncs.c:937 utils/adt/arrayfuncs.c:1545 +#: utils/adt/arrayfuncs.c:2353 utils/adt/arrayfuncs.c:2368 +#: utils/adt/arrayfuncs.c:2630 utils/adt/arrayfuncs.c:2646 +#: utils/adt/arrayfuncs.c:2954 utils/adt/arrayfuncs.c:2969 +#: utils/adt/arrayfuncs.c:3310 utils/adt/arrayfuncs.c:3452 +#: utils/adt/arrayfuncs.c:6028 utils/adt/arrayfuncs.c:6369 +#: utils/adt/arrayutils.c:88 utils/adt/arrayutils.c:97 +#: utils/adt/arrayutils.c:104 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "Arraygröße überschreitet erlaubtes Maximum (%d)" @@ -13055,8 +13073,8 @@ msgstr "gleichzeitiges Löschen, versuche erneut" #: executor/execReplication.c:276 parser/parse_cte.c:308 #: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:724 -#: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3653 -#: utils/adt/arrayfuncs.c:4208 utils/adt/arrayfuncs.c:6200 +#: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3702 +#: utils/adt/arrayfuncs.c:4257 utils/adt/arrayfuncs.c:6249 #: utils/adt/rowtypes.c:1203 #, c-format msgid "could not identify an equality operator for type %s" @@ -13249,7 +13267,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:668 parser/parse_agg.c:696 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:679 parser/parse_agg.c:707 #, c-format msgid "aggregate function calls cannot be nested" msgstr "Aufrufe von Aggregatfunktionen können nicht geschachtelt werden" @@ -13299,58 +13317,58 @@ msgstr "FULL JOIN wird nur für Merge-Verbund-fähige Verbundbedingungen unterst msgid "Query has too few columns." msgstr "Anfrage hat zu wenige Spalten." -#: executor/nodeModifyTable.c:1509 executor/nodeModifyTable.c:1583 +#: executor/nodeModifyTable.c:1513 executor/nodeModifyTable.c:1587 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "das zu löschende Tupel wurde schon durch eine vom aktuellen Befehl ausgelöste Operation verändert" -#: executor/nodeModifyTable.c:1737 +#: executor/nodeModifyTable.c:1742 #, c-format msgid "invalid ON UPDATE specification" msgstr "ungültige ON-UPDATE-Angabe" -#: executor/nodeModifyTable.c:1738 +#: executor/nodeModifyTable.c:1743 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "Das Ergebnistupel würde in einer anderen Partition erscheinen als das ursprüngliche Tupel." -#: executor/nodeModifyTable.c:2198 +#: executor/nodeModifyTable.c:2204 #, 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 "Tupel kann nicht zwischen Partitionen bewegt werden, wenn ein Fremdschlüssel direkt auf einen Vorgänger (außer der Wurzel) der Quellpartition verweist" -#: executor/nodeModifyTable.c:2199 +#: executor/nodeModifyTable.c:2205 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "Ein Fremdschlüssel verweist auf den Vorgänger »%s«, aber nicht auf den Wurzelvorgänger »%s«." -#: executor/nodeModifyTable.c:2202 +#: executor/nodeModifyTable.c:2208 #, c-format 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:2548 executor/nodeModifyTable.c:2936 +#: executor/nodeModifyTable.c:2554 executor/nodeModifyTable.c:2956 #, c-format msgid "%s command cannot affect row a second time" msgstr "Befehl in %s kann eine Zeile nicht ein zweites Mal ändern" -#: executor/nodeModifyTable.c:2550 +#: executor/nodeModifyTable.c:2556 #, c-format 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:2938 +#: executor/nodeModifyTable.c:2958 #, 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:3019 +#: executor/nodeModifyTable.c:3039 #, 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" -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3078 #, 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" @@ -13930,9 +13948,9 @@ msgstr "ungültiger Schemaname" msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "unbekannter Konfigurationsparameter »%s« in Datei »%s« Zeile %d" -#: guc-file.l:353 utils/misc/guc.c:7688 utils/misc/guc.c:7908 -#: utils/misc/guc.c:8006 utils/misc/guc.c:8104 utils/misc/guc.c:8228 -#: utils/misc/guc.c:8331 +#: guc-file.l:353 utils/misc/guc.c:7691 utils/misc/guc.c:7915 +#: utils/misc/guc.c:8013 utils/misc/guc.c:8111 utils/misc/guc.c:8235 +#: utils/misc/guc.c:8338 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "Parameter »%s« kann nicht geändert werden, ohne den Server neu zu starten" @@ -14384,389 +14402,389 @@ msgstr "ungültige Größe des Passwortpakets" msgid "empty password returned by client" msgstr "Client gab leeres Passwort zurück" -#: libpq/auth.c:880 libpq/hba.c:1335 +#: libpq/auth.c:878 libpq/hba.c:1335 #, c-format msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" msgstr "MD5-Authentifizierung wird nicht unterstützt, wenn »db_user_namespace« angeschaltet ist" -#: libpq/auth.c:886 +#: libpq/auth.c:884 #, c-format msgid "could not generate random MD5 salt" msgstr "konnte zufälliges MD5-Salt nicht erzeugen" -#: libpq/auth.c:935 libpq/be-secure-gssapi.c:535 +#: libpq/auth.c:933 libpq/be-secure-gssapi.c:535 #, c-format msgid "could not set environment: %m" msgstr "konnte Umgebung nicht setzen: %m" -#: libpq/auth.c:971 +#: libpq/auth.c:969 #, c-format msgid "expected GSS response, got message type %d" msgstr "GSS-Antwort erwartet, Message-Typ %d empfangen" -#: libpq/auth.c:1031 +#: libpq/auth.c:1029 msgid "accepting GSS security context failed" msgstr "Annahme des GSS-Sicherheitskontexts fehlgeschlagen" -#: libpq/auth.c:1072 +#: libpq/auth.c:1070 msgid "retrieving GSS user name failed" msgstr "Abfrage des GSS-Benutzernamens fehlgeschlagen" -#: libpq/auth.c:1221 +#: libpq/auth.c:1219 msgid "could not acquire SSPI credentials" msgstr "konnte SSPI-Credentials nicht erhalten" -#: libpq/auth.c:1246 +#: libpq/auth.c:1244 #, c-format msgid "expected SSPI response, got message type %d" msgstr "SSPI-Antwort erwartet, Message-Typ %d empfangen" -#: libpq/auth.c:1324 +#: libpq/auth.c:1322 msgid "could not accept SSPI security context" msgstr "konnte SSPI-Sicherheitskontext nicht akzeptieren" -#: libpq/auth.c:1386 +#: libpq/auth.c:1384 msgid "could not get token from SSPI security context" msgstr "konnte kein Token vom SSPI-Sicherheitskontext erhalten" -#: libpq/auth.c:1525 libpq/auth.c:1544 +#: libpq/auth.c:1523 libpq/auth.c:1542 #, c-format msgid "could not translate name" msgstr "konnte Namen nicht umwandeln" -#: libpq/auth.c:1557 +#: libpq/auth.c:1555 #, c-format msgid "realm name too long" msgstr "Realm-Name zu lang" -#: libpq/auth.c:1572 +#: libpq/auth.c:1570 #, c-format msgid "translated account name too long" msgstr "umgewandelter Account-Name zu lang" -#: libpq/auth.c:1753 +#: libpq/auth.c:1751 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "konnte Socket für Ident-Verbindung nicht erzeugen: %m" -#: libpq/auth.c:1768 +#: libpq/auth.c:1766 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "konnte nicht mit lokaler Adresse »%s« verbinden: %m" -#: libpq/auth.c:1780 +#: libpq/auth.c:1778 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "konnte nicht mit Ident-Server auf Adresse »%s«, Port %s verbinden: %m" -#: libpq/auth.c:1802 +#: libpq/auth.c:1800 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "konnte Anfrage an Ident-Server auf Adresse »%s«, Port %s nicht senden: %m" -#: libpq/auth.c:1819 +#: libpq/auth.c:1817 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "konnte Antwort von Ident-Server auf Adresse »%s«, Port %s nicht empfangen: %m" -#: libpq/auth.c:1829 +#: libpq/auth.c:1827 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "ungültig formatierte Antwort vom Ident-Server: »%s«" -#: libpq/auth.c:1882 +#: libpq/auth.c:1880 #, c-format msgid "peer authentication is not supported on this platform" msgstr "Peer-Authentifizierung wird auf dieser Plattform nicht unterstützt" -#: libpq/auth.c:1886 +#: libpq/auth.c:1884 #, c-format msgid "could not get peer credentials: %m" msgstr "konnte Credentials von Gegenstelle nicht ermitteln: %m" -#: libpq/auth.c:1898 +#: libpq/auth.c:1896 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "konnte lokale Benutzer-ID %ld nicht nachschlagen: %s" -#: libpq/auth.c:1999 +#: libpq/auth.c:1997 #, c-format msgid "error from underlying PAM layer: %s" msgstr "Fehler von der unteren PAM-Ebene: %s" -#: libpq/auth.c:2010 +#: libpq/auth.c:2008 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "nicht unterstützte PAM-Conversation: %d/»%s«" -#: libpq/auth.c:2070 +#: libpq/auth.c:2068 #, c-format msgid "could not create PAM authenticator: %s" msgstr "konnte PAM-Authenticator nicht erzeugen: %s" -#: libpq/auth.c:2081 +#: libpq/auth.c:2079 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER) fehlgeschlagen: %s" -#: libpq/auth.c:2113 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST) fehlgeschlagen: %s" -#: libpq/auth.c:2125 +#: libpq/auth.c:2123 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "pam_set_item(PAM_CONV) fehlgeschlagen: %s" -#: libpq/auth.c:2138 +#: libpq/auth.c:2136 #, c-format msgid "pam_authenticate failed: %s" msgstr "pam_authenticate fehlgeschlagen: %s" -#: libpq/auth.c:2151 +#: libpq/auth.c:2149 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmt fehlgeschlagen: %s" -#: libpq/auth.c:2162 +#: libpq/auth.c:2160 #, c-format msgid "could not release PAM authenticator: %s" msgstr "konnte PAM-Authenticator nicht freigeben: %s" -#: libpq/auth.c:2242 +#: libpq/auth.c:2240 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "konnte LDAP nicht initialisieren: Fehlercode %d" -#: libpq/auth.c:2279 +#: libpq/auth.c:2277 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "konnte keinen Domain-Namen aus ldapbasedn herauslesen" -#: libpq/auth.c:2287 +#: libpq/auth.c:2285 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "LDAP-Authentifizierung konnte keine DNS-SRV-Einträge für »%s« finden" -#: libpq/auth.c:2289 +#: libpq/auth.c:2287 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Geben Sie einen LDAP-Servernamen explizit an." -#: libpq/auth.c:2341 +#: libpq/auth.c:2339 #, c-format msgid "could not initialize LDAP: %s" msgstr "konnte LDAP nicht initialisieren: %s" -#: libpq/auth.c:2351 +#: libpq/auth.c:2349 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "ldaps wird mit dieser LDAP-Bibliothek nicht unterstützt" -#: libpq/auth.c:2359 +#: libpq/auth.c:2357 #, c-format msgid "could not initialize LDAP: %m" msgstr "konnte LDAP nicht initialisieren: %m" -#: libpq/auth.c:2369 +#: libpq/auth.c:2367 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "konnte LDAP-Protokollversion nicht setzen: %s" -#: libpq/auth.c:2409 +#: libpq/auth.c:2407 #, c-format msgid "could not load function _ldap_start_tls_sA in wldap32.dll" msgstr "konnte Funktion _ldap_start_tls_sA in wldap32.dll nicht laden" -#: libpq/auth.c:2410 +#: libpq/auth.c:2408 #, c-format msgid "LDAP over SSL is not supported on this platform." msgstr "LDAP über SSL wird auf dieser Plattform nicht unterstützt." -#: libpq/auth.c:2426 +#: libpq/auth.c:2424 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "konnte LDAP-TLS-Sitzung nicht starten: %s" -#: libpq/auth.c:2497 +#: libpq/auth.c:2495 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP-Server nicht angegeben, und kein ldapbasedn" -#: libpq/auth.c:2504 +#: libpq/auth.c:2502 #, c-format msgid "LDAP server not specified" msgstr "LDAP-Server nicht angegeben" -#: libpq/auth.c:2566 +#: libpq/auth.c:2564 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "ungültiges Zeichen im Benutzernamen für LDAP-Authentifizierung" -#: libpq/auth.c:2583 +#: libpq/auth.c:2581 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "erstes LDAP-Binden für ldapbinddn »%s« auf Server »%s« fehlgeschlagen: %s" -#: libpq/auth.c:2612 +#: libpq/auth.c:2610 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "konnte LDAP nicht mit Filter »%s« auf Server »%s« durchsuchen: %s" -#: libpq/auth.c:2626 +#: libpq/auth.c:2624 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAP-Benutzer »%s« existiert nicht" -#: libpq/auth.c:2627 +#: libpq/auth.c:2625 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-Suche nach Filter »%s« auf Server »%s« gab keine Einträge zurück." -#: libpq/auth.c:2631 +#: libpq/auth.c:2629 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAP-Benutzer »%s« ist nicht eindeutig" -#: libpq/auth.c:2632 +#: libpq/auth.c:2630 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "LDAP-Suche nach Filter »%s« auf Server »%s« gab %d Eintrag zurück." msgstr[1] "LDAP-Suche nach Filter »%s« auf Server »%s« gab %d Einträge zurück." -#: libpq/auth.c:2652 +#: libpq/auth.c:2650 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "konnte DN fÅ©r den ersten Treffer für »%s« auf Server »%s« nicht lesen: %s" -#: libpq/auth.c:2673 +#: libpq/auth.c:2671 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "Losbinden fehlgeschlagen nach Suche nach Benutzer »%s« auf Server »%s«" -#: libpq/auth.c:2704 +#: libpq/auth.c:2702 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "LDAP-Login fehlgeschlagen für Benutzer »%s« auf Server »%s«: %s" -#: libpq/auth.c:2736 +#: libpq/auth.c:2734 #, c-format msgid "LDAP diagnostics: %s" msgstr "LDAP-Diagnostik: %s" -#: libpq/auth.c:2774 +#: libpq/auth.c:2772 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "Zertifikatauthentifizierung für Benutzer »%s« fehlgeschlagen: Client-Zertifikat enthält keinen Benutzernamen" -#: libpq/auth.c:2795 +#: libpq/auth.c:2793 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "Zertifikatauthentifizierung für Benutzer »%s« fehlgeschlagen: konnte Subject-DN nicht abfragen" -#: libpq/auth.c:2818 +#: libpq/auth.c:2816 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "Zertifikatüberprüfung (clientcert=verify=full) für Benutzer »%s« fehlgeschlagen: DN stimmt nicht überein" -#: libpq/auth.c:2823 +#: libpq/auth.c:2821 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "Zertifikatüberprüfung (clientcert=verify=full) für Benutzer »%s« fehlgeschlagen: CN stimmt nicht überein" -#: libpq/auth.c:2925 +#: libpq/auth.c:2923 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-Server nicht angegeben" -#: libpq/auth.c:2932 +#: libpq/auth.c:2930 #, c-format msgid "RADIUS secret not specified" msgstr "RADIUS-Geheimnis nicht angegeben" -#: libpq/auth.c:2946 +#: libpq/auth.c:2944 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "RADIUS-Authentifizierung unterstützt keine Passwörter länger als %d Zeichen" -#: libpq/auth.c:3053 libpq/hba.c:1976 +#: libpq/auth.c:3051 libpq/hba.c:1976 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "konnte RADIUS-Servername »%s« nicht in Adresse übersetzen: %s" -#: libpq/auth.c:3067 +#: libpq/auth.c:3065 #, c-format msgid "could not generate random encryption vector" msgstr "konnte zufälligen Verschlüsselungsvektor nicht erzeugen" -#: libpq/auth.c:3104 +#: libpq/auth.c:3102 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "konnte MD5-Verschlüsselung des Passworts nicht durchführen: %s" -#: libpq/auth.c:3131 +#: libpq/auth.c:3129 #, c-format msgid "could not create RADIUS socket: %m" msgstr "konnte RADIUS-Socket nicht erstellen: %m" -#: libpq/auth.c:3153 +#: libpq/auth.c:3151 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "konnte lokales RADIUS-Socket nicht binden: %m" -#: libpq/auth.c:3163 +#: libpq/auth.c:3161 #, c-format msgid "could not send RADIUS packet: %m" msgstr "konnte RADIUS-Paket nicht senden: %m" -#: libpq/auth.c:3197 libpq/auth.c:3223 +#: libpq/auth.c:3195 libpq/auth.c:3221 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "Zeitüberschreitung beim Warten auf RADIUS-Antwort von %s" -#: libpq/auth.c:3216 +#: libpq/auth.c:3214 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "konnte Status des RADIUS-Sockets nicht prüfen: %m" -#: libpq/auth.c:3246 +#: libpq/auth.c:3244 #, c-format msgid "could not read RADIUS response: %m" msgstr "konnte RADIUS-Antwort nicht lesen: %m" -#: libpq/auth.c:3259 libpq/auth.c:3263 +#: libpq/auth.c:3257 libpq/auth.c:3261 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "RADIUS-Antwort von %s wurde von falschem Port gesendet: %d" -#: libpq/auth.c:3272 +#: libpq/auth.c:3270 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "RADIUS-Antwort von %s zu kurz: %d" -#: libpq/auth.c:3279 +#: libpq/auth.c:3277 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "RADIUS-Antwort von %s hat verfälschte Länge: %d (tatsächliche Länge %d)" -#: libpq/auth.c:3287 +#: libpq/auth.c:3285 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "RADIUS-Antwort von %s unterscheidet sich von Anfrage: %d (sollte %d sein)" -#: libpq/auth.c:3312 +#: libpq/auth.c:3310 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "konnte MD5-Verschlüsselung des empfangenen Pakets nicht durchführen: %s" -#: libpq/auth.c:3322 +#: libpq/auth.c:3320 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "RADIUS-Antwort von %s hat falsche MD5-Signatur" -#: libpq/auth.c:3340 +#: libpq/auth.c:3338 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "RADIUS-Antwort von %s hat ungültigen Code (%d) für Benutzer »%s«" @@ -14871,16 +14889,16 @@ msgstr "private Schlüsseldatei »%s« erlaubt Zugriff von Gruppe oder Welt" 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 "Dateirechte müssen u=rw (0600) oder weniger sein, wenn der Eigentümer der Datenbankbenutzer ist, oder u=rw,g=r (0640) oder weniger, wenn der Eigentümer »root« ist." -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "GSSAPI-Wrap-Fehler" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "ausgehende GSSAPI-Nachricht würde keine Vertraulichkeit verwenden" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:622 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:622 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "Server versuchte übergroßes GSSAPI-Paket zu senden (%zu > %zu)" @@ -15003,112 +15021,112 @@ msgstr "konnte SSL-Verbindung nicht initialisieren: %s" msgid "could not set SSL socket: %s" msgstr "konnte SSL-Socket nicht setzen: %s" -#: libpq/be-secure-openssl.c:499 +#: libpq/be-secure-openssl.c:500 #, c-format msgid "could not accept SSL connection: %m" msgstr "konnte SSL-Verbindung nicht annehmen: %m" -#: libpq/be-secure-openssl.c:503 libpq/be-secure-openssl.c:556 +#: libpq/be-secure-openssl.c:504 libpq/be-secure-openssl.c:557 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "konnte SSL-Verbindung nicht annehmen: EOF entdeckt" -#: libpq/be-secure-openssl.c:542 +#: libpq/be-secure-openssl.c:543 #, c-format msgid "could not accept SSL connection: %s" msgstr "konnte SSL-Verbindung nicht annehmen: %s" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:546 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Das zeigt möglicherweise an, dass der Client keine SSL-Protokollversion zwischen %s und %s unterstützt." -#: libpq/be-secure-openssl.c:561 libpq/be-secure-openssl.c:750 -#: libpq/be-secure-openssl.c:814 +#: libpq/be-secure-openssl.c:562 libpq/be-secure-openssl.c:751 +#: libpq/be-secure-openssl.c:821 #, c-format msgid "unrecognized SSL error code: %d" msgstr "unbekannter SSL-Fehlercode: %d" -#: libpq/be-secure-openssl.c:607 +#: libpq/be-secure-openssl.c:608 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Common-Name im SSL-Zertifikat enthält Null-Byte" -#: libpq/be-secure-openssl.c:653 +#: libpq/be-secure-openssl.c:654 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "Distinguished Name im SSL-Zertifikat enthält Null-Byte" -#: libpq/be-secure-openssl.c:739 libpq/be-secure-openssl.c:798 +#: libpq/be-secure-openssl.c:740 libpq/be-secure-openssl.c:805 #, c-format msgid "SSL error: %s" msgstr "SSL-Fehler: %s" -#: libpq/be-secure-openssl.c:980 +#: libpq/be-secure-openssl.c:982 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "konnte DH-Parameterdatei »%s« nicht öffnen: %m" -#: libpq/be-secure-openssl.c:992 +#: libpq/be-secure-openssl.c:994 #, c-format msgid "could not load DH parameters file: %s" msgstr "konnte DH-Parameterdatei nicht laden: %s" -#: libpq/be-secure-openssl.c:1002 +#: libpq/be-secure-openssl.c:1004 #, c-format msgid "invalid DH parameters: %s" msgstr "ungültige DH-Parameter: %s" -#: libpq/be-secure-openssl.c:1011 +#: libpq/be-secure-openssl.c:1013 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "ungültige DH-Parameter: p ist keine Primzahl" -#: libpq/be-secure-openssl.c:1020 +#: libpq/be-secure-openssl.c:1022 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "ungültige DH-Parameter: weder geeigneter Generator noch sichere Primzahl" -#: libpq/be-secure-openssl.c:1181 +#: libpq/be-secure-openssl.c:1183 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: konnte DH-Parameter nicht laden" -#: libpq/be-secure-openssl.c:1189 +#: libpq/be-secure-openssl.c:1191 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: konnte DH-Parameter nicht setzen: %s" -#: libpq/be-secure-openssl.c:1216 +#: libpq/be-secure-openssl.c:1218 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: unbekannter Kurvenname: %s" -#: libpq/be-secure-openssl.c:1225 +#: libpq/be-secure-openssl.c:1227 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: konnte Schlüssel nicht erzeugen" -#: libpq/be-secure-openssl.c:1253 +#: libpq/be-secure-openssl.c:1255 msgid "no SSL error reported" msgstr "kein SSL-Fehler berichtet" -#: libpq/be-secure-openssl.c:1257 +#: libpq/be-secure-openssl.c:1259 #, c-format msgid "SSL error code %lu" msgstr "SSL-Fehlercode %lu" -#: libpq/be-secure-openssl.c:1416 +#: libpq/be-secure-openssl.c:1418 #, c-format msgid "could not create BIO" msgstr "konnte BIO nicht erzeugen" -#: libpq/be-secure-openssl.c:1426 +#: libpq/be-secure-openssl.c:1428 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "konnte NID für ASN1_OBJECT-Objekt nicht ermitteln" -#: libpq/be-secure-openssl.c:1434 +#: libpq/be-secure-openssl.c:1436 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "konnte NID %d nicht in eine ASN1_OBJECT-Struktur umwandeln" @@ -15626,9 +15644,9 @@ msgid "could not accept new connection: %m" msgstr "konnte neue Verbindung nicht akzeptieren: %m" #: libpq/pqcomm.c:766 libpq/pqcomm.c:775 libpq/pqcomm.c:807 libpq/pqcomm.c:817 -#: libpq/pqcomm.c:1642 libpq/pqcomm.c:1687 libpq/pqcomm.c:1727 -#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1810 libpq/pqcomm.c:1849 -#: libpq/pqcomm.c:1885 libpq/pqcomm.c:1924 +#: libpq/pqcomm.c:1652 libpq/pqcomm.c:1697 libpq/pqcomm.c:1737 +#: libpq/pqcomm.c:1781 libpq/pqcomm.c:1820 libpq/pqcomm.c:1859 +#: libpq/pqcomm.c:1895 libpq/pqcomm.c:1934 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s) fehlgeschlagen: %m" @@ -15638,47 +15656,47 @@ msgstr "%s(%s) fehlgeschlagen: %m" msgid "there is no client connection" msgstr "es besteht keine Client-Verbindung" -#: libpq/pqcomm.c:972 libpq/pqcomm.c:1068 +#: libpq/pqcomm.c:977 libpq/pqcomm.c:1078 #, c-format msgid "could not receive data from client: %m" msgstr "konnte Daten vom Client nicht empfangen: %m" -#: libpq/pqcomm.c:1173 tcop/postgres.c:4373 +#: libpq/pqcomm.c:1183 tcop/postgres.c:4373 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "Verbindung wird abgebrochen, weil Protokollsynchronisierung verloren wurde" -#: libpq/pqcomm.c:1239 +#: libpq/pqcomm.c:1249 #, c-format msgid "unexpected EOF within message length word" msgstr "unerwartetes EOF im Message-Längenwort" -#: libpq/pqcomm.c:1249 +#: libpq/pqcomm.c:1259 #, c-format msgid "invalid message length" msgstr "ungültige Message-Länge" -#: libpq/pqcomm.c:1271 libpq/pqcomm.c:1284 +#: libpq/pqcomm.c:1281 libpq/pqcomm.c:1294 #, c-format msgid "incomplete message from client" msgstr "unvollständige Message vom Client" -#: libpq/pqcomm.c:1395 +#: libpq/pqcomm.c:1405 #, c-format msgid "could not send data to client: %m" msgstr "konnte Daten nicht an den Client senden: %m" -#: libpq/pqcomm.c:1610 +#: libpq/pqcomm.c:1620 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) fehlgeschlagen: Fehlercode %d" -#: libpq/pqcomm.c:1699 +#: libpq/pqcomm.c:1709 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "Setzen der Keepalive-Idle-Zeit wird nicht unterstützt" -#: libpq/pqcomm.c:1783 libpq/pqcomm.c:1858 libpq/pqcomm.c:1933 +#: libpq/pqcomm.c:1793 libpq/pqcomm.c:1868 libpq/pqcomm.c:1943 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) nicht unterstützt" @@ -15689,7 +15707,7 @@ msgid "no data left in message" msgstr "keine Daten in Message übrig" #: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 -#: utils/adt/arrayfuncs.c:1482 utils/adt/rowtypes.c:588 +#: utils/adt/arrayfuncs.c:1483 utils/adt/rowtypes.c:588 #, c-format msgid "insufficient data left in message" msgstr "nicht genug Daten in Message übrig" @@ -16103,7 +16121,7 @@ msgstr "Alle Spaltendatentypen müssen hashbar sein." msgid "could not implement %s" msgstr "konnte %s nicht implementieren" -#: optimizer/util/clauses.c:4777 +#: optimizer/util/clauses.c:4843 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL-Funktion »%s« beim Inlining" @@ -16353,331 +16371,331 @@ 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:220 parser/parse_oper.c:227 +#: parser/parse_agg.c:208 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "konnte keine Sortieroperator für Typ %s ermitteln" -#: parser/parse_agg.c:222 +#: parser/parse_agg.c:210 #, 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:257 +#: parser/parse_agg.c:268 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING muss weniger als 32 Argumente haben" -#: parser/parse_agg.c:360 +#: parser/parse_agg.c:371 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "Aggregatfunktionen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:362 +#: parser/parse_agg.c:373 msgid "grouping operations are not allowed in JOIN conditions" msgstr "Gruppieroperationen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:385 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:376 +#: parser/parse_agg.c:387 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:381 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "Aggregatfunktionen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "Gruppieroperationen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:391 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "Aggregatfunktionen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "Gruppieroperationen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:410 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "Aggregatfunktionen sind in der Fenster-RANGE-Klausel nicht erlaubt" -#: parser/parse_agg.c:412 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "Gruppieroperationen sind in der Fenster-RANGE-Klausel nicht erlaubt" -#: parser/parse_agg.c:417 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "Aggregatfunktionen sind in der Fenster-ROWS-Klausel nicht erlaubt" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "Gruppieroperationen sind in der Fenster-ROWS-Klausel nicht erlaubt" -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "Aggregatfunktionen sind in der Fenster-GROUPS-Klausel nicht erlaubt" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "Gruppieroperationen sind in der Fenster-GROUPS-Klausel nicht erlaubt" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "Aggregatfunktionen sind in MERGE-WHEN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:441 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "Gruppieroperationen sind in MERGE-WHEN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:467 +#: parser/parse_agg.c:478 msgid "aggregate functions are not allowed in check constraints" msgstr "Aggregatfunktionen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:469 +#: parser/parse_agg.c:480 msgid "grouping operations are not allowed in check constraints" msgstr "Gruppieroperationen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:487 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "Aggregatfunktionen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:489 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "Gruppieroperationen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:494 msgid "aggregate functions are not allowed in index expressions" msgstr "Aggregatfunktionen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:496 msgid "grouping operations are not allowed in index expressions" msgstr "Gruppieroperationen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:501 msgid "aggregate functions are not allowed in index predicates" msgstr "Aggregatfunktionen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:503 msgid "grouping operations are not allowed in index predicates" msgstr "Gruppieroperationen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:508 msgid "aggregate functions are not allowed in statistics expressions" msgstr "Aggregatfunktionen sind in Statistikausdrücken nicht erlaubt" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:510 msgid "grouping operations are not allowed in statistics expressions" msgstr "Gruppieroperationen sind in Statistikausdrücken nicht erlaubt" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:515 msgid "aggregate functions are not allowed in transform expressions" msgstr "Aggregatfunktionen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:517 msgid "grouping operations are not allowed in transform expressions" msgstr "Gruppieroperationen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:522 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "Aggregatfunktionen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:524 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "Gruppieroperationen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:529 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:520 +#: parser/parse_agg.c:531 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:525 +#: parser/parse_agg.c:536 msgid "aggregate functions are not allowed in partition bound" msgstr "Aggregatfunktionen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:538 msgid "grouping operations are not allowed in partition bound" msgstr "Gruppieroperationen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:543 msgid "aggregate functions are not allowed in partition key expressions" msgstr "Aggregatfunktionen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:545 msgid "grouping operations are not allowed in partition key expressions" msgstr "Gruppieroperationen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:540 +#: parser/parse_agg.c:551 msgid "aggregate functions are not allowed in column generation expressions" msgstr "Aggregatfunktionen sind in Spaltengenerierungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:542 +#: parser/parse_agg.c:553 msgid "grouping operations are not allowed in column generation expressions" msgstr "Gruppieroperationen sind in Spaltengenerierungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:559 msgid "aggregate functions are not allowed in CALL arguments" msgstr "Aggregatfunktionen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:550 +#: parser/parse_agg.c:561 msgid "grouping operations are not allowed in CALL arguments" msgstr "Gruppieroperationen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:567 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:558 +#: parser/parse_agg.c:569 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:585 parser/parse_clause.c:1836 +#: parser/parse_agg.c:596 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:588 +#: parser/parse_agg.c:599 #, c-format msgid "grouping operations are not allowed in %s" msgstr "Gruppieroperationen sind in %s nicht erlaubt" -#: parser/parse_agg.c:689 +#: parser/parse_agg.c:700 #, 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:767 +#: parser/parse_agg.c:778 #, 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:768 parser/parse_expr.c:1674 parser/parse_expr.c:2156 +#: parser/parse_agg.c:779 parser/parse_expr.c:1674 parser/parse_expr.c:2156 #: 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:773 +#: parser/parse_agg.c:784 #, 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:852 +#: parser/parse_agg.c:863 msgid "window functions are not allowed in JOIN conditions" msgstr "Fensterfunktionen sind in JOIN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:859 +#: parser/parse_agg.c:870 msgid "window functions are not allowed in functions in FROM" msgstr "Fensterfunktionen sind in Funktionen in FROM nicht erlaubt" -#: parser/parse_agg.c:865 +#: parser/parse_agg.c:876 msgid "window functions are not allowed in policy expressions" msgstr "Fensterfunktionen sind in Policy-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:878 +#: parser/parse_agg.c:889 msgid "window functions are not allowed in window definitions" msgstr "Fensterfunktionen sind in Fensterdefinitionen nicht erlaubt" -#: parser/parse_agg.c:889 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "Fensterfunktionen sind in MERGE-WHEN-Bedingungen nicht erlaubt" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in check constraints" msgstr "Fensterfunktionen sind in Check-Constraints nicht erlaubt" -#: parser/parse_agg.c:917 +#: parser/parse_agg.c:928 msgid "window functions are not allowed in DEFAULT expressions" msgstr "Fensterfunktionen sind in DEFAULT-Ausdrücken nicht erlaubt" -#: parser/parse_agg.c:920 +#: parser/parse_agg.c:931 msgid "window functions are not allowed in index expressions" msgstr "Fensterfunktionen sind in Indexausdrücken nicht erlaubt" -#: parser/parse_agg.c:923 +#: parser/parse_agg.c:934 msgid "window functions are not allowed in statistics expressions" msgstr "Fensterfunktionen sind in Statistikausdrücken nicht erlaubt" -#: parser/parse_agg.c:926 +#: parser/parse_agg.c:937 msgid "window functions are not allowed in index predicates" msgstr "Fensterfunktionen sind in Indexprädikaten nicht erlaubt" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in transform expressions" msgstr "Fensterfunktionen sind in Umwandlungsausdrücken nicht erlaubt" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:943 msgid "window functions are not allowed in EXECUTE parameters" msgstr "Fensterfunktionen sind in EXECUTE-Parametern nicht erlaubt" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:946 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:938 +#: parser/parse_agg.c:949 msgid "window functions are not allowed in partition bound" msgstr "Fensterfunktionen sind in Partitionsbegrenzungen nicht erlaubt" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:952 msgid "window functions are not allowed in partition key expressions" msgstr "Fensterfunktionen sind in Partitionierungsschlüsselausdrücken nicht erlaubt" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:955 msgid "window functions are not allowed in CALL arguments" msgstr "Fensterfunktionen sind in CALL-Argumenten nicht erlaubt" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:958 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:950 +#: parser/parse_agg.c:961 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:973 parser/parse_clause.c:1845 +#: parser/parse_agg.c:984 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:1007 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1018 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "Fenster »%s« existiert nicht" -#: parser/parse_agg.c:1091 +#: parser/parse_agg.c:1102 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "zu viele Grouping-Sets vorhanden (maximal 4096)" -#: parser/parse_agg.c:1231 +#: parser/parse_agg.c:1242 #, 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:1424 +#: parser/parse_agg.c:1435 #, 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:1427 +#: parser/parse_agg.c:1438 #, 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:1432 +#: parser/parse_agg.c:1443 #, 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:1596 +#: parser/parse_agg.c:1607 #, 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" @@ -18685,12 +18703,12 @@ msgstr "Huge Pages werden auf dieser Plattform nicht unterstützt" msgid "huge pages not supported with the current shared_memory_type setting" msgstr "Huge Pages werden mit der aktuellen shared_memory_type-Einstellung nicht unterstützt" -#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1187 +#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1195 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "bereits bestehender Shared-Memory-Block (Schlüssel %lu, ID %lu) wird noch benutzt" -#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1189 +#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1197 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Beenden Sie alle alten Serverprozesse, die zum Datenverzeichnis »%s« gehören." @@ -19190,8 +19208,8 @@ msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "nicht unterstütztes Frontend-Protokoll %u.%u: Server unterstützt %u.0 bis %u.%u" #: postmaster/postmaster.c:2264 utils/misc/guc.c:7400 utils/misc/guc.c:7436 -#: utils/misc/guc.c:7506 utils/misc/guc.c:8937 utils/misc/guc.c:11979 -#: utils/misc/guc.c:12020 +#: utils/misc/guc.c:7506 utils/misc/guc.c:8944 utils/misc/guc.c:11986 +#: utils/misc/guc.c:12027 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "ungültiger Wert für Parameter »%s«: »%s«" @@ -19728,97 +19746,97 @@ msgstr "konnte Verbindungsparameter nicht interpretieren: %s" 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:384 -#: replication/libpqwalreceiver/libpqwalreceiver.c:622 +#: replication/libpqwalreceiver/libpqwalreceiver.c:388 +#: replication/libpqwalreceiver/libpqwalreceiver.c:626 #, c-format msgid "invalid response from primary server" msgstr "ungültige Antwort vom Primärserver" -#: replication/libpqwalreceiver/libpqwalreceiver.c:385 +#: replication/libpqwalreceiver/libpqwalreceiver.c:389 #, 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:465 -#: replication/libpqwalreceiver/libpqwalreceiver.c:472 -#: replication/libpqwalreceiver/libpqwalreceiver.c:502 +#: replication/libpqwalreceiver/libpqwalreceiver.c:469 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:506 #, c-format msgid "could not start WAL streaming: %s" msgstr "konnte WAL-Streaming nicht starten: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:526 +#: replication/libpqwalreceiver/libpqwalreceiver.c:530 #, 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:549 +#: replication/libpqwalreceiver/libpqwalreceiver.c:553 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "unerwartete Ergebnismenge nach End-of-Streaming" -#: replication/libpqwalreceiver/libpqwalreceiver.c:564 +#: replication/libpqwalreceiver/libpqwalreceiver.c:568 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "Fehler beim Beenden des COPY-Datenstroms: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:574 +#: replication/libpqwalreceiver/libpqwalreceiver.c:578 #, c-format msgid "error reading result of streaming command: %s" msgstr "Fehler beim Lesen des Ergebnisses von Streaming-Befehl: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:583 -#: replication/libpqwalreceiver/libpqwalreceiver.c:821 +#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:825 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "unerwartetes Ergebnis nach CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:610 +#: replication/libpqwalreceiver/libpqwalreceiver.c:614 #, 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:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, 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:784 -#: replication/libpqwalreceiver/libpqwalreceiver.c:837 -#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:788 +#: replication/libpqwalreceiver/libpqwalreceiver.c:841 +#: replication/libpqwalreceiver/libpqwalreceiver.c:848 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "konnte keine Daten vom WAL-Stream empfangen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:864 +#: replication/libpqwalreceiver/libpqwalreceiver.c:868 #, 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:956 +#: replication/libpqwalreceiver/libpqwalreceiver.c:960 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "konnte Replikations-Slot »%s« nicht erzeugen: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1002 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1006 #, c-format msgid "invalid query response" msgstr "ungültige Antwort auf Anfrage" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1007 #, c-format msgid "Expected %d fields, got %d fields." msgstr "%d Felder erwartet, %d Feldern erhalten." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1073 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1077 #, c-format msgid "the query interface requires a database connection" msgstr "Ausführen von Anfragen benötigt eine Datenbankverbindung" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1104 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1108 msgid "empty query" msgstr "leere Anfrage" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1110 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1114 msgid "unexpected pipeline mode" msgstr "unerwarteter Pipeline-Modus" @@ -20185,47 +20203,47 @@ msgstr "Arbeitsprozess für logische Replikation für Tabellensynchronisation fà msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "Apply-Worker für logische Replikation für Subskription »%s« wird neu starten, damit two_phase eingeschaltet werden kann" -#: replication/logical/tablesync.c:731 replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:741 replication/logical/tablesync.c:882 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "konnte Tabelleninformationen für Tabelle »%s.%s« nicht vom Publikationsserver holen: %s" -#: replication/logical/tablesync.c:738 +#: replication/logical/tablesync.c:748 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "Tabelle »%s.%s« nicht auf dem Publikationsserver gefunden" -#: replication/logical/tablesync.c:795 +#: replication/logical/tablesync.c:805 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "konnte Spaltenlisteninformationen für Tabelle »%s.%s« nicht vom Publikationsserver holen: %s" -#: replication/logical/tablesync.c:974 +#: replication/logical/tablesync.c:984 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "konnte WHERE-Klausel-Informationen für Tabelle »%s.%s« nicht vom Publikationsserver holen: %s" -#: replication/logical/tablesync.c:1111 +#: replication/logical/tablesync.c:1129 #, c-format 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:1323 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1341 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:1338 +#: replication/logical/tablesync.c:1356 #, 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:1380 +#: replication/logical/tablesync.c:1398 #, c-format msgid "replication origin \"%s\" already exists" msgstr "Replication-Origin »%s« existiert bereits" -#: replication/logical/tablesync.c:1393 +#: replication/logical/tablesync.c:1411 #, 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" @@ -21679,17 +21697,17 @@ msgstr "konnte Shared-Memory-Segment »%s« nicht schließen: %m" msgid "could not duplicate handle for \"%s\": %m" msgstr "konnte Handle für »%s« nicht duplizieren: %m" -#: storage/ipc/procarray.c:3846 +#: storage/ipc/procarray.c:3845 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "Datenbank »%s« wird von vorbereiteten Transaktionen verwendet" -#: storage/ipc/procarray.c:3878 storage/ipc/signalfuncs.c:226 +#: storage/ipc/procarray.c:3877 storage/ipc/signalfuncs.c:231 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "nur Superuser können Prozesse eines Superusers beenden" -#: storage/ipc/procarray.c:3885 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3884 storage/ipc/signalfuncs.c:236 #, c-format msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" msgstr "muss Mitglied der Rolle sein, deren Prozess beendet wird, oder Mitglied von pg_signal_backend" @@ -21749,51 +21767,51 @@ msgstr "angeforderte Shared-Memory-Größe übersteigt Kapazität von size_t" msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d ist kein PostgreSQL-Backend-Prozess" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1442 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1442 #: utils/adt/mcxtfuncs.c:190 #, c-format msgid "could not send signal to process %d: %m" msgstr "konnte Signal nicht an Prozess %d senden: %m" -#: storage/ipc/signalfuncs.c:124 +#: storage/ipc/signalfuncs.c:129 #, c-format msgid "must be a superuser to cancel superuser query" msgstr "nur Superuser können Anfragen eines Superusers stornieren" -#: storage/ipc/signalfuncs.c:129 +#: storage/ipc/signalfuncs.c:134 #, c-format msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend" msgstr "muss Mitglied der Rolle sein, deren Anfrage storniert wird, oder Mitglied von pg_signal_backend" -#: storage/ipc/signalfuncs.c:170 +#: storage/ipc/signalfuncs.c:175 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "konnte die Existenz des Backend mit PID %d nicht prüfen: %m" -#: storage/ipc/signalfuncs.c:188 +#: storage/ipc/signalfuncs.c:193 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" msgstr[0] "Backend mit PID %d wurde nicht innerhalb von %lld Millisekunde beendet" msgstr[1] "Backend mit PID %d wurde nicht innerhalb von %lld Millisekunden beendet" -#: storage/ipc/signalfuncs.c:219 +#: storage/ipc/signalfuncs.c:224 #, c-format msgid "\"timeout\" must not be negative" msgstr "»timeout« darf nicht negativ sein" -#: storage/ipc/signalfuncs.c:271 +#: storage/ipc/signalfuncs.c:276 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" msgstr "nur Superuser können mit adminpack 1.0 Logdateien rotieren" #. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:273 utils/adt/genfile.c:250 +#: storage/ipc/signalfuncs.c:278 utils/adt/genfile.c:250 #, c-format msgid "Consider using %s, which is part of core, instead." msgstr "Verwenden Sie stattdessen %s, was im Kernsystem enthalten ist." -#: storage/ipc/signalfuncs.c:279 storage/ipc/signalfuncs.c:299 +#: storage/ipc/signalfuncs.c:284 storage/ipc/signalfuncs.c:304 #, c-format msgid "rotation not possible because log collection not active" msgstr "Rotierung nicht möglich, weil Logsammlung nicht aktiv ist" @@ -22823,37 +22841,37 @@ msgstr "»MaxFragments« sollte >= 0 sein" msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "konnte permanente Statistikdatei »%s« nicht löschen: %m" -#: utils/activity/pgstat.c:1226 +#: utils/activity/pgstat.c:1229 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "ungültige Statistikart: »%s«" -#: utils/activity/pgstat.c:1306 +#: utils/activity/pgstat.c:1309 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht öffnen: %m" -#: utils/activity/pgstat.c:1412 +#: utils/activity/pgstat.c:1415 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht schreiben: %m" -#: utils/activity/pgstat.c:1421 +#: utils/activity/pgstat.c:1424 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht schließen: %m" -#: utils/activity/pgstat.c:1429 +#: utils/activity/pgstat.c:1432 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "konnte temporäre Statistikdatei »%s« nicht in »%s« umbenennen: %m" -#: utils/activity/pgstat.c:1478 +#: utils/activity/pgstat.c:1481 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "konnte Statistikdatei »%s« nicht öffnen: %m" -#: utils/activity/pgstat.c:1634 +#: utils/activity/pgstat.c:1637 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "verfälschte Statistikdatei »%s«" @@ -23048,59 +23066,59 @@ msgstr "Suche nach Elementen in mehrdimensionalen Arrays wird nicht unterstützt msgid "initial position must not be null" msgstr "Startposition darf nicht NULL sein" -#: utils/adt/arrayfuncs.c:271 utils/adt/arrayfuncs.c:285 -#: utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:318 -#: utils/adt/arrayfuncs.c:333 utils/adt/arrayfuncs.c:347 -#: utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360 -#: utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:509 -#: utils/adt/arrayfuncs.c:520 utils/adt/arrayfuncs.c:535 -#: utils/adt/arrayfuncs.c:556 utils/adt/arrayfuncs.c:586 -#: utils/adt/arrayfuncs.c:593 utils/adt/arrayfuncs.c:601 -#: utils/adt/arrayfuncs.c:635 utils/adt/arrayfuncs.c:658 -#: utils/adt/arrayfuncs.c:678 utils/adt/arrayfuncs.c:790 -#: utils/adt/arrayfuncs.c:799 utils/adt/arrayfuncs.c:829 -#: utils/adt/arrayfuncs.c:844 utils/adt/arrayfuncs.c:897 +#: utils/adt/arrayfuncs.c:272 utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:334 utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:510 +#: utils/adt/arrayfuncs.c:521 utils/adt/arrayfuncs.c:536 +#: utils/adt/arrayfuncs.c:557 utils/adt/arrayfuncs.c:587 +#: utils/adt/arrayfuncs.c:594 utils/adt/arrayfuncs.c:602 +#: utils/adt/arrayfuncs.c:636 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:679 utils/adt/arrayfuncs.c:791 +#: utils/adt/arrayfuncs.c:800 utils/adt/arrayfuncs.c:830 +#: utils/adt/arrayfuncs.c:845 utils/adt/arrayfuncs.c:898 #, c-format msgid "malformed array literal: \"%s\"" msgstr "fehlerhafte Arraykonstante: »%s«" -#: utils/adt/arrayfuncs.c:272 +#: utils/adt/arrayfuncs.c:273 #, c-format msgid "\"[\" must introduce explicitly-specified array dimensions." msgstr "Auf »[« müssen explizit angegebene Array-Dimensionen folgen." -#: utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:287 #, c-format msgid "Missing array dimension value." msgstr "Dimensionswert fehlt." -#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:334 +#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:335 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "»%s« fehlt nach Arraydimensionen." -#: utils/adt/arrayfuncs.c:306 utils/adt/arrayfuncs.c:2909 -#: utils/adt/arrayfuncs.c:2941 utils/adt/arrayfuncs.c:2956 +#: utils/adt/arrayfuncs.c:307 utils/adt/arrayfuncs.c:2945 +#: utils/adt/arrayfuncs.c:2990 utils/adt/arrayfuncs.c:3005 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "Obergrenze kann nicht kleiner als Untergrenze sein" -#: utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:320 #, c-format msgid "Array value must start with \"{\" or dimension information." msgstr "Arraywert muss mit »{« oder Dimensionsinformationen anfangen." -#: utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:349 #, c-format msgid "Array contents must start with \"{\"." msgstr "Array-Inhalt muss mit {« anfangen." -#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:355 utils/adt/arrayfuncs.c:362 #, c-format msgid "Specified array dimensions do not match array contents." msgstr "Angegebene Array-Dimensionen stimmen nicht mit dem Array-Inhalt überein." -#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:521 +#: utils/adt/arrayfuncs.c:495 utils/adt/arrayfuncs.c:522 #: utils/adt/multirangetypes.c:164 utils/adt/rangetypes.c:2310 #: utils/adt/rangetypes.c:2318 utils/adt/rowtypes.c:211 #: utils/adt/rowtypes.c:219 @@ -23108,74 +23126,74 @@ msgstr "Angegebene Array-Dimensionen stimmen nicht mit dem Array-Inhalt überein msgid "Unexpected end of input." msgstr "Unerwartetes Ende der Eingabe." -#: utils/adt/arrayfuncs.c:510 utils/adt/arrayfuncs.c:557 -#: utils/adt/arrayfuncs.c:587 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:511 utils/adt/arrayfuncs.c:558 +#: utils/adt/arrayfuncs.c:588 utils/adt/arrayfuncs.c:637 #, c-format msgid "Unexpected \"%c\" character." msgstr "Unerwartetes Zeichen »%c«." -#: utils/adt/arrayfuncs.c:536 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:537 utils/adt/arrayfuncs.c:660 #, c-format msgid "Unexpected array element." msgstr "Unerwartetes Arrayelement." -#: utils/adt/arrayfuncs.c:594 +#: utils/adt/arrayfuncs.c:595 #, c-format msgid "Unmatched \"%c\" character." msgstr "Zeichen »%c« ohne Gegenstück." -#: utils/adt/arrayfuncs.c:602 utils/adt/jsonfuncs.c:2490 +#: utils/adt/arrayfuncs.c:603 utils/adt/jsonfuncs.c:2490 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Mehrdimensionale Arrays müssen Arraysausdrücke mit gleicher Anzahl Dimensionen haben." -#: utils/adt/arrayfuncs.c:679 utils/adt/multirangetypes.c:287 +#: utils/adt/arrayfuncs.c:680 utils/adt/multirangetypes.c:287 #, c-format msgid "Junk after closing right brace." msgstr "Müll nach schließender rechter geschweifter Klammer." -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3369 -#: utils/adt/arrayfuncs.c:5883 +#: utils/adt/arrayfuncs.c:1302 utils/adt/arrayfuncs.c:3418 +#: utils/adt/arrayfuncs.c:5932 #, c-format msgid "invalid number of dimensions: %d" msgstr "ungültige Anzahl Dimensionen: %d" -#: utils/adt/arrayfuncs.c:1312 +#: utils/adt/arrayfuncs.c:1313 #, c-format msgid "invalid array flags" msgstr "ungültige Array-Flags" -#: utils/adt/arrayfuncs.c:1334 +#: utils/adt/arrayfuncs.c:1335 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "binäre Daten haben Array-Elementtyp %u (%s) statt erwartet %u (%s)" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:445 +#: utils/adt/arrayfuncs.c:1379 utils/adt/multirangetypes.c:445 #: utils/adt/rangetypes.c:333 utils/cache/lsyscache.c:2915 #, c-format msgid "no binary input function available for type %s" msgstr "keine binäre Eingabefunktion verfügbar für Typ %s" -#: utils/adt/arrayfuncs.c:1518 +#: utils/adt/arrayfuncs.c:1519 #, c-format msgid "improper binary format in array element %d" msgstr "falsches Binärformat in Arrayelement %d" -#: utils/adt/arrayfuncs.c:1599 utils/adt/multirangetypes.c:450 +#: utils/adt/arrayfuncs.c:1600 utils/adt/multirangetypes.c:450 #: utils/adt/rangetypes.c:338 utils/cache/lsyscache.c:2948 #, c-format msgid "no binary output function available for type %s" msgstr "keine binäre Ausgabefunktion verfügbar für Typ %s" -#: utils/adt/arrayfuncs.c:2078 +#: utils/adt/arrayfuncs.c:2079 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "Auswählen von Stücken aus Arrays mit fester Länge ist nicht implementiert" -#: utils/adt/arrayfuncs.c:2256 utils/adt/arrayfuncs.c:2278 -#: utils/adt/arrayfuncs.c:2327 utils/adt/arrayfuncs.c:2565 -#: utils/adt/arrayfuncs.c:2887 utils/adt/arrayfuncs.c:5869 -#: utils/adt/arrayfuncs.c:5895 utils/adt/arrayfuncs.c:5906 +#: utils/adt/arrayfuncs.c:2257 utils/adt/arrayfuncs.c:2279 +#: utils/adt/arrayfuncs.c:2328 utils/adt/arrayfuncs.c:2582 +#: utils/adt/arrayfuncs.c:2920 utils/adt/arrayfuncs.c:5918 +#: utils/adt/arrayfuncs.c:5944 utils/adt/arrayfuncs.c:5955 #: utils/adt/json.c:1141 utils/adt/json.c:1215 utils/adt/jsonb.c:1315 #: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4326 utils/adt/jsonfuncs.c:4480 #: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4641 @@ -23183,116 +23201,116 @@ msgstr "Auswählen von Stücken aus Arrays mit fester Länge ist nicht implement msgid "wrong number of array subscripts" msgstr "falsche Anzahl Arrayindizes" -#: utils/adt/arrayfuncs.c:2261 utils/adt/arrayfuncs.c:2369 -#: utils/adt/arrayfuncs.c:2632 utils/adt/arrayfuncs.c:2946 +#: utils/adt/arrayfuncs.c:2262 utils/adt/arrayfuncs.c:2386 +#: utils/adt/arrayfuncs.c:2665 utils/adt/arrayfuncs.c:2995 #, c-format msgid "array subscript out of range" msgstr "Arrayindex außerhalb des gültigen Bereichs" -#: utils/adt/arrayfuncs.c:2266 +#: utils/adt/arrayfuncs.c:2267 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "Array mit fester Länge kann keinen NULL-Wert enthalten" -#: utils/adt/arrayfuncs.c:2834 +#: utils/adt/arrayfuncs.c:2867 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "Aktualisieren von Stücken aus Arrays mit fester Länge ist nicht implementiert" -#: utils/adt/arrayfuncs.c:2865 +#: utils/adt/arrayfuncs.c:2898 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "Array-Slice-Index muss beide Begrenzungen angeben" -#: utils/adt/arrayfuncs.c:2866 +#: utils/adt/arrayfuncs.c:2899 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Wenn ein Slice eines leeren Array-Wertes zugewiesen wird, dann müssen die Slice-Begrenzungen vollständig angegeben werden." -#: utils/adt/arrayfuncs.c:2877 utils/adt/arrayfuncs.c:2973 +#: utils/adt/arrayfuncs.c:2910 utils/adt/arrayfuncs.c:3022 #, c-format msgid "source array too small" msgstr "Quellarray ist zu klein" -#: utils/adt/arrayfuncs.c:3527 +#: utils/adt/arrayfuncs.c:3576 #, c-format msgid "null array element not allowed in this context" msgstr "NULL-Werte im Array sind in diesem Zusammenhang nicht erlaubt" -#: utils/adt/arrayfuncs.c:3629 utils/adt/arrayfuncs.c:3800 -#: utils/adt/arrayfuncs.c:4191 +#: utils/adt/arrayfuncs.c:3678 utils/adt/arrayfuncs.c:3849 +#: utils/adt/arrayfuncs.c:4240 #, c-format msgid "cannot compare arrays of different element types" msgstr "kann Arrays mit verschiedenen Elementtypen nicht vergleichen" -#: utils/adt/arrayfuncs.c:3978 utils/adt/multirangetypes.c:2799 +#: utils/adt/arrayfuncs.c:4027 utils/adt/multirangetypes.c:2799 #: utils/adt/multirangetypes.c:2871 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" msgstr "konnte keine Hash-Funktion für Typ %s ermitteln" -#: utils/adt/arrayfuncs.c:4106 utils/adt/rowtypes.c:1979 +#: utils/adt/arrayfuncs.c:4155 utils/adt/rowtypes.c:1979 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "konnte keine erweiterte Hash-Funktion für Typ %s ermitteln" -#: utils/adt/arrayfuncs.c:5283 +#: utils/adt/arrayfuncs.c:5332 #, c-format msgid "data type %s is not an array type" msgstr "Datentyp %s ist kein Array-Typ" -#: utils/adt/arrayfuncs.c:5338 +#: utils/adt/arrayfuncs.c:5387 #, c-format msgid "cannot accumulate null arrays" msgstr "Arrays, die NULL sind, können nicht akkumuliert werden" -#: utils/adt/arrayfuncs.c:5366 +#: utils/adt/arrayfuncs.c:5415 #, c-format msgid "cannot accumulate empty arrays" msgstr "leere Arrays können nicht akkumuliert werden" -#: utils/adt/arrayfuncs.c:5393 utils/adt/arrayfuncs.c:5399 +#: utils/adt/arrayfuncs.c:5442 utils/adt/arrayfuncs.c:5448 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "Arrays unterschiedlicher Dimensionalität können nicht akkumuliert werden" -#: utils/adt/arrayfuncs.c:5767 utils/adt/arrayfuncs.c:5807 +#: utils/adt/arrayfuncs.c:5816 utils/adt/arrayfuncs.c:5856 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "Dimensions-Array oder Untergrenzen-Array darf nicht NULL sein" -#: utils/adt/arrayfuncs.c:5870 utils/adt/arrayfuncs.c:5896 +#: utils/adt/arrayfuncs.c:5919 utils/adt/arrayfuncs.c:5945 #, c-format msgid "Dimension array must be one dimensional." msgstr "Dimensions-Array muss eindimensional sein." -#: utils/adt/arrayfuncs.c:5875 utils/adt/arrayfuncs.c:5901 +#: utils/adt/arrayfuncs.c:5924 utils/adt/arrayfuncs.c:5950 #, c-format msgid "dimension values cannot be null" msgstr "Dimensionswerte dürfen nicht NULL sein" -#: utils/adt/arrayfuncs.c:5907 +#: utils/adt/arrayfuncs.c:5956 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "Untergrenzen-Array hat andere Größe als Dimensions-Array." -#: utils/adt/arrayfuncs.c:6185 +#: utils/adt/arrayfuncs.c:6234 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "Entfernen von Elementen aus mehrdimensionalen Arrays wird nicht unterstützt" -#: utils/adt/arrayfuncs.c:6462 +#: utils/adt/arrayfuncs.c:6511 #, c-format msgid "thresholds must be one-dimensional array" msgstr "Parameter »thresholds« muss ein eindimensionales Array sein" -#: utils/adt/arrayfuncs.c:6467 +#: utils/adt/arrayfuncs.c:6516 #, c-format msgid "thresholds array must not contain NULLs" msgstr "»thresholds«-Array darf keine NULL-Werte enthalten" -#: utils/adt/arrayfuncs.c:6700 +#: utils/adt/arrayfuncs.c:6749 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "Anzahl der zu entfernenden Elemente muss zwischen 0 und %d sein" @@ -23307,22 +23325,22 @@ msgstr "Arrayindex muss Typ integer haben" msgid "array subscript in assignment must not be null" msgstr "Arrayindex in Zuweisung darf nicht NULL sein" -#: utils/adt/arrayutils.c:140 +#: utils/adt/arrayutils.c:134 #, c-format msgid "array lower bound is too large: %d" msgstr "Array-Untergrenze ist zu groß: %d" -#: utils/adt/arrayutils.c:240 +#: utils/adt/arrayutils.c:234 #, c-format msgid "typmod array must be type cstring[]" msgstr "Typmod-Array muss Typ cstring[] haben" -#: utils/adt/arrayutils.c:245 +#: utils/adt/arrayutils.c:239 #, c-format msgid "typmod array must be one-dimensional" msgstr "Typmod-Arrays müssen eindimensional sein" -#: utils/adt/arrayutils.c:250 +#: utils/adt/arrayutils.c:244 #, c-format msgid "typmod array must not contain nulls" msgstr "Typmod-Array darf keine NULL-Werte enthalten" @@ -23372,7 +23390,7 @@ msgstr "Wert »%s« ist außerhalb des gültigen Bereichs für Typ %s" #: utils/adt/int8.c:1165 utils/adt/numeric.c:3093 utils/adt/numeric.c:3116 #: utils/adt/numeric.c:3201 utils/adt/numeric.c:3219 utils/adt/numeric.c:3315 #: utils/adt/numeric.c:8481 utils/adt/numeric.c:8771 utils/adt/numeric.c:9096 -#: utils/adt/numeric.c:10553 utils/adt/timestamp.c:3337 +#: utils/adt/numeric.c:10553 utils/adt/timestamp.c:3361 #, c-format msgid "division by zero" msgstr "Division durch Null" @@ -23411,7 +23429,7 @@ msgid "date out of range: \"%s\"" msgstr "date ist außerhalb des gültigen Bereichs: »%s«" #: utils/adt/date.c:215 utils/adt/date.c:513 utils/adt/date.c:537 -#: utils/adt/xml.c:2209 +#: utils/adt/xml.c:2219 #, c-format msgid "date out of range" msgstr "date ist außerhalb des gültigen Bereichs" @@ -23438,20 +23456,20 @@ msgid "date out of range for timestamp" msgstr "Datum ist außerhalb des gültigen Bereichs für Typ »timestamp«" #: utils/adt/date.c:1115 utils/adt/date.c:1198 utils/adt/date.c:1214 -#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4032 -#: utils/adt/timestamp.c:4225 utils/adt/timestamp.c:4397 -#: utils/adt/timestamp.c:4650 utils/adt/timestamp.c:4851 -#: utils/adt/timestamp.c:4898 utils/adt/timestamp.c:5122 -#: utils/adt/timestamp.c:5169 utils/adt/timestamp.c:5299 +#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4078 +#: utils/adt/timestamp.c:4271 utils/adt/timestamp.c:4443 +#: utils/adt/timestamp.c:4696 utils/adt/timestamp.c:4897 +#: utils/adt/timestamp.c:4944 utils/adt/timestamp.c:5168 +#: utils/adt/timestamp.c:5215 utils/adt/timestamp.c:5345 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "Einheit »%s« nicht unterstützt für Typ %s" #: utils/adt/date.c:1223 utils/adt/date.c:2211 utils/adt/date.c:2993 -#: utils/adt/timestamp.c:4046 utils/adt/timestamp.c:4242 -#: utils/adt/timestamp.c:4411 utils/adt/timestamp.c:4610 -#: utils/adt/timestamp.c:4907 utils/adt/timestamp.c:5178 -#: utils/adt/timestamp.c:5360 +#: utils/adt/timestamp.c:4092 utils/adt/timestamp.c:4288 +#: utils/adt/timestamp.c:4457 utils/adt/timestamp.c:4656 +#: utils/adt/timestamp.c:4953 utils/adt/timestamp.c:5224 +#: utils/adt/timestamp.c:5406 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "Einheit »%s« nicht erkannt für Typ %s" @@ -23465,21 +23483,22 @@ msgstr "Einheit »%s« nicht erkannt für Typ %s" #: utils/adt/timestamp.c:699 utils/adt/timestamp.c:708 #: utils/adt/timestamp.c:786 utils/adt/timestamp.c:819 #: utils/adt/timestamp.c:2916 utils/adt/timestamp.c:2937 -#: utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2959 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:3022 -#: utils/adt/timestamp.c:3045 utils/adt/timestamp.c:3058 -#: utils/adt/timestamp.c:3069 utils/adt/timestamp.c:3077 -#: utils/adt/timestamp.c:3736 utils/adt/timestamp.c:3860 -#: utils/adt/timestamp.c:3950 utils/adt/timestamp.c:4040 -#: utils/adt/timestamp.c:4133 utils/adt/timestamp.c:4236 -#: utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4989 -#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5453 -#: utils/adt/timestamp.c:5458 utils/adt/timestamp.c:5472 -#: utils/adt/timestamp.c:5505 utils/adt/timestamp.c:5592 -#: utils/adt/timestamp.c:5633 utils/adt/timestamp.c:5637 -#: utils/adt/timestamp.c:5706 utils/adt/timestamp.c:5710 -#: utils/adt/timestamp.c:5724 utils/adt/timestamp.c:5758 utils/adt/xml.c:2231 -#: utils/adt/xml.c:2238 utils/adt/xml.c:2258 utils/adt/xml.c:2265 +#: utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2961 +#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2975 +#: utils/adt/timestamp.c:3030 utils/adt/timestamp.c:3053 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3080 +#: utils/adt/timestamp.c:3088 utils/adt/timestamp.c:3096 +#: utils/adt/timestamp.c:3782 utils/adt/timestamp.c:3906 +#: utils/adt/timestamp.c:3996 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:4179 utils/adt/timestamp.c:4282 +#: utils/adt/timestamp.c:4761 utils/adt/timestamp.c:5035 +#: utils/adt/timestamp.c:5485 utils/adt/timestamp.c:5499 +#: utils/adt/timestamp.c:5504 utils/adt/timestamp.c:5518 +#: utils/adt/timestamp.c:5551 utils/adt/timestamp.c:5638 +#: utils/adt/timestamp.c:5679 utils/adt/timestamp.c:5683 +#: utils/adt/timestamp.c:5752 utils/adt/timestamp.c:5756 +#: utils/adt/timestamp.c:5770 utils/adt/timestamp.c:5804 utils/adt/xml.c:2241 +#: utils/adt/xml.c:2248 utils/adt/xml.c:2268 utils/adt/xml.c:2275 #, c-format msgid "timestamp out of range" msgstr "timestamp ist außerhalb des gültigen Bereichs" @@ -23497,8 +23516,8 @@ msgstr "Zeit-Feldwert ist außerhalb des gültigen Bereichs: %d:%02d:%02g" #: 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:2497 -#: utils/adt/timestamp.c:3386 utils/adt/timestamp.c:3417 -#: utils/adt/timestamp.c:3448 +#: utils/adt/timestamp.c:3432 utils/adt/timestamp.c:3463 +#: utils/adt/timestamp.c:3494 #, c-format msgid "invalid preceding or following size in window function" msgstr "ungültige vorhergehende oder folgende Größe in Fensterfunktion" @@ -23510,13 +23529,13 @@ msgstr "Zeitzonenunterschied ist außerhalb des gültigen Bereichs" #: utils/adt/date.c:3084 utils/adt/datetime.c:1121 utils/adt/datetime.c:2027 #: utils/adt/datetime.c:4898 utils/adt/timestamp.c:516 -#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4319 -#: utils/adt/timestamp.c:5464 utils/adt/timestamp.c:5716 +#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4365 +#: utils/adt/timestamp.c:5510 utils/adt/timestamp.c:5762 #, c-format msgid "time zone \"%s\" not recognized" msgstr "Zeitzone »%s« nicht erkannt" -#: utils/adt/date.c:3117 utils/adt/timestamp.c:5494 utils/adt/timestamp.c:5747 +#: utils/adt/date.c:3117 utils/adt/timestamp.c:5540 utils/adt/timestamp.c:5793 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "Intervall-Zeitzone »%s« darf keine Monate oder Tage enthalten" @@ -24083,7 +24102,7 @@ msgid "invalid int2vector data" msgstr "ungültige int2vector-Daten" #: utils/adt/int.c:1528 utils/adt/int8.c:1404 utils/adt/numeric.c:1678 -#: utils/adt/timestamp.c:5809 utils/adt/timestamp.c:5889 +#: utils/adt/timestamp.c:5855 utils/adt/timestamp.c:5935 #, c-format msgid "step size cannot equal zero" msgstr "Schrittgröße kann nicht gleich null sein" @@ -25220,7 +25239,7 @@ msgstr "Wenn Sie regexp_replace() mit einem Startparameter verwenden wollten, wa #: 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:11868 utils/misc/guc.c:11902 +#: utils/adt/regexp.c:1857 utils/misc/guc.c:11875 utils/misc/guc.c:11909 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "ungültiger Wert für Parameter »%s«: %d" @@ -25460,7 +25479,7 @@ msgstr "Präzision von TIMESTAMP(%d)%s darf nicht negativ sein" msgid "TIMESTAMP(%d)%s precision reduced to maximum allowed, %d" msgstr "Präzision von TIMESTAMP(%d)%s auf erlaubten Höchstwert %d reduziert" -#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12892 +#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12899 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp ist außerhalb des gültigen Bereichs: »%s«" @@ -25499,14 +25518,13 @@ msgstr "timestamp ist außerhalb des gültigen Bereichs: »%g«" #: utils/adt/timestamp.c:938 utils/adt/timestamp.c:1509 #: utils/adt/timestamp.c:2761 utils/adt/timestamp.c:2778 #: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2870 -#: utils/adt/timestamp.c:3115 utils/adt/timestamp.c:3120 -#: utils/adt/timestamp.c:3125 utils/adt/timestamp.c:3175 -#: utils/adt/timestamp.c:3182 utils/adt/timestamp.c:3189 -#: utils/adt/timestamp.c:3209 utils/adt/timestamp.c:3216 -#: utils/adt/timestamp.c:3223 utils/adt/timestamp.c:3253 -#: utils/adt/timestamp.c:3261 utils/adt/timestamp.c:3305 -#: utils/adt/timestamp.c:3731 utils/adt/timestamp.c:3855 -#: utils/adt/timestamp.c:4405 +#: utils/adt/timestamp.c:3134 utils/adt/timestamp.c:3139 +#: utils/adt/timestamp.c:3144 utils/adt/timestamp.c:3194 +#: utils/adt/timestamp.c:3201 utils/adt/timestamp.c:3208 +#: utils/adt/timestamp.c:3228 utils/adt/timestamp.c:3235 +#: utils/adt/timestamp.c:3242 utils/adt/timestamp.c:3329 +#: utils/adt/timestamp.c:3404 utils/adt/timestamp.c:3777 +#: utils/adt/timestamp.c:3901 utils/adt/timestamp.c:4451 #, c-format msgid "interval out of range" msgstr "interval-Wert ist außerhalb des gültigen Bereichs" @@ -25536,22 +25554,22 @@ msgstr "Präzision von interval(%d) muss zwischen %d und %d sein" msgid "cannot subtract infinite timestamps" msgstr "kann unendliche timestamp-Werte nicht subtrahieren" -#: utils/adt/timestamp.c:3891 utils/adt/timestamp.c:4074 +#: utils/adt/timestamp.c:3937 utils/adt/timestamp.c:4120 #, c-format msgid "origin out of range" msgstr "Anfangspunkt ist außerhalb des gültigen Bereichs" -#: utils/adt/timestamp.c:3896 utils/adt/timestamp.c:4079 +#: utils/adt/timestamp.c:3942 utils/adt/timestamp.c:4125 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "timestamp-Werte können nicht in Intervalle, die Monate oder Jahre enthalten, einsortiert werden" -#: utils/adt/timestamp.c:3903 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:3949 utils/adt/timestamp.c:4132 #, c-format msgid "stride must be greater than zero" msgstr "Schrittgröße muss größer als null sein" -#: utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4445 #, c-format msgid "Months usually have fractional weeks." msgstr "Monate haben gewöhnlich partielle Wochen." @@ -25949,161 +25967,161 @@ msgstr "Transaktions-ID %llu ist in der Zukunft" msgid "invalid external pg_snapshot data" msgstr "ungültige externe pg_snapshot-Daten" -#: utils/adt/xml.c:222 +#: utils/adt/xml.c:232 #, c-format msgid "unsupported XML feature" msgstr "nicht unterstützte XML-Funktionalität" -#: utils/adt/xml.c:223 +#: utils/adt/xml.c:233 #, c-format 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:242 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "ungültiger Kodierungsname »%s«" -#: utils/adt/xml.c:485 utils/adt/xml.c:490 +#: utils/adt/xml.c:495 utils/adt/xml.c:500 #, c-format msgid "invalid XML comment" msgstr "ungültiger XML-Kommentar" -#: utils/adt/xml.c:619 +#: utils/adt/xml.c:629 #, c-format msgid "not an XML document" msgstr "kein XML-Dokument" -#: utils/adt/xml.c:778 utils/adt/xml.c:801 +#: utils/adt/xml.c:788 utils/adt/xml.c:811 #, c-format msgid "invalid XML processing instruction" msgstr "ungültige XML-Verarbeitungsanweisung" -#: utils/adt/xml.c:779 +#: utils/adt/xml.c:789 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "Die Zielangabe der XML-Verarbeitungsanweisung darf nicht »%s« sein." -#: utils/adt/xml.c:802 +#: utils/adt/xml.c:812 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML-Verarbeitungsanweisung darf nicht »?>« enthalten." -#: utils/adt/xml.c:881 +#: utils/adt/xml.c:891 #, c-format msgid "xmlvalidate is not implemented" msgstr "xmlvalidate ist nicht implementiert" -#: utils/adt/xml.c:960 +#: utils/adt/xml.c:970 #, c-format msgid "could not initialize XML library" msgstr "konnte XML-Bibliothek nicht initialisieren" -#: utils/adt/xml.c:961 +#: utils/adt/xml.c:971 #, c-format msgid "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." msgstr "libxml2 hat inkompatiblen char-Typ: sizeof(char)=%zu, sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1047 +#: utils/adt/xml.c:1057 #, c-format msgid "could not set up XML error handler" msgstr "konnte XML-Fehlerbehandlung nicht einrichten" -#: utils/adt/xml.c:1048 +#: utils/adt/xml.c:1058 #, c-format msgid "This probably indicates that the version of libxml2 being used is not compatible with the libxml2 header files that PostgreSQL was built with." msgstr "Das deutet wahrscheinlich darauf hin, dass die verwendete Version von libxml2 nicht mit den Header-Dateien der Version, mit der PostgreSQL gebaut wurde, kompatibel ist." -#: utils/adt/xml.c:1935 +#: utils/adt/xml.c:1945 msgid "Invalid character value." msgstr "Ungültiger Zeichenwert." -#: utils/adt/xml.c:1938 +#: utils/adt/xml.c:1948 msgid "Space required." msgstr "Leerzeichen benötigt." -#: utils/adt/xml.c:1941 +#: utils/adt/xml.c:1951 msgid "standalone accepts only 'yes' or 'no'." msgstr "standalone akzeptiert nur »yes« oder »no«." -#: utils/adt/xml.c:1944 +#: utils/adt/xml.c:1954 msgid "Malformed declaration: missing version." msgstr "Fehlerhafte Deklaration: Version fehlt." -#: utils/adt/xml.c:1947 +#: utils/adt/xml.c:1957 msgid "Missing encoding in text declaration." msgstr "Fehlende Kodierung in Textdeklaration." -#: utils/adt/xml.c:1950 +#: utils/adt/xml.c:1960 msgid "Parsing XML declaration: '?>' expected." msgstr "Beim Parsen der XML-Deklaration: »?>« erwartet." -#: utils/adt/xml.c:1953 +#: utils/adt/xml.c:1963 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "Unbekannter Libxml-Fehlercode: %d." -#: utils/adt/xml.c:2210 +#: utils/adt/xml.c:2220 #, c-format msgid "XML does not support infinite date values." msgstr "XML unterstützt keine unendlichen Datumswerte." -#: utils/adt/xml.c:2232 utils/adt/xml.c:2259 +#: utils/adt/xml.c:2242 utils/adt/xml.c:2269 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML unterstützt keine unendlichen timestamp-Werte." -#: utils/adt/xml.c:2675 +#: utils/adt/xml.c:2685 #, c-format msgid "invalid query" msgstr "ungültige Anfrage" -#: utils/adt/xml.c:2767 +#: utils/adt/xml.c:2777 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "Portal »%s« gibt keine Tupel zurück" -#: utils/adt/xml.c:4019 +#: utils/adt/xml.c:4029 #, c-format msgid "invalid array for XML namespace mapping" msgstr "ungültiges Array for XML-Namensraumabbildung" -#: utils/adt/xml.c:4020 +#: utils/adt/xml.c:4030 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "Das Array muss zweidimensional sein und die Länge der zweiten Achse muss gleich 2 sein." -#: utils/adt/xml.c:4044 +#: utils/adt/xml.c:4054 #, c-format msgid "empty XPath expression" msgstr "leerer XPath-Ausdruck" -#: utils/adt/xml.c:4096 +#: utils/adt/xml.c:4106 #, c-format msgid "neither namespace name nor URI may be null" msgstr "weder Namensraumname noch URI dürfen NULL sein" -#: utils/adt/xml.c:4103 +#: utils/adt/xml.c:4113 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "konnte XML-Namensraum mit Namen »%s« und URI »%s« nicht registrieren" -#: utils/adt/xml.c:4454 +#: utils/adt/xml.c:4464 #, c-format msgid "DEFAULT namespace is not supported" msgstr "DEFAULT-Namensraum wird nicht unterstützt" -#: utils/adt/xml.c:4483 +#: utils/adt/xml.c:4493 #, c-format msgid "row path filter must not be empty string" msgstr "Zeilenpfadfilter darf nicht leer sein" -#: utils/adt/xml.c:4514 +#: utils/adt/xml.c:4524 #, c-format msgid "column path filter must not be empty string" msgstr "Spaltenpfadfilter darf nicht leer sein" -#: utils/adt/xml.c:4658 +#: utils/adt/xml.c:4668 #, c-format msgid "more than one value returned by column XPath expression" msgstr "XPath-Ausdruck für Spalte gab mehr als einen Wert zurück" @@ -26164,17 +26182,17 @@ msgstr "Setze trotzdem fort, aber irgendwas stimmt nicht." msgid "could not remove cache file \"%s\": %m" msgstr "konnte Cache-Datei »%s« nicht löschen: %m" -#: utils/cache/relmapper.c:590 +#: utils/cache/relmapper.c:591 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "PREPARE kann nicht in einer Transaktion ausgeführt werden, die das Relation-Mapping geändert hat" -#: utils/cache/relmapper.c:836 +#: utils/cache/relmapper.c:839 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "Relation-Mapping-Datei »%s« enthält ungültige Daten" -#: utils/cache/relmapper.c:846 +#: utils/cache/relmapper.c:849 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "Relation-Mapping-Datei »%s« enthält falsche Prüfsumme" @@ -26472,7 +26490,7 @@ msgstr "Datenverzeichnis »%s« hat ungültige Zugriffsrechte" msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "Rechte sollten u=rwx (0700) oder u=rwx,g=rx (0750) sein." -#: utils/init/miscinit.c:665 utils/misc/guc.c:7830 +#: utils/init/miscinit.c:665 utils/misc/guc.c:7837 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "kann Parameter »%s« nicht in einer sicherheitsbeschränkten Operation setzen" @@ -26492,123 +26510,123 @@ msgstr "Rolle »%s« hat keine Berechtigung zum Einloggen" msgid "too many connections for role \"%s\"" msgstr "zu viele Verbindungen von Rolle »%s«" -#: utils/init/miscinit.c:841 +#: utils/init/miscinit.c:849 #, c-format msgid "permission denied to set session authorization" msgstr "keine Berechtigung, um Sitzungsautorisierung zu setzen" -#: utils/init/miscinit.c:924 +#: utils/init/miscinit.c:932 #, c-format msgid "invalid role OID: %u" msgstr "ungültige Rollen-OID: %u" -#: utils/init/miscinit.c:978 +#: utils/init/miscinit.c:986 #, c-format msgid "database system is shut down" msgstr "Datenbanksystem ist heruntergefahren" -#: utils/init/miscinit.c:1065 +#: utils/init/miscinit.c:1073 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht erstellen: %m" -#: utils/init/miscinit.c:1079 +#: utils/init/miscinit.c:1087 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht öffnen: %m" -#: utils/init/miscinit.c:1086 +#: utils/init/miscinit.c:1094 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht lesen: %m" -#: utils/init/miscinit.c:1095 +#: utils/init/miscinit.c:1103 #, c-format msgid "lock file \"%s\" is empty" msgstr "Sperrdatei »%s« ist leer" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1104 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Entweder startet gerade ein anderer Server oder die Sperrdatei ist von einen Absturz übrig geblieben." -#: utils/init/miscinit.c:1140 +#: utils/init/miscinit.c:1148 #, c-format msgid "lock file \"%s\" already exists" msgstr "Sperrdatei »%s« existiert bereits" -#: utils/init/miscinit.c:1144 +#: utils/init/miscinit.c:1152 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Läuft bereits ein anderer postgres-Prozess (PID %d) im Datenverzeichnis »%s«?" -#: utils/init/miscinit.c:1146 +#: utils/init/miscinit.c:1154 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "Läuft bereits ein anderer postmaster-Prozess (PID %d) im Datenverzeichnis »%s«?" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1157 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Verwendet bereits ein anderer postgres-Prozess (PID %d) die Socketdatei »%s«?" -#: utils/init/miscinit.c:1151 +#: utils/init/miscinit.c:1159 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Verwendet bereits ein anderer postmaster-Prozess (PID %d) die Socketdatei »%s«?" -#: utils/init/miscinit.c:1202 +#: utils/init/miscinit.c:1210 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "konnte alte Sperrdatei »%s« nicht löschen: %m" -#: utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1212 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "Die Datei ist anscheinend aus Versehen übrig geblieben, konnte aber nicht gelöscht werden. Bitte entfernen Sie die Datei von Hand und versuchen Sie es erneut." -#: utils/init/miscinit.c:1241 utils/init/miscinit.c:1255 -#: utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1249 utils/init/miscinit.c:1263 +#: utils/init/miscinit.c:1274 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "konnte Sperrdatei »%s« nicht schreiben: %m" -#: utils/init/miscinit.c:1377 utils/init/miscinit.c:1519 utils/misc/guc.c:10836 +#: utils/init/miscinit.c:1385 utils/init/miscinit.c:1527 utils/misc/guc.c:10843 #, c-format msgid "could not read from file \"%s\": %m" msgstr "konnte nicht aus Datei »%s« lesen: %m" -#: utils/init/miscinit.c:1507 +#: utils/init/miscinit.c:1515 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "konnte Datei »%s« nicht öffnen: %m; setze trotzdem fort" -#: utils/init/miscinit.c:1532 +#: utils/init/miscinit.c:1540 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "Sperrdatei »%s« enthält falsche PID: %ld statt %ld" -#: utils/init/miscinit.c:1571 utils/init/miscinit.c:1587 +#: utils/init/miscinit.c:1579 utils/init/miscinit.c:1595 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "»%s« ist kein gültiges Datenverzeichnis" -#: utils/init/miscinit.c:1573 +#: utils/init/miscinit.c:1581 #, c-format msgid "File \"%s\" is missing." msgstr "Die Datei »%s« fehlt." -#: utils/init/miscinit.c:1589 +#: utils/init/miscinit.c:1597 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Die Datei »%s« enthält keine gültigen Daten." -#: utils/init/miscinit.c:1591 +#: utils/init/miscinit.c:1599 #, c-format msgid "You might need to initdb." msgstr "Sie müssen möglicherweise initdb ausführen." -#: utils/init/miscinit.c:1599 +#: utils/init/miscinit.c:1607 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "Das Datenverzeichnis wurde von PostgreSQL Version %s initialisiert, welche nicht mit dieser Version %s kompatibel ist." @@ -27132,7 +27150,7 @@ msgid "Forces synchronization of updates to disk." msgstr "Erzwingt die Synchronisierung von Aktualisierungen auf Festplatte." #: utils/misc/guc.c:1287 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "Der Server verwendet den Systemaufruf fsync() an mehreren Stellen, um sicherzustellen, dass Datenänderungen physikalisch auf die Festplatte geschrieben werden. Das stellt sicher, dass der Datenbankcluster nach einem Betriebssystemabsturz oder Hardwarefehler in einem korrekten Zustand wiederhergestellt werden kann." #: utils/misc/guc.c:1298 @@ -28850,173 +28868,173 @@ msgstr "%d%s%s ist außerhalb des gültigen Bereichs für Parameter »%s« (%d . msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" msgstr "%g%s%s ist außerhalb des gültigen Bereichs für Parameter »%s« (%g ... %g)" -#: utils/misc/guc.c:7648 utils/misc/guc.c:9096 +#: utils/misc/guc.c:7649 utils/misc/guc.c:9103 #, c-format msgid "cannot set parameters during a parallel operation" msgstr "während einer parallelen Operation können keine Parameter gesetzt werden" -#: utils/misc/guc.c:7665 utils/misc/guc.c:8920 +#: utils/misc/guc.c:7668 utils/misc/guc.c:8927 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "Parameter »%s« kann nicht geändert werden" -#: utils/misc/guc.c:7698 +#: utils/misc/guc.c:7701 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "Parameter »%s« kann jetzt nicht geändert werden" -#: utils/misc/guc.c:7725 utils/misc/guc.c:7783 utils/misc/guc.c:8896 -#: utils/misc/guc.c:11804 +#: utils/misc/guc.c:7728 utils/misc/guc.c:7790 utils/misc/guc.c:8903 +#: utils/misc/guc.c:11811 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "keine Berechtigung, um Parameter »%s« zu setzen" -#: utils/misc/guc.c:7763 +#: utils/misc/guc.c:7770 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "Parameter »%s« kann nach Start der Verbindung nicht geändert werden" -#: utils/misc/guc.c:7822 +#: utils/misc/guc.c:7829 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "Parameter »%s« kann nicht in einer Security-Definer-Funktion gesetzt werden" -#: utils/misc/guc.c:8475 utils/misc/guc.c:8522 utils/misc/guc.c:10009 +#: utils/misc/guc.c:8482 utils/misc/guc.c:8529 utils/misc/guc.c:10016 #, c-format msgid "must be superuser or have privileges of pg_read_all_settings to examine \"%s\"" msgstr "nur Superuser oder Rollen mit den Privilegien von pg_read_all_settings können »%s« ansehen" -#: utils/misc/guc.c:8606 +#: utils/misc/guc.c:8613 #, c-format msgid "SET %s takes only one argument" msgstr "SET %s darf nur ein Argument haben" -#: utils/misc/guc.c:8886 +#: utils/misc/guc.c:8893 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "keine Berechtigung um ALTER SYSTEM RESET ALL auszuführen" -#: utils/misc/guc.c:8953 +#: utils/misc/guc.c:8960 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "Parameterwert für ALTER SYSTEM darf keine Newline enthalten" -#: utils/misc/guc.c:8998 +#: utils/misc/guc.c:9005 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "konnte Inhalt der Datei »%s« nicht parsen" -#: utils/misc/guc.c:9172 +#: utils/misc/guc.c:9179 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" msgstr "SET LOCAL TRANSACTION SNAPSHOT ist nicht implementiert" -#: utils/misc/guc.c:9259 +#: utils/misc/guc.c:9266 #, c-format msgid "SET requires parameter name" msgstr "SET benötigt Parameternamen" -#: utils/misc/guc.c:9392 +#: utils/misc/guc.c:9399 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "Versuch, den Parameter »%s« zu redefinieren" -#: utils/misc/guc.c:9719 +#: utils/misc/guc.c:9726 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "ungültiger Konfigurationsparametername »%s«, wird entfernt" -#: utils/misc/guc.c:9721 +#: utils/misc/guc.c:9728 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "»%s« ist jetzt ein reservierter Präfix." -#: utils/misc/guc.c:11244 +#: utils/misc/guc.c:11251 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "beim Setzen von Parameter »%s« auf »%s«" -#: utils/misc/guc.c:11413 +#: utils/misc/guc.c:11420 #, c-format msgid "parameter \"%s\" could not be set" msgstr "Parameter »%s« kann nicht gesetzt werden" -#: utils/misc/guc.c:11505 +#: utils/misc/guc.c:11512 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "konnte Wert von Parameter »%s« nicht lesen" -#: utils/misc/guc.c:11936 +#: utils/misc/guc.c:11943 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "ungültiger Wert für Parameter »%s«: %g" -#: utils/misc/guc.c:12249 +#: utils/misc/guc.c:12256 #, c-format msgid "\"temp_buffers\" cannot be changed after any temporary tables have been accessed in the session." msgstr "»temp_buffers« kann nicht geändert werden, nachdem in der Sitzung auf temporäre Tabellen zugriffen wurde." -#: utils/misc/guc.c:12261 +#: utils/misc/guc.c:12268 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour wird von dieser Installation nicht unterstützt" -#: utils/misc/guc.c:12274 +#: utils/misc/guc.c:12281 #, c-format msgid "SSL is not supported by this build" msgstr "SSL wird von dieser Installation nicht unterstützt" -#: utils/misc/guc.c:12286 +#: utils/misc/guc.c:12293 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "Kann Parameter nicht einschalten, wenn »log_statement_stats« an ist." -#: utils/misc/guc.c:12298 +#: utils/misc/guc.c:12305 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "Kann »log_statement_stats« nicht einschalten, wenn »log_parser_stats«, »log_planner_stats« oder »log_executor_stats« an ist." -#: utils/misc/guc.c:12528 +#: utils/misc/guc.c:12535 #, c-format msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "effective_io_concurrency muss auf Plattformen ohne posix_fadvise() auf 0 gesetzt sein." -#: utils/misc/guc.c:12541 +#: utils/misc/guc.c:12548 #, c-format msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "maintenance_io_concurrency muss auf Plattformen ohne posix_fadvise() auf 0 gesetzt sein." -#: utils/misc/guc.c:12555 +#: utils/misc/guc.c:12562 #, c-format msgid "huge_page_size must be 0 on this platform." msgstr "huge_page_size muss auf dieser Plattform 0 sein." -#: utils/misc/guc.c:12567 +#: utils/misc/guc.c:12574 #, c-format msgid "client_connection_check_interval must be set to 0 on this platform." msgstr "client_connection_check_interval muss auf dieser Plattform auf 0 gesetzt sein." -#: utils/misc/guc.c:12679 +#: utils/misc/guc.c:12686 #, c-format msgid "invalid character" msgstr "ungültiges Zeichen" -#: utils/misc/guc.c:12739 +#: utils/misc/guc.c:12746 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline ist keine gültige Zahl." -#: utils/misc/guc.c:12779 +#: utils/misc/guc.c:12786 #, c-format msgid "multiple recovery targets specified" msgstr "mehrere Wiederherstellungsziele angegeben" -#: utils/misc/guc.c:12780 +#: utils/misc/guc.c:12787 #, 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 "Höchstens eins aus recovery_target, recovery_target_lsn, recovery_target_name, recovery_target_time, recovery_target_xid darf gesetzt sein." -#: utils/misc/guc.c:12788 +#: utils/misc/guc.c:12795 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Der einzige erlaubte Wert ist »immediate«." diff --git a/src/backend/po/es.po b/src/backend/po/es.po index 97c9a4b..7c7ae44 100644 --- a/src/backend/po/es.po +++ b/src/backend/po/es.po @@ -26754,7 +26754,7 @@ msgid "Forces synchronization of updates to disk." msgstr "Forzar la sincronización de escrituras a disco." #: utils/misc/guc.c:1287 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "El servidor usará la llamada a sistema fsync() en varios lugares para asegurarse que las actualizaciones son escritas fÃsicamente a disco. Esto asegura que las bases de datos se recuperarán a un estado consistente después de una caÃda de hardware o sistema operativo." #: utils/misc/guc.c:1298 diff --git a/src/backend/po/fr.po b/src/backend/po/fr.po index fac1333..9e606a3 100644 --- a/src/backend/po/fr.po +++ b/src/backend/po/fr.po @@ -27996,7 +27996,7 @@ msgid "Forces synchronization of updates to disk." msgstr "Force la synchronisation des mises à jour sur le disque." #: utils/misc/guc.c:1287 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "" "Le serveur utilisera l'appel système fsync() à différents endroits pour\n" "s'assurer que les mises à jour sont écrites physiquement sur le disque. Ceci\n" diff --git a/src/backend/po/it.po b/src/backend/po/it.po index 673e2aa..51b6943 100644 --- a/src/backend/po/it.po +++ b/src/backend/po/it.po @@ -26344,7 +26344,7 @@ msgid "Forces synchronization of updates to disk." msgstr "Forza la sincronizzazione degli aggiornamenti sul disco." #: utils/misc/guc.c:1297 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "Il server userà in diversi punti la chiamata di sistema fsync() per assicurarsi che gli aggiornamenti vengano scritti fisicamente sul disco. Questo assicura che un cluster di database possa essere recuperato in uno stato consistente dopo un crash di sistema o dell'hardware." #: utils/misc/guc.c:1308 diff --git a/src/backend/po/ja.po b/src/backend/po/ja.po index 086d7a4..e1a6f93 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: 2023-09-20 09:19+0900\n" -"PO-Revision-Date: 2023-09-20 09:32+0900\n" +"POT-Creation-Date: 2024-01-29 12:58+0900\n" +"PO-Revision-Date: 2024-01-29 13:06+0900\n" "Last-Translator: Kyotaro Horiguchi <horikyota.ntt@gmail.com>\n" "Language-Team: jpug-doc <jpug-doc@ml.postgresql.jp>\n" "Language: ja\n" @@ -67,34 +67,34 @@ msgstr "圧縮アルゴリズム\"%s\"ã¯ãƒ¯ãƒ¼ã‚«ãƒ¼æ•°ã‚’å—ã‘付ã‘ã¾ã›ã‚“ msgid "not recorded" msgstr "記録ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73 commands/copyfrom.c:1515 commands/extension.c:3401 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 commands/copyfrom.c:1525 commands/extension.c:3401 utils/adt/genfile.c:123 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "ファイル\"%s\"ã‚’èªã¿å–り用ã«ã‚ªãƒ¼ãƒ—ンã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: ../common/controldata_utils.c:84 ../common/controldata_utils.c:86 access/transam/timeline.c:143 access/transam/timeline.c:362 access/transam/twophase.c:1349 access/transam/xlog.c:3207 access/transam/xlog.c:4022 access/transam/xlogrecovery.c:1197 access/transam/xlogrecovery.c:1289 access/transam/xlogrecovery.c:1326 access/transam/xlogrecovery.c:1386 backup/basebackup.c:1844 commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 +#: ../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:3209 access/transam/xlog.c:4024 access/transam/xlogrecovery.c:1223 access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 access/transam/xlogrecovery.c:1412 backup/basebackup.c:1844 commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:4958 replication/logical/snapbuild.c:1870 replication/logical/snapbuild.c:1912 replication/logical/snapbuild.c:1939 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:863 utils/cache/relmapper.c:813 #, c-format msgid "could not read file \"%s\": %m" msgstr "ファイル\"%s\"ã®èªã¿å–ã‚Šã«å¤±æ•—ã—ã¾ã—ãŸ: %m" -#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95 access/transam/xlog.c:3212 access/transam/xlog.c:4027 backup/basebackup.c:1848 replication/logical/origin.c:734 replication/logical/origin.c:773 replication/logical/snapbuild.c:1875 replication/logical/snapbuild.c:1917 replication/logical/snapbuild.c:1944 replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 utils/cache/relmapper.c:817 +#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 access/transam/xlog.c:3214 access/transam/xlog.c:4029 backup/basebackup.c:1848 replication/logical/origin.c:734 replication/logical/origin.c:773 replication/logical/snapbuild.c:1875 replication/logical/snapbuild.c:1917 replication/logical/snapbuild.c:1944 replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 utils/cache/relmapper.c:817 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "ファイル\"%1$s\"ã‚’èªã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ: %3$zuãƒã‚¤ãƒˆã®ã†ã¡%2$dãƒã‚¤ãƒˆã‚’èªã¿è¾¼ã¿ã¾ã—ãŸ" -#: ../common/controldata_utils.c:104 ../common/controldata_utils.c:108 ../common/controldata_utils.c:241 ../common/controldata_utils.c:244 access/heap/rewriteheap.c:1178 access/heap/rewriteheap.c:1281 access/transam/timeline.c:392 access/transam/timeline.c:438 access/transam/timeline.c:516 access/transam/twophase.c:1361 access/transam/twophase.c:1773 access/transam/xlog.c:3054 access/transam/xlog.c:3247 access/transam/xlog.c:3252 access/transam/xlog.c:3390 -#: access/transam/xlog.c:3992 access/transam/xlog.c:4738 commands/copyfrom.c:1575 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:5016 replication/logical/snapbuild.c:1779 replication/logical/snapbuild.c:1952 replication/slot.c:1698 replication/slot.c:1859 replication/walsender.c:673 storage/file/copydir.c:218 storage/file/copydir.c:223 +#: ../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:516 access/transam/twophase.c:1361 access/transam/twophase.c:1773 access/transam/xlog.c:3056 access/transam/xlog.c:3249 access/transam/xlog.c:3254 access/transam/xlog.c:3392 +#: access/transam/xlog.c:3994 access/transam/xlog.c:4740 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:5016 replication/logical/snapbuild.c:1779 replication/logical/snapbuild.c:1952 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:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:828 utils/cache/relmapper.c:956 #, c-format msgid "could not close file \"%s\": %m" msgstr "ファイル\"%s\"をクãƒãƒ¼ã‚ºã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: ../common/controldata_utils.c:124 +#: ../common/controldata_utils.c:154 msgid "byte ordering mismatch" msgstr "ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãŒåˆã£ã¦ã„ã¾ã›ã‚“" -#: ../common/controldata_utils.c:126 +#: ../common/controldata_utils.c:156 #, c-format msgid "" "possible byte ordering mismatch\n" @@ -107,28 +107,28 @@ msgstr "" "ã•ã‚Œã‚‹ã‚‚ã®ã¨ä¸€è‡´ã—ãªã„よã†ã§ã™ã€‚ã“ã®å ´åˆä»¥ä¸‹ã®çµæžœã¯ä¸æ£ç¢ºã«ãªã‚Šã¾ã™ã€‚ã¾ãŸã€\n" "PostgreSQLインストレーションã¯ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨äº’æ›æ€§ãŒãªããªã‚Šã¾ã™ã€‚" -#: ../common/controldata_utils.c:189 ../common/controldata_utils.c:194 ../common/file_utils.c:232 ../common/file_utils.c:291 ../common/file_utils.c:365 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:2941 access/transam/xlog.c:3123 access/transam/xlog.c:3162 access/transam/xlog.c:3357 access/transam/xlog.c:4012 -#: access/transam/xlogrecovery.c:4209 access/transam/xlogrecovery.c:4312 access/transam/xlogutils.c:852 backup/basebackup.c:522 backup/basebackup.c:1520 postmaster/syslogger.c:1560 replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3611 replication/logical/reorderbuffer.c:4162 replication/logical/reorderbuffer.c:4938 replication/logical/snapbuild.c:1734 replication/logical/snapbuild.c:1841 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:3630 storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:792 utils/cache/relmapper.c:900 utils/error/elog.c:1933 utils/init/miscinit.c:1366 utils/init/miscinit.c:1500 utils/init/miscinit.c:1577 utils/misc/guc.c:8991 utils/misc/guc.c:9040 +#: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224 ../common/file_utils.c:232 ../common/file_utils.c:291 ../common/file_utils.c:365 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:2943 access/transam/xlog.c:3125 access/transam/xlog.c:3164 access/transam/xlog.c:3359 access/transam/xlog.c:4014 +#: access/transam/xlogrecovery.c:4243 access/transam/xlogrecovery.c:4346 access/transam/xlogutils.c:852 backup/basebackup.c:522 backup/basebackup.c:1520 postmaster/syslogger.c:1560 replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3611 replication/logical/reorderbuffer.c:4162 replication/logical/reorderbuffer.c:4938 replication/logical/snapbuild.c:1734 replication/logical/snapbuild.c:1841 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:3630 storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:792 utils/cache/relmapper.c:900 utils/error/elog.c:1933 utils/init/miscinit.c:1374 utils/init/miscinit.c:1508 utils/init/miscinit.c:1585 utils/misc/guc.c:8998 utils/misc/guc.c:9047 #, c-format msgid "could not open file \"%s\": %m" msgstr "ファイル\"%s\"をオープンã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: ../common/controldata_utils.c:210 ../common/controldata_utils.c:213 access/transam/twophase.c:1746 access/transam/twophase.c:1755 access/transam/xlog.c:8674 access/transam/xlogfuncs.c:600 backup/basebackup_server.c:173 backup/basebackup_server.c:266 postmaster/postmaster.c:5633 postmaster/syslogger.c:1571 postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 utils/cache/relmapper.c:934 +#: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 access/transam/twophase.c:1746 access/transam/twophase.c:1755 access/transam/xlog.c:8676 access/transam/xlogfuncs.c:600 backup/basebackup_server.c:173 backup/basebackup_server.c:266 postmaster/postmaster.c:5633 postmaster/syslogger.c:1571 postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 utils/cache/relmapper.c:934 #, c-format msgid "could not write file \"%s\": %m" msgstr "ファイル\"%s\"を書ã出ã›ã¾ã›ã‚“ã§ã—ãŸ: %m" -#: ../common/controldata_utils.c:227 ../common/controldata_utils.c:232 ../common/file_utils.c:303 ../common/file_utils.c:373 access/heap/rewriteheap.c:960 access/heap/rewriteheap.c:1172 access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 access/transam/timeline.c:510 access/transam/twophase.c:1767 access/transam/xlog.c:3047 access/transam/xlog.c:3241 access/transam/xlog.c:3985 access/transam/xlog.c:7977 access/transam/xlog.c:8020 -#: backup/basebackup_server.c:207 replication/logical/snapbuild.c:1772 replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:737 storage/file/fd.c:3741 storage/smgr/md.c:992 storage/smgr/md.c:1033 storage/sync/sync.c:453 utils/cache/relmapper.c:949 utils/misc/guc.c:8760 +#: ../common/controldata_utils.c:257 ../common/controldata_utils.c:262 ../common/file_utils.c:303 ../common/file_utils.c:373 access/heap/rewriteheap.c:960 access/heap/rewriteheap.c:1172 access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 access/transam/timeline.c:510 access/transam/twophase.c:1767 access/transam/xlog.c:3049 access/transam/xlog.c:3243 access/transam/xlog.c:3987 access/transam/xlog.c:7979 access/transam/xlog.c:8022 +#: backup/basebackup_server.c:207 replication/logical/snapbuild.c:1772 replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:737 storage/file/fd.c:3741 storage/smgr/md.c:992 storage/smgr/md.c:1033 storage/sync/sync.c:453 utils/cache/relmapper.c:949 utils/misc/guc.c:8767 #, 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:751 ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1414 -#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1338 libpq/auth.c:1406 libpq/auth.c:1964 libpq/be-secure-gssapi.c:520 postmaster/bgworker.c:349 postmaster/bgworker.c:931 postmaster/postmaster.c:2594 postmaster/postmaster.c:4180 postmaster/postmaster.c:5558 postmaster/postmaster.c:5929 replication/libpqwalreceiver/libpqwalreceiver.c:300 replication/logical/logical.c:205 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:1451 storage/ipc/procarray.c:2281 storage/ipc/procarray.c:2288 storage/ipc/procarray.c:2793 storage/ipc/procarray.c:3424 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:5192 utils/misc/guc.c:5208 utils/misc/guc.c:5221 utils/misc/guc.c:8738 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 +#: 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:2594 postmaster/postmaster.c:4180 postmaster/postmaster.c:5558 postmaster/postmaster.c:5929 replication/libpqwalreceiver/libpqwalreceiver.c:300 replication/logical/logical.c:205 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:1451 storage/ipc/procarray.c:2280 storage/ipc/procarray.c:2287 storage/ipc/procarray.c:2792 storage/ipc/procarray.c:3423 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:5192 utils/misc/guc.c:5208 utils/misc/guc.c:5221 utils/misc/guc.c:8745 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 #, c-format msgid "out of memory" @@ -171,7 +171,7 @@ msgstr "実行ã™ã¹ã\"%s\"ãŒã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ" msgid "could not change directory to \"%s\": %m" msgstr "ディレクトリ\"%s\"ã«ç§»å‹•ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: ../common/exec.c:299 access/transam/xlog.c:8323 backup/basebackup.c:1340 utils/adt/misc.c:342 +#: ../common/exec.c:299 access/transam/xlog.c:8325 backup/basebackup.c:1340 utils/adt/misc.c:342 #, c-format msgid "could not read symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"ã‚’èªã‚ã¾ã›ã‚“ã§ã—ãŸ: %m" @@ -191,7 +191,7 @@ msgstr "メモリä¸è¶³ã§ã™\n" msgid "cannot duplicate null pointer (internal error)\n" msgstr "nullãƒã‚¤ãƒ³ã‚¿ã¯è¤‡è£½ã§ãã¾ã›ã‚“(内部エラー)\n" -#: ../common/file_utils.c:87 ../common/file_utils.c:451 ../common/file_utils.c:455 access/transam/twophase.c:1317 access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:230 backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 commands/copyfrom.c:1525 commands/copyto.c:725 commands/extension.c:3390 commands/tablespace.c:826 commands/tablespace.c:917 guc-file.l:1066 postmaster/pgarch.c:597 replication/logical/snapbuild.c:1651 +#: ../common/file_utils.c:87 ../common/file_utils.c:451 ../common/file_utils.c:455 access/transam/twophase.c:1317 access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:237 backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 commands/copyfrom.c:1535 commands/copyto.c:725 commands/extension.c:3390 commands/tablespace.c:826 commands/tablespace.c:917 guc-file.l:1066 postmaster/pgarch.c:597 replication/logical/snapbuild.c:1651 #: 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:3450 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:327 #, c-format msgid "could not stat file \"%s\": %m" @@ -207,7 +207,7 @@ msgstr "ディレクトリ\"%s\"をオープンã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" msgid "could not read directory \"%s\": %m" msgstr "ディレクトリ\"%s\"ã‚’èªã¿å–ã‚Œã¾ã›ã‚“ã§ã—ãŸ: %m" -#: ../common/file_utils.c:383 access/transam/xlogarchive.c:419 postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1791 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 +#: ../common/file_utils.c:383 access/transam/xlogarchive.c:426 postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1791 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 #, c-format msgid "could not rename file \"%s\" to \"%s\": %m" msgstr "ファイル\"%s\"ã®åå‰ã‚’\"%s\"ã«å¤‰æ›´ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" @@ -333,7 +333,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:1368 libpq/auth.c:2400 +#: ../common/restricted_token.c:64 libpq/auth.c:1366 libpq/auth.c:2398 #, c-format msgid "could not load library \"%s\": error code %lu" msgstr "ライブラリ\"%s\"ã‚’ãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: エラーコード %lu" @@ -416,7 +416,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "実効ユーザーID %ld ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ: %s" -#: ../common/username.c:45 libpq/auth.c:1900 +#: ../common/username.c:45 libpq/auth.c:1898 msgid "user does not exist" msgstr "ユーザーãŒå˜åœ¨ã—ã¾ã›ã‚“" @@ -548,43 +548,42 @@ msgstr "アクセストークンã®ãƒ¡ãƒ³ãƒãƒ¼ã‚·ãƒƒãƒ—を確èªã§ãã¾ã›ã‚“ msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "インデックス\"%s\" ページ%uã®BRIN範囲è¦ç´„ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1043 access/transam/xlogfuncs.c:165 access/transam/xlogfuncs.c:192 access/transam/xlogfuncs.c:231 access/transam/xlogfuncs.c:252 access/transam/xlogfuncs.c:273 access/transam/xlogfuncs.c:343 access/transam/xlogfuncs.c:401 +#: access/brin/brin.c:1036 access/brin/brin.c:1143 access/gin/ginfast.c:1042 access/transam/xlogfuncs.c:165 access/transam/xlogfuncs.c:192 access/transam/xlogfuncs.c:231 access/transam/xlogfuncs.c:252 access/transam/xlogfuncs.c:273 access/transam/xlogfuncs.c:343 access/transam/xlogfuncs.c:401 #, c-format msgid "recovery is in progress" msgstr "リカãƒãƒªã¯ç¾åœ¨é€²è¡Œä¸ã§ã™" -#: access/brin/brin.c:1037 access/brin/brin.c:1138 +#: access/brin/brin.c:1037 access/brin/brin.c:1144 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "BRIN制御関数ã¯ãƒªã‚«ãƒãƒªä¸ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。" -#: access/brin/brin.c:1042 access/brin/brin.c:1143 +#: access/brin/brin.c:1042 access/brin/brin.c:1149 #, c-format msgid "block number out of range: %lld" msgstr "ブãƒãƒƒã‚¯ç•ªå·ãŒç¯„囲外ã§ã™: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1169 +#: access/brin/brin.c:1086 access/brin/brin.c:1175 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\"ã¯BRINインデックスã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/brin/brin.c:1102 access/brin/brin.c:1185 +#: access/brin/brin.c:1102 access/brin/brin.c:1191 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "インデックス\"%s\"ã®è¦ªãƒ†ãƒ¼ãƒ–ルをオープンã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 access/brin/brin_minmax_multi.c:3012 access/brin/brin_minmax_multi.c:3155 statistics/dependencies.c:663 statistics/dependencies.c:716 statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 utils/adt/pseudotypes.c:77 utils/adt/pseudotypes.c:252 +#: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1087 parser/parse_utilcmd.c:2287 #, c-format -msgid "cannot accept a value of type %s" -msgstr "%såž‹ã®å€¤ã¯å—ã‘付ã‘られã¾ã›ã‚“" +msgid "index \"%s\" is not valid" +msgstr "インデックス\"%s\"ã¯æœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/brin/brin_minmax_multi.c:2171 access/brin/brin_minmax_multi.c:2178 access/brin/brin_minmax_multi.c:2185 utils/adt/timestamp.c:938 utils/adt/timestamp.c:1509 utils/adt/timestamp.c:2761 utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2870 utils/adt/timestamp.c:3115 utils/adt/timestamp.c:3120 utils/adt/timestamp.c:3125 utils/adt/timestamp.c:3175 utils/adt/timestamp.c:3182 utils/adt/timestamp.c:3189 utils/adt/timestamp.c:3209 -#: utils/adt/timestamp.c:3216 utils/adt/timestamp.c:3223 utils/adt/timestamp.c:3253 utils/adt/timestamp.c:3261 utils/adt/timestamp.c:3305 utils/adt/timestamp.c:3731 utils/adt/timestamp.c:3855 utils/adt/timestamp.c:4405 +#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 access/brin/brin_minmax_multi.c:2986 access/brin/brin_minmax_multi.c:3129 statistics/dependencies.c:663 statistics/dependencies.c:716 statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 utils/adt/pseudotypes.c:77 utils/adt/pseudotypes.c:252 #, c-format -msgid "interval out of range" -msgstr "intervalãŒç¯„囲外ã§ã™" +msgid "cannot accept a value of type %s" +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:1442 access/spgist/spgdoinsert.c:2001 access/spgist/spgdoinsert.c:2278 +#: 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/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" msgstr "インデックス行サイズ%1$zuã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\"%3$s\"ã§ã®æœ€å¤§å€¤%2$zuを超ãˆã¦ã„ã¾ã™" @@ -669,7 +668,7 @@ msgstr "%2$såž‹ã®å±žæ€§\"%1$s\"ãŒ%3$såž‹ã®å¯¾å¿œã™ã‚‹å±žæ€§ã¨åˆè‡´ã—ã¾ã msgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "%2$såž‹ã®å±žæ€§\"%1$s\"ãŒ%3$såž‹ã®ä¸ã«å˜åœ¨ã—ã¾ã›ã‚“。" -#: access/common/heaptuple.c:1124 access/common/heaptuple.c:1459 +#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1468 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "列数(%d)ãŒä¸Šé™(%d)を超ãˆã¦ã„ã¾ã™" @@ -679,7 +678,7 @@ msgstr "列数(%d)ãŒä¸Šé™(%d)を超ãˆã¦ã„ã¾ã™" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "インデックス列数(%d)ãŒä¸Šé™(%d)を超ãˆã¦ã„ã¾ã™" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:958 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:965 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "インデックス行ãŒ%zuãƒã‚¤ãƒˆã‚’å¿…è¦ã¨ã—ã¾ã™ãŒæœ€å¤§å€¤ã¯%zuã§ã™" @@ -712,7 +711,7 @@ msgstr "RESETã«ã¯ãƒ‘ラメータã®å€¤ã‚’å«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“" msgid "unrecognized parameter namespace \"%s\"" msgstr "èªè˜ã§ããªã„パラメータ namaspace \"%s\"" -#: access/common/reloptions.c:1303 utils/misc/guc.c:12987 +#: access/common/reloptions.c:1303 utils/misc/guc.c:13002 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "WITH OIDSã¨å®šç¾©ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" @@ -787,17 +786,17 @@ msgstr "記録リストãŒé•·ã™ãŽã¾ã™" msgid "Reduce maintenance_work_mem." msgstr "maintenance_work_mem ã‚’å°ã•ãã—ã¦ãã ã•ã„。" -#: access/gin/ginfast.c:1044 +#: access/gin/ginfast.c:1043 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "GINä¿ç•™ãƒªã‚¹ãƒˆã¯ãƒªã‚«ãƒãƒªä¸ã«ã¯å‡¦ç†ã§ãã¾ã›ã‚“。" -#: access/gin/ginfast.c:1051 +#: access/gin/ginfast.c:1050 #, c-format msgid "\"%s\" is not a GIN index" msgstr "\"%s\"ã¯GINインデックスã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/gin/ginfast.c:1062 +#: access/gin/ginfast.c:1061 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚インデックスã«ã¯ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“" @@ -817,7 +816,7 @@ msgstr "å¤ã„GINインデックスã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å…¨ä½“ã®ã‚¹ã‚ャンや msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "ã“れを修復ã™ã‚‹ã«ã¯ REINDEX INDEX \"%s\" ã‚’ãŠã“ãªã£ã¦ãã ã•ã„。" -#: access/gin/ginutil.c:145 executor/execExpr.c:2168 utils/adt/arrayfuncs.c:3817 utils/adt/arrayfuncs.c:6486 utils/adt/rowtypes.c:957 +#: access/gin/ginutil.c:145 executor/execExpr.c:2168 utils/adt/arrayfuncs.c:3866 utils/adt/arrayfuncs.c:6535 utils/adt/rowtypes.c:957 #, c-format msgid "could not identify a comparison function for type %s" msgstr "%såž‹ã®æ¯”較関数ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -852,7 +851,7 @@ msgstr "ã“ã‚Œã¯ã€PostgreSQL 9.1ã¸ã‚¢ãƒƒãƒ—グレードã™ã‚‹å‰ã®ã‚¯ãƒ©ãƒƒã msgid "Please REINDEX it." msgstr "REINDEXã‚’è¡Œã£ã¦ãã ã•ã„。" -#: access/gist/gist.c:1176 +#: access/gist/gist.c:1195 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "インデックス\"%s\"内ã®ä¸å®Œå…¨ãªåˆ†å‰²ã‚’ä¿®æ£ã—ã¾ã™ã€ãƒ–ãƒãƒƒã‚¯%u" @@ -892,7 +891,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:668 catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 commands/indexcmds.c:1979 commands/tablecmds.c:17495 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:668 catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 commands/indexcmds.c:1955 commands/tablecmds.c:17509 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." @@ -903,7 +902,7 @@ msgstr "ç…§åˆé †åºã‚’明示ã™ã‚‹ã«ã¯ COLLATE å¥ã‚’使ã„ã¾ã™ã€‚" msgid "index row size %zu exceeds hash maximum %zu" msgstr "インデックス行ã®ã‚µã‚¤ã‚º%zuãŒãƒãƒƒã‚·ãƒ¥ã§ã®æœ€å¤§å€¤%zuを超ãˆã¦ã„ã¾ã™" -#: access/hash/hashinsert.c:85 access/spgist/spgdoinsert.c:2005 access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1019 +#: access/hash/hashinsert.c:85 access/spgist/spgdoinsert.c:2005 access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1026 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "ãƒãƒƒãƒ•ã‚¡ãƒšãƒ¼ã‚¸ã‚ˆã‚Šã‚‚大ããªå€¤ã‚’インデックスã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。" @@ -958,17 +957,17 @@ msgstr "並列処ç†ä¸ã¯ã‚¿ãƒ—ルã®å‰Šé™¤ã¯ã§ãã¾ã›ã‚“" msgid "attempted to delete invisible tuple" msgstr "ä¸å¯è¦–ã®ã‚¿ãƒ—ルを削除ã—よã†ã¨ã—ã¾ã—ãŸ" -#: access/heap/heapam.c:3183 access/heap/heapam.c:6025 +#: access/heap/heapam.c:3188 access/heap/heapam.c:6032 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "並列処ç†ä¸ã¯ã‚¿ãƒ—ルã®æ›´æ–°ã¯ã§ãã¾ã›ã‚“" -#: access/heap/heapam.c:3307 +#: access/heap/heapam.c:3312 #, c-format msgid "attempted to update invisible tuple" msgstr "ä¸å¯è¦–ã®ã‚¿ãƒ—ルを更新ã—よã†ã¨ã—ã¾ã—ãŸ" -#: access/heap/heapam.c:4669 access/heap/heapam.c:4707 access/heap/heapam.c:4972 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4676 access/heap/heapam.c:4714 access/heap/heapam.c:4979 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "リレーション\"%s\"ã®è¡Œãƒãƒƒã‚¯ã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -988,7 +987,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:485 access/transam/xlog.c:2963 access/transam/xlog.c:3176 access/transam/xlog.c:3964 access/transam/xlog.c:8657 access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:517 postmaster/postmaster.c:4607 postmaster/postmaster.c:5620 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:485 access/transam/xlog.c:2965 access/transam/xlog.c:3178 access/transam/xlog.c:3966 access/transam/xlog.c:8659 access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 backup/basebackup_server.c:242 commands/dbcommands.c:517 postmaster/postmaster.c:4607 postmaster/postmaster.c:5620 replication/logical/origin.c:587 replication/slot.c:1631 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format msgid "could not create file \"%s\": %m" @@ -999,13 +998,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:502 access/transam/xlog.c:3035 access/transam/xlog.c:3232 access/transam/xlog.c:3976 commands/dbcommands.c:529 postmaster/postmaster.c:4617 postmaster/postmaster.c:4627 replication/logical/origin.c:599 replication/logical/origin.c:641 replication/logical/origin.c:660 replication/logical/snapbuild.c:1748 replication/slot.c:1666 -#: storage/file/buffile.c:537 storage/file/copydir.c:207 utils/init/miscinit.c:1441 utils/init/miscinit.c:1452 utils/init/miscinit.c:1460 utils/misc/guc.c:8721 utils/misc/guc.c:8752 utils/misc/guc.c:10742 utils/misc/guc.c:10756 utils/time/snapmgr.c:1266 utils/time/snapmgr.c:1273 +#: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 access/transam/timeline.c:424 access/transam/timeline.c:502 access/transam/xlog.c:3037 access/transam/xlog.c:3234 access/transam/xlog.c:3978 commands/dbcommands.c:529 postmaster/postmaster.c:4617 postmaster/postmaster.c:4627 replication/logical/origin.c:599 replication/logical/origin.c:641 replication/logical/origin.c:660 replication/logical/snapbuild.c:1748 replication/slot.c:1666 +#: storage/file/buffile.c:537 storage/file/copydir.c:207 utils/init/miscinit.c:1449 utils/init/miscinit.c:1460 utils/init/miscinit.c:1468 utils/misc/guc.c:8728 utils/misc/guc.c:8759 utils/misc/guc.c:10757 utils/misc/guc.c:10771 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:1706 access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:429 postmaster/postmaster.c:1157 postmaster/syslogger.c:1537 replication/logical/origin.c:575 replication/logical/reorderbuffer.c:4431 replication/logical/snapbuild.c:1693 replication/logical/snapbuild.c:2109 replication/slot.c:1763 storage/file/fd.c:795 storage/file/fd.c:3263 storage/file/fd.c:3325 storage/file/reinit.c:262 +#: access/heap/rewriteheap.c:1249 access/transam/twophase.c:1706 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:4431 replication/logical/snapbuild.c:1693 replication/logical/snapbuild.c:2109 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 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" @@ -1238,12 +1237,12 @@ msgstr "インデックスアクセスメソッド\"%s\"ã¯ãƒãƒ³ãƒ‰ãƒ©ã‚’æŒã£ msgid "transaction aborted during system catalog scan" msgstr "システムカタãƒã‚°ã®ã‚¹ã‚ャンä¸ã«ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãŒã‚¢ãƒœãƒ¼ãƒˆã—ã¾ã—ãŸ" -#: access/index/indexam.c:142 catalog/objectaddress.c:1376 commands/indexcmds.c:2807 commands/tablecmds.c:271 commands/tablecmds.c:295 commands/tablecmds.c:17183 commands/tablecmds.c:18966 +#: access/index/indexam.c:203 catalog/objectaddress.c:1376 commands/indexcmds.c:2783 commands/tablecmds.c:271 commands/tablecmds.c:295 commands/tablecmds.c:17195 commands/tablecmds.c:18980 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\"ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/index/indexam.c:973 +#: access/index/indexam.c:1010 #, c-format msgid "operator class %s has no options" msgstr "演算åクラス%sã«ã¯ã‚ªãƒ—ションã¯ã‚ã‚Šã¾ã›ã‚“" @@ -1283,17 +1282,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:2669 +#: access/nbtree/nbtutils.c:2684 #, 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:2675 +#: access/nbtree/nbtutils.c:2690 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "インデックス行ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%3$s\"ã®ã‚¿ãƒ—ル(%1$u,%2$u)ã‚’å‚ç…§ã—ã¦ã„ã¾ã™ã€‚" -#: access/nbtree/nbtutils.c:2679 +#: access/nbtree/nbtutils.c:2694 #, c-format msgid "" "Values larger than 1/3 of a buffer page cannot be indexed.\n" @@ -1307,12 +1306,12 @@ msgstr "" msgid "operator family \"%s\" of access method %s is missing support function for types %s and %s" msgstr "アクセスメソッド\"%2$s\"ã®æ¼”ç®—åæ—\"%1$s\"ã¯åž‹%3$sã¨%4$sã«å¯¾å¿œã™ã‚‹ã‚µãƒãƒ¼ãƒˆé–¢æ•°ã‚’å«ã‚“ã§ã„ã¾ã›ã‚“" -#: access/spgist/spgutils.c:244 +#: access/spgist/spgutils.c:242 #, c-format msgid "compress method must be defined when leaf type is different from input type" msgstr "リーフ型ãŒå…¥åŠ›åž‹ã¨ç•°ãªã‚‹å ´åˆã¯åœ§ç¸®ãƒ¡ã‚½ãƒƒãƒ‰ã®å®šç¾©ãŒå¿…è¦ã§ã™" -#: access/spgist/spgutils.c:1016 +#: access/spgist/spgutils.c:1023 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "SP-GiST内部タプルã®ã‚µã‚¤ã‚º%zuãŒæœ€å¤§å€¤%zuを超ãˆã¦ã„ã¾ã™" @@ -1332,7 +1331,7 @@ msgstr "アクセスメソッド\"%2$s\"ã®æ¼”ç®—åæ—\"%1$s\"ã¯%4$såž‹ã«å¯¾ã 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:1842 commands/tablecmds.c:13880 commands/tablecmds.c:17192 +#: access/table/table.c:54 access/table/table.c:88 access/table/table.c:117 access/table/table.c:150 catalog/aclchk.c:1842 commands/tablecmds.c:13884 commands/tablecmds.c:17204 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\"ã¯è¤‡åˆåž‹ã§ã™" @@ -1347,7 +1346,7 @@ msgstr "tid (%u, %u) ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã«å¯¾ã—ã¦å¦¥å½“ã§ã¯ã‚ã‚Šã msgid "%s cannot be empty." msgstr "%sã¯ç©ºã«ã¯ã§ãã¾ã›ã‚“。" -#: access/table/tableamapi.c:122 utils/misc/guc.c:12911 +#: access/table/tableamapi.c:122 utils/misc/guc.c:12926 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s ãŒé•·éŽãŽã¾ã™ï¼ˆæœ€å¤§%dæ–‡å—)。" @@ -1900,529 +1899,529 @@ msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "エクスãƒãƒ¼ãƒˆã•ã‚ŒãŸã‚¹ãƒŠãƒƒãƒ—ショットをæŒã¤ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’PREPAREã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3478 +#: access/transam/xact.c:3479 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%sã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãƒ–ãƒãƒƒã‚¯ã®å†…å´ã§ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3488 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%sã¯ã‚µãƒ–トランザクションブãƒãƒƒã‚¯ã®å†…å´ã§ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3498 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s ã¯ãƒ‘イプライン内ã§ã®å®Ÿè¡Œã¯ã§ãã¾ã›ã‚“" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3508 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed from a function" msgstr "%s ã¯é–¢æ•°å†…ã§ã®å®Ÿè¡Œã¯ã§ãã¾ã›ã‚“" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3579 access/transam/xact.c:3894 access/transam/xact.c:3973 access/transam/xact.c:4096 access/transam/xact.c:4247 access/transam/xact.c:4316 access/transam/xact.c:4427 +#: 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 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%sã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãƒ–ãƒãƒƒã‚¯å†…ã§ã®ã¿ä½¿ç”¨ã§ãã¾ã™" -#: access/transam/xact.c:3780 +#: access/transam/xact.c:3781 #, c-format msgid "there is already a transaction in progress" msgstr "ã™ã§ã«ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãŒå®Ÿè¡Œä¸ã§ã™" -#: access/transam/xact.c:3899 access/transam/xact.c:3978 access/transam/xact.c:4101 +#: access/transam/xact.c:3900 access/transam/xact.c:3979 access/transam/xact.c:4102 #, c-format msgid "there is no transaction in progress" msgstr "実行ä¸ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xact.c:3989 +#: access/transam/xact.c:3990 #, c-format msgid "cannot commit during a parallel operation" msgstr "並列処ç†ä¸ã«ã¯ã‚³ãƒŸãƒƒãƒˆã¯ã§ãã¾ã›ã‚“" -#: access/transam/xact.c:4112 +#: access/transam/xact.c:4113 #, c-format msgid "cannot abort during a parallel operation" msgstr "パラレル処ç†ä¸ã«ãƒãƒ¼ãƒ«ãƒãƒƒã‚¯ã¯ã§ãã¾ã›ã‚“" -#: access/transam/xact.c:4211 +#: access/transam/xact.c:4212 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "パラレル処ç†ä¸ã«ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆã¯å®šç¾©ã§ãã¾ã›ã‚“" -#: access/transam/xact.c:4298 +#: access/transam/xact.c:4299 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "並列処ç†ä¸ã¯ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆã®è§£æ”¾ã¯ã§ãã¾ã›ã‚“" -#: access/transam/xact.c:4308 access/transam/xact.c:4359 access/transam/xact.c:4419 access/transam/xact.c:4468 +#: access/transam/xact.c:4309 access/transam/xact.c:4360 access/transam/xact.c:4420 access/transam/xact.c:4469 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "セーブãƒã‚¤ãƒ³ãƒˆ\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: access/transam/xact.c:4365 access/transam/xact.c:4474 +#: access/transam/xact.c:4366 access/transam/xact.c:4475 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "セーブãƒã‚¤ãƒ³ãƒˆ\"%s\"ã¯ç¾åœ¨ã®ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆãƒ¬ãƒ™ãƒ«ã«ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: access/transam/xact.c:4407 +#: access/transam/xact.c:4408 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "パラレル処ç†ä¸ã«ã‚»ãƒ¼ãƒ–ãƒã‚¤ãƒ³ãƒˆã®ãƒãƒ¼ãƒ«ãƒãƒƒã‚¯ã¯ã§ãã¾ã›ã‚“" -#: access/transam/xact.c:4535 +#: access/transam/xact.c:4536 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "並列処ç†ä¸ã¯ã‚µãƒ–トランザクションを開始ã§ãã¾ã›ã‚“" -#: access/transam/xact.c:4603 +#: access/transam/xact.c:4604 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "並列処ç†ä¸ã¯ã‚µãƒ–トランザクションをコミットã§ãã¾ã›ã‚“" -#: access/transam/xact.c:5250 +#: access/transam/xact.c:5251 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "1トランザクション内ã«ã¯ 2^32-1 個より多ãã®ã‚µãƒ–トランザクションを作æˆã§ãã¾ã›ã‚“" -#: access/transam/xlog.c:1463 +#: access/transam/xlog.c:1465 #, 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:2224 +#: access/transam/xlog.c:2226 #, 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:3473 access/transam/xlogutils.c:847 replication/walsender.c:2716 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "è¦æ±‚ã•ã‚ŒãŸ WAL セグメント %s ã¯ã™ã§ã«å‰Šé™¤ã•ã‚Œã¦ã„ã¾ã™" -#: access/transam/xlog.c:3756 +#: access/transam/xlog.c:3758 #, 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:3800 access/transam/xlog.c:3810 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "WALディレクトリ\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: access/transam/xlog.c:3814 +#: access/transam/xlog.c:3816 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "ãªã‹ã£ãŸWALディレクトリ\"%s\"を作æˆã—ã¦ã„ã¾ã™" -#: access/transam/xlog.c:3817 commands/dbcommands.c:3115 +#: access/transam/xlog.c:3819 commands/dbcommands.c:3115 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "ãªã‹ã£ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª\"%s\"ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ: %m" -#: access/transam/xlog.c:3884 +#: access/transam/xlog.c:3886 #, 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 utils/init/miscinit.c:1598 +#: access/transam/xlog.c:4045 access/transam/xlog.c:4054 access/transam/xlog.c:4078 access/transam/xlog.c:4085 access/transam/xlog.c:4092 access/transam/xlog.c:4097 access/transam/xlog.c:4104 access/transam/xlog.c:4111 access/transam/xlog.c:4118 access/transam/xlog.c:4125 access/transam/xlog.c:4132 access/transam/xlog.c:4139 access/transam/xlog.c:4148 access/transam/xlog.c:4155 utils/init/miscinit.c:1606 #, c-format msgid "database files are incompatible with server" msgstr "データベースファイルãŒã‚µãƒ¼ãƒãƒ¼ã¨äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlog.c:4044 +#: access/transam/xlog.c:4046 #, 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:4050 #, 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:4055 #, 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:4058 access/transam/xlog.c:4082 access/transam/xlog.c:4089 access/transam/xlog.c:4094 #, c-format msgid "It looks like you need to initdb." msgstr "initdbãŒå¿…è¦ã®ã‚ˆã†ã§ã™ã€‚" -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4069 #, c-format msgid "incorrect checksum in control file" msgstr "制御ファイル内ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãŒä¸æ£ã§ã™" -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4079 #, 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:4086 #, 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:4093 #, 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:4098 #, 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:4101 access/transam/xlog.c:4108 access/transam/xlog.c:4115 access/transam/xlog.c:4122 access/transam/xlog.c:4129 access/transam/xlog.c:4136 access/transam/xlog.c:4143 access/transam/xlog.c:4151 access/transam/xlog.c:4158 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "å†ã‚³ãƒ³ãƒ‘イルもã—ã㯠initdb ãŒå¿…è¦ãã†ã§ã™ã€‚" -#: access/transam/xlog.c:4103 +#: access/transam/xlog.c:4105 #, c-format msgid "The database cluster was initialized with RELSEG_SIZE %d, but the server was compiled with RELSEG_SIZE %d." msgstr "データベースクラスタ㯠RELSEG_SIZE %d ã§åˆæœŸåŒ–ã•ã‚Œã¾ã—ãŸãŒã€ã‚µãƒ¼ãƒãƒ¼ã¯ RELSEG_SIZE %d ã§ã‚³ãƒ³ãƒ‘イルã•ã‚Œã¦ã„ã¾ã™ã€‚" -#: access/transam/xlog.c:4110 +#: access/transam/xlog.c:4112 #, 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:4119 #, 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:4126 #, 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:4133 #, 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:4140 #, 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:4149 #, 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:4156 #, 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:4165 #, 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セグメントã®ã‚µã‚¤ã‚ºæŒ‡å®šã¯1MBã¨1GBã®é–“ã®2ã®ç´¯ä¹—ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“ã€ã—ã‹ã—コントãƒãƒ¼ãƒ«ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯%dãƒã‚¤ãƒˆã¨ãªã£ã¦ã„ã¾ã™" -#: access/transam/xlog.c:4175 +#: access/transam/xlog.c:4177 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\"ã¯æœ€ä½Žã§ã‚‚\"wal_segment_size\"ã®2å€ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: access/transam/xlog.c:4179 +#: access/transam/xlog.c:4181 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\"ã¯æœ€ä½Žã§ã‚‚\"wal_segment_size\"ã®2å€ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: access/transam/xlog.c:4620 +#: access/transam/xlog.c:4622 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "ブートストラップã®å…ˆè¡Œæ›¸ãè¾¼ã¿ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlog.c:4628 +#: access/transam/xlog.c:4630 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "ブートストラップã®å…ˆè¡Œæ›¸ãè¾¼ã¿ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’fsyncã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlog.c:4634 +#: access/transam/xlog.c:4636 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "ブートストラップã®å…ˆè¡Œæ›¸ãè¾¼ã¿ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’クãƒãƒ¼ã‚ºã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlog.c:4852 +#: access/transam/xlog.c:4854 #, c-format msgid "WAL was generated with wal_level=minimal, cannot continue recovering" msgstr "wal_level=minimal ã§WALãŒç”Ÿæˆã•ã‚Œã¾ã—ãŸã€ãƒªã‚«ãƒãƒªã¯ç¶šè¡Œä¸å¯ã§ã™" -#: access/transam/xlog.c:4853 +#: access/transam/xlog.c:4855 #, 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:4856 #, c-format msgid "Use a backup taken after setting wal_level to higher than minimal." msgstr "wal_levelã‚’minimalより上ä½ã«è¨å®šã—ãŸã‚ã¨ã«å–å¾—ã—ãŸãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を使用ã—ã¦ãã ã•ã„。" -#: access/transam/xlog.c:4918 +#: access/transam/xlog.c:4920 #, c-format msgid "control file contains invalid checkpoint location" msgstr "制御ファイル内ã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆä½ç½®ãŒä¸æ£ã§ã™" -#: access/transam/xlog.c:4929 +#: access/transam/xlog.c:4931 #, c-format msgid "database system was shut down at %s" msgstr "データベースシステム㯠%s ã«ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã—ã¾ã—ãŸ" -#: access/transam/xlog.c:4935 +#: access/transam/xlog.c:4937 #, c-format msgid "database system was shut down in recovery at %s" msgstr "データベースシステムã¯ãƒªã‚«ãƒãƒªä¸ %s ã«ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã—ã¾ã—ãŸ" -#: access/transam/xlog.c:4941 +#: access/transam/xlog.c:4943 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "データベースシステムã¯ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ä¸ã«ä¸æ–ã•ã‚Œã¾ã—ãŸ; %s ã¾ã§å‹•ä½œã—ã¦ã„ãŸã“ã¨ã¯ç¢ºèªã§ãã¾ã™" -#: access/transam/xlog.c:4947 +#: access/transam/xlog.c:4949 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "データベースシステムã¯ãƒªã‚«ãƒãƒªä¸ %s ã«ä¸æ–ã•ã‚Œã¾ã—ãŸ" -#: access/transam/xlog.c:4949 +#: access/transam/xlog.c:4951 #, 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:4957 #, 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:4959 #, 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 "ã“ã‚ŒãŒ1回以上起ããŸå ´åˆã¯ãƒ‡ãƒ¼ã‚¿ãŒç ´æã—ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚ã€ã‚ˆã‚Šä»¥å‰ã®ãƒªã‚«ãƒãƒªç›®æ¨™ã‚’é¸ã¶å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。" -#: access/transam/xlog.c:4963 +#: access/transam/xlog.c:4965 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "データベースシステムã¯ä¸æ–ã•ã‚Œã¾ã—ãŸ: %s ã¾ã§å‹•ä½œã—ã¦ã„ãŸã“ã¨ã¯ç¢ºèªã§ãã¾ã™" -#: access/transam/xlog.c:4969 +#: access/transam/xlog.c:4971 #, c-format msgid "control file contains invalid database cluster state" msgstr "制御ファイル内ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ»ã‚¯ãƒ©ã‚¹ã‚¿çŠ¶æ…‹ãŒä¸æ£ã§ã™" -#: access/transam/xlog.c:5353 +#: access/transam/xlog.c:5355 #, c-format msgid "WAL ends before end of online backup" msgstr "オンラインãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã®çµ‚了よりå‰ã«WALãŒçµ‚了ã—ã¾ã—ãŸ" -#: access/transam/xlog.c:5354 +#: 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:5357 +#: access/transam/xlog.c:5359 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WALãŒä¸€è²«æ€§ãŒã‚るリカãƒãƒªãƒã‚¤ãƒ³ãƒˆã‚ˆã‚Šå‰ã§çµ‚了ã—ã¾ã—ãŸ" -#: access/transam/xlog.c:5405 +#: access/transam/xlog.c:5407 #, c-format msgid "selected new timeline ID: %u" msgstr "æ–°ã—ã„タイムラインIDã‚’é¸æŠž: %u" -#: access/transam/xlog.c:5438 +#: access/transam/xlog.c:5440 #, c-format msgid "archive recovery complete" msgstr "アーカイブリカãƒãƒªãŒå®Œäº†ã—ã¾ã—ãŸ" -#: access/transam/xlog.c:6044 +#: access/transam/xlog.c:6046 #, c-format msgid "shutting down" msgstr "シャットダウンã—ã¦ã„ã¾ã™" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6083 +#: access/transam/xlog.c:6085 #, 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:6095 +#: access/transam/xlog.c:6097 #, 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:6155 +#: access/transam/xlog.c:6157 #, 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 kB, 予測=%d kB" -#: access/transam/xlog.c:6175 +#: access/transam/xlog.c:6177 #, 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 kB, 予測=%d kB" -#: access/transam/xlog.c:6610 +#: access/transam/xlog.c:6612 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "データベースã®ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã«ä¸¦è¡Œã—ã¦ã€å…ˆè¡Œæ›¸ãè¾¼ã¿ãƒã‚°ãŒç™ºç”Ÿã—ã¾ã—ãŸ" -#: access/transam/xlog.c:7167 +#: access/transam/xlog.c:7169 #, c-format msgid "recovery restart point at %X/%X" msgstr "リカãƒãƒªå†é–‹ãƒã‚¤ãƒ³ãƒˆã¯%X/%Xã§ã™" -#: access/transam/xlog.c:7169 +#: access/transam/xlog.c:7171 #, c-format msgid "Last completed transaction was at log time %s." msgstr "最後ã«å®Œäº†ã—ãŸãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã¯ãƒã‚°æ™‚刻 %s ã®ã‚‚ã®ã§ã™" -#: access/transam/xlog.c:7416 +#: access/transam/xlog.c:7418 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "復帰ãƒã‚¤ãƒ³ãƒˆ\"%s\"ãŒ%X/%Xã«ä½œæˆã•ã‚Œã¾ã—ãŸ" -#: access/transam/xlog.c:7623 +#: access/transam/xlog.c:7625 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "オンラインãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã¯ã‚ャンセルã•ã‚Œã€ãƒªã‚«ãƒãƒªã‚’継続ã§ãã¾ã›ã‚“" -#: access/transam/xlog.c:7680 +#: access/transam/xlog.c:7682 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "シャットダウンãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ã«ãŠã„ã¦æƒ³å®šå¤–ã®ã‚¿ã‚¤ãƒ ラインID %u(%uã®ã¯ãš)ãŒã‚ã‚Šã¾ã—ãŸ" -#: access/transam/xlog.c:7738 +#: access/transam/xlog.c:7740 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "オンラインãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ã«ãŠã„ã¦æƒ³å®šå¤–ã®ã‚¿ã‚¤ãƒ ラインID %u(%uã®ã¯ãš)ãŒã‚ã‚Šã¾ã—ãŸ" -#: access/transam/xlog.c:7767 +#: access/transam/xlog.c:7769 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "リカãƒãƒªçµ‚了ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ã«ãŠã„ã¦æƒ³å®šå¤–ã®ã‚¿ã‚¤ãƒ ラインID %u(%uã®ã¯ãš)ãŒã‚ã‚Šã¾ã—ãŸ" -#: access/transam/xlog.c:8025 +#: access/transam/xlog.c:8027 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "ライトスルーファイル\"%s\"ã‚’fsyncã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlog.c:8031 +#: access/transam/xlog.c:8033 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "ファイル\"%s\"ã‚’fdatasyncã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlog.c:8126 access/transam/xlog.c:8493 +#: access/transam/xlog.c:8128 access/transam/xlog.c:8495 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "オンラインãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚’è¡Œã†ã«ã¯WALレベルãŒä¸å分ã§ã™" -#: access/transam/xlog.c:8127 access/transam/xlog.c:8494 access/transam/xlogfuncs.c:199 +#: access/transam/xlog.c:8129 access/transam/xlog.c:8496 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:8132 +#: access/transam/xlog.c:8134 #, c-format msgid "backup label too long (max %d bytes)" msgstr "ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ラベルãŒé•·ã™ãŽã¾ã™ (最大%dãƒã‚¤ãƒˆ)" -#: access/transam/xlog.c:8248 +#: access/transam/xlog.c:8250 #, c-format msgid "WAL generated with full_page_writes=off was replayed since last restartpoint" msgstr "full_page_writes=off ã§ç”Ÿæˆã•ã‚ŒãŸWALã¯æœ€çµ‚リスタートãƒã‚¤ãƒ³ãƒˆã‹ã‚‰å†ç”Ÿã•ã‚Œã¾ã™" -#: access/transam/xlog.c:8250 access/transam/xlog.c:8606 +#: access/transam/xlog.c:8252 access/transam/xlog.c:8608 #, 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:8330 backup/basebackup.c:1345 utils/adt/misc.c:347 +#: access/transam/xlog.c:8332 backup/basebackup.c:1345 utils/adt/misc.c:347 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "シンボリックリンク\"%s\"ã®å‚照先ãŒé•·ã™ãŽã¾ã™" -#: access/transam/xlog.c:8380 backup/basebackup.c:1360 commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:355 +#: access/transam/xlog.c:8382 backup/basebackup.c:1360 commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:355 #, c-format msgid "tablespaces are not supported on this platform" msgstr "ã“ã®ãƒ—ラットフォームã§ã¯ãƒ†ãƒ¼ãƒ–ル空間ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" -#: access/transam/xlog.c:8539 access/transam/xlog.c:8552 access/transam/xlogrecovery.c:1211 access/transam/xlogrecovery.c:1218 access/transam/xlogrecovery.c:1277 access/transam/xlogrecovery.c:1357 access/transam/xlogrecovery.c:1381 +#: access/transam/xlog.c:8541 access/transam/xlog.c:8554 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 #, c-format msgid "invalid data in file \"%s\"" msgstr "ファイル\"%s\"内ã®ä¸æ£ãªãƒ‡ãƒ¼ã‚¿" -#: access/transam/xlog.c:8556 backup/basebackup.c:1200 +#: access/transam/xlog.c:8558 backup/basebackup.c:1200 #, c-format msgid "the standby was promoted during online backup" msgstr "オンラインãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ä¸ã«ã‚¹ã‚¿ãƒ³ãƒã‚¤ãŒæ˜‡æ ¼ã—ã¾ã—ãŸ" -#: access/transam/xlog.c:8557 backup/basebackup.c:1201 +#: access/transam/xlog.c:8559 backup/basebackup.c:1201 #, 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:8604 +#: access/transam/xlog.c:8606 #, c-format msgid "WAL generated with full_page_writes=off was replayed during online backup" msgstr "full_page_writes=offã§ç”Ÿæˆã•ã‚ŒãŸWALã¯ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ä¸ã«å†ç”Ÿã•ã‚Œã¾ã™" -#: access/transam/xlog.c:8729 +#: access/transam/xlog.c:8731 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "ベースãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—完了ã€å¿…è¦ãª WAL セグメントãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã•ã‚Œã‚‹ã®ã‚’å¾…ã£ã¦ã„ã¾ã™" -#: access/transam/xlog.c:8743 +#: access/transam/xlog.c:8745 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "ã¾ã å¿…è¦ãªã™ã¹ã¦ã® WAL セグメントãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã•ã‚Œã‚‹ã®ã‚’å¾…ã£ã¦ã„ã¾ã™ï¼ˆ%d 秒経éŽï¼‰" -#: access/transam/xlog.c:8745 +#: access/transam/xlog.c:8747 #, 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:8752 +#: access/transam/xlog.c:8754 #, c-format msgid "all required WAL segments have been archived" msgstr "å¿…è¦ãªã™ã¹ã¦ã® WAL セグメントãŒã‚¢ãƒ¼ã‚«ã‚¤ãƒ–ã•ã‚Œã¾ã—ãŸ" -#: access/transam/xlog.c:8756 +#: access/transam/xlog.c:8758 #, 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:8805 +#: access/transam/xlog.c:8807 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãŒpg_backup_stopã®å‘¼ã³å‡ºã—å‰ã«çµ‚了ã—ãŸãŸã‚ã€ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã¯ç•°å¸¸çµ‚了ã—ã¾ã—ãŸ" -#: access/transam/xlogarchive.c:208 +#: access/transam/xlogarchive.c:215 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "アーカイブファイル\"%s\"ã®ã‚µã‚¤ã‚ºãŒä¸æ£ã§ã™: %lldã€æ£ã—ãã¯%lld" -#: access/transam/xlogarchive.c:217 +#: access/transam/xlogarchive.c:224 #, c-format msgid "restored log file \"%s\" from archive" msgstr "ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"をアーカイブã‹ã‚‰ãƒªã‚¹ãƒˆã‚¢ã—ã¾ã—ãŸ" -#: access/transam/xlogarchive.c:231 +#: access/transam/xlogarchive.c:238 #, c-format msgid "restore_command returned a zero exit status, but stat() failed." msgstr "restore_commandãŒçµ‚了ステータス0ã‚’è¿”å´ã—ã¾ã—ãŸãŒã€stat()ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚" -#: access/transam/xlogarchive.c:263 +#: access/transam/xlogarchive.c:270 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "ファイル\"%s\"をアーカイブã‹ã‚‰ãƒªã‚¹ãƒˆã‚¢ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" @@ -2430,17 +2429,17 @@ msgstr "ファイル\"%s\"をアーカイブã‹ã‚‰ãƒªã‚¹ãƒˆã‚¢ã§ãã¾ã›ã‚“㧠#. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:376 +#: access/transam/xlogarchive.c:383 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:486 access/transam/xlogarchive.c:566 +#: access/transam/xlogarchive.c:493 access/transam/xlogarchive.c:573 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "アーカイブステータスファイル\"%s\"を作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlogarchive.c:494 access/transam/xlogarchive.c:574 +#: access/transam/xlogarchive.c:501 access/transam/xlogarchive.c:581 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "アーカイブステータスファイル\"%s\"ã«æ›¸ãè¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ: %m" @@ -2505,7 +2504,7 @@ msgstr "%sã¯æ˜‡æ ¼ã‚’開始ã—ãŸå¾Œã«ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。" msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\"ã¯è² ã®å€¤ã‚‚ã—ãã¯ã‚¼ãƒã«ã¯ã§ãã¾ã›ã‚“" -#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:252 +#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:257 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "postmasterã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" @@ -2521,167 +2520,157 @@ msgstr[0] "サーãƒãƒ¼ã¯%d秒以内ã«æ˜‡æ ¼ã—ã¾ã›ã‚“ã§ã—ãŸ" msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." msgstr "recovery_prefetchã¯posix_fadvise()ã‚’æŒãŸãªã„プラットフォームã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“。" -#: access/transam/xlogreader.c:625 +#: access/transam/xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "%X/%Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚ªãƒ•ã‚»ãƒƒãƒˆãŒä¸æ£ã§ã™" -#: access/transam/xlogreader.c:633 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "%X/%Xã§ã¯ç¶™ç¶šãƒ¬ã‚³ãƒ¼ãƒ‰ãŒå¿…è¦ã§ã™" -#: access/transam/xlogreader.c:674 access/transam/xlogreader.c:1117 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "%X/%Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰é•·ãŒä¸æ£ã§ã™:é•·ã•ã¯%uã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ãŒã€å®Ÿéš›ã¯%uã§ã—ãŸ" -#: access/transam/xlogreader.c:703 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "é•·ã•%uã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã®ãƒ‡ã‚³ãƒ¼ãƒ‰ä¸ã®ãƒ¡ãƒ¢ãƒªä¸è¶³" - -#: access/transam/xlogreader.c:725 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "%2$X/%3$Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰é•·%1$uãŒå¤§ãã™ãŽã¾ã™" - -#: access/transam/xlogreader.c:774 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "%X/%Xã§contrecordフラグãŒã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogreader.c:787 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "%3$X/%4$Xã®ç¶™ç¶šãƒ¬ã‚³ãƒ¼ãƒ‰ã®é•·ã•%1$u(æ£ã—ãã¯%2$lld)ã¯ä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1125 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "%2$X/%3$Xã®ãƒªã‚½ãƒ¼ã‚¹ãƒžãƒãƒ¼ã‚¸ãƒ£ID %1$uã¯ä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1138 access/transam/xlogreader.c:1154 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "%3$X/%4$Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã®å¾Œæ–¹ãƒªãƒ³ã‚¯%1$X/%2$XãŒä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1190 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "%X/%Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®ãƒªã‚½ãƒ¼ã‚¹ãƒžãƒãƒ¼ã‚¸ãƒ£ãƒ‡ãƒ¼ã‚¿ã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãŒä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1227 +#: access/transam/xlogreader.c:1246 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "ãƒã‚°ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ%2$sã€ã‚ªãƒ•ã‚»ãƒƒãƒˆ%3$uã®ãƒžã‚¸ãƒƒã‚¯ãƒŠãƒ³ãƒãƒ¼%1$04Xã¯ä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1241 access/transam/xlogreader.c:1282 +#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "ãƒã‚°ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ %2$sã€ã‚ªãƒ•ã‚»ãƒƒãƒˆ%3$uã®æƒ…å ±ãƒ“ãƒƒãƒˆ%1$04Xã¯ä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1256 +#: access/transam/xlogreader.c:1275 #, 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:1264 +#: access/transam/xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "WAL ファイルã¯ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚·ã‚¹ãƒ†ãƒ ç”±æ¥ã®ã‚‚ã®ã§ã™: ページヘッダーã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚µã‚¤ã‚ºãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogreader.c:1270 +#: access/transam/xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "WAL ファイルã¯ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚·ã‚¹ãƒ†ãƒ ç”±æ¥ã®ã‚‚ã®ã§ã™: ページヘッダーã®XLOG_BLCKSZãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogreader.c:1301 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "ãƒã‚°ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ%3$sã€ã‚ªãƒ•ã‚»ãƒƒãƒˆ%4$uã«æƒ³å®šå¤–ã®ãƒšãƒ¼ã‚¸ã‚¢ãƒ‰ãƒ¬ã‚¹%1$X/%2$X" -#: access/transam/xlogreader.c:1326 +#: access/transam/xlogreader.c:1345 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "ãƒã‚°ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ%3$sã€ã‚ªãƒ•ã‚»ãƒƒãƒˆ%4$uã®ã‚¿ã‚¤ãƒ ラインID %1$u(%2$uã®å¾Œ)ãŒé †åºé€šã‚Šã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogreader.c:1731 +#: access/transam/xlogreader.c:1750 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "block_id %uãŒ%X/%Xã§ä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1755 +#: access/transam/xlogreader.c:1774 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATAãŒè¨å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€%X/%Xã«ãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogreader.c:1762 +#: access/transam/xlogreader.c:1781 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATAãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“ãŒã€%2$X/%3$Xã®ãƒ‡ãƒ¼ã‚¿é•·ã¯%1$uã§ã™" -#: access/transam/xlogreader.c:1798 +#: access/transam/xlogreader.c:1817 #, c-format msgid "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEãŒè¨å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€%4$X/%5$Xã§ãƒ›ãƒ¼ãƒ«ã‚ªãƒ•ã‚»ãƒƒãƒˆ%1$uã€é•·ã•%2$uã€ãƒ–ãƒãƒƒã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸é•·%3$uã§ã™" -#: access/transam/xlogreader.c:1814 +#: access/transam/xlogreader.c:1833 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLEãŒè¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“ãŒã€%3$X/%4$Xã«ãŠã‘るホールオフセット%1$uã®é•·ã•ãŒ%2$uã§ã™" -#: access/transam/xlogreader.c:1828 +#: access/transam/xlogreader.c:1847 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSEDãŒè¨å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€%2$X/%3$Xã«ãŠã„ã¦ãƒ–ãƒãƒƒã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸é•·ãŒ%1$uã§ã™" -#: access/transam/xlogreader.c:1843 +#: access/transam/xlogreader.c:1862 #, 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ã‚‚è¨å®šã•ã‚Œã¦ã„ã¾ã›ã‚“ãŒã€%2$X/%3$Xã«ãŠã„ã¦ãƒ–ãƒãƒƒã‚¯ã‚¤ãƒ¡ãƒ¼ã‚¸é•·ãŒ%1$uã§ã™" -#: access/transam/xlogreader.c:1859 +#: access/transam/xlogreader.c:1878 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_RELãŒè¨å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€%X/%Xã«ãŠã„ã¦ä»¥å‰ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogreader.c:1871 +#: access/transam/xlogreader.c:1890 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "%2$X/%3$Xã«ãŠã‘ã‚‹block_id %1$uãŒä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1938 +#: access/transam/xlogreader.c:1957 #, c-format msgid "record with invalid length at %X/%X" msgstr "%X/%Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã®ã‚µã‚¤ã‚ºãŒä¸æ£ã§ã™" -#: access/transam/xlogreader.c:1963 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "WALレコードä¸ID %dã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ブãƒãƒƒã‚¯ã‚’特定ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogreader.c:2047 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "%X/%Xã§ä¸æ£ãªãƒ–ãƒãƒƒã‚¯%dãŒæŒ‡å®šã•ã‚Œã¦ã„ã‚‹ãŸã‚イメージãŒå¾©å…ƒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogreader.c:2054 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "%X/%Xã§ãƒ–ãƒãƒƒã‚¯%dã®ã‚¤ãƒ¡ãƒ¼ã‚¸ãŒä¸æ£ãªçŠ¶æ…‹ã§ã‚ã‚‹ãŸã‚復元ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogreader.c:2081 access/transam/xlogreader.c:2098 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "could not restore image at %X/%X compressed with %s not supported by build, block %d" msgstr "%1$X/%2$Xã§ã€ãƒ–ãƒãƒƒã‚¯%4$dãŒã“ã®ãƒ“ルドã§ã‚µãƒãƒ¼ãƒˆã•ã‚Œãªã„圧縮方å¼%3$sã§åœ§ç¸®ã•ã‚Œã¦ã„ã‚‹ãŸã‚復元ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogreader.c:2107 +#: access/transam/xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "%X/%Xã§ãƒ–ãƒãƒƒã‚¯%dã®ã‚¤ãƒ¡ãƒ¼ã‚¸ãŒä¸æ˜Žãªæ–¹å¼ã§åœ§ç¸®ã•ã‚Œã¦ã„ã‚‹ãŸã‚復元ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogreader.c:2115 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "%X/%Xã®ãƒ–ãƒãƒƒã‚¯%dãŒä¼¸å¼µã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -2721,12 +2710,17 @@ msgstr "最もå¤ã„一貫性確ä¿ç‚¹ã¾ã§ã®ãƒã‚¤ãƒ³ãƒˆã‚¤ãƒ³ã‚¿ã‚¤ãƒ リカ msgid "starting archive recovery" msgstr "アーカイブリカãƒãƒªã‚’開始ã—ã¦ã„ã¾ã™" -#: access/transam/xlogrecovery.c:651 +#: access/transam/xlogrecovery.c:635 +#, c-format +msgid "starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on timeline ID %u" +msgstr "タイムラインID %5$u上ã§REDO LSN %1$X/%2$Xã€ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆLSN %3$X/%4$Xã‹ã‚‰ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—・リカãƒãƒªã‚’開始ã—ã¾ã—ãŸ" + +#: access/transam/xlogrecovery.c:667 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ãŒå‚ç…§ã—ã¦ã„ã‚‹ redo ä½ç½®ã‚’見ã¤ã‘られã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogrecovery.c:652 access/transam/xlogrecovery.c:662 +#: access/transam/xlogrecovery.c:668 access/transam/xlogrecovery.c:678 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add required recovery options.\n" @@ -2737,398 +2731,408 @@ msgstr "" "ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‹ã‚‰ã®å¾©æ—§ã§ãªã‘ã‚Œã°ã€\"%s/backup_label\"ã®å‰Šé™¤ã‚’試ã¿ã¦ãã ã•ã„。.\n" "ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‹ã‚‰å¾©æ—§ã§\"%s/backup_label\"を削除ã™ã‚‹ã¨ã€ã‚¯ãƒ©ã‚¹ã‚¿ã¯å£Šã‚ŒãŸçŠ¶æ…‹ã§å¾©æ—§ã•ã‚Œã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。" -#: access/transam/xlogrecovery.c:661 +#: access/transam/xlogrecovery.c:677 #, c-format msgid "could not locate required checkpoint record" msgstr "å¿…è¦ãªãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogrecovery.c:690 commands/tablespace.c:685 +#: access/transam/xlogrecovery.c:706 commands/tablespace.c:685 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "シンボリックリンク\"%s\"を作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlogrecovery.c:722 access/transam/xlogrecovery.c:728 +#: access/transam/xlogrecovery.c:738 access/transam/xlogrecovery.c:744 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "ファイル\"%2$s\"ãŒå˜åœ¨ã—ãªã„ãŸã‚ファイル\"%1$s\"を無視ã—ã¾ã™" -#: access/transam/xlogrecovery.c:724 +#: access/transam/xlogrecovery.c:740 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "ファイル\"%s\"ã¯\"%s\"ã«ãƒªãƒãƒ¼ãƒ ã•ã‚Œã¾ã—ãŸã€‚" -#: access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:746 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "ファイル\"%s\"ã®åå‰ã‚’\"%s\"ã«å¤‰æ›´ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m。" -#: access/transam/xlogrecovery.c:784 +#: access/transam/xlogrecovery.c:785 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "REDO LSN %X/%Xã®ãƒãƒƒã‚¯ã‚¢ãƒ—リカãƒãƒªã‚’å†é–‹ã—ã¾ã—ãŸ" + +#: access/transam/xlogrecovery.c:810 #, c-format msgid "could not locate a valid checkpoint record" msgstr "有効ãªãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: access/transam/xlogrecovery.c:808 +#: access/transam/xlogrecovery.c:834 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "è¦æ±‚ã•ã‚ŒãŸã‚¿ã‚¤ãƒ ライン%uã¯ã“ã®ã‚µãƒ¼ãƒãƒ¼ã®å±¥æ´ã‹ã‚‰ã®åå«ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:836 #, 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 "タイムライン%3$uã®æœ€çµ‚ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆã¯%1$X/%2$Xã§ã™ãŒã€è¦æ±‚ã•ã‚ŒãŸã‚¿ã‚¤ãƒ ラインã®å±¥æ´ã®ä¸ã§ã¯ã‚µãƒ¼ãƒãƒ¼ã¯ãã®ã‚¿ã‚¤ãƒ ラインã‹ã‚‰%4$X/%5$Xã§åˆ†å²ã—ã¦ã„ã¾ã™ã€‚" -#: access/transam/xlogrecovery.c:824 +#: access/transam/xlogrecovery.c:850 #, c-format msgid "requested timeline %u does not contain minimum recovery point %X/%X on timeline %u" msgstr "è¦æ±‚ã•ã‚ŒãŸã‚¿ã‚¤ãƒ ライン%1$uã¯ã‚¿ã‚¤ãƒ ライン%4$uã®æœ€å°ãƒªã‚«ãƒãƒªãƒã‚¤ãƒ³ãƒˆ%2$X/%3$Xã‚’å«ã¿ã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:852 +#: access/transam/xlogrecovery.c:878 #, c-format msgid "invalid next transaction ID" msgstr "次ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³IDãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:857 +#: access/transam/xlogrecovery.c:883 #, c-format msgid "invalid redo in checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®ä¸æ£ãªREDO" -#: access/transam/xlogrecovery.c:868 +#: access/transam/xlogrecovery.c:894 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "シャットダウン・ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆã«ãŠã‘ã‚‹ä¸æ£ãªREDOレコード" -#: access/transam/xlogrecovery.c:897 +#: access/transam/xlogrecovery.c:923 #, c-format msgid "database system was not properly shut down; automatic recovery in progress" msgstr "データベースシステムã¯æ£ã—ãシャットダウンã•ã‚Œã¦ã„ã¾ã›ã‚“; 自動リカãƒãƒªã‚’実行ä¸" -#: access/transam/xlogrecovery.c:901 +#: access/transam/xlogrecovery.c:927 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "タイムライン%uã‹ã‚‰ã€ã‚¿ã‚¤ãƒ ライン%uを目標ã¨ã—ã¦ã‚¯ãƒ©ãƒƒã‚·ãƒ¥ãƒªã‚«ãƒãƒªã‚’開始ã—ã¾ã™" -#: access/transam/xlogrecovery.c:944 +#: access/transam/xlogrecovery.c:970 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_labelã«åˆ¶å¾¡ãƒ•ã‚¡ã‚¤ãƒ«ã¨æ•´åˆã—ãªã„データãŒå«ã¾ã‚Œã¾ã™" -#: access/transam/xlogrecovery.c:945 +#: access/transam/xlogrecovery.c:971 #, 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:999 +#: access/transam/xlogrecovery.c:1025 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "リカãƒãƒªã‚³ãƒžãƒ³ãƒ‰ãƒ•ã‚¡ã‚¤ãƒ« \"%s\"ã®ä½¿ç”¨ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:1064 +#: access/transam/xlogrecovery.c:1090 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "スタンãƒã‚¤ãƒ¢ãƒ¼ãƒ‰ã¯ã‚·ãƒ³ã‚°ãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚µãƒ¼ãƒãƒ¼ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:1081 +#: access/transam/xlogrecovery.c:1107 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "primary_conninfo 㨠restore_command ã®ã©ã¡ã‚‰ã‚‚指定ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:1082 +#: access/transam/xlogrecovery.c:1108 #, 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:1090 +#: access/transam/xlogrecovery.c:1116 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "スタンãƒã‚¤ãƒ¢ãƒ¼ãƒ‰ã‚’有効ã«ã—ãªã„å ´åˆã¯ã€restore_command ã®æŒ‡å®šãŒå¿…è¦ã§ã™" -#: access/transam/xlogrecovery.c:1128 +#: access/transam/xlogrecovery.c:1154 #, c-format msgid "recovery target timeline %u does not exist" msgstr "リカãƒãƒªç›®æ¨™ã‚¿ã‚¤ãƒ ライン%uãŒå˜åœ¨ã—ã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:1278 +#: access/transam/xlogrecovery.c:1304 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "èªã¿å–られãŸã‚¿ã‚¤ãƒ ラインIDã¯%uã§ã—ãŸãŒã€%uã§ã‚ã‚‹ã¯ãšã§ã™ã€‚" -#: access/transam/xlogrecovery.c:1660 +#: access/transam/xlogrecovery.c:1686 #, c-format msgid "redo starts at %X/%X" msgstr "REDOã‚’%X/%Xã‹ã‚‰é–‹å§‹ã—ã¾ã™" -#: access/transam/xlogrecovery.c:1673 +#: access/transam/xlogrecovery.c:1699 #, c-format msgid "redo in progress, elapsed time: %ld.%02d s, current LSN: %X/%X" msgstr "REDO進行ä¸ã€çµŒéŽæ™‚é–“ %ld.%02d秒, ç¾åœ¨ã®LSN: %X/%X" -#: access/transam/xlogrecovery.c:1765 +#: access/transam/xlogrecovery.c:1791 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "è¦æ±‚ã•ã‚ŒãŸãƒªã‚«ãƒãƒªåœæ¢ãƒã‚¤ãƒ³ãƒˆã¯ã€ä¸€è²«æ€§ãŒã‚るリカãƒãƒªãƒã‚¤ãƒ³ãƒˆã‚ˆã‚Šå‰ã«ã‚ã‚Šã¾ã™" -#: access/transam/xlogrecovery.c:1797 +#: access/transam/xlogrecovery.c:1823 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "REDOãŒ%X/%Xã§çµ‚了ã—ã¾ã—ãŸã€ã‚·ã‚¹ãƒ†ãƒ 使用状æ³: %s" -#: access/transam/xlogrecovery.c:1803 +#: access/transam/xlogrecovery.c:1829 #, c-format msgid "last completed transaction was at log time %s" msgstr "最後ã«å®Œäº†ã—ãŸãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã®ãƒã‚°æ™‚刻ã¯%sã§ã—ãŸ" -#: access/transam/xlogrecovery.c:1812 +#: access/transam/xlogrecovery.c:1838 #, c-format msgid "redo is not required" msgstr "REDOã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1849 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "指定ã—ãŸãƒªã‚«ãƒãƒªã‚¿ãƒ¼ã‚²ãƒƒãƒˆã«åˆ°é”ã™ã‚‹å‰ã«ãƒªã‚«ãƒãƒªãŒçµ‚了ã—ã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:1998 +#: access/transam/xlogrecovery.c:2024 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "%X/%Xã§%sã«ä¸Šæ›¸ãã•ã‚Œã¦å¤±ã‚ã‚ŒãŸç¶™ç¶šè¡Œã‚’æ£å¸¸ã«ã‚¹ã‚ップã—ã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:2065 +#: access/transam/xlogrecovery.c:2091 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "%2$s ã§æƒ³å®šå¤–ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¨ãƒ³ãƒˆãƒª\"%1$s\"ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:2067 +#: access/transam/xlogrecovery.c:2093 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "Pg_tblspc/ ã®ã™ã¹ã¦ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚¨ãƒ³ãƒˆãƒªã¯ã€ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: access/transam/xlogrecovery.c:2068 +#: access/transam/xlogrecovery.c:2094 #, 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:2142 +#: access/transam/xlogrecovery.c:2146 +#, c-format +msgid "completed backup recovery with redo LSN %X/%X and end LSN %X/%X" +msgstr "REDO LSN%X/%Xã€çµ‚了LSN %X/%Xã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—・リカãƒãƒªãŒå®Œäº†ã—ã¾ã—ãŸ" + +#: access/transam/xlogrecovery.c:2176 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "%X/%X ã§ãƒªã‚«ãƒãƒªã®ä¸€è²«æ€§ãŒç¢ºä¿ã•ã‚Œã¾ã—ãŸ" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2180 +#: access/transam/xlogrecovery.c:2214 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "%X/%Xã«ã‚ã‚‹%sã®WALå†ç”Ÿ" -#: access/transam/xlogrecovery.c:2276 +#: access/transam/xlogrecovery.c:2310 #, c-format msgid "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ã«ãŠã„ã¦æƒ³å®šå¤–ã®å‰å›žã®ã‚¿ã‚¤ãƒ ラインID %u(ç¾åœ¨ã®ã‚¿ã‚¤ãƒ ラインIDã¯%u)ãŒã‚ã‚Šã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:2285 +#: access/transam/xlogrecovery.c:2319 #, c-format msgid "unexpected timeline ID %u (after %u) in checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ã«ãŠã„ã¦æƒ³å®šå¤–ã®ã‚¿ã‚¤ãƒ ラインID %u (%uã®å¾Œ)ãŒã‚ã‚Šã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:2301 +#: access/transam/xlogrecovery.c:2335 #, c-format msgid "unexpected timeline ID %u in checkpoint record, before reaching minimum recovery point %X/%X on timeline %u" msgstr "タイムライン%4$uã®æœ€å°ãƒªã‚«ãƒãƒªãƒã‚¤ãƒ³ãƒˆ%2$X/%3$Xã«é”ã™ã‚‹å‰ã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®æƒ³å®šå¤–ã®ã‚¿ã‚¤ãƒ ラインID%1$u。" -#: access/transam/xlogrecovery.c:2485 access/transam/xlogrecovery.c:2761 +#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 #, c-format msgid "recovery stopping after reaching consistency" msgstr "リカãƒãƒªå‡¦ç†ã¯ä¸€è²«æ€§ç¢ºä¿å¾Œã«åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2506 +#: access/transam/xlogrecovery.c:2540 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "リカãƒãƒªå‡¦ç†ã¯WALä½ç½®(LSN)\"%X/%X\"ã®å‰ã§åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2596 +#: access/transam/xlogrecovery.c:2630 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "リカãƒãƒªå‡¦ç†ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³%uã®ã‚³ãƒŸãƒƒãƒˆã€æ™‚刻%sã®å‰ã«åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2603 +#: access/transam/xlogrecovery.c:2637 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "リカãƒãƒªå‡¦ç†ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³%uã®ã‚¢ãƒœãƒ¼ãƒˆã€æ™‚刻%sã®å‰ã«åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2656 +#: access/transam/xlogrecovery.c:2690 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "リカãƒãƒªå‡¦ç†ã¯å¾©å…ƒãƒã‚¤ãƒ³ãƒˆ\"%s\"ã€æ™‚刻%s ã«åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2674 +#: access/transam/xlogrecovery.c:2708 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "リカãƒãƒªå‡¦ç†ã¯WALä½ç½®(LSN)\"%X/%X\"ã®å¾Œã§åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2741 +#: access/transam/xlogrecovery.c:2775 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "リカãƒãƒªå‡¦ç†ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³%uã®ã‚³ãƒŸãƒƒãƒˆã€æ™‚刻%sã®å¾Œã«åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2749 +#: access/transam/xlogrecovery.c:2783 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "リカãƒãƒªå‡¦ç†ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³%uã®ã‚¢ãƒœãƒ¼ãƒˆã€æ™‚刻%sã®å¾Œã«åœæ¢ã—ã¾ã™" -#: access/transam/xlogrecovery.c:2830 +#: access/transam/xlogrecovery.c:2864 #, c-format msgid "pausing at the end of recovery" msgstr "リカãƒãƒªå®Œäº†ä½ç½®ã§ä¸€æ™‚åœæ¢ã—ã¦ã„ã¾ã™" -#: access/transam/xlogrecovery.c:2831 +#: access/transam/xlogrecovery.c:2865 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "å†é–‹ã™ã‚‹ã«ã¯ pg_wal_replay_resume() を実行ã—ã¦ãã ã•ã„" -#: access/transam/xlogrecovery.c:2834 access/transam/xlogrecovery.c:4644 +#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4678 #, c-format msgid "recovery has paused" msgstr "リカãƒãƒªã¯ä¸€æ™‚åœæ¢ä¸ã§ã™" -#: access/transam/xlogrecovery.c:2835 +#: access/transam/xlogrecovery.c:2869 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "å†é–‹ã™ã‚‹ã«ã¯ pg_xlog_replay_resume() を実行ã—ã¦ãã ã•ã„" -#: access/transam/xlogrecovery.c:3101 +#: access/transam/xlogrecovery.c:3135 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«%2$sã€ã‚ªãƒ•ã‚»ãƒƒãƒˆ%3$uã®ã‚¿ã‚¤ãƒ ラインID%1$uã¯æƒ³å®šå¤–ã§ã™" -#: access/transam/xlogrecovery.c:3306 +#: access/transam/xlogrecovery.c:3340 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "ãƒã‚°ã‚»ã‚°ãƒ¡ãƒ³ãƒˆ%sã€ã‚ªãƒ•ã‚»ãƒƒãƒˆ%uã‚’èªã¿å–ã‚Œã¾ã›ã‚“ã§ã—ãŸ: %m" -#: access/transam/xlogrecovery.c:3312 +#: access/transam/xlogrecovery.c:3346 #, c-format 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:3961 +#: access/transam/xlogrecovery.c:3995 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "制御ファイル内ã®æœ€åˆã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆã¸ã®ãƒªãƒ³ã‚¯ãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:3965 +#: access/transam/xlogrecovery.c:3999 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "backup_labelファイル内ã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆã¸ã®ãƒªãƒ³ã‚¯ãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:3983 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint record" msgstr "最åˆã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:3987 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰ãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:3998 +#: access/transam/xlogrecovery.c:4032 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "プライマリãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®ãƒªã‚½ãƒ¼ã‚¹ãƒžãƒãƒ¼ã‚¸ãƒ£IDãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:4002 +#: access/transam/xlogrecovery.c:4036 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®ãƒªã‚½ãƒ¼ã‚¹ãƒžãƒãƒ¼ã‚¸ãƒ£IDãŒã§ä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:4015 +#: access/transam/xlogrecovery.c:4049 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "最åˆã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®xl_infoãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:4019 +#: access/transam/xlogrecovery.c:4053 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰å†…ã®xl_infoãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:4030 +#: access/transam/xlogrecovery.c:4064 #, c-format msgid "invalid length of primary checkpoint record" msgstr "最åˆã®ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰é•·ãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:4034 +#: access/transam/xlogrecovery.c:4068 #, c-format msgid "invalid length of checkpoint record" msgstr "ãƒã‚§ãƒƒã‚¯ãƒã‚¤ãƒ³ãƒˆãƒ¬ã‚³ãƒ¼ãƒ‰é•·ãŒä¸æ£ã§ã™" -#: access/transam/xlogrecovery.c:4090 +#: access/transam/xlogrecovery.c:4124 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "æ–°ã—ã„タイムライン%uã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚·ã‚¹ãƒ†ãƒ ã®ã‚¿ã‚¤ãƒ ライン%uã®åã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:4104 +#: access/transam/xlogrecovery.c:4138 #, 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:4123 +#: access/transam/xlogrecovery.c:4157 #, c-format msgid "new target timeline is %u" msgstr "æ–°ã—ã„目標タイムラインã¯%uã§ã™" -#: access/transam/xlogrecovery.c:4326 +#: access/transam/xlogrecovery.c:4360 #, c-format msgid "WAL receiver process shutdown requested" msgstr "wal receiverプãƒã‚»ã‚¹ã®ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ãŒè¦æ±‚ã•ã‚Œã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:4389 +#: access/transam/xlogrecovery.c:4423 #, c-format msgid "received promote request" msgstr "æ˜‡æ ¼è¦æ±‚ã‚’å—ä¿¡ã—ã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:4402 +#: access/transam/xlogrecovery.c:4436 #, c-format msgid "promote trigger file found: %s" msgstr "æ˜‡æ ¼ãƒˆãƒªã‚¬ãƒ•ã‚¡ã‚¤ãƒ«ãŒã‚ã‚Šã¾ã™: %s" -#: access/transam/xlogrecovery.c:4410 +#: access/transam/xlogrecovery.c:4444 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "æ˜‡æ ¼ãƒˆãƒªã‚¬ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"ã®statã«å¤±æ•—ã—ã¾ã—ãŸ: %m" -#: access/transam/xlogrecovery.c:4635 +#: access/transam/xlogrecovery.c:4669 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "ä¸å分ãªãƒ‘ラメータè¨å®šã®ãŸã‚ã€ãƒ›ãƒƒãƒˆã‚¹ã‚¿ãƒ³ãƒã‚¤ã‚’使用ã§ãã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:4636 access/transam/xlogrecovery.c:4663 access/transam/xlogrecovery.c:4693 +#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 access/transam/xlogrecovery.c:4727 #, 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:4645 +#: access/transam/xlogrecovery.c:4679 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "リカãƒãƒªã®ä¸€æ™‚åœæ¢ã‚’解除ã™ã‚‹ã¨ã€ã‚µãƒ¼ãƒãƒ¼ã¯ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã—ã¾ã™ã€‚" -#: access/transam/xlogrecovery.c:4646 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "You can then restart the server after making the necessary configuration changes." msgstr "ãã®å¾Œã€å¿…è¦ãªè¨å®šå¤‰æ›´ã‚’è¡Œã£ãŸå¾Œã«ã‚µãƒ¼ãƒãƒ¼ã‚’å†èµ·å‹•ã§ãã¾ã™ã€‚" -#: access/transam/xlogrecovery.c:4657 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "ä¸å分ãªãƒ‘ラメータè¨å®šã®ãŸã‚ã€æ˜‡æ ¼ã§ãã¾ã›ã‚“" -#: access/transam/xlogrecovery.c:4667 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "å¿…è¦ãªè¨å®šå¤‰æ›´ã‚’è¡Œã£ãŸã®ã¡ã€ã‚µãƒ¼ãƒãƒ¼ã‚’å†èµ·å‹•ã—ã¦ãã ã•ã„。" -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4725 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "ä¸å分ãªãƒ‘ラメータè¨å®šå€¤ã®ãŸã‚リカãƒãƒªãŒåœæ¢ã—ã¾ã—ãŸ" -#: access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4731 #, c-format msgid "You can restart the server after making the necessary configuration changes." msgstr "å¿…è¦ãªè¨å®šå¤‰æ›´ã‚’è¡Œã†ã“ã¨ã§ã‚µãƒ¼ãƒãƒ¼ã‚’å†èµ·å‹•ã§ãã¾ã™ã€‚" @@ -3535,14 +3539,14 @@ msgstr "デフォルト権é™ã¯åˆ—ã«ã¯è¨å®šã§ãã¾ã›ã‚“" msgid "cannot use IN SCHEMA clause when using GRANT/REVOKE ON SCHEMAS" msgstr "GRANT/REVOKE ON SCHEMAS を使ã£ã¦ã„る時ã«ã¯ IN SCHEMA å¥ã¯æŒ‡å®šã§ãã¾ã›ã‚“" -#: catalog/aclchk.c:1587 catalog/catalog.c:627 catalog/objectaddress.c:1543 catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 commands/sequence.c:1663 commands/tablecmds.c:7271 commands/tablecmds.c:7427 commands/tablecmds.c:7477 commands/tablecmds.c:7551 commands/tablecmds.c:7621 commands/tablecmds.c:7733 commands/tablecmds.c:7827 commands/tablecmds.c:7886 commands/tablecmds.c:7975 commands/tablecmds.c:8005 commands/tablecmds.c:8133 -#: commands/tablecmds.c:8215 commands/tablecmds.c:8371 commands/tablecmds.c:8489 commands/tablecmds.c:12218 commands/tablecmds.c:12399 commands/tablecmds.c:12559 commands/tablecmds.c:13723 commands/tablecmds.c:16292 commands/trigger.c:954 parser/analyze.c:2506 parser/parse_relation.c:725 parser/parse_target.c:1063 parser/parse_type.c:144 parser/parse_utilcmd.c:3435 parser/parse_utilcmd.c:3471 parser/parse_utilcmd.c:3513 utils/adt/acl.c:2869 +#: catalog/aclchk.c:1587 catalog/catalog.c:627 catalog/objectaddress.c:1543 catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 commands/sequence.c:1663 commands/tablecmds.c:7275 commands/tablecmds.c:7431 commands/tablecmds.c:7481 commands/tablecmds.c:7555 commands/tablecmds.c:7625 commands/tablecmds.c:7737 commands/tablecmds.c:7831 commands/tablecmds.c:7890 commands/tablecmds.c:7979 commands/tablecmds.c:8009 commands/tablecmds.c:8137 +#: commands/tablecmds.c:8219 commands/tablecmds.c:8375 commands/tablecmds.c:8493 commands/tablecmds.c:12222 commands/tablecmds.c:12403 commands/tablecmds.c:12563 commands/tablecmds.c:13727 commands/tablecmds.c:16296 commands/trigger.c:954 parser/analyze.c:2506 parser/parse_relation.c:725 parser/parse_target.c:1063 parser/parse_type.c:144 parser/parse_utilcmd.c:3435 parser/parse_utilcmd.c:3471 parser/parse_utilcmd.c:3513 utils/adt/acl.c:2869 #: utils/adt/ruleutils.c:2830 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: catalog/aclchk.c:1850 catalog/objectaddress.c:1383 commands/sequence.c:1172 commands/tablecmds.c:253 commands/tablecmds.c:17156 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 +#: catalog/aclchk.c:1850 catalog/objectaddress.c:1383 commands/sequence.c:1172 commands/tablecmds.c:253 commands/tablecmds.c:17168 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 #, c-format msgid "\"%s\" is not a sequence" msgstr "\"%s\"ã¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" @@ -4131,8 +4135,8 @@ msgstr[0] "" msgid "cannot drop %s because other objects depend on it" msgstr "ä»–ã®ã‚ªãƒ–ジェクトãŒä¾å˜ã—ã¦ã„ã‚‹ãŸã‚%sを削除ã§ãã¾ã›ã‚“" -#: catalog/dependency.c:1194 catalog/dependency.c:1201 catalog/dependency.c:1212 commands/tablecmds.c:1328 commands/tablecmds.c:14365 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:1413 utils/misc/guc.c:7402 utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11865 utils/misc/guc.c:11899 utils/misc/guc.c:11933 utils/misc/guc.c:11976 -#: utils/misc/guc.c:12018 +#: catalog/dependency.c:1194 catalog/dependency.c:1201 catalog/dependency.c:1212 commands/tablecmds.c:1328 commands/tablecmds.c:14369 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:7402 utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11880 utils/misc/guc.c:11914 utils/misc/guc.c:11948 utils/misc/guc.c:11991 +#: utils/misc/guc.c:12033 #, c-format msgid "%s" msgstr "%s" @@ -4173,12 +4177,12 @@ msgstr "\"%s.%s\"を作æˆã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“" msgid "System catalog modifications are currently disallowed." msgstr "システムカタãƒã‚°ã®æ›´æ–°ã¯ç¾åœ¨ç¦æ¢ã•ã‚Œã¦ã„ã¾ã™" -#: catalog/heap.c:466 commands/tablecmds.c:2348 commands/tablecmds.c:2985 commands/tablecmds.c:6861 +#: catalog/heap.c:466 commands/tablecmds.c:2348 commands/tablecmds.c:2985 commands/tablecmds.c:6865 #, c-format msgid "tables can have at most %d columns" msgstr "テーブルã¯æœ€å¤§ã§%d列ã¾ã§ã—ã‹æŒã¦ã¾ã›ã‚“" -#: catalog/heap.c:484 commands/tablecmds.c:7161 +#: catalog/heap.c:484 commands/tablecmds.c:7165 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "列å\"%s\"ã¯ã‚·ã‚¹ãƒ†ãƒ 用ã®åˆ—åã«ä½¿ã‚ã‚Œã¦ã„ã¾ã™" @@ -4250,97 +4254,97 @@ msgstr "ãƒã‚¤ãƒŠãƒªã‚¢ãƒƒãƒ—グレードモードä¸ã«relfilenodeã®å€¤ãŒè¨å msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"ã« NO INHERIT 制約ã¯è¿½åŠ ã§ãã¾ã›ã‚“" -#: catalog/heap.c:2401 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "検査制約\"%s\"ã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™" -#: catalog/heap.c:2571 catalog/index.c:889 catalog/pg_constraint.c:689 commands/tablecmds.c:8863 +#: catalog/heap.c:2572 catalog/index.c:889 catalog/pg_constraint.c:689 commands/tablecmds.c:8867 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "ã™ã§ã«åˆ¶ç´„\"%s\"ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã«å˜åœ¨ã—ã¾ã™" -#: catalog/heap.c:2578 +#: catalog/heap.c:2579 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "制約\"%s\"ã¯ã€ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"上ã®ç¶™æ‰¿ã•ã‚Œã¦ã„ãªã„制約ã¨ç«¶åˆã—ã¾ã™" -#: catalog/heap.c:2589 +#: catalog/heap.c:2590 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "制約\"%s\"ã¯ã€ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"上ã®ç¶™æ‰¿ã•ã‚ŒãŸåˆ¶ç´„ã¨ç«¶åˆã—ã¾ã™" -#: catalog/heap.c:2599 +#: catalog/heap.c:2600 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "制約\"%s\"ã¯ã€ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"上㮠NOT VALID 制約ã¨ç«¶åˆã—ã¾ã™" -#: catalog/heap.c:2604 +#: catalog/heap.c:2605 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "継承ã•ã‚ŒãŸå®šç¾©ã«ã‚ˆã‚Šåˆ¶ç´„\"%s\"をマージã—ã¦ã„ã¾ã™" -#: catalog/heap.c:2709 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "生æˆã‚«ãƒ©ãƒ \"%s\"ã¯ã‚«ãƒ©ãƒ 生æˆå¼ä¸ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: catalog/heap.c:2711 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "生æˆã‚«ãƒ©ãƒ ã¯ä»–ã®ç”Ÿæˆã‚«ãƒ©ãƒ ã‚’å‚ç…§ã§ãã¾ã›ã‚“。" -#: catalog/heap.c:2717 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "列生æˆå¼å†…ã§ã¯è¡Œå…¨ä½“å‚ç…§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: catalog/heap.c:2718 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "ã“ã‚Œã¯ç”Ÿæˆåˆ—を自身ã®å€¤ã«ä¾å˜ã•ã›ã‚‹ã“ã¨ã«ã¤ãªãŒã‚Šã¾ã™ã€‚" -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "生æˆå¼ã¯ä¸å¤‰ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1290 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1290 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "列\"%s\"ã®åž‹ã¯%sã§ã™ãŒã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå¼ã®åž‹ã¯%sã§ã™" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2730 parser/parse_target.c:594 parser/parse_target.c:882 parser/parse_target.c:892 rewrite/rewriteHandler.c:1295 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2730 parser/parse_target.c:594 parser/parse_target.c:882 parser/parse_target.c:892 rewrite/rewriteHandler.c:1295 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "å¼ã‚’書ãæ›ãˆã‚‹ã‹ã‚ャストã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "検査制約ã§ã¯ãƒ†ãƒ¼ãƒ–ル\"%s\"ã®ã¿ã‚’å‚ç…§ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™" -#: catalog/heap.c:3149 +#: catalog/heap.c:3152 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "ON COMMITã¨å¤–部ã‚ーã®çµ„ã¿åˆã‚ã›ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: catalog/heap.c:3150 +#: catalog/heap.c:3153 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "テーブル\"%s\"ã¯\"%s\"ã‚’å‚ç…§ã—ã¾ã™ã€‚ã—ã‹ã—ã€ã“れらã®ON COMMITè¨å®šã¯åŒä¸€ã§ã¯ã‚ã‚Šã¾ã›ã‚“。" -#: catalog/heap.c:3155 +#: catalog/heap.c:3158 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "外部ã‚ー制約ã§å‚ç…§ã•ã‚Œã¦ã„るテーブルを削除ã§ãã¾ã›ã‚“" -#: catalog/heap.c:3156 +#: catalog/heap.c:3159 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "テーブル\"%s\"ã¯\"%s\"ã‚’å‚ç…§ã—ã¾ã™ã€‚" -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "åŒæ™‚ã«ãƒ†ãƒ¼ãƒ–ル\"%s\"ãŒtruncateã•ã‚Œã¾ã—ãŸã€‚TRUNCATE ... CASCADEを使用ã—ã¦ãã ã•ã„。" @@ -4405,32 +4409,32 @@ msgstr "ãƒã‚¤ãƒŠãƒªã‚¢ãƒƒãƒ—グレードモードä¸ã«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®rel msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLYã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å†…ã§æœ€åˆã®æ“作ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: catalog/index.c:3637 +#: catalog/index.c:3663 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚テーブルã¯ã‚¤ãƒ³ãƒ‡ã‚¯ã‚¹å†æ§‹ç¯‰ã§ãã¾ã›ã‚“" -#: catalog/index.c:3648 commands/indexcmds.c:3560 +#: catalog/index.c:3674 commands/indexcmds.c:3536 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "TOASTテーブルã®ç„¡åŠ¹ãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®å†ä½œæˆã¯ã§ãã¾ã›ã‚“" -#: catalog/index.c:3664 commands/indexcmds.c:3440 commands/indexcmds.c:3584 commands/tablecmds.c:3305 +#: catalog/index.c:3690 commands/indexcmds.c:3416 commands/indexcmds.c:3560 commands/tablecmds.c:3305 #, c-format msgid "cannot move system relation \"%s\"" msgstr "システムリレーション\"%s\"を移動ã§ãã¾ã›ã‚“" -#: catalog/index.c:3808 +#: catalog/index.c:3834 #, c-format msgid "index \"%s\" was reindexed" msgstr "インデックス\"%s\"ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å†æ§‹ç¯‰ãŒå®Œäº†ã—ã¾ã—ãŸ" -#: catalog/index.c:3945 +#: catalog/index.c:3971 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "TOASTテーブルã®ç„¡åŠ¹ãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ \"%s.%s\"ã®å†ä½œæˆã¯ã§ãã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™ " -#: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 commands/trigger.c:5812 +#: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 commands/trigger.c:5830 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "データベース間ã®å‚ç…§ã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“: \"%s.%s.%s\"" @@ -4560,27 +4564,27 @@ msgstr "リカãƒãƒªä¸ã¯ä¸€æ™‚テーブルを作æˆã§ãã¾ã›ã‚“" msgid "cannot create temporary tables during a parallel operation" msgstr "並行処ç†ä¸ã¯ä¸€æ™‚テーブルを作æˆã§ãã¾ã›ã‚“" -#: catalog/namespace.c:4338 commands/tablespace.c:1236 commands/variable.c:64 utils/misc/guc.c:12050 utils/misc/guc.c:12152 +#: catalog/namespace.c:4338 commands/tablespace.c:1236 commands/variable.c:64 utils/misc/guc.c:12065 utils/misc/guc.c:12167 #, 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:2184 commands/tablecmds.c:12335 +#: catalog/objectaddress.c:1391 commands/policy.c:96 commands/policy.c:376 commands/tablecmds.c:247 commands/tablecmds.c:289 commands/tablecmds.c:2184 commands/tablecmds.c:12339 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ルã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: catalog/objectaddress.c:1398 commands/tablecmds.c:259 commands/tablecmds.c:17161 commands/view.c:119 +#: catalog/objectaddress.c:1398 commands/tablecmds.c:259 commands/tablecmds.c:17173 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:17166 +#: catalog/objectaddress.c:1405 commands/matview.c:186 commands/tablecmds.c:265 commands/tablecmds.c:17178 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\"ã¯å®Ÿä½“化ビューã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: catalog/objectaddress.c:1412 commands/tablecmds.c:283 commands/tablecmds.c:17171 +#: catalog/objectaddress.c:1412 commands/tablecmds.c:283 commands/tablecmds.c:17183 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\"ã¯å¤–部テーブルã§ã¯ã‚ã‚Šã¾ã›ã‚“" @@ -5327,7 +5331,7 @@ msgstr "パーティション\"%s\"ã‚’å–り外ã›ã¾ã›ã‚“" msgid "The partition is being detached concurrently or has an unfinished detach." msgstr "ã“ã®ãƒ‘ーティションã¯ä»Šç¾åœ¨å–り外ã—ä¸ã§ã‚ã‚‹ã‹å–り外ã—処ç†ãŒæœªå®Œäº†ã®çŠ¶æ…‹ã§ã™ã€‚" -#: catalog/pg_inherits.c:596 commands/tablecmds.c:4488 commands/tablecmds.c:15481 +#: catalog/pg_inherits.c:596 commands/tablecmds.c:4488 commands/tablecmds.c:15485 #, c-format msgid "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending detach operation." msgstr "ALTER TABLE ... DETACH PARTITION ... FINALIZE を実行ã—ã¦ä¿ç•™ä¸ã®å–り外ã—処ç†ã‚’完了ã•ã›ã¦ãã ã•ã„。" @@ -5999,7 +6003,7 @@ msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚テーブルをクラスタ化ã§ãã¾ã› msgid "there is no previously clustered index for table \"%s\"" msgstr "テーブル\"%s\"ã«ã¯äº‹å‰ã«ã‚¯ãƒ©ã‚¹ã‚¿åŒ–ã•ã‚ŒãŸã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/cluster.c:190 commands/tablecmds.c:14179 commands/tablecmds.c:16060 +#: commands/cluster.c:190 commands/tablecmds.c:14183 commands/tablecmds.c:16064 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "テーブル\"%2$s\"ã«ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\"%1$s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" @@ -6014,7 +6018,7 @@ msgstr "共有カタãƒã‚°ã‚’クラスタ化ã§ãã¾ã›ã‚“" msgid "cannot vacuum temporary tables of other sessions" msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚テーブルã«å¯¾ã—ã¦ã¯VACUUMを実行ã§ãã¾ã›ã‚“" -#: commands/cluster.c:511 commands/tablecmds.c:16070 +#: commands/cluster.c:511 commands/tablecmds.c:16074 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ル\"%s\"ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" @@ -6073,7 +6077,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:7808 replication/pgoutput/pgoutput.c:311 replication/pgoutput/pgoutput.c:334 replication/pgoutput/pgoutput.c:348 replication/pgoutput/pgoutput.c:358 replication/pgoutput/pgoutput.c:368 replication/pgoutput/pgoutput.c:378 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:7812 replication/pgoutput/pgoutput.c:311 replication/pgoutput/pgoutput.c:334 replication/pgoutput/pgoutput.c:348 replication/pgoutput/pgoutput.c:358 replication/pgoutput/pgoutput.c:368 replication/pgoutput/pgoutput.c:378 replication/walsender.c:1001 replication/walsender.c:1023 replication/walsender.c:1033 #, c-format msgid "conflicting or redundant options" msgstr "競åˆã™ã‚‹ã‚ªãƒ—ションã€ã‚ã‚‹ã„ã¯ä½™è¨ˆãªã‚ªãƒ—ションãŒã‚ã‚Šã¾ã™" @@ -6155,7 +6159,7 @@ msgstr "ãƒã‚±ãƒ¼ãƒ«å\"%s\"ã‚’ã€è¨€èªžã‚¿ã‚°ã«å¤‰æ›ã§ãã¾ã›ã‚“ã§ã—㟠msgid "must be superuser to import system collations" msgstr "システム照åˆé †åºã‚’インãƒãƒ¼ãƒˆã™ã‚‹ã«ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/collationcmds.c:618 commands/copyfrom.c:1499 commands/copyto.c:679 libpq/be-secure-common.c:81 +#: commands/collationcmds.c:618 commands/copyfrom.c:1509 commands/copyto.c:679 libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" msgstr "コマンド\"%s\"を実行ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" @@ -6390,7 +6394,7 @@ msgstr "列\"%s\"ã¯ç”Ÿæˆã‚«ãƒ©ãƒ ã§ã™" msgid "Generated columns cannot be used in COPY." msgstr "生æˆã‚«ãƒ©ãƒ ã¯COPYã§ã¯ä½¿ãˆã¾ã›ã‚“。" -#: commands/copy.c:784 commands/indexcmds.c:1850 commands/statscmds.c:243 commands/tablecmds.c:2379 commands/tablecmds.c:3035 commands/tablecmds.c:3529 parser/parse_relation.c:3660 parser/parse_relation.c:3680 utils/adt/tsvector_op.c:2688 +#: commands/copy.c:784 commands/indexcmds.c:1826 commands/statscmds.c:243 commands/tablecmds.c:2379 commands/tablecmds.c:3035 commands/tablecmds.c:3529 parser/parse_relation.c:3660 parser/parse_relation.c:3680 utils/adt/tsvector_op.c:2688 #, c-format msgid "column \"%s\" does not exist" msgstr "列\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" @@ -6465,32 +6469,37 @@ msgstr "先行ã™ã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç†ã®ãŸã‚COPY FREEZEを実行ã msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "ã“ã®ãƒ†ãƒ¼ãƒ–ルã¯ç¾åœ¨ã®ã‚µãƒ–トランザクションã«ãŠã„ã¦ä½œæˆã¾ãŸã¯åˆ‡ã‚Šè©°ã‚ã•ã‚Œã¦ã„ãªã„ãŸã‚ã€COPY FREEZEを実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: commands/copyfrom.c:1267 commands/copyto.c:611 +#: commands/copyfrom.c:1270 commands/copyto.c:611 #, c-format msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" msgstr "FORCE_NOT_NULL指定ã•ã‚ŒãŸåˆ—\"%s\"ã¯COPYã§å‚ç…§ã•ã‚Œã¾ã›ã‚“" -#: commands/copyfrom.c:1290 commands/copyto.c:634 +#: commands/copyfrom.c:1293 commands/copyto.c:634 #, c-format msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "FORCE_NULL指定ã•ã‚ŒãŸåˆ—\"%s\"ã¯COPYã§å‚ç…§ã•ã‚Œã¾ã›ã‚“" -#: commands/copyfrom.c:1518 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#, c-format +msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" +msgstr "符å·åŒ–æ–¹å¼\"%s\"ã‹ã‚‰\"%s\"用ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå¤‰æ›é–¢æ•°ã¯å˜åœ¨ã—ã¾ã›ã‚“" + +#: commands/copyfrom.c:1528 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY FROMã«ã‚ˆã£ã¦PostgreSQLサーãƒãƒ¼ãƒ—ãƒã‚»ã‚¹ã¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚’èªã¿è¾¼ã¿ã¾ã™ã€‚psqlã® \\copy ã®ã‚ˆã†ãªã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå´ã®ä»•çµ„ã¿ãŒå¿…è¦ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“" -#: commands/copyfrom.c:1531 commands/copyto.c:731 +#: commands/copyfrom.c:1541 commands/copyto.c:731 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\"ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã™" -#: commands/copyfrom.c:1599 commands/copyto.c:301 libpq/be-secure-common.c:105 +#: commands/copyfrom.c:1609 commands/copyto.c:301 libpq/be-secure-common.c:105 #, c-format msgid "could not close pipe to external command: %m" msgstr "外部コマンドã«å¯¾ã™ã‚‹ãƒ‘イプをクãƒãƒ¼ã‚ºã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: commands/copyfrom.c:1614 commands/copyto.c:306 +#: commands/copyfrom.c:1624 commands/copyto.c:306 #, c-format msgid "program \"%s\" failed" msgstr "プãƒã‚°ãƒ©ãƒ \"%s\"ã®å®Ÿè¡Œã«å¤±æ•—ã—ã¾ã—ãŸ" @@ -7083,7 +7092,7 @@ msgid "There is %d other session using the database." msgid_plural "There are %d other sessions using the database." msgstr[0] "ä»–ã«ã“ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’使ã£ã¦ã„ã‚‹ %d 個ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ãŒã‚ã‚Šã¾ã™ã€‚" -#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3848 +#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3847 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -7144,7 +7153,7 @@ msgstr "\"%s\"ã¯é›†ç´„関数ã§ã™" msgid "Use DROP AGGREGATE to drop aggregate functions." msgstr "集約関数を削除ã™ã‚‹ã«ã¯DROP AGGREGATEを使用ã—ã¦ãã ã•ã„" -#: commands/dropcmds.c:158 commands/sequence.c:475 commands/tablecmds.c:3613 commands/tablecmds.c:3771 commands/tablecmds.c:3823 commands/tablecmds.c:16487 tcop/utility.c:1332 +#: commands/dropcmds.c:158 commands/sequence.c:475 commands/tablecmds.c:3613 commands/tablecmds.c:3771 commands/tablecmds.c:3823 commands/tablecmds.c:16491 tcop/utility.c:1332 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "リレーション\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™" @@ -8181,212 +8190,212 @@ msgstr "パーティションã‚ー定義ã§ã¯ %s 制約ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã msgid "%s constraints cannot be used when partition keys include expressions." msgstr "%s 制約ã¯ãƒ‘ーティションã‚ーãŒå¼ã‚’å«ã‚€å ´åˆã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/indexcmds.c:1037 +#: commands/indexcmds.c:1040 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "パーティション親テーブル上ã®ãƒ¦ãƒ‹ãƒ¼ã‚¯åˆ¶ç´„ã¯ã™ã¹ã¦ã®ãƒ‘ーティショニング列をå«ã¾ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: commands/indexcmds.c:1038 +#: commands/indexcmds.c:1041 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "テーブル\"%2$s\"上ã®%1$s制約ã«ãƒ‘ーティションã‚ーã®ä¸€éƒ¨ã§ã‚る列\"%3$s\"ãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“。" -#: commands/indexcmds.c:1057 commands/indexcmds.c:1076 +#: commands/indexcmds.c:1060 commands/indexcmds.c:1079 #, c-format msgid "index creation on system columns is not supported" msgstr "システム列ã¸ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ä½œæˆã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: commands/indexcmds.c:1276 tcop/utility.c:1518 +#: commands/indexcmds.c:1279 tcop/utility.c:1518 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"ã«ã¯ãƒ¦ãƒ‹ãƒ¼ã‚¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’構築ã§ãã¾ã›ã‚“" -#: commands/indexcmds.c:1278 tcop/utility.c:1520 +#: commands/indexcmds.c:1281 tcop/utility.c:1520 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "テーブル\"%s\"ã¯å¤–部テーブルをåテーブルã¨ã—ã¦å«ã‚“ã§ã„ã¾ã™" -#: commands/indexcmds.c:1767 +#: commands/indexcmds.c:1743 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "インデックスã®è¿°éƒ¨ã®é–¢æ•°ã¯IMMUTABLEマークãŒå¿…è¦ã§ã™" -#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:2529 parser/parse_utilcmd.c:2664 +#: commands/indexcmds.c:1821 parser/parse_utilcmd.c:2529 parser/parse_utilcmd.c:2664 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "ã‚ーã¨ã—ã¦æŒ‡åã•ã‚ŒãŸåˆ—\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: commands/indexcmds.c:1869 parser/parse_utilcmd.c:1826 +#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:1826 #, c-format msgid "expressions are not supported in included columns" msgstr "包å«åˆ—ã§ã¯å¼ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: commands/indexcmds.c:1910 +#: commands/indexcmds.c:1886 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "å¼ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®é–¢æ•°ã¯IMMUTABLEマークãŒå¿…è¦ã§ã™" -#: commands/indexcmds.c:1925 +#: commands/indexcmds.c:1901 #, c-format msgid "including column does not support a collation" msgstr "包å«åˆ—ã¯ç…§åˆé †åºã‚’サãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: commands/indexcmds.c:1929 +#: commands/indexcmds.c:1905 #, c-format msgid "including column does not support an operator class" msgstr "包å«åˆ—ã¯æ¼”ç®—åクラスをサãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: commands/indexcmds.c:1933 +#: commands/indexcmds.c:1909 #, c-format msgid "including column does not support ASC/DESC options" msgstr "包å«åˆ—㯠ASC/DESC オプションをサãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: commands/indexcmds.c:1937 +#: commands/indexcmds.c:1913 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "包å«åˆ—㯠NULLS FIRST/LAST オプションをサãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: commands/indexcmds.c:1978 +#: commands/indexcmds.c:1954 #, c-format msgid "could not determine which collation to use for index expression" msgstr "インデックスå¼ã§ä½¿ç”¨ã™ã‚‹ç…§åˆé †åºã‚’特定ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: commands/indexcmds.c:1986 commands/tablecmds.c:17502 commands/typecmds.c:807 parser/parse_expr.c:2690 parser/parse_type.c:570 parser/parse_utilcmd.c:3796 utils/adt/misc.c:601 +#: commands/indexcmds.c:1962 commands/tablecmds.c:17516 commands/typecmds.c:807 parser/parse_expr.c:2690 parser/parse_type.c:570 parser/parse_utilcmd.c:3796 utils/adt/misc.c:601 #, c-format msgid "collations are not supported by type %s" msgstr "%s åž‹ã§ã¯ç…§åˆé †åºã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: commands/indexcmds.c:2051 +#: commands/indexcmds.c:2027 #, c-format msgid "operator %s is not commutative" msgstr "演算å %s ã¯å¯æ›ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/indexcmds.c:2053 +#: commands/indexcmds.c:2029 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "排除制約ã§ä½¿ãˆã‚‹ã®ã¯å¯æ›æ¼”ç®—åã ã‘ã§ã™" -#: commands/indexcmds.c:2079 +#: commands/indexcmds.c:2055 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "演算å%sã¯æ¼”ç®—åæ—\"%s\"ã®ãƒ¡ãƒ³ãƒãƒ¼ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/indexcmds.c:2082 +#: commands/indexcmds.c:2058 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "ã“ã®æŽ’除ã«ä½¿ç”¨ã™ã‚‹æ¼”ç®—åã¯ã“ã®åˆ¶ç´„ã«ä½¿ç”¨ã™ã‚‹ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹æ¼”ç®—åã«é–¢é€£ä»˜ã‘られã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: commands/indexcmds.c:2117 +#: commands/indexcmds.c:2093 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "アクセスメソッド\"%s\"ã¯ASC/DESCオプションをサãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: commands/indexcmds.c:2122 +#: commands/indexcmds.c:2098 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "アクセスメソッド\"%s\"ã¯NULLS FIRST/LASTオプションをサãƒãƒ¼ãƒˆã—ã¾ã›ã‚“" -#: commands/indexcmds.c:2168 commands/tablecmds.c:17527 commands/tablecmds.c:17533 commands/typecmds.c:2302 +#: commands/indexcmds.c:2144 commands/tablecmds.c:17541 commands/tablecmds.c:17547 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"ã«ã¯ãƒ‡ãƒ¼ã‚¿åž‹%1$s用ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ¼”ç®—åクラスãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/indexcmds.c:2170 +#: commands/indexcmds.c:2146 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "ã“ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®æ¼”ç®—åクラスを指定ã™ã‚‹ã‹ã€ã‚ã‚‹ã„ã¯ã“ã®ãƒ‡ãƒ¼ã‚¿åž‹ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆæ¼”ç®—åクラスを定義ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" -#: commands/indexcmds.c:2199 commands/indexcmds.c:2207 commands/opclasscmds.c:205 +#: commands/indexcmds.c:2175 commands/indexcmds.c:2183 commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "アクセスメソッド\"%2$s\"用ã®æ¼”ç®—åクラス\"%1$s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: commands/indexcmds.c:2221 commands/typecmds.c:2290 +#: commands/indexcmds.c:2197 commands/typecmds.c:2290 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "演算åクラス\"%s\"ã¯ãƒ‡ãƒ¼ã‚¿åž‹%sã‚’å—ã‘付ã‘ã¾ã›ã‚“" -#: commands/indexcmds.c:2311 +#: commands/indexcmds.c:2287 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "データ型%sã«ã¯è¤‡æ•°ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®æ¼”ç®—åクラスãŒã‚ã‚Šã¾ã™" -#: commands/indexcmds.c:2639 +#: commands/indexcmds.c:2615 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "èªè˜ã§ããªã„REINDEXã®ã‚ªãƒ—ション \"%s\"" -#: commands/indexcmds.c:2863 +#: commands/indexcmds.c:2839 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "テーブル\"%s\"ã«ã¯ä¸¦è¡Œã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å†ä½œæˆãŒå¯èƒ½ãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/indexcmds.c:2877 +#: commands/indexcmds.c:2853 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "テーブル\"%s\"ã«ã¯å†æ§‹ç¯‰ã™ã¹ãインデックスã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/indexcmds.c:2917 commands/indexcmds.c:3421 commands/indexcmds.c:3549 +#: commands/indexcmds.c:2893 commands/indexcmds.c:3397 commands/indexcmds.c:3525 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "システムカタãƒã‚°ã§ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®ä¸¦è¡Œå†æ§‹ç¯‰ã¯ã§ãã¾ã›ã‚“" -#: commands/indexcmds.c:2940 +#: commands/indexcmds.c:2916 #, c-format msgid "can only reindex the currently open database" msgstr "ç¾åœ¨ã‚ªãƒ¼ãƒ—ンã—ã¦ã„るデータベースã®ã¿ã‚’インデックスå†æ§‹ç¯‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™" -#: commands/indexcmds.c:3028 +#: commands/indexcmds.c:3004 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "システムカタãƒã‚°ã§ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®ä¸¦è¡Œå†æ§‹ç¯‰ã¯ã§ãã¾ã›ã‚“ã€å…¨ã¦ã‚¹ã‚ップã—ã¾ã™" -#: commands/indexcmds.c:3061 +#: commands/indexcmds.c:3037 #, c-format msgid "cannot move system relations, skipping all" msgstr "システムリレーションã¯ç§»å‹•ã§ãã¾ã›ã‚“ã€ã™ã¹ã¦ã‚¹ã‚ップã—ã¾ã™" -#: commands/indexcmds.c:3107 +#: commands/indexcmds.c:3083 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "パーティションテーブル\"%s.%s\"ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å†æ§‹ç¯‰ä¸" -#: commands/indexcmds.c:3110 +#: commands/indexcmds.c:3086 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "パーティションインデックス\"%s.%s\"ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å†æ§‹ç¯‰ä¸" -#: commands/indexcmds.c:3301 commands/indexcmds.c:4157 +#: commands/indexcmds.c:3277 commands/indexcmds.c:4133 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "テーブル\"%s.%s\"ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å†æ§‹ç¯‰ãŒå®Œäº†ã—ã¾ã—ãŸ" -#: commands/indexcmds.c:3453 commands/indexcmds.c:3505 +#: commands/indexcmds.c:3429 commands/indexcmds.c:3481 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "無効ãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ \"%s.%s\"ã®ä¸¦è¡Œå†æ§‹ç¯‰ã¯ã§ãã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™ " -#: commands/indexcmds.c:3459 +#: commands/indexcmds.c:3435 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "排他制約インデックス\"%s.%s\"を並行å†æ§‹ç¯‰ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™ " -#: commands/indexcmds.c:3614 +#: commands/indexcmds.c:3590 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "ã“ã®ã‚¿ã‚¤ãƒ—ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ä¸¦åˆ—å†æ§‹ç¯‰ã¯ã§ãã¾ã›ã‚“" -#: commands/indexcmds.c:3635 +#: commands/indexcmds.c:3611 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "テーブルスペース\"%s\"ã¸ã®éžå…±æœ‰ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®ç§»å‹•ã¯ã§ãã¾ã›ã‚“" -#: commands/indexcmds.c:4138 commands/indexcmds.c:4150 +#: commands/indexcmds.c:4114 commands/indexcmds.c:4126 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr " インデックス\"%s.%s\"ã®å†æ§‹ç¯‰ãŒå®Œäº†ã—ã¾ã—㟠" -#: commands/indexcmds.c:4140 commands/indexcmds.c:4159 +#: commands/indexcmds.c:4116 commands/indexcmds.c:4135 #, c-format msgid "%s." msgstr "%s。" @@ -8696,7 +8705,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:1609 commands/tablecmds.c:2197 commands/tablecmds.c:3423 commands/tablecmds.c:6312 commands/tablecmds.c:9144 commands/tablecmds.c:17082 commands/tablecmds.c:17117 commands/trigger.c:328 commands/trigger.c:1378 commands/trigger.c:1488 rewrite/rewriteDefine.c:278 rewrite/rewriteDefine.c:957 rewrite/rewriteRemove.c:80 +#: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 commands/tablecmds.c:1609 commands/tablecmds.c:2197 commands/tablecmds.c:3423 commands/tablecmds.c:6312 commands/tablecmds.c:9148 commands/tablecmds.c:17094 commands/tablecmds.c:17129 commands/trigger.c:328 commands/trigger.c:1378 commands/trigger.c:1488 rewrite/rewriteDefine.c:278 rewrite/rewriteDefine.c:957 rewrite/rewriteRemove.c:80 #, c-format msgid "permission denied: \"%s\" is a system catalog" msgstr "権é™ãŒã‚ã‚Šã¾ã›ã‚“: \"%s\"ã¯ã‚·ã‚¹ãƒ†ãƒ ã‚«ã‚¿ãƒã‚°ã§ã™" @@ -8791,7 +8800,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:1651 +#: commands/publicationcmds.c:130 postmaster/postmaster.c:1222 postmaster/postmaster.c:1321 utils/init/miscinit.c:1659 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "パラメータ\"%s\"ã®ãƒªã‚¹ãƒˆæ§‹æ–‡ãŒä¸æ£ã§ã™" @@ -9131,7 +9140,7 @@ msgstr "シーケンスã¯é–¢é€£ã™ã‚‹ãƒ†ãƒ¼ãƒ–ルã¨åŒã˜ã‚¹ã‚ーマã§ãªã‘ msgid "cannot change ownership of identity sequence" msgstr "è˜åˆ¥ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®æ‰€æœ‰è€…ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/sequence.c:1679 commands/tablecmds.c:13870 commands/tablecmds.c:16507 +#: commands/sequence.c:1679 commands/tablecmds.c:13874 commands/tablecmds.c:16511 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "シーケンス\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ル\"%s\"ã«ãƒªãƒ³ã‚¯ã•ã‚Œã¦ã„ã¾ã™" @@ -9201,12 +9210,12 @@ msgstr "å®šå½¢æƒ…å ±å®šç¾©ä¸ã®åˆ—åãŒé‡è¤‡ã—ã¦ã„ã¾ã™" msgid "duplicate expression in statistics definition" msgstr "çµ±è¨ˆæƒ…å ±å®šç¾©å†…ã«é‡è¤‡ã—ãŸå¼" -#: commands/statscmds.c:620 commands/tablecmds.c:8112 +#: commands/statscmds.c:620 commands/tablecmds.c:8116 #, c-format msgid "statistics target %d is too low" msgstr "çµ±è¨ˆæƒ…å ±ç›®æ¨™%dã¯å°ã•ã™ãŽã¾ã™" -#: commands/statscmds.c:628 commands/tablecmds.c:8120 +#: commands/statscmds.c:628 commands/tablecmds.c:8124 #, c-format msgid "lowering statistics target to %d" msgstr "çµ±è¨ˆæƒ…å ±ç›®æ¨™ã‚’%dã«æ¸›ã‚‰ã—ã¾ã™" @@ -9254,7 +9263,7 @@ msgstr[0] "パブリケーション%sã¯ç™ºè¡Œã‚µãƒ¼ãƒãƒ¼ã«ã¯å˜åœ¨ã—ã¾ã›ã msgid "must be superuser to create subscriptions" msgstr "サブスクリプションを生æˆã™ã‚‹ã«ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:776 replication/logical/tablesync.c:1229 replication/logical/worker.c:3738 +#: commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:776 replication/logical/tablesync.c:1247 replication/logical/worker.c:3738 #, c-format msgid "could not connect to the publisher: %s" msgstr "発行サーãƒãƒ¼ã¸ã®æŽ¥ç¶šãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" @@ -9367,7 +9376,7 @@ msgstr "サブスクリプションã®æ‰€æœ‰è€…ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ãª msgid "could not receive list of replicated tables from the publisher: %s" msgstr "発行テーブルã®ä¸€è¦§ã‚’発行サーãƒãƒ¼ã‹ã‚‰å—ã‘å–ã‚Œã¾ã›ã‚“ã§ã—ãŸ: %s" -#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:809 replication/pgoutput/pgoutput.c:1072 +#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:819 replication/pgoutput/pgoutput.c:1072 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" msgstr "テーブル\"%s.%s\"ã«å¯¾ã—ã¦ã€ç•°ãªã‚‹ãƒ‘ブリケーションã§ç•°ãªã‚‹åˆ—リストを使用ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" @@ -9459,7 +9468,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:19009 parser/parse_utilcmd.c:2261 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19023 parser/parse_utilcmd.c:2261 #, c-format msgid "index \"%s\" does not exist" msgstr "インデックス\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" @@ -9482,7 +9491,7 @@ msgstr "\"%s\"ã¯åž‹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" msgid "Use DROP TYPE to remove a type." msgstr "型を削除ã™ã‚‹ã«ã¯DROP TYPEを使用ã—ã¦ãã ã•ã„" -#: commands/tablecmds.c:281 commands/tablecmds.c:13709 commands/tablecmds.c:16210 +#: commands/tablecmds.c:281 commands/tablecmds.c:13713 commands/tablecmds.c:16214 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "外部テーブル\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" @@ -9506,7 +9515,7 @@ msgstr "ON COMMITã¯ä¸€æ™‚テーブルã§ã®ã¿ä½¿ç”¨ã§ãã¾ã™" msgid "cannot create temporary table within security-restricted operation" msgstr "ã‚»ã‚ュリティー制é™æ“作ä¸ã¯ã€ä¸€æ™‚テーブルを作æˆã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:764 commands/tablecmds.c:15017 +#: commands/tablecmds.c:764 commands/tablecmds.c:15021 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "リレーション\"%s\"ãŒè¤‡æ•°å›žç¶™æ‰¿ã•ã‚Œã¾ã—ãŸ" @@ -9576,7 +9585,7 @@ msgstr "外部テーブル\"%s\"ã®åˆ‡ã‚Šè©°ã‚ã¯ã§ãã¾ã›ã‚“" msgid "cannot truncate temporary tables of other sessions" msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚テーブルを削除ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:2462 commands/tablecmds.c:14914 +#: commands/tablecmds.c:2462 commands/tablecmds.c:14918 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "パーティション親テーブル\"%s\"ã‹ã‚‰ã®ç¶™æ‰¿ã¯ã§ãã¾ã›ã‚“" @@ -9596,12 +9605,12 @@ msgstr "継承ã—よã†ã¨ã—ãŸãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ルã¾ãŸã¯ msgid "cannot create a temporary relation as partition of permanent relation \"%s\"" msgstr "一時リレーションを永続リレーション\"%s\"ã®ãƒ‘ーティションåテーブルã¨ã—ã¦ä½œã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:2496 commands/tablecmds.c:14893 +#: commands/tablecmds.c:2496 commands/tablecmds.c:14897 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "一時リレーション\"%s\"ã‹ã‚‰ç¶™æ‰¿ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:2506 commands/tablecmds.c:14901 +#: commands/tablecmds.c:2506 commands/tablecmds.c:14905 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚リレーションã‹ã‚‰ç¶™æ‰¿ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" @@ -9646,7 +9655,7 @@ msgstr "列\"%s\"ã®åœ§ç¸®æ–¹å¼ãŒç«¶åˆã—ã¦ã„ã¾ã™" msgid "inherited column \"%s\" has a generation conflict" msgstr "継承ã•ã‚ŒãŸåˆ— \"%s\"ã®ç”ŸæˆãŒç«¶åˆã—ã¦ã„ã¾ã™" -#: commands/tablecmds.c:2717 commands/tablecmds.c:2772 commands/tablecmds.c:12433 parser/parse_utilcmd.c:1302 parser/parse_utilcmd.c:1345 parser/parse_utilcmd.c:1754 parser/parse_utilcmd.c:1862 +#: commands/tablecmds.c:2717 commands/tablecmds.c:2772 commands/tablecmds.c:12437 parser/parse_utilcmd.c:1302 parser/parse_utilcmd.c:1345 parser/parse_utilcmd.c:1754 parser/parse_utilcmd.c:1862 #, c-format msgid "cannot convert whole-row table reference" msgstr "行全体テーブルå‚照を変æ›ã§ãã¾ã›ã‚“" @@ -9884,12 +9893,12 @@ msgstr "型付ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã«åˆ—ã‚’è¿½åŠ ã§ãã¾ã›ã‚“" msgid "cannot add column to a partition" msgstr "パーティションã«åˆ—ã¯è¿½åŠ ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:6784 commands/tablecmds.c:15144 +#: commands/tablecmds.c:6784 commands/tablecmds.c:15148 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "åテーブル\"%s\"ã«ç•°ãªã‚‹åž‹ã®åˆ—\"%s\"ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:6790 commands/tablecmds.c:15151 +#: commands/tablecmds.c:6790 commands/tablecmds.c:15155 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "åテーブル\"%s\"ã«ç•°ãªã‚‹ç…§åˆé †åºã®åˆ—\"%s\"ãŒã‚ã‚Šã¾ã™" @@ -9899,923 +9908,923 @@ msgstr "åテーブル\"%s\"ã«ç•°ãªã‚‹ç…§åˆé †åºã®åˆ—\"%s\"ãŒã‚ã‚Šã¾ã™ msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "å\"%2$s\"ã®åˆ—\"%1$s\"ã®å®šç¾©ã‚’マージã—ã¦ã„ã¾ã™" -#: commands/tablecmds.c:6847 +#: commands/tablecmds.c:6851 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "åテーブルをæŒã¤ãƒ†ãƒ¼ãƒ–ルã«è˜åˆ¥åˆ—ã‚’å†å¸°çš„ã«è¿½åŠ ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:7091 +#: commands/tablecmds.c:7095 #, c-format msgid "column must be added to child tables too" msgstr "列ã¯åテーブルã§ã‚‚è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:7169 +#: commands/tablecmds.c:7173 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™ã€ã‚¹ã‚ップã—ã¾ã™" -#: commands/tablecmds.c:7176 +#: commands/tablecmds.c:7180 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™" -#: commands/tablecmds.c:7242 commands/tablecmds.c:12072 +#: commands/tablecmds.c:7246 commands/tablecmds.c:12076 #, c-format msgid "cannot remove constraint from only the partitioned table when partitions exist" msgstr "パーティションãŒå˜åœ¨ã™ã‚‹å ´åˆã«ã¯ãƒ‘ーティション親テーブルã®ã¿ã‹ã‚‰åˆ¶ç´„を削除ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:7243 commands/tablecmds.c:7560 commands/tablecmds.c:8557 commands/tablecmds.c:12073 +#: commands/tablecmds.c:7247 commands/tablecmds.c:7564 commands/tablecmds.c:8561 commands/tablecmds.c:12077 #, c-format msgid "Do not specify the ONLY keyword." msgstr "ONLYã‚ーワードを指定ã—ãªã„ã§ãã ã•ã„。" -#: commands/tablecmds.c:7280 commands/tablecmds.c:7486 commands/tablecmds.c:7628 commands/tablecmds.c:7742 commands/tablecmds.c:7836 commands/tablecmds.c:7895 commands/tablecmds.c:8014 commands/tablecmds.c:8153 commands/tablecmds.c:8223 commands/tablecmds.c:8379 commands/tablecmds.c:12227 commands/tablecmds.c:13732 commands/tablecmds.c:16301 +#: commands/tablecmds.c:7284 commands/tablecmds.c:7490 commands/tablecmds.c:7632 commands/tablecmds.c:7746 commands/tablecmds.c:7840 commands/tablecmds.c:7899 commands/tablecmds.c:8018 commands/tablecmds.c:8157 commands/tablecmds.c:8227 commands/tablecmds.c:8383 commands/tablecmds.c:12231 commands/tablecmds.c:13736 commands/tablecmds.c:16305 #, c-format msgid "cannot alter system column \"%s\"" msgstr "システム列\"%s\"を変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:7286 commands/tablecmds.c:7634 +#: commands/tablecmds.c:7290 commands/tablecmds.c:7638 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯è˜åˆ¥åˆ—ã§ã™" -#: commands/tablecmds.c:7329 +#: commands/tablecmds.c:7333 #, c-format msgid "column \"%s\" is in a primary key" msgstr "列\"%s\"ã¯ãƒ—ライマリã‚ーã§ä½¿ç”¨ã—ã¦ã„ã¾ã™" -#: commands/tablecmds.c:7334 +#: commands/tablecmds.c:7338 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "列\"%s\"ã¯è¤‡è£½è˜åˆ¥ã¨ã—ã¦ä½¿ç”¨ä¸ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã«å«ã¾ã‚Œã¦ã„ã¾ã™" -#: commands/tablecmds.c:7357 +#: commands/tablecmds.c:7361 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "列\"%s\"ã¯è¦ªãƒ†ãƒ¼ãƒ–ルã§NOT NULL指定ã•ã‚Œã¦ã„ã¾ã™" -#: commands/tablecmds.c:7557 commands/tablecmds.c:9040 +#: commands/tablecmds.c:7561 commands/tablecmds.c:9044 #, c-format msgid "constraint must be added to child tables too" msgstr "制約ã¯åテーブルã«ã‚‚è¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:7558 +#: commands/tablecmds.c:7562 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯ã™ã§ã«NOT NULLLã§ã¯ã‚ã‚Šã¾ã›ã‚“。" -#: commands/tablecmds.c:7636 +#: commands/tablecmds.c:7640 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "代ã‚ã‚Šã« ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY を使ã£ã¦ãã ã•ã„。" -#: commands/tablecmds.c:7641 +#: commands/tablecmds.c:7645 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯ç”Ÿæˆã‚«ãƒ©ãƒ ã§ã™" -#: commands/tablecmds.c:7644 +#: commands/tablecmds.c:7648 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "代ã‚ã‚Šã« ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION を使ã£ã¦ãã ã•ã„。" -#: commands/tablecmds.c:7753 +#: commands/tablecmds.c:7757 #, 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:7759 +#: commands/tablecmds.c:7763 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯ã™ã§ã«è˜åˆ¥åˆ—ã§ã™" -#: commands/tablecmds.c:7765 +#: commands/tablecmds.c:7769 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯ã™ã§ã«ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã™" -#: commands/tablecmds.c:7842 commands/tablecmds.c:7903 +#: commands/tablecmds.c:7846 commands/tablecmds.c:7907 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯è˜åˆ¥åˆ—ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:7908 +#: commands/tablecmds.c:7912 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯è˜åˆ¥åˆ—ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™" -#: commands/tablecmds.c:7961 +#: commands/tablecmds.c:7965 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "ALTER TABLE / DROP EXPRESSIONã¯åテーブルã«å¯¾ã—ã¦ã‚‚é©ç”¨ã•ã‚Œãªãã¦ã¯ãªã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:7983 +#: commands/tablecmds.c:7987 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "継承列ã‹ã‚‰ç”Ÿæˆå¼ã‚’削除ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8022 +#: commands/tablecmds.c:8026 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯æ ¼ç´ç”Ÿæˆåˆ—ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:8027 +#: commands/tablecmds.c:8031 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯æ ¼ç´ç”Ÿæˆåˆ—ã§ã¯ã‚ã‚Šã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™" -#: commands/tablecmds.c:8100 +#: commands/tablecmds.c:8104 #, c-format msgid "cannot refer to non-index column by number" msgstr "éžã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹åˆ—を番å·ã§å‚ç…§ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8143 +#: commands/tablecmds.c:8147 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "リレーション \"%2$s\"ã®åˆ— %1$d ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: commands/tablecmds.c:8162 +#: commands/tablecmds.c:8166 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "インデックス\"%2$s\"ã®åŒ…å«åˆ—\"%1$s\"ã¸ã®çµ±è¨ˆæƒ…å ±ã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8167 +#: commands/tablecmds.c:8171 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "インデックス \"%2$s\"ã®éžå¼åˆ—\"%1$s\"ã®çµ±è¨ˆæƒ…å ±ã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8169 +#: commands/tablecmds.c:8173 #, c-format msgid "Alter statistics on table column instead." msgstr "代ã‚ã‚Šã«ãƒ†ãƒ¼ãƒ–ルカラムã®çµ±è¨ˆæƒ…å ±ã‚’å¤‰æ›´ã—ã¦ãã ã•ã„。" -#: commands/tablecmds.c:8359 +#: commands/tablecmds.c:8363 #, c-format msgid "invalid storage type \"%s\"" msgstr "ä¸æ£ãªæ ¼ç´ã‚¿ã‚¤ãƒ—\"%s\"" -#: commands/tablecmds.c:8391 +#: commands/tablecmds.c:8395 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "列ã®ãƒ‡ãƒ¼ã‚¿åž‹%sã¯æ ¼ç´ã‚¿ã‚¤ãƒ—PLAINã—ã‹å–ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8436 +#: commands/tablecmds.c:8440 #, c-format msgid "cannot drop column from typed table" msgstr "型付ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã‹ã‚‰åˆ—を削除ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8495 +#: commands/tablecmds.c:8499 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "リレーション\"%2$s\"ã®åˆ—\"%1$s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™" -#: commands/tablecmds.c:8508 +#: commands/tablecmds.c:8512 #, c-format msgid "cannot drop system column \"%s\"" msgstr "システム列\"%s\"を削除ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8518 +#: commands/tablecmds.c:8522 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "継承ã•ã‚Œã‚‹åˆ—\"%s\"を削除ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8531 +#: commands/tablecmds.c:8535 #, c-format msgid "cannot drop column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "列\"%s\"ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã®ãƒ‘ーティションã‚ーã®ä¸€éƒ¨ã§ã‚ã‚‹ãŸã‚ã€å‰Šé™¤ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8556 +#: commands/tablecmds.c:8560 #, c-format msgid "cannot drop column from only the partitioned table when partitions exist" msgstr "åテーブルãŒå˜åœ¨ã™ã‚‹å ´åˆã«ã¯ãƒ‘ーティション親テーブルã®ã¿ã‹ã‚‰åˆ—を削除ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:8760 +#: commands/tablecmds.c:8764 #, 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:8785 +#: commands/tablecmds.c:8789 #, 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:9122 +#: commands/tablecmds.c:9126 #, c-format msgid "cannot use ONLY for foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "パーティションテーブル\"%s\"上ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã‚’å‚ç…§ã™ã‚‹å¤–部ã‚ー定義ã§ã¯ONLY指定ã¯ã§ãã¾ã›ã‚“ " -#: commands/tablecmds.c:9128 +#: commands/tablecmds.c:9132 #, c-format msgid "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing relation \"%s\"" msgstr "パーティションテーブル\"%1$s\"ã«ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%2$s\"ã‚’å‚ç…§ã™ã‚‹ NOT VALID 指定ã®å¤–部ã‚ーã¯è¿½åŠ ã§ãã¾ã›ã‚“ " -#: commands/tablecmds.c:9131 +#: commands/tablecmds.c:9135 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "ã“ã®æ©Ÿèƒ½ã¯ãƒ‘ーティションテーブルã«å¯¾ã—ã¦ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。" -#: commands/tablecmds.c:9138 commands/tablecmds.c:9604 +#: commands/tablecmds.c:9142 commands/tablecmds.c:9608 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "å‚照先ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ルã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:9161 +#: commands/tablecmds.c:9165 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "永続テーブルã®åˆ¶ç´„ã¯æ°¸ç¶šãƒ†ãƒ¼ãƒ–ルã ã‘ã‚’å‚ç…§ã§ãã¾ã™" -#: commands/tablecmds.c:9168 +#: commands/tablecmds.c:9172 #, c-format msgid "constraints on unlogged tables may reference only permanent or unlogged tables" msgstr "UNLOGGEDテーブルã«å¯¾ã™ã‚‹åˆ¶ç´„ã¯ã€æ°¸ç¶šãƒ†ãƒ¼ãƒ–ルã¾ãŸã¯UNLOGGEDテーブルã ã‘ã‚’å‚ç…§ã™ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:9174 +#: commands/tablecmds.c:9178 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "一時テーブルã«å¯¾ã™ã‚‹åˆ¶ç´„ã¯ä¸€æ™‚テーブルã ã‘ã‚’å‚ç…§ã™ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:9178 +#: commands/tablecmds.c:9182 #, c-format msgid "constraints on temporary tables must involve temporary tables of this session" msgstr "一時テーブルã«å¯¾ã™ã‚‹åˆ¶ç´„ã«ã¯ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚ãƒ†ãƒ¼ãƒ–ãƒ«ã‚’åŠ ãˆã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:9252 commands/tablecmds.c:9258 +#: commands/tablecmds.c:9256 commands/tablecmds.c:9262 #, c-format msgid "invalid %s action for foreign key constraint containing generated column" msgstr "生æˆã‚«ãƒ©ãƒ ã‚’å«ã‚€å¤–部ã‚ー制約ã«å¯¾ã™ã‚‹ä¸æ£ãª %s 処ç†" -#: commands/tablecmds.c:9274 +#: commands/tablecmds.c:9278 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "外部ã‚ーã®å‚照列数ã¨è¢«å‚照列数ãŒåˆã„ã¾ã›ã‚“" -#: commands/tablecmds.c:9381 +#: commands/tablecmds.c:9385 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "外部ã‚ー制約\"%sã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: commands/tablecmds.c:9383 +#: commands/tablecmds.c:9387 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "ã‚ーã¨ãªã‚‹åˆ—\"%s\"ã¨\"%s\"ã¨ã®é–“ã§åž‹ã«äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“:%sã¨%s" -#: commands/tablecmds.c:9540 +#: commands/tablecmds.c:9544 #, c-format msgid "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" msgstr "ON DELETE SETアクションã§å‚ç…§ã•ã‚Œã¦ã„る列\"%s\"ã¯å¤–部ã‚ーã®ä¸€éƒ¨ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:9813 commands/tablecmds.c:10281 parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:925 +#: commands/tablecmds.c:9817 commands/tablecmds.c:10285 parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:925 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "外部テーブルã§ã¯å¤–部ã‚ー制約ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: commands/tablecmds.c:10833 commands/tablecmds.c:11111 commands/tablecmds.c:12029 commands/tablecmds.c:12104 +#: commands/tablecmds.c:10837 commands/tablecmds.c:11115 commands/tablecmds.c:12033 commands/tablecmds.c:12108 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "リレーション\"%2$s\"ã®åˆ¶ç´„\"%1$s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: commands/tablecmds.c:10840 +#: commands/tablecmds.c:10844 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "リレーション\"%2$s\"ã®åˆ¶ç´„\"%1$s\"ã¯å¤–部ã‚ー制約ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:10878 +#: commands/tablecmds.c:10882 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "リレーション\"%2$s\"ã®åˆ¶ç´„\"%1$s\"を変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:10881 +#: commands/tablecmds.c:10885 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "制約\"%1$s\"ã¯ã€ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%3$s\"上ã®åˆ¶ç´„\"%2$s\"ã‹ã‚‰æ´¾ç”Ÿã—ã¦ã„ã¾ã™ã€‚" -#: commands/tablecmds.c:10883 +#: commands/tablecmds.c:10887 #, c-format msgid "You may alter the constraint it derives from, instead." msgstr "ã“ã®åˆ¶ç´„ã®ä»£ã‚ã‚Šã«æ´¾ç”Ÿå…ƒã®åˆ¶ç´„を変更ã™ã‚‹ã“ã¨ã¯å¯èƒ½ã§ã™ã€‚" -#: commands/tablecmds.c:11119 +#: commands/tablecmds.c:11123 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" msgstr "リレーション\"%2$s\"ã®åˆ¶ç´„\"%1$s\"ã¯å¤–部ã‚ー制約ã§ã‚‚検査制約ã§ã‚‚ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:11197 +#: commands/tablecmds.c:11201 #, c-format msgid "constraint must be validated on child tables too" msgstr "制約ã¯åテーブルã§ã‚‚検証ã•ã‚Œã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:11287 +#: commands/tablecmds.c:11291 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "外部ã‚ー制約ã§å‚ç…§ã•ã‚Œã‚‹åˆ—\"%s\"ãŒå˜åœ¨ã—ã¾ã›ã‚“" -#: commands/tablecmds.c:11293 +#: commands/tablecmds.c:11297 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "システム列ã¯å¤–部ã‚ーã«ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:11297 +#: commands/tablecmds.c:11301 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "外部ã‚ーã§ã¯%dを超ãˆã‚‹ã‚ーをæŒã¤ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:11363 +#: commands/tablecmds.c:11367 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "被å‚照テーブル\"%s\"ã«ã¯é…延å¯èƒ½ãƒ—ライマリã‚ーã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:11380 +#: commands/tablecmds.c:11384 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "被å‚照テーブル\"%s\"ã«ã¯ãƒ—ライマリã‚ーãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:11445 +#: commands/tablecmds.c:11449 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "外部ã‚ーã®è¢«å‚照列リストã«ã¯é‡è¤‡ãŒã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:11539 +#: commands/tablecmds.c:11543 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "被å‚照テーブル\"%s\"ã«å¯¾ã—ã¦ã¯ã€é…延å¯èƒ½ãªä¸€æ„性制約ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:11544 +#: commands/tablecmds.c:11548 #, c-format msgid "there is no unique constraint matching given keys for referenced table \"%s\"" msgstr "被å‚照テーブル\"%s\"ã«ã€æŒ‡å®šã—ãŸã‚ーã«ä¸€è‡´ã™ã‚‹ä¸€æ„性制約ãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:11985 +#: commands/tablecmds.c:11989 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"ã®ç¶™æ‰¿ã•ã‚ŒãŸåˆ¶ç´„\"%1$s\"を削除ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12035 +#: commands/tablecmds.c:12039 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "リレーション\"%2$s\"ã®åˆ¶ç´„\"%1$s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“ã€ã‚¹ã‚ップã—ã¾ã™" -#: commands/tablecmds.c:12211 +#: commands/tablecmds.c:12215 #, c-format msgid "cannot alter column type of typed table" msgstr "型付ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã®åˆ—ã®åž‹ã‚’変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12238 +#: commands/tablecmds.c:12242 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "継承ã•ã‚Œã‚‹åˆ—\"%s\"を変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12247 +#: commands/tablecmds.c:12251 #, c-format msgid "cannot alter column \"%s\" because it is part of the partition key of relation \"%s\"" msgstr "列\"%s\"ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã®ãƒ‘ーティションã‚ーã®ä¸€éƒ¨ã§ã‚ã‚‹ãŸã‚ã€å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12297 +#: commands/tablecmds.c:12301 #, c-format msgid "result of USING clause for column \"%s\" cannot be cast automatically to type %s" msgstr "列\"%s\"ã«å¯¾ã™ã‚‹USINGå¥ã®çµæžœã¯è‡ªå‹•çš„ã«%såž‹ã«åž‹å¤‰æ›ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12300 +#: commands/tablecmds.c:12304 #, c-format msgid "You might need to add an explicit cast." msgstr "å¿…è¦ã«å¿œã˜ã¦æ˜Žç¤ºçš„ãªåž‹å¤‰æ›ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。" -#: commands/tablecmds.c:12304 +#: commands/tablecmds.c:12308 #, 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:12307 +#: commands/tablecmds.c:12311 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "å¿…è¦ã«å¿œã˜ã¦\"USING %s::%s\"ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。" -#: commands/tablecmds.c:12406 +#: commands/tablecmds.c:12410 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "リレーション\"%2$s\"ã®ç¶™æ‰¿åˆ—\"%1$s\"ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12434 +#: commands/tablecmds.c:12438 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "USINGå¼ãŒè¡Œå…¨ä½“テーブルå‚照をå«ã‚“ã§ã„ã¾ã™ã€‚" -#: commands/tablecmds.c:12445 +#: commands/tablecmds.c:12449 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "継承ã•ã‚Œã‚‹åˆ—\"%s\"ã®åž‹ã‚’åテーブルã§å¤‰æ›´ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:12570 +#: commands/tablecmds.c:12574 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "列\"%s\"ã®åž‹ã‚’2回変更ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12608 +#: commands/tablecmds.c:12612 #, c-format msgid "generation expression for column \"%s\" cannot be cast automatically to type %s" msgstr "カラム\"%s\"ã«å¯¾ã™ã‚‹ç”Ÿæˆå¼ã¯è‡ªå‹•çš„ã«%såž‹ã«ã‚ャストã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12613 +#: commands/tablecmds.c:12617 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "列\"%s\"ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã‚’自動的ã«%såž‹ã«ã‚ャストã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12694 +#: commands/tablecmds.c:12698 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "ビューã¾ãŸã¯ãƒ«ãƒ¼ãƒ«ã§ä½¿ç”¨ã•ã‚Œã‚‹åˆ—ã®åž‹ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12695 commands/tablecmds.c:12714 commands/tablecmds.c:12732 +#: commands/tablecmds.c:12699 commands/tablecmds.c:12718 commands/tablecmds.c:12736 #, c-format msgid "%s depends on column \"%s\"" msgstr "%sã¯åˆ—\"%s\"ã«ä¾å˜ã—ã¦ã„ã¾ã™" -#: commands/tablecmds.c:12713 +#: commands/tablecmds.c:12717 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "トリガー定義ã§ä½¿ç”¨ã•ã‚Œã‚‹åˆ—ã®åž‹ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12731 +#: commands/tablecmds.c:12735 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "ãƒãƒªã‚·å®šç¾©ã§ä½¿ç”¨ã•ã‚Œã¦ã„る列ã®åž‹ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12762 +#: commands/tablecmds.c:12766 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "生æˆã‚«ãƒ©ãƒ ã§ä½¿ç”¨ã•ã‚Œã‚‹åˆ—ã®åž‹ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:12763 +#: commands/tablecmds.c:12767 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "カラム\"%s\"ã¯ç”Ÿæˆã‚«ãƒ©ãƒ \"%s\"ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™ã€‚" -#: commands/tablecmds.c:13840 commands/tablecmds.c:13852 +#: commands/tablecmds.c:13844 commands/tablecmds.c:13856 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "インデックス\"%s\"ã®æ‰€æœ‰è€…を変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:13842 commands/tablecmds.c:13854 +#: commands/tablecmds.c:13846 commands/tablecmds.c:13858 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "代ã‚ã‚Šã«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®ãƒ†ãƒ¼ãƒ–ルã®æ‰€æœ‰è€…を変更ã—ã¦ãã ã•ã„" -#: commands/tablecmds.c:13868 +#: commands/tablecmds.c:13872 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "シーケンス\"%s\"ã®æ‰€æœ‰è€…を変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:13882 commands/tablecmds.c:17193 commands/tablecmds.c:17212 +#: commands/tablecmds.c:13886 commands/tablecmds.c:17205 commands/tablecmds.c:17224 #, c-format msgid "Use ALTER TYPE instead." msgstr "代ã‚ã‚Šã«ALTER TYPEを使用ã—ã¦ãã ã•ã„。" -#: commands/tablecmds.c:13891 +#: commands/tablecmds.c:13895 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "リレーション\"%s\"ã®æ‰€æœ‰è€…を変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14253 +#: commands/tablecmds.c:14257 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "SET TABLESPACEサブコマンドを複数指定ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14330 +#: commands/tablecmds.c:14334 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "リレーション\"%s\"ã®ã‚ªãƒ—ションã¯è¨å®šã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14364 commands/view.c:521 +#: commands/tablecmds.c:14368 commands/view.c:521 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "WITH CHECK OPTIONã¯è‡ªå‹•æ›´æ–°å¯èƒ½ãƒ“ューã§ã®ã¿ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã™" -#: commands/tablecmds.c:14614 +#: commands/tablecmds.c:14618 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "テーブルスペースã«ã¯ãƒ†ãƒ¼ãƒ–ルã€ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŠã‚ˆã³å®Ÿä½“化ビューã—ã‹ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:14626 +#: commands/tablecmds.c:14630 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "pg_globalテーブルスペースã¨ã®é–“ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®ç§»å‹•ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14718 +#: commands/tablecmds.c:14722 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "リレーション\"%s.%s\"ã®ãƒãƒƒã‚¯ãŒç²å¾—ã§ããªã‹ã£ãŸãŸã‚ä¸æ–ã—ã¾ã™" -#: commands/tablecmds.c:14734 +#: commands/tablecmds.c:14738 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "テーブルスペース\"%s\"ã«ã¯åˆè‡´ã™ã‚‹ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: commands/tablecmds.c:14852 +#: commands/tablecmds.c:14856 #, c-format msgid "cannot change inheritance of typed table" msgstr "型付ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã®ç¶™æ‰¿ã‚’変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14857 commands/tablecmds.c:15413 +#: commands/tablecmds.c:14861 commands/tablecmds.c:15417 #, c-format msgid "cannot change inheritance of a partition" msgstr "パーティションã®ç¶™æ‰¿ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14862 +#: commands/tablecmds.c:14866 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "パーティションテーブルã®ç¶™æ‰¿ã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14908 +#: commands/tablecmds.c:14912 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "ä»–ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã®ä¸€æ™‚テーブルを継承ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14921 +#: commands/tablecmds.c:14925 #, c-format msgid "cannot inherit from a partition" msgstr "パーティションã‹ã‚‰ã®ç¶™æ‰¿ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14943 commands/tablecmds.c:17846 +#: commands/tablecmds.c:14947 commands/tablecmds.c:17860 #, c-format msgid "circular inheritance not allowed" msgstr "循環継承を行ã†ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14944 commands/tablecmds.c:17847 +#: commands/tablecmds.c:14948 commands/tablecmds.c:17861 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\"ã¯ã™ã§ã«\"%s\"ã®åã§ã™" -#: commands/tablecmds.c:14957 +#: commands/tablecmds.c:14961 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "トリガ\"%s\"ã«ã‚ˆã£ã¦ãƒ†ãƒ¼ãƒ–ル\"%s\"ãŒç¶™æ‰¿åテーブルã«ãªã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:14959 +#: commands/tablecmds.c:14963 #, c-format msgid "ROW triggers with transition tables are not supported in inheritance hierarchies." msgstr "é·ç§»ãƒ†ãƒ¼ãƒ–ルを使用ã—ãŸROWトリガã¯ç¶™æ‰¿é–¢ä¿‚ã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“。" -#: commands/tablecmds.c:15162 +#: commands/tablecmds.c:15166 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "åテーブルã®åˆ—\"%s\"ã¯NOT NULLã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:15171 +#: commands/tablecmds.c:15175 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "åテーブルã®åˆ—\"%s\"ã¯ç”Ÿæˆåˆ—ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:15221 +#: commands/tablecmds.c:15225 #, c-format msgid "column \"%s\" in child table has a conflicting generation expression" msgstr "åテーブルã®åˆ—\"%s\"ã«ã¯ç«¶åˆã™ã‚‹ç”Ÿæˆå¼ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:15249 +#: commands/tablecmds.c:15253 #, c-format msgid "child table is missing column \"%s\"" msgstr "åテーブルã«ã¯åˆ—\"%s\"ãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:15337 +#: commands/tablecmds.c:15341 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "åテーブル\"%s\"ã§ã¯æ¤œæŸ»åˆ¶ç´„\"%s\"ã«ç•°ãªã£ãŸå®šç¾©ãŒã•ã‚Œã¦ã„ã¾ã™" -#: commands/tablecmds.c:15345 +#: commands/tablecmds.c:15349 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on child table \"%s\"" msgstr "制約\"%s\"ã¯åテーブル\"%s\"上ã®ç¶™æ‰¿ã•ã‚Œãªã„制約ã¨ç«¶åˆã—ã¾ã™" -#: commands/tablecmds.c:15356 +#: commands/tablecmds.c:15360 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" msgstr "制約\"%s\"ã¯åテーブル\"%s\"ã®NOT VALID制約ã¨è¡çªã—ã¦ã„ã¾ã™" -#: commands/tablecmds.c:15391 +#: commands/tablecmds.c:15395 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "åテーブルã«ã¯åˆ¶ç´„\"%s\"ãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:15477 +#: commands/tablecmds.c:15481 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "パーティション\"%s\"ã¯ã™ã§ã«ãƒ‘ーティションテーブル\"%s.%s\"ã‹ã‚‰ã®å–り外ã—ä¿ç•™ä¸ã§ã™" -#: commands/tablecmds.c:15506 commands/tablecmds.c:15554 +#: commands/tablecmds.c:15510 commands/tablecmds.c:15558 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "リレーション\"%s\"ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã®ãƒ‘ーティションåテーブルã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:15560 +#: commands/tablecmds.c:15564 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "リレーション\"%s\"ã¯ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%s\"ã®è¦ªã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:15788 +#: commands/tablecmds.c:15792 #, c-format msgid "typed tables cannot inherit" msgstr "型付ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã¯ç¶™æ‰¿ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:15818 +#: commands/tablecmds.c:15822 #, c-format msgid "table is missing column \"%s\"" msgstr "テーブルã«ã¯åˆ—\"%s\"ãŒã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:15829 +#: commands/tablecmds.c:15833 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "テーブルã«ã¯åˆ—\"%s\"ãŒã‚ã‚Šã¾ã™ãŒåž‹ã¯\"%s\"ã‚’å¿…è¦ã¨ã—ã¦ã„ã¾ã™" -#: commands/tablecmds.c:15838 +#: commands/tablecmds.c:15842 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "テーブル\"%s\"ã§ã¯åˆ—\"%s\"ã®åž‹ãŒç•°ãªã£ã¦ã„ã¾ã™" -#: commands/tablecmds.c:15852 +#: commands/tablecmds.c:15856 #, c-format msgid "table has extra column \"%s\"" msgstr "テーブルã«ä½™åˆ†ãªåˆ—\"%s\"ãŒã‚ã‚Šã¾ã™" -#: commands/tablecmds.c:15904 +#: commands/tablecmds.c:15908 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\"ã¯åž‹ä»˜ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:16078 +#: commands/tablecmds.c:16082 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "éžãƒ¦ãƒ‹ãƒ¼ã‚¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\"%s\"ã¯è¤‡è£½è˜åˆ¥ã¨ã—ã¦ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16084 +#: commands/tablecmds.c:16088 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "一æ„性をå³æ™‚検査ã—ãªã„インデックス\"%s\"ã¯è¤‡è£½è˜åˆ¥ã«ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16090 +#: commands/tablecmds.c:16094 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "å¼ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹\"%s\"ã¯è¤‡è£½è˜åˆ¥ã¨ã—ã¦ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16096 +#: commands/tablecmds.c:16100 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "部分インデックス\"%s\"を複製è˜åˆ¥ã¨ã—ã¦ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16113 +#: commands/tablecmds.c:16117 #, c-format msgid "index \"%s\" cannot be used as replica identity because column %d is a system column" msgstr "列%2$dã¯ã‚·ã‚¹ãƒ†ãƒ 列ã§ã‚ã‚‹ãŸã‚インデックス\"%1$s\"ã¯è¤‡è£½è˜åˆ¥ã«ã¯ä½¿ãˆã¾ã›ã‚“" -#: commands/tablecmds.c:16120 +#: commands/tablecmds.c:16124 #, c-format msgid "index \"%s\" cannot be used as replica identity because column \"%s\" is nullable" msgstr "列\"%2$s\"ã¯nullå¯ã§ã‚ã‚‹ãŸã‚インデックス\"%1$s\"ã¯è¤‡è£½è˜åˆ¥ã«ã¯ä½¿ãˆã¾ã›ã‚“" -#: commands/tablecmds.c:16367 +#: commands/tablecmds.c:16371 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "テーブル\"%s\"ã¯ä¸€æ™‚テーブルã§ã‚ã‚‹ãŸã‚ã€ãƒã‚°å‡ºåŠ›è¨å®šã‚’変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16391 +#: commands/tablecmds.c:16395 #, c-format msgid "cannot change table \"%s\" to unlogged because it is part of a publication" msgstr "テーブル\"%s\"ã¯ãƒ‘ブリケーションã®ä¸€éƒ¨ã§ã‚ã‚‹ãŸã‚ã€UNLOGGEDã«å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16393 +#: commands/tablecmds.c:16397 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "UNLOGGEDリレーションã¯ãƒ¬ãƒ—リケーションã§ãã¾ã›ã‚“。" -#: commands/tablecmds.c:16438 +#: commands/tablecmds.c:16442 #, c-format msgid "could not change table \"%s\" to logged because it references unlogged table \"%s\"" msgstr "テーブル\"%s\"ã¯UNLOGGEDテーブル\"%s\"ã‚’å‚ç…§ã—ã¦ã„ã‚‹ãŸã‚LOGGEDã«ã¯è¨å®šã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16448 +#: commands/tablecmds.c:16452 #, c-format msgid "could not change table \"%s\" to unlogged because it references logged table \"%s\"" msgstr "テーブル\"%s\"ã¯LOGGEDテーブル\"%s\"ã‚’å‚ç…§ã—ã¦ã„ã‚‹ãŸã‚UNLOGGEDã«ã¯è¨å®šã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16506 +#: commands/tablecmds.c:16510 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "所有ã™ã‚‹ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’ä»–ã®ã‚¹ã‚ーマã«ç§»å‹•ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:16613 +#: commands/tablecmds.c:16617 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "リレーション\"%s\"ã¯ã‚¹ã‚ーマ\"%s\"内ã«ã™ã§ã«å˜åœ¨ã—ã¾ã™" -#: commands/tablecmds.c:17026 +#: commands/tablecmds.c:17038 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ルや実体化ビューã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:17176 +#: commands/tablecmds.c:17188 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\"ã¯è¤‡åˆåž‹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/tablecmds.c:17204 +#: commands/tablecmds.c:17216 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "インデックス\"%s\"ã®ã‚¹ã‚ーマを変更ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17206 commands/tablecmds.c:17218 +#: commands/tablecmds.c:17218 commands/tablecmds.c:17230 #, c-format msgid "Change the schema of the table instead." msgstr "代ã‚ã‚Šã«ã“ã®ãƒ†ãƒ¼ãƒ–ルã®ã‚¹ã‚ーマを変更ã—ã¦ãã ã•ã„。" -#: commands/tablecmds.c:17210 +#: commands/tablecmds.c:17222 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "複åˆåž‹%sã®ã‚¹ã‚ーマã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17216 +#: commands/tablecmds.c:17228 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "TOASTテーブル\"%s\"ã®ã‚¹ã‚ーマã¯å¤‰æ›´ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17253 +#: commands/tablecmds.c:17265 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "è˜åˆ¥ã§ããªã„パーティションストラテジ \"%s\"" -#: commands/tablecmds.c:17261 +#: commands/tablecmds.c:17273 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "\"list\"パーティションストラテジã¯2ã¤ä»¥ä¸Šã®åˆ—ã«å¯¾ã—ã¦ã¯ä½¿ãˆã¾ã›ã‚“" -#: commands/tablecmds.c:17327 +#: commands/tablecmds.c:17339 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "パーティションã‚ーã«æŒ‡å®šã•ã‚Œã¦ã„る列\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: commands/tablecmds.c:17335 +#: commands/tablecmds.c:17347 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "パーティションã‚ーã§ã‚·ã‚¹ãƒ†ãƒ 列\"%s\"ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17346 commands/tablecmds.c:17460 +#: commands/tablecmds.c:17358 commands/tablecmds.c:17448 #, c-format msgid "cannot use generated column in partition key" msgstr "パーティションã‚ーã§ç”Ÿæˆã‚«ãƒ©ãƒ ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17347 commands/tablecmds.c:17461 commands/trigger.c:668 rewrite/rewriteHandler.c:929 rewrite/rewriteHandler.c:964 +#: commands/tablecmds.c:17359 commands/tablecmds.c:17449 commands/trigger.c:668 rewrite/rewriteHandler.c:929 rewrite/rewriteHandler.c:964 #, c-format msgid "Column \"%s\" is a generated column." msgstr "列\"%s\"ã¯ç”Ÿæˆã‚«ãƒ©ãƒ ã§ã™ã€‚" -#: commands/tablecmds.c:17423 -#, c-format -msgid "functions in partition key expression must be marked IMMUTABLE" -msgstr "パーティションã‚ーå¼ã§ä½¿ã‚れる関数ã¯IMMUTABLE指定ã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" - -#: commands/tablecmds.c:17443 +#: commands/tablecmds.c:17431 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "パーティションã‚ーå¼ã¯ã‚·ã‚¹ãƒ†ãƒ 列ã¸ã®å‚照をå«ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17473 +#: commands/tablecmds.c:17478 +#, c-format +msgid "functions in partition key expression must be marked IMMUTABLE" +msgstr "パーティションã‚ーå¼ã§ä½¿ã‚れる関数ã¯IMMUTABLE指定ã•ã‚Œã¦ã„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" + +#: commands/tablecmds.c:17487 #, c-format msgid "cannot use constant expression as partition key" msgstr "定数å¼ã‚’パーティションã‚ーã¨ã—ã¦ä½¿ã†ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17494 +#: commands/tablecmds.c:17508 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "パーティションå¼ã§ä½¿ç”¨ã™ã‚‹ç…§åˆé †åºã‚’特定ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: commands/tablecmds.c:17529 +#: commands/tablecmds.c:17543 #, 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:17535 +#: commands/tablecmds.c:17549 #, 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:17786 +#: commands/tablecmds.c:17800 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\"ã¯ã™ã§ãƒ‘ーティションã§ã™" -#: commands/tablecmds.c:17792 +#: commands/tablecmds.c:17806 #, c-format msgid "cannot attach a typed table as partition" msgstr "型付ã‘ã•ã‚ŒãŸãƒ†ãƒ¼ãƒ–ルをパーティションã«ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17808 +#: commands/tablecmds.c:17822 #, c-format msgid "cannot attach inheritance child as partition" msgstr "継承åテーブルをパーティションã«ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17822 +#: commands/tablecmds.c:17836 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "継承親テーブルをパーティションã«ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17856 +#: commands/tablecmds.c:17870 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "一時リレーションを永続リレーション \"%s\" ã®ãƒ‘ーティションåテーブルã¨ã—ã¦ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17864 +#: commands/tablecmds.c:17878 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "永続リレーションを一時リレーション\"%s\"ã®ãƒ‘ーティションåテーブルã¨ã—ã¦ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17872 +#: commands/tablecmds.c:17886 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "他セッションã®ä¸€æ™‚リレーションã®ãƒ‘ーティションåテーブルã¨ã—ã¦ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17879 +#: commands/tablecmds.c:17893 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "他セッションã®ä¸€æ™‚リレーションã«ãƒ‘ーティションåテーブルã¨ã—ã¦ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:17899 +#: commands/tablecmds.c:17913 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "テーブル\"%1$s\"ã¯è¦ªãƒ†ãƒ¼ãƒ–ル\"%3$s\"ã«ãªã„列\"%2$s\"ã‚’å«ã‚“ã§ã„ã¾ã™" -#: commands/tablecmds.c:17902 +#: commands/tablecmds.c:17916 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "æ–°ã—ã„パーティションã¯è¦ªã«å˜åœ¨ã™ã‚‹åˆ—ã®ã¿ã‚’å«ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚" -#: commands/tablecmds.c:17914 +#: commands/tablecmds.c:17928 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "トリガ\"%s\"ã®ãŸã‚ã€ãƒ†ãƒ¼ãƒ–ル\"%s\"ã¯ãƒ‘ーティションåテーブルã«ã¯ãªã‚Œã¾ã›ã‚“" -#: commands/tablecmds.c:17916 +#: commands/tablecmds.c:17930 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "é·ç§»ãƒ†ãƒ¼ãƒ–ルを使用ã™ã‚‹ROWトリガã¯ãƒ‘ーティションã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“。" -#: commands/tablecmds.c:18095 +#: commands/tablecmds.c:18109 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "外部テーブル\"%s\"ã¯ãƒ‘ーティションテーブル\"%s\"ã®åテーブルã¨ã—ã¦ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:18098 +#: commands/tablecmds.c:18112 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "パーティション親テーブル\"%s\"ã¯ãƒ¦ãƒ‹ãƒ¼ã‚¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’æŒã£ã¦ã„ã¾ã™ã€‚" -#: commands/tablecmds.c:18413 +#: commands/tablecmds.c:18427 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "デフォルトパーティションをæŒã¤ãƒ‘ーティションã¯ä¸¦åˆ—çš„ã«å–り外ã—ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:18522 +#: commands/tablecmds.c:18536 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "パーティション親テーブル\"%s\"ã«ã¯ CREATE INDEX CONCURRENTLY ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:18528 +#: commands/tablecmds.c:18542 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "パーティションåテーブル\\\"%s\\\"ã¯åŒæ™‚ã«å‰Šé™¤ã•ã‚Œã¾ã—ãŸ" -#: commands/tablecmds.c:19043 commands/tablecmds.c:19063 commands/tablecmds.c:19083 commands/tablecmds.c:19102 commands/tablecmds.c:19144 +#: commands/tablecmds.c:19057 commands/tablecmds.c:19077 commands/tablecmds.c:19097 commands/tablecmds.c:19116 commands/tablecmds.c:19158 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "インデックス\"%s\"をインデックス\"%s\"ã®åインデックスã¨ã—ã¦ã‚¢ã‚¿ãƒƒãƒã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: commands/tablecmds.c:19046 +#: commands/tablecmds.c:19060 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "インデックス\"%s\"ã¯ã™ã§ã«åˆ¥ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã«ã‚¢ã‚¿ãƒƒãƒã•ã‚Œã¦ã„ã¾ã™ã€‚" -#: commands/tablecmds.c:19066 +#: commands/tablecmds.c:19080 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "インデックス\"%s\"ã¯ãƒ†ãƒ¼ãƒ–ル\"%s\"ã®ã©ã®åテーブルã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã§ã‚‚ã‚ã‚Šã¾ã›ã‚“。" -#: commands/tablecmds.c:19086 +#: commands/tablecmds.c:19100 #, c-format msgid "The index definitions do not match." msgstr "インデックス定義ãŒåˆè‡´ã—ã¾ã›ã‚“。" -#: commands/tablecmds.c:19105 +#: commands/tablecmds.c:19119 #, 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:19147 +#: commands/tablecmds.c:19161 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "åテーブル\"%s\"ã«ã¯ã™ã§ã«ä»–ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒã‚¢ã‚¿ãƒƒãƒã•ã‚Œã¦ã„ã¾ã™ã€‚" -#: commands/tablecmds.c:19384 +#: commands/tablecmds.c:19398 #, c-format msgid "column data type %s does not support compression" msgstr "列データ型%sã¯åœ§ç¸®ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" -#: commands/tablecmds.c:19391 +#: commands/tablecmds.c:19405 #, c-format msgid "invalid compression method \"%s\"" msgstr "無効ãªåœ§ç¸®æ–¹å¼\"%s\"" @@ -11175,7 +11184,7 @@ msgstr "権é™ãŒã‚ã‚Šã¾ã›ã‚“: \"%s\"ã¯ã‚·ã‚¹ãƒ†ãƒ トリガã§ã™" 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:3346 +#: commands/trigger.c:2509 commands/trigger.c:2727 commands/trigger.c:2995 commands/trigger.c:3364 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "BEFORE STATEMENTトリガã¯å€¤ã‚’è¿”ã™ã“ã¨ãŒã§ãã¾ã›ã‚“" @@ -11190,37 +11199,37 @@ msgstr "BEFORE FOR EACH ROWトリガã®å®Ÿè¡Œã§ã¯ã€ä»–ã®ãƒ‘ーティショムmsgid "Before executing trigger \"%s\", the row was to be in partition \"%s.%s\"." msgstr "トリガ\"%s\"ã®å®Ÿè¡Œå‰ã«ã¯ã€ã“ã®è¡Œã¯ãƒ‘ーティション\"%s.%s\"ã«ç½®ã‹ã‚Œã‚‹ã¯ãšã§ã—ãŸã€‚" -#: commands/trigger.c:3423 executor/nodeModifyTable.c:2344 executor/nodeModifyTable.c:2427 +#: commands/trigger.c:3441 executor/nodeModifyTable.c:2350 executor/nodeModifyTable.c:2433 #, c-format msgid "tuple to be updated was already modified by an operation triggered by the current command" msgstr "更新対象ã®ã‚¿ãƒ—ルã¯ã™ã§ã«ç¾åœ¨ã®ã‚³ãƒžãƒ³ãƒ‰ã«ã‚ˆã£ã¦ç™ºè¡Œã•ã‚ŒãŸæ“作ã«ã‚ˆã£ã¦å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™" -#: commands/trigger.c:3424 executor/nodeModifyTable.c:1510 executor/nodeModifyTable.c:1584 executor/nodeModifyTable.c:2345 executor/nodeModifyTable.c:2428 executor/nodeModifyTable.c:3059 +#: commands/trigger.c:3442 executor/nodeModifyTable.c:1514 executor/nodeModifyTable.c:1588 executor/nodeModifyTable.c:2351 executor/nodeModifyTable.c:2434 executor/nodeModifyTable.c:3079 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "ä»–ã®è¡Œã¸ã®å¤‰æ›´ã‚’ä¼æ¬ã•ã›ã‚‹ãŸã‚ã«BEFOREトリガã§ã¯ãªãAFTERトリガã®ä½¿ç”¨ã‚’検討ã—ã¦ãã ã•ã„" -#: commands/trigger.c:3465 executor/nodeLockRows.c:229 executor/nodeLockRows.c:238 executor/nodeModifyTable.c:308 executor/nodeModifyTable.c:1526 executor/nodeModifyTable.c:2362 executor/nodeModifyTable.c:2570 +#: commands/trigger.c:3483 executor/nodeLockRows.c:229 executor/nodeLockRows.c:238 executor/nodeModifyTable.c:308 executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:2368 executor/nodeModifyTable.c:2576 #, c-format msgid "could not serialize access due to concurrent update" msgstr "æ›´æ–°ãŒåŒæ™‚ã«è¡Œã‚ã‚ŒãŸãŸã‚アクセスã®ç›´åˆ—化ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: commands/trigger.c:3473 executor/nodeModifyTable.c:1616 executor/nodeModifyTable.c:2445 executor/nodeModifyTable.c:2594 executor/nodeModifyTable.c:2947 +#: commands/trigger.c:3491 executor/nodeModifyTable.c:1620 executor/nodeModifyTable.c:2451 executor/nodeModifyTable.c:2600 executor/nodeModifyTable.c:2967 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "削除ãŒåŒæ™‚ã«è¡Œã‚ã‚ŒãŸãŸã‚アクセスã®ç›´åˆ—化ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: commands/trigger.c:4680 +#: commands/trigger.c:4698 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "ã‚»ã‚ュリティー制é™æ“作ä¸ã¯ã€é…延トリガーã¯ç™ºç«ã•ã›ã‚‰ã‚Œã¾ã›ã‚“" -#: commands/trigger.c:5863 +#: commands/trigger.c:5881 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "制約\"%s\"ã¯é…延å¯èƒ½ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: commands/trigger.c:5886 +#: commands/trigger.c:5904 #, c-format msgid "constraint \"%s\" does not exist" msgstr "制約\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" @@ -12026,7 +12035,7 @@ 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個ã®ä¸¦åˆ—VACUUMワーカーを起動ã—ã¾ã—㟠(計画値: %d)" -#: commands/variable.c:165 utils/misc/guc.c:12100 utils/misc/guc.c:12178 +#: commands/variable.c:165 utils/misc/guc.c:12115 utils/misc/guc.c:12193 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "ä¸æ˜Žãªã‚ーワードã§ã™: \"%s\"" @@ -12246,7 +12255,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:826 +#: executor/execExpr.c:1098 parser/parse_agg.c:837 #, c-format msgid "window function calls cannot be nested" msgstr "ウィンドウ関数ã®å‘¼ã³å‡ºã—を入れåã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" @@ -12317,7 +12326,7 @@ msgstr "互æ›æ€§ãŒãªã„é…列をマージã§ãã¾ã›ã‚“" msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "è¦ç´ åž‹%sã®é…列をè¦ç´ åž‹%sã®ARRAYå¼ã«å«ã‚られã¾ã›ã‚“" -#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:263 utils/adt/arrayfuncs.c:563 utils/adt/arrayfuncs.c:1305 utils/adt/arrayfuncs.c:3373 utils/adt/arrayfuncs.c:5370 utils/adt/arrayfuncs.c:5887 utils/adt/arraysubs.c:150 utils/adt/arraysubs.c:488 +#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:264 utils/adt/arrayfuncs.c:564 utils/adt/arrayfuncs.c:1306 utils/adt/arrayfuncs.c:3422 utils/adt/arrayfuncs.c:5419 utils/adt/arrayfuncs.c:5936 utils/adt/arraysubs.c:150 utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" msgstr "é…列ã®æ¬¡æ•°(%d)ãŒä¸Šé™(%d)を超ãˆã¦ã„ã¾ã™" @@ -12327,7 +12336,8 @@ msgstr "é…列ã®æ¬¡æ•°(%d)ãŒä¸Šé™(%d)を超ãˆã¦ã„ã¾ã™" msgid "multidimensional arrays must have array expressions with matching dimensions" msgstr "多次元é…列ã®é…列å¼ã®æ¬¡æ•°ãŒã‚ã£ã¦ã„ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: executor/execExprInterp.c:2811 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:936 utils/adt/arrayfuncs.c:1544 utils/adt/arrayfuncs.c:3261 utils/adt/arrayfuncs.c:3403 utils/adt/arrayfuncs.c:5979 utils/adt/arrayfuncs.c:6320 utils/adt/arrayutils.c:94 utils/adt/arrayutils.c:103 utils/adt/arrayutils.c:110 +#: executor/execExprInterp.c:2811 utils/adt/array_expanded.c:274 utils/adt/arrayfuncs.c:937 utils/adt/arrayfuncs.c:1545 utils/adt/arrayfuncs.c:2353 utils/adt/arrayfuncs.c:2368 utils/adt/arrayfuncs.c:2630 utils/adt/arrayfuncs.c:2646 utils/adt/arrayfuncs.c:2954 utils/adt/arrayfuncs.c:2969 utils/adt/arrayfuncs.c:3310 utils/adt/arrayfuncs.c:3452 utils/adt/arrayfuncs.c:6028 utils/adt/arrayfuncs.c:6369 utils/adt/arrayutils.c:88 utils/adt/arrayutils.c:97 +#: utils/adt/arrayutils.c:104 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "é…列ã®æ¬¡æ•°ãŒä¸Šé™(%d)を超ãˆã¦ã„ã¾ã™" @@ -12583,7 +12593,7 @@ msgstr "åŒæ™‚æ›´æ–°ãŒã‚ã‚Šã¾ã—ãŸã€ãƒªãƒˆãƒ©ã‚¤ã—ã¾ã™" msgid "concurrent delete, retrying" msgstr "並行ã™ã‚‹å‰Šé™¤ãŒã‚ã‚Šã¾ã—ãŸã€ãƒªãƒˆãƒ©ã‚¤ã—ã¾ã™" -#: executor/execReplication.c:276 parser/parse_cte.c:308 parser/parse_oper.c:233 utils/adt/array_userfuncs.c:724 utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3653 utils/adt/arrayfuncs.c:4208 utils/adt/arrayfuncs.c:6200 utils/adt/rowtypes.c:1203 +#: executor/execReplication.c:276 parser/parse_cte.c:308 parser/parse_oper.c:233 utils/adt/array_userfuncs.c:724 utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3702 utils/adt/arrayfuncs.c:4257 utils/adt/arrayfuncs.c:6249 utils/adt/rowtypes.c:1203 #, c-format msgid "could not identify an equality operator for type %s" msgstr "åž‹%sã®ç‰ä¾¡æ¼”ç®—åã‚’è˜åˆ¥ã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -12771,7 +12781,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:668 parser/parse_agg.c:696 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:679 parser/parse_agg.c:707 #, c-format msgid "aggregate function calls cannot be nested" msgstr "集約関数ã®å‘¼ã³å‡ºã—を入れåã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" @@ -12821,58 +12831,58 @@ msgstr "FULL JOINã¯ãƒžãƒ¼ã‚¸çµåˆå¯èƒ½ãªçµåˆæ¡ä»¶ã§ã®ã¿ã‚µãƒãƒ¼ãƒˆã• msgid "Query has too few columns." msgstr "å•ã„åˆã‚ã›ã®åˆ—ãŒå°‘ãªã™ãŽã¾ã™ã€‚" -#: executor/nodeModifyTable.c:1509 executor/nodeModifyTable.c:1583 +#: executor/nodeModifyTable.c:1513 executor/nodeModifyTable.c:1587 #, c-format msgid "tuple to be deleted was already modified by an operation triggered by the current command" msgstr "削除対象ã®ã‚¿ãƒ—ルã¯ã™ã§ã«ç¾åœ¨ã®ã‚³ãƒžãƒ³ãƒ‰ã«ã‚ˆã£ã¦å¼•ãèµ·ã“ã•ã‚ŒãŸæ“作ã«ã‚ˆã£ã¦å¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™" -#: executor/nodeModifyTable.c:1737 +#: executor/nodeModifyTable.c:1742 #, c-format msgid "invalid ON UPDATE specification" msgstr "ä¸æ£ãª ON UPDATE 指定ã§ã™" -#: executor/nodeModifyTable.c:1738 +#: executor/nodeModifyTable.c:1743 #, c-format msgid "The result tuple would appear in a different partition than the original tuple." msgstr "çµæžœã‚¿ãƒ—ルをもã¨ã®ãƒ‘ーティションã§ã¯ãªãç•°ãªã‚‹ãƒ‘ーティションã«è¿½åŠ ã—よã†ã¨ã—ã¾ã—ãŸã€‚" -#: executor/nodeModifyTable.c:2198 +#: executor/nodeModifyTable.c:2204 #, 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:2199 +#: executor/nodeModifyTable.c:2205 #, c-format msgid "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "外部ã‚ーãŒãƒ‘ーティションルートテーブル\"%2$s\"ã§ã¯ãªãパーティション親テーブル\"%1$s\"を指ã—ã¦ã„ã¾ã™ã€‚" -#: executor/nodeModifyTable.c:2202 +#: executor/nodeModifyTable.c:2208 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "テーブル\"%s\"上ã«å¤–部ã‚ー制約を定義ã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ãã ã•ã„。" #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2548 executor/nodeModifyTable.c:2936 +#: executor/nodeModifyTable.c:2554 executor/nodeModifyTable.c:2956 #, c-format msgid "%s command cannot affect row a second time" msgstr "%sコマンドã¯å˜ä¸€ã®è¡Œã«2度ã¯é©ç”¨ã§ãã¾ã›ã‚“" -#: executor/nodeModifyTable.c:2550 +#: executor/nodeModifyTable.c:2556 #, c-format msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "åŒã˜ã‚³ãƒžãƒ³ãƒ‰ã§ã®æŒ¿å…¥å€™è£œã®è¡ŒãŒåŒã˜åˆ¶ç´„値をæŒã¤ã“ã¨ãŒãªã„よã†ã«ã—ã¦ãã ã•ã„" -#: executor/nodeModifyTable.c:2938 +#: executor/nodeModifyTable.c:2958 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "ソース行ãŒ2行以上ターゲット行ã«åˆè‡´ã—ãªã„よã†ã«ã—ã¦ãã ã•ã„。" -#: executor/nodeModifyTable.c:3019 +#: executor/nodeModifyTable.c:3039 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "削除対象ã®ã‚¿ãƒ—ルã¯åŒæ™‚ã«è¡Œã‚ã‚ŒãŸæ›´æ–°ã«ã‚ˆã£ã¦ã™ã§ã«ä»–ã®åテーブルã«ç§»å‹•ã•ã‚Œã¦ã„ã¾ã™" -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3078 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "æ›´æ–°ã¾ãŸã¯å‰Šé™¤å¯¾è±¡ã®ã‚¿ãƒ—ルã¯ã€ç¾åœ¨ã®ã‚³ãƒžãƒ³ãƒ‰ã«ã‚ˆã£ã¦ç™ºç«ã—ãŸæ“作トリガーã«ã‚ˆã£ã¦ã™ã§ã«æ›´æ–°ã•ã‚Œã¦ã„ã¾ã™" @@ -13450,7 +13460,7 @@ msgstr "ä¸æ£ãªã‚¹ã‚ーマå" msgid "unrecognized configuration parameter \"%s\" in file \"%s\" line %d" msgstr "ファイル\"%2$s\"è¡Œ%3$dã§èªè˜ã§ããªã„è¨å®šãƒ‘ラメータ\"%1$s\"" -#: guc-file.l:354 utils/misc/guc.c:7688 utils/misc/guc.c:7908 utils/misc/guc.c:8006 utils/misc/guc.c:8104 utils/misc/guc.c:8228 utils/misc/guc.c:8331 +#: guc-file.l:354 utils/misc/guc.c:7691 utils/misc/guc.c:7915 utils/misc/guc.c:8013 utils/misc/guc.c:8111 utils/misc/guc.c:8235 utils/misc/guc.c:8338 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "パラメータ\"%s\"を変更ã™ã‚‹ã«ã¯ã‚µãƒ¼ãƒãƒ¼ã®å†èµ·å‹•ãŒå¿…è¦ã§ã™" @@ -13893,388 +13903,388 @@ msgstr "パスワードパケットã®ã‚µã‚¤ã‚ºãŒä¸æ£ã§ã™" msgid "empty password returned by client" msgstr "クライアントã‹ã‚‰ç©ºã®ãƒ‘スワードãŒè¿”ã•ã‚Œã¾ã—ãŸ" -#: libpq/auth.c:880 libpq/hba.c:1335 +#: libpq/auth.c:878 libpq/hba.c:1335 #, c-format msgid "MD5 authentication is not supported when \"db_user_namespace\" is enabled" msgstr "\"db_user_namespace\"ãŒæœ‰åŠ¹ã®å ´åˆã€MD5 èªè¨¼ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: libpq/auth.c:886 +#: libpq/auth.c:884 #, c-format msgid "could not generate random MD5 salt" msgstr "ランダムãªMD5ソルトã®ç”Ÿæˆã«å¤±æ•—ã—ã¾ã—ãŸ" -#: libpq/auth.c:935 libpq/be-secure-gssapi.c:535 +#: libpq/auth.c:933 libpq/be-secure-gssapi.c:535 #, c-format msgid "could not set environment: %m" msgstr "環境をè¨å®šã§ãã¾ã›ã‚“: %m" -#: libpq/auth.c:971 +#: libpq/auth.c:969 #, c-format msgid "expected GSS response, got message type %d" msgstr "GSSå¿œç”を想定ã—ã¾ã—ãŸãŒã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚¿ã‚¤ãƒ— %d ã‚’å—ã‘å–ã‚Šã¾ã—ãŸ" -#: libpq/auth.c:1031 +#: libpq/auth.c:1029 msgid "accepting GSS security context failed" msgstr "GSSã‚»ã‚ュリティコンテã‚ストã®å—ã‘付ã‘ã«å¤±æ•—ã—ã¾ã—ãŸ" -#: libpq/auth.c:1072 +#: libpq/auth.c:1070 msgid "retrieving GSS user name failed" msgstr "GSSユーザーåã®å—ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸ" -#: libpq/auth.c:1221 +#: libpq/auth.c:1219 msgid "could not acquire SSPI credentials" msgstr "SSPIã®è³‡æ ¼ãƒãƒ³ãƒ‰ãƒ«ã‚’入手ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:1246 +#: libpq/auth.c:1244 #, c-format msgid "expected SSPI response, got message type %d" msgstr "SSPIå¿œç”を想定ã—ã¾ã—ãŸãŒã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚¿ã‚¤ãƒ—%dã‚’å—ã‘å–ã‚Šã¾ã—ãŸ" -#: libpq/auth.c:1324 +#: libpq/auth.c:1322 msgid "could not accept SSPI security context" msgstr "SSPIã‚»ã‚ュリティコンテã‚ストをå—ã‘付ã‘られã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:1386 +#: libpq/auth.c:1384 msgid "could not get token from SSPI security context" msgstr "SSPIã‚»ã‚ュリティコンテã‚ストã‹ã‚‰ãƒˆãƒ¼ã‚¯ãƒ³ã‚’入手ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:1525 libpq/auth.c:1544 +#: libpq/auth.c:1523 libpq/auth.c:1542 #, c-format msgid "could not translate name" msgstr "åå‰ã®å¤‰æ›ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:1557 +#: libpq/auth.c:1555 #, c-format msgid "realm name too long" msgstr "realmåãŒé•·ã™ãŽã¾ã™" -#: libpq/auth.c:1572 +#: libpq/auth.c:1570 #, c-format msgid "translated account name too long" msgstr "変æ›å¾Œã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆåãŒé•·ã™ãŽã¾ã™" -#: libpq/auth.c:1753 +#: libpq/auth.c:1751 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "Ident接続用ã®ã‚½ã‚±ãƒƒãƒˆã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:1768 +#: libpq/auth.c:1766 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "ãƒãƒ¼ã‚«ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹\"%s\"ã«ãƒã‚¤ãƒ³ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:1780 +#: libpq/auth.c:1778 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "アドレス\"%s\"ã€ãƒãƒ¼ãƒˆ%sã®Identサーãƒãƒ¼ã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:1802 +#: libpq/auth.c:1800 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "アドレス\"%s\"ã€ãƒãƒ¼ãƒˆ%sã®Identサーãƒãƒ¼ã«å•ã„åˆã‚ã›ã‚’é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:1819 +#: libpq/auth.c:1817 #, c-format msgid "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "アドレス\"%s\"ã€ãƒãƒ¼ãƒˆ%sã®Identサーãƒãƒ¼ã‹ã‚‰ã®å¿œç”ã‚’å—ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:1829 +#: libpq/auth.c:1827 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "Identサーãƒãƒ¼ã‹ã‚‰ã®å¿œç”ã®æ›¸å¼ãŒä¸æ£ã§ã™: \"%s\"" -#: libpq/auth.c:1882 +#: libpq/auth.c:1880 #, c-format msgid "peer authentication is not supported on this platform" msgstr "ã“ã®ãƒ—ラットフォームã§ã¯å¯¾å‘(peer)èªè¨¼ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:1886 +#: libpq/auth.c:1884 #, c-format msgid "could not get peer credentials: %m" msgstr "ピアã®è³‡æ ¼è¨¼æ˜Žã‚’入手ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:1898 +#: libpq/auth.c:1896 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "ãƒãƒ¼ã‚«ãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ID %ldã®å‚ç…§ã«å¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:1999 +#: libpq/auth.c:1997 #, c-format msgid "error from underlying PAM layer: %s" msgstr "背後ã®PAM層ã§ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã—ãŸ: %s" -#: libpq/auth.c:2010 +#: libpq/auth.c:2008 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "éžã‚µãƒãƒ¼ãƒˆã®PAM変æ›%d/\"%s\"" -#: libpq/auth.c:2070 +#: libpq/auth.c:2068 #, c-format msgid "could not create PAM authenticator: %s" msgstr "PAM authenticatorを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/auth.c:2081 +#: libpq/auth.c:2079 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "pam_set_item(PAM_USER)ãŒå¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:2113 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "pam_set_item(PAM_RHOST)ãŒå¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:2125 +#: libpq/auth.c:2123 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "\"pam_set_item(PAM_CONV)ãŒå¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:2138 +#: libpq/auth.c:2136 #, c-format msgid "pam_authenticate failed: %s" msgstr "\"pam_authenticateãŒå¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:2151 +#: libpq/auth.c:2149 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "pam_acct_mgmtãŒå¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:2162 +#: libpq/auth.c:2160 #, c-format msgid "could not release PAM authenticator: %s" msgstr "PAM authenticatorを解放ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/auth.c:2242 +#: libpq/auth.c:2240 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "LDAPã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ: %d" -#: libpq/auth.c:2279 +#: libpq/auth.c:2277 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "ldapbasedn ã‹ã‚‰ãƒ‰ãƒ¡ã‚¤ãƒ³åを抽出ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:2287 +#: libpq/auth.c:2285 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "LDAPèªè¨¼ã§\"%s\"ã«å¯¾ã™ã‚‹ DNS SRV レコードãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:2289 +#: libpq/auth.c:2287 #, c-format msgid "Set an LDAP server name explicitly." msgstr "LDAPサーãƒãƒ¼åを明示的ã«æŒ‡å®šã—ã¦ãã ã•ã„。" -#: libpq/auth.c:2341 +#: libpq/auth.c:2339 #, c-format msgid "could not initialize LDAP: %s" msgstr "LDAPã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/auth.c:2351 +#: libpq/auth.c:2349 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "ã“ã® LDAP ライブラリã§ã¯ ldaps ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:2359 +#: libpq/auth.c:2357 #, c-format msgid "could not initialize LDAP: %m" msgstr "LDAPã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:2369 +#: libpq/auth.c:2367 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "LDAPプãƒãƒˆã‚³ãƒ«ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’è¨å®šã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/auth.c:2409 +#: libpq/auth.c:2407 #, c-format msgid "could not load function _ldap_start_tls_sA in wldap32.dll" msgstr "wldap32.dllã®_ldap_start_tls_sA関数をèªã¿è¾¼ã¿ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:2410 +#: libpq/auth.c:2408 #, c-format msgid "LDAP over SSL is not supported on this platform." msgstr "ã“ã®ãƒ—ラットフォームã§ã¯LDAP over SSLをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。" -#: libpq/auth.c:2426 +#: libpq/auth.c:2424 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "LDAP TLSセッションを開始ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/auth.c:2497 +#: libpq/auth.c:2495 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP サーãƒãƒ¼ã‚‚ ldapbasedn も指定ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:2504 +#: libpq/auth.c:2502 #, c-format msgid "LDAP server not specified" msgstr "LDAP サーãƒãƒ¼ã®æŒ‡å®šãŒã‚ã‚Šã¾ã›ã‚“" -#: libpq/auth.c:2566 +#: libpq/auth.c:2564 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "LDAP èªè¨¼ã§ãƒ¦ãƒ¼ã‚¶ãƒ¼åã®ä¸ã«ä¸æ£ãªæ–‡å—ãŒã‚ã‚Šã¾ã™" -#: libpq/auth.c:2583 +#: libpq/auth.c:2581 #, c-format msgid "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": %s" msgstr "サーãƒãƒ¼\"%2$s\"ã§ã€ldapbinddn \"%1$s\"ã«ã‚ˆã‚‹LDAPãƒã‚¤ãƒ³ãƒ‰ã‚’実行ã§ãã¾ã›ã‚“ã§ã—ãŸ: %3$s" -#: libpq/auth.c:2612 +#: libpq/auth.c:2610 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "サーãƒãƒ¼\"%2$s\"ã§ã€ãƒ•ã‚£ãƒ«ã‚¿\"%1$s\"ã«ã‚ˆã‚‹LDAP検索ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %3$s" -#: libpq/auth.c:2626 +#: libpq/auth.c:2624 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "LDAPサーãƒãƒ¼\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: libpq/auth.c:2627 +#: libpq/auth.c:2625 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "サーãƒãƒ¼\"%2$s\"ã§ã€ãƒ•ã‚£ãƒ«ã‚¿\"%1$s\"ã«ã‚ˆã‚‹LDAP検索ãŒä½•ã‚‚è¿”ã—ã¾ã›ã‚“ã§ã—ãŸã€‚" -#: libpq/auth.c:2631 +#: libpq/auth.c:2629 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "LDAPユーザー\"%s\"ã¯ä¸€æ„ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: libpq/auth.c:2632 +#: libpq/auth.c:2630 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "LDAP search for filter \"%s\" on server \"%s\" returned %d entries." msgstr[0] "サーãƒãƒ¼\"%2$s\"ã§ã€ãƒ•ã‚£ãƒ«ã‚¿\"%1$s\"ã«ã‚ˆã‚‹LDAP検索ãŒ%3$dé …ç›®è¿”ã—ã¾ã—ãŸã€‚" -#: libpq/auth.c:2652 +#: libpq/auth.c:2650 #, c-format msgid "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" msgstr "サーãƒãƒ¼\"%2$s\"ã§\"%1$s\"ã«ãƒžãƒƒãƒã™ã‚‹æœ€åˆã®ã‚¨ãƒ³ãƒˆãƒªã® dn ã‚’å–å¾—ã§ãã¾ã›ã‚“: %3$s" -#: libpq/auth.c:2673 +#: libpq/auth.c:2671 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "サーãƒãƒ¼\"%2$s\"ã§ãƒ¦ãƒ¼ã‚¶ãƒ¼\"%1$s\"ã®æ¤œç´¢å¾Œã€unbindã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:2704 +#: libpq/auth.c:2702 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "サーãƒãƒ¼\"%2$s\"ã§ãƒ¦ãƒ¼ã‚¶ãƒ¼\"%1$s\"ã®LDAPãƒã‚°ã‚¤ãƒ³ãŒå¤±æ•—ã—ã¾ã—ãŸ: %3$s" -#: libpq/auth.c:2736 +#: libpq/auth.c:2734 #, c-format msgid "LDAP diagnostics: %s" msgstr "LDAP診æ–: %s" -#: libpq/auth.c:2774 +#: libpq/auth.c:2772 #, c-format msgid "certificate authentication failed for user \"%s\": client certificate contains no user name" msgstr "ユーザー \"%s\" ã®è¨¼æ˜Žæ›¸èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸ: クライアント証明書ã«ãƒ¦ãƒ¼ã‚¶ãƒ¼åãŒå«ã¾ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:2795 +#: libpq/auth.c:2793 #, c-format msgid "certificate authentication failed for user \"%s\": unable to retrieve subject DN" msgstr "ユーザー\"%s\"ã®è¨¼æ˜Žæ›¸èªè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸ: サブジェクトè˜åˆ¥å(DN)ãŒå–å¾—ã§ãã¾ã›ã‚“" -#: libpq/auth.c:2818 +#: libpq/auth.c:2816 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": DN mismatch" msgstr "ユーザー\"%s\"ã«å¯¾ã™ã‚‹è¨¼æ˜Žæ›¸ã®æ¤œè¨¼(clientcert=verify-full) ã«å¤±æ•—ã—ã¾ã—ãŸ: DN ä¸ä¸€è‡´" -#: libpq/auth.c:2823 +#: libpq/auth.c:2821 #, c-format msgid "certificate validation (clientcert=verify-full) failed for user \"%s\": CN mismatch" msgstr "ユーザー\"%s\"ã«å¯¾ã™ã‚‹è¨¼æ˜Žæ›¸ã®æ¤œè¨¼(clientcert=verify-full) ã«å¤±æ•—ã—ã¾ã—ãŸ: CN ä¸ä¸€è‡´" -#: libpq/auth.c:2925 +#: libpq/auth.c:2923 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS サーãƒãƒ¼ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:2932 +#: libpq/auth.c:2930 #, c-format msgid "RADIUS secret not specified" msgstr "RADIUS secret ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:2946 +#: libpq/auth.c:2944 #, c-format msgid "RADIUS authentication does not support passwords longer than %d characters" msgstr "RADIUSèªè¨¼ã§ã¯%dæ–‡å—より長ã„パスワードã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" -#: libpq/auth.c:3053 libpq/hba.c:1976 +#: libpq/auth.c:3051 libpq/hba.c:1976 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "RADIUS サーãƒãƒ¼å\"%s\"をアドレスã«å¤‰æ›ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/auth.c:3067 +#: libpq/auth.c:3065 #, c-format msgid "could not generate random encryption vector" msgstr "ランダムãªæš—å·åŒ–ベクトルを生æˆã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/auth.c:3104 +#: libpq/auth.c:3102 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "パスワードã®MD5æš—å·åŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:3131 +#: libpq/auth.c:3129 #, c-format msgid "could not create RADIUS socket: %m" msgstr "RADIUSã®ã‚½ã‚±ãƒƒãƒˆã‚’作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:3153 +#: libpq/auth.c:3151 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "ãƒãƒ¼ã‚«ãƒ«ã® RADIUS ソケットをãƒã‚¤ãƒ³ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:3163 +#: libpq/auth.c:3161 #, c-format msgid "could not send RADIUS packet: %m" msgstr "RADIUS パケットをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:3197 libpq/auth.c:3223 +#: libpq/auth.c:3195 libpq/auth.c:3221 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "%sã‹ã‚‰ã®RADIUSã®å¿œç”å¾…ã¡ãŒã‚¿ã‚¤ãƒ アウトã—ã¾ã—ãŸ" -#: libpq/auth.c:3216 +#: libpq/auth.c:3214 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "RADIUSソケットã®çŠ¶æ…‹ã‚’ãƒã‚§ãƒƒã‚¯ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:3246 +#: libpq/auth.c:3244 #, c-format msgid "could not read RADIUS response: %m" msgstr "RADIUSå¿œç”ã‚’èªã‚ã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/auth.c:3259 libpq/auth.c:3263 +#: libpq/auth.c:3257 libpq/auth.c:3261 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "%sã‹ã‚‰ã®RADIUSå¿œç”ãŒèª¤ã£ãŸãƒãƒ¼ãƒˆã‹ã‚‰é€ã‚‰ã‚Œã¦ãã¾ã—ãŸ: %d" -#: libpq/auth.c:3272 +#: libpq/auth.c:3270 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "%sã‹ã‚‰ã®RADIUSå¿œç”ãŒçŸã™ãŽã¾ã™: %d" -#: libpq/auth.c:3279 +#: libpq/auth.c:3277 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "%sã‹ã‚‰ã®RADIUSå¿œç”ãŒé–“é•ã£ãŸé•·ã•ã‚’ä¿æŒã—ã¦ã„ã¾ã™: %d(実際ã®é•·ã•ã¯%d)" -#: libpq/auth.c:3287 +#: libpq/auth.c:3285 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "%sã‹ã‚‰ã®RADIUSå¿œç”ã¯ç•°ãªã‚‹ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«å¯¾ã™ã‚‹ã‚‚ã®ã§ã™: %d (%d ã§ã‚ã‚‹ã¯ãš)" -#: libpq/auth.c:3312 +#: libpq/auth.c:3310 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "å—信パケットã®MD5æš—å·åŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ: %s" -#: libpq/auth.c:3322 +#: libpq/auth.c:3320 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "%sã‹ã‚‰ã®RADIUSå¿œç”ãŒé–“é•ã£ãŸMD5ã‚·ã‚°ãƒãƒãƒ£ã‚’ä¿æŒã—ã¦ã„ã¾ã™" -#: libpq/auth.c:3340 +#: libpq/auth.c:3338 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "%1$sã‹ã‚‰ã®RADIUSå¿œç”ãŒãƒ¦ãƒ¼ã‚¶ãƒ¼\"%3$s\"ã«ã¨ã£ã¦ä¸æ£ãªã‚³ãƒ¼ãƒ‰(%2$d)ã‚’ä¿æŒã—ã¦ã„ã¾ã™" @@ -14374,16 +14384,16 @@ 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) ã‹ãれよりも低ã„パーミッションã€root所有ã®å ´åˆã¯ u=rw,g=r (0640) ã‹ãれよりも低ã„パーミッションã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "GSSAPIåラップエラー" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "é€å‡ºã•ã‚Œã‚‹GSSAPIメッセージã«æ©Ÿå¯†æ€§ãŒé©ç”¨ã•ã‚Œã¾ã›ã‚“" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:622 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:622 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "サーãƒãƒ¼ã¯éŽå¤§ãªã‚µã‚¤ã‚ºã®GSSAPIパケットをé€ä¿¡ã—よã†ã¨ã—ã¾ã—ãŸ: (%zu > %zu)" @@ -14506,111 +14516,111 @@ msgstr "SSL接続をåˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" msgid "could not set SSL socket: %s" msgstr "SSLソケットをè¨å®šã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/be-secure-openssl.c:499 +#: libpq/be-secure-openssl.c:500 #, c-format msgid "could not accept SSL connection: %m" msgstr "SSL接続をå—ã‘付ã‘られã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/be-secure-openssl.c:503 libpq/be-secure-openssl.c:556 +#: libpq/be-secure-openssl.c:504 libpq/be-secure-openssl.c:557 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "SSL接続をå—ã‘付ã‘られã¾ã›ã‚“ã§ã—ãŸ: EOFを検出ã—ã¾ã—ãŸ" -#: libpq/be-secure-openssl.c:542 +#: libpq/be-secure-openssl.c:543 #, c-format msgid "could not accept SSL connection: %s" msgstr "SSL接続をå—ã‘付ã‘られã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:546 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "ã“ã®ã“ã¨ã¯ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒSSLプãƒãƒˆã‚³ãƒ«ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³%sã‹ã‚‰%sã®ã„ãšã‚Œã‚‚サãƒãƒ¼ãƒˆã—ã¦ã„ãªã„ã“ã¨ã‚’示唆ã—ã¦ã„ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。" -#: libpq/be-secure-openssl.c:561 libpq/be-secure-openssl.c:741 libpq/be-secure-openssl.c:805 +#: libpq/be-secure-openssl.c:562 libpq/be-secure-openssl.c:751 libpq/be-secure-openssl.c:821 #, c-format msgid "unrecognized SSL error code: %d" msgstr "èªè˜ã§ããªã„SSLエラーコード: %d" -#: libpq/be-secure-openssl.c:607 +#: libpq/be-secure-openssl.c:608 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "SSL 証明書ã®ã‚³ãƒ¢ãƒ³ãƒãƒ¼ãƒ ã« null ãŒå«ã¾ã‚Œã¦ã„ã¾ã™" -#: libpq/be-secure-openssl.c:647 +#: libpq/be-secure-openssl.c:654 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "SSL証明書ã®è˜åˆ¥åã®é€”ä¸ã«nullãŒå«ã¾ã‚Œã¦ã„ã¾ã™" -#: libpq/be-secure-openssl.c:730 libpq/be-secure-openssl.c:789 +#: libpq/be-secure-openssl.c:740 libpq/be-secure-openssl.c:805 #, c-format msgid "SSL error: %s" msgstr "SSLエラー: %s" -#: libpq/be-secure-openssl.c:971 +#: libpq/be-secure-openssl.c:982 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "DHパラメータファイル\"%s\"をオープンã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/be-secure-openssl.c:983 +#: libpq/be-secure-openssl.c:994 #, c-format msgid "could not load DH parameters file: %s" msgstr "DHパラメータをãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/be-secure-openssl.c:993 +#: libpq/be-secure-openssl.c:1004 #, c-format msgid "invalid DH parameters: %s" msgstr "ä¸æ£ãªDHパラメータã§ã™: %s" -#: libpq/be-secure-openssl.c:1002 +#: libpq/be-secure-openssl.c:1013 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "ä¸æ£ãªDHパラメータ: pã¯ç´ æ•°ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: libpq/be-secure-openssl.c:1011 +#: libpq/be-secure-openssl.c:1022 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "ä¸æ£ãªDHパラメータ: é©åˆ‡ãªç”Ÿæˆå™¨ã‚‚安全ãªç´ æ•°ã‚‚ã‚ã‚Šã¾ã›ã‚“" -#: libpq/be-secure-openssl.c:1172 +#: libpq/be-secure-openssl.c:1183 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: DHパラメータをãƒãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/be-secure-openssl.c:1180 +#: libpq/be-secure-openssl.c:1191 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: DHパラメータをè¨å®šã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: libpq/be-secure-openssl.c:1207 +#: libpq/be-secure-openssl.c:1218 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: èªè˜ã§ããªã„曲線å: %s" -#: libpq/be-secure-openssl.c:1216 +#: libpq/be-secure-openssl.c:1227 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: ã‚ーを生æˆã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/be-secure-openssl.c:1244 +#: libpq/be-secure-openssl.c:1255 msgid "no SSL error reported" msgstr "SSLエラーã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/be-secure-openssl.c:1248 +#: libpq/be-secure-openssl.c:1259 #, c-format msgid "SSL error code %lu" msgstr "SSLエラーコード: %lu" -#: libpq/be-secure-openssl.c:1407 +#: libpq/be-secure-openssl.c:1418 #, c-format msgid "could not create BIO" msgstr "BIOを作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/be-secure-openssl.c:1417 +#: libpq/be-secure-openssl.c:1428 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "ASN1_OBJECTオブジェクトã®NIDã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: libpq/be-secure-openssl.c:1425 +#: libpq/be-secure-openssl.c:1436 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "NID %dã‚’ASN1_OBJECTæ§‹é€ ä½“ã¸å¤‰æ›ã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -15118,7 +15128,7 @@ msgstr "ファイル\"%s\"ã®æ¨©é™ã‚’è¨å®šã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" msgid "could not accept new connection: %m" msgstr "æ–°ã—ã„接続をå—ã‘付ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/pqcomm.c:766 libpq/pqcomm.c:775 libpq/pqcomm.c:807 libpq/pqcomm.c:817 libpq/pqcomm.c:1642 libpq/pqcomm.c:1687 libpq/pqcomm.c:1727 libpq/pqcomm.c:1771 libpq/pqcomm.c:1810 libpq/pqcomm.c:1849 libpq/pqcomm.c:1885 libpq/pqcomm.c:1924 +#: libpq/pqcomm.c:766 libpq/pqcomm.c:775 libpq/pqcomm.c:807 libpq/pqcomm.c:817 libpq/pqcomm.c:1652 libpq/pqcomm.c:1697 libpq/pqcomm.c:1737 libpq/pqcomm.c:1781 libpq/pqcomm.c:1820 libpq/pqcomm.c:1859 libpq/pqcomm.c:1895 libpq/pqcomm.c:1934 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s)ãŒå¤±æ•—ã—ã¾ã—ãŸ: %m" @@ -15128,47 +15138,47 @@ msgstr "%s(%s)ãŒå¤±æ•—ã—ã¾ã—ãŸ: %m" msgid "there is no client connection" msgstr "クライアント接続ãŒã‚ã‚Šã¾ã›ã‚“" -#: libpq/pqcomm.c:972 libpq/pqcomm.c:1068 +#: libpq/pqcomm.c:977 libpq/pqcomm.c:1078 #, c-format msgid "could not receive data from client: %m" msgstr "クライアントã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’å—ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/pqcomm.c:1173 tcop/postgres.c:4373 +#: libpq/pqcomm.c:1183 tcop/postgres.c:4373 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "プãƒãƒˆã‚³ãƒ«ã®åŒæœŸãŒå¤±ã‚ã‚ŒãŸãŸã‚コãƒã‚¯ã‚·ãƒ§ãƒ³ã‚’終了ã—ã¾ã™" -#: libpq/pqcomm.c:1239 +#: libpq/pqcomm.c:1249 #, c-format msgid "unexpected EOF within message length word" msgstr "メッセージ長ワード内ã®EOFã¯æƒ³å®šå¤–ã§ã™" -#: libpq/pqcomm.c:1249 +#: libpq/pqcomm.c:1259 #, c-format msgid "invalid message length" msgstr "メッセージ長ãŒä¸æ£ã§ã™" -#: libpq/pqcomm.c:1271 libpq/pqcomm.c:1284 +#: libpq/pqcomm.c:1281 libpq/pqcomm.c:1294 #, c-format msgid "incomplete message from client" msgstr "クライアントã‹ã‚‰ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒä¸å®Œå…¨ã§ã™" -#: libpq/pqcomm.c:1395 +#: libpq/pqcomm.c:1405 #, c-format msgid "could not send data to client: %m" msgstr "クライアントã«ãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: libpq/pqcomm.c:1610 +#: libpq/pqcomm.c:1620 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s)ãŒå¤±æ•—ã—ã¾ã—ãŸ: エラーコード %d" -#: libpq/pqcomm.c:1699 +#: libpq/pqcomm.c:1709 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "ã‚ープアライブã®ã‚¢ã‚¤ãƒ‰ãƒ«æ™‚é–“ã®è¨å®šã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: libpq/pqcomm.c:1783 libpq/pqcomm.c:1858 libpq/pqcomm.c:1933 +#: libpq/pqcomm.c:1793 libpq/pqcomm.c:1868 libpq/pqcomm.c:1943 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s)ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" @@ -15178,7 +15188,7 @@ msgstr "%s(%s)ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" msgid "no data left in message" msgstr "メッセージ内ã«ãƒ‡ãƒ¼ã‚¿ãŒæ®‹ã£ã¦ã„ã¾ã›ã‚“" -#: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 utils/adt/arrayfuncs.c:1482 utils/adt/rowtypes.c:588 +#: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 utils/adt/arrayfuncs.c:1483 utils/adt/rowtypes.c:588 #, c-format msgid "insufficient data left in message" msgstr "メッセージ内ã«æ®‹ã‚‹ãƒ‡ãƒ¼ã‚¿ãŒä¸å分ã§ã™" @@ -15534,37 +15544,37 @@ msgstr "外部çµåˆã®NULLå¯ãªå´ã§ã¯%sã‚’é©ç”¨ã§ãã¾ã›ã‚“" msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "UNION/INTERSECT/EXCEPTã§ã¯%sを使用ã§ãã¾ã›ã‚“" -#: optimizer/plan/planner.c:2051 optimizer/plan/planner.c:3707 +#: optimizer/plan/planner.c:2045 optimizer/plan/planner.c:3702 #, c-format msgid "could not implement GROUP BY" msgstr "GROUP BY を実行ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: optimizer/plan/planner.c:2052 optimizer/plan/planner.c:3708 optimizer/plan/planner.c:4351 optimizer/prep/prepunion.c:1046 +#: optimizer/plan/planner.c:2046 optimizer/plan/planner.c:3703 optimizer/plan/planner.c:4346 optimizer/prep/prepunion.c:1046 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "一部ã®ãƒ‡ãƒ¼ã‚¿åž‹ãŒãƒãƒƒã‚·ãƒ¥ã®ã¿ã‚’サãƒãƒ¼ãƒˆã™ã‚‹ä¸€æ–¹ã§ã€åˆ¥ã®åž‹ã¯ã‚½ãƒ¼ãƒˆã®ã¿ã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚" -#: optimizer/plan/planner.c:4350 +#: optimizer/plan/planner.c:4345 #, c-format msgid "could not implement DISTINCT" msgstr "DISTINCTを実行ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: optimizer/plan/planner.c:5471 +#: optimizer/plan/planner.c:5466 #, c-format msgid "could not implement window PARTITION BY" msgstr "ウィンドウ㮠PARTITION BY を実行ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: optimizer/plan/planner.c:5472 +#: optimizer/plan/planner.c:5467 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "ウィンドウ分割ã«ä½¿ç”¨ã™ã‚‹åˆ—ã¯ã€ã‚½ãƒ¼ãƒˆå¯èƒ½ãªãƒ‡ãƒ¼ã‚¿åž‹ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" -#: optimizer/plan/planner.c:5476 +#: optimizer/plan/planner.c:5471 #, c-format msgid "could not implement window ORDER BY" msgstr "ウィンドウ㮠ORDER BY を実行ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: optimizer/plan/planner.c:5477 +#: optimizer/plan/planner.c:5472 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "ウィンドウã®é †åºä»˜ã‘ã‚’ã™ã‚‹åˆ—ã¯ã€ã‚½ãƒ¼ãƒˆå¯èƒ½ãªãƒ‡ãƒ¼ã‚¿åž‹ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" @@ -15585,7 +15595,7 @@ msgstr "ã™ã¹ã¦ã®åˆ—ã®ãƒ‡ãƒ¼ã‚¿åž‹ã¯ãƒãƒƒã‚·ãƒ¥å¯èƒ½ã§ãªã‘ã‚Œã°ãªã‚Š msgid "could not implement %s" msgstr "%sを実行ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: optimizer/util/clauses.c:4777 +#: optimizer/util/clauses.c:4843 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "SQL関数\"%s\"ã®ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³åŒ–処ç†ä¸" @@ -15834,330 +15844,330 @@ msgstr "%sã¯åå‰ä»˜ãタプルストアã«ã¯é©ç”¨ã§ãã¾ã›ã‚“" msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "%2$så¥ã®ãƒªãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³\"%1$s\"ã¯FROMå¥ã«ã‚ã‚Šã¾ã›ã‚“" -#: parser/parse_agg.c:220 parser/parse_oper.c:227 +#: parser/parse_agg.c:208 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "åž‹%sã®é †åºæ¼”ç®—åã‚’è˜åˆ¥ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: parser/parse_agg.c:222 +#: parser/parse_agg.c:210 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "DISTINCT 付ãã®é›†ç´„関数ã¯ã€å…¥åŠ›ãŒã‚½ãƒ¼ãƒˆå¯èƒ½ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: parser/parse_agg.c:257 +#: parser/parse_agg.c:268 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPINGã®å¼•æ•°ã¯32より少ããªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: parser/parse_agg.c:360 +#: parser/parse_agg.c:371 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "JOINæ¡ä»¶ã§é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:362 +#: parser/parse_agg.c:373 msgid "grouping operations are not allowed in JOIN conditions" msgstr "グルーピング演算ã¯JOINæ¡ä»¶ã®ä¸ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:385 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "集約関数ã¯è‡ªèº«ã®å•ã„åˆã‚ã›ãƒ¬ãƒ™ãƒ«ã®FROMå¥ã®ä¸ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:376 +#: parser/parse_agg.c:387 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "グルーピング演算ã¯è‡ªèº«ã®ã‚¯ã‚¨ãƒªãƒ¬ãƒ™ãƒ«ã®FROMå¥ã®ä¸ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:381 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "集約関数ã¯FROMå¥å†…ã®é–¢æ•°ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "グルーピング演算ã¯FROMå¥å†…ã®é–¢æ•°ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:391 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "集約関数ã¯ãƒãƒªã‚·å¼ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "グルーピング演算ã¯ãƒãƒªã‚·å¼ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:410 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "集約関数ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦RANGEã®ä¸ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:412 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "ウィンドウ定義ã®RANGEå¥ã®ä¸ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:417 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "ウィンドウ定義ã®ROWSå¥ã§ã¯é›†ç´„関数ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "ウィンドウ定義ã®ROWSå¥ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "ウィンドウ定義ã®GROUPSå¥ã§ã¯é›†ç´„関数ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "ウィンドウ定義ã®GROUPSå¥ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHENæ¡ä»¶ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:441 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "MERGE WHENæ¡ä»¶ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:467 +#: parser/parse_agg.c:478 msgid "aggregate functions are not allowed in check constraints" msgstr "検査制約ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:469 +#: parser/parse_agg.c:480 msgid "grouping operations are not allowed in check constraints" msgstr "検査制約ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:487 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "DEFAULTå¼ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:489 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "DEFAULTå¼ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:494 msgid "aggregate functions are not allowed in index expressions" msgstr "インデックスå¼ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:496 msgid "grouping operations are not allowed in index expressions" msgstr "インデックスå¼ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:501 msgid "aggregate functions are not allowed in index predicates" msgstr "インデックス述語ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:503 msgid "grouping operations are not allowed in index predicates" msgstr "インデックス述語ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:508 msgid "aggregate functions are not allowed in statistics expressions" msgstr "çµ±è¨ˆæƒ…å ±å¼ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:510 msgid "grouping operations are not allowed in statistics expressions" msgstr "çµ±è¨ˆæƒ…å ±å¼ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:515 msgid "aggregate functions are not allowed in transform expressions" msgstr "変æ›å¼ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:517 msgid "grouping operations are not allowed in transform expressions" msgstr "変æ›å¼ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:522 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "EXECUTEã®ãƒ‘ラメータã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:524 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "EXECUTEã®ãƒ‘ラメータã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:529 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "トリガã®WHENæ¡ä»¶ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:531 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "トリガã®WHENæ¡ä»¶ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:525 +#: parser/parse_agg.c:536 msgid "aggregate functions are not allowed in partition bound" msgstr "集約関数ã¯ãƒ‘ーティション境界ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:538 msgid "grouping operations are not allowed in partition bound" msgstr "グルーピング演算ã¯ãƒ‘ーティション境界ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:543 msgid "aggregate functions are not allowed in partition key expressions" msgstr "パーティションã‚ーå¼ã§ã¯é›†ç´„関数ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:545 msgid "grouping operations are not allowed in partition key expressions" msgstr "パーティションã‚ーå¼ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:540 +#: parser/parse_agg.c:551 msgid "aggregate functions are not allowed in column generation expressions" msgstr "集約関数ã¯ã‚«ãƒ©ãƒ 生æˆå¼ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:542 +#: parser/parse_agg.c:553 msgid "grouping operations are not allowed in column generation expressions" msgstr "グルーピング演算ã¯ã‚«ãƒ©ãƒ 生æˆå¼ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:559 msgid "aggregate functions are not allowed in CALL arguments" msgstr "CALLã®å¼•æ•°ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:550 +#: parser/parse_agg.c:561 msgid "grouping operations are not allowed in CALL arguments" msgstr "CALLã®å¼•æ•°ã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:567 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "集約関数㯠COPY FROM ã® WHERE æ¡ä»¶ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:558 +#: parser/parse_agg.c:569 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:585 parser/parse_clause.c:1836 +#: parser/parse_agg.c:596 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:588 +#: parser/parse_agg.c:599 #, c-format msgid "grouping operations are not allowed in %s" msgstr "%sã§ã¯ã‚°ãƒ«ãƒ¼ãƒ”ング演算を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:689 +#: parser/parse_agg.c:700 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "アウタレベルã®é›†ç´„ã¯ç›´æŽ¥å¼•æ•°ã«ä½Žä½ã®å¤‰æ•°ã‚’å«ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:767 +#: parser/parse_agg.c:778 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "集åˆè¿”å´é–¢æ•°ã®å‘¼ã³å‡ºã—ã«é›†ç´„関数ã®å‘¼ã³å‡ºã—ã‚’å«ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:768 parser/parse_expr.c:1674 parser/parse_expr.c:2156 parser/parse_func.c:883 +#: parser/parse_agg.c:779 parser/parse_expr.c:1674 parser/parse_expr.c:2156 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:773 +#: parser/parse_agg.c:784 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "集約関数ã®å‘¼ã³å‡ºã—ã«ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã®å‘¼ã³å‡ºã—ã‚’å«ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:852 +#: parser/parse_agg.c:863 msgid "window functions are not allowed in JOIN conditions" msgstr "JOINæ¡ä»¶ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:859 +#: parser/parse_agg.c:870 msgid "window functions are not allowed in functions in FROM" msgstr "FROMå¥å†…ã®é–¢æ•°ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:865 +#: parser/parse_agg.c:876 msgid "window functions are not allowed in policy expressions" msgstr "ãƒãƒªã‚·å¼ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:878 +#: parser/parse_agg.c:889 msgid "window functions are not allowed in window definitions" msgstr "ウィンドウ定義ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:889 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "MERGE WHENæ¡ä»¶ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in check constraints" msgstr "検査制約ã®ä¸ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:917 +#: parser/parse_agg.c:928 msgid "window functions are not allowed in DEFAULT expressions" msgstr "DEFAULTå¼ã®ä¸ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:920 +#: parser/parse_agg.c:931 msgid "window functions are not allowed in index expressions" msgstr "インデックスå¼ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:923 +#: parser/parse_agg.c:934 msgid "window functions are not allowed in statistics expressions" msgstr "çµ±è¨ˆæƒ…å ±å¼ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:926 +#: parser/parse_agg.c:937 msgid "window functions are not allowed in index predicates" msgstr "インデックス述語ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in transform expressions" msgstr "変æ›å¼ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:943 msgid "window functions are not allowed in EXECUTE parameters" msgstr "EXECUTEパラメータã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:946 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "トリガã®WHENæ¡ä»¶ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:949 msgid "window functions are not allowed in partition bound" msgstr "ウィンドウ関数ã¯ãƒ‘ーティション境界ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:952 msgid "window functions are not allowed in partition key expressions" msgstr "パーティションã‚ーå¼ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:955 msgid "window functions are not allowed in CALL arguments" msgstr "CALLã®å¼•æ•°ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:958 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "ウィンドウ関数㯠COPY FROM ã® WHERE æ¡ä»¶ã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:961 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:973 parser/parse_clause.c:1845 +#: parser/parse_agg.c:984 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "%sã®ä¸ã§ã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦é–¢æ•°ã‚’使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:1007 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1018 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "ウィンドウ\"%s\"ã¯å˜åœ¨ã—ã¾ã›ã‚“" -#: parser/parse_agg.c:1091 +#: parser/parse_agg.c:1102 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "グルーピングセットã®æ•°ãŒå¤šã™ãŽã¾ã™ (最大4096)" -#: parser/parse_agg.c:1231 +#: parser/parse_agg.c:1242 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "å†å¸°å•ã„åˆã‚ã›ã®å†å¸°é …ã§ã¯é›†ç´„関数を使用ã§ãã¾ã›ã‚“" -#: parser/parse_agg.c:1424 +#: parser/parse_agg.c:1435 #, 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:1427 +#: parser/parse_agg.c:1438 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "é †åºé›†åˆé›†ç´„ã®ç›´æŽ¥å¼•æ•°ã¯ã‚°ãƒ«ãƒ¼ãƒ”ングã•ã‚ŒãŸåˆ—ã®ã¿ã‚’使用ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" -#: parser/parse_agg.c:1432 +#: parser/parse_agg.c:1443 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "外部å•ã„åˆã‚ã›ã‹ã‚‰å‰¯å•ã„åˆã‚ã›ãŒã‚°ãƒ«ãƒ¼ãƒ—化ã•ã‚Œã¦ã„ãªã„列\"%s.%s\"を使用ã—ã¦ã„ã¾ã™" -#: parser/parse_agg.c:1596 +#: parser/parse_agg.c:1607 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "GROUPINGã®å¼•æ•°ã¯é–¢é€£ã™ã‚‹ã‚¯ã‚¨ãƒªãƒ¬ãƒ™ãƒ«ã®ã‚°ãƒ«ãƒ¼ãƒ”ングå¼ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" @@ -17760,11 +17770,6 @@ msgstr "CREATE TABLE ã§ã¯æ—¢å˜ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’使ãˆã¾ã›ã‚“" msgid "index \"%s\" is already associated with a constraint" msgstr "インデックス\"%s\"ã¯ã™ã§ã«1ã¤ã®åˆ¶ç´„ã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™" -#: parser/parse_utilcmd.c:2287 -#, c-format -msgid "index \"%s\" is not valid" -msgstr "インデックス\"%s\"ã¯æœ‰åŠ¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" - #: parser/parse_utilcmd.c:2293 #, c-format msgid "\"%s\" is not a unique index" @@ -18140,12 +18145,12 @@ msgstr "ã“ã®ãƒ—ラットフォームã§ã¯ãƒ’ュージページをサãƒãƒ¼ãƒˆ msgid "huge pages not supported with the current shared_memory_type setting" msgstr "ヒュージページã¯ç¾åœ¨ã®shared_memory_typeã®è¨å®šã§ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1187 +#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1195 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "æ—¢å˜ã®å…±æœ‰ãƒ¡ãƒ¢ãƒªãƒ–ãƒãƒƒã‚¯(ã‚ー%luã€ID %lu)ãŒã¾ã 使用ä¸ã§ã™" -#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1189 +#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1197 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "データディレクトリ \"%s\". ã«å¯¾å¿œã™ã‚‹å¤ã„サーãƒãƒ¼ãƒ—ãƒã‚»ã‚¹ã‚’ã™ã¹ã¦çµ‚了ã•ã›ã¦ãã ã•ã„。" @@ -18641,7 +18646,7 @@ msgstr "GSSAPIæš—å·åŒ–リクエストã®å¾Œã«éžæš—å·åŒ–データをå—ä¿¡" msgid "unsupported frontend protocol %u.%u: server supports %u.0 to %u.%u" msgstr "フãƒãƒ³ãƒˆã‚¨ãƒ³ãƒ‰ãƒ—ãƒãƒˆã‚³ãƒ«%u.%uをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“: サーãƒãƒ¼ã¯%u.0ã‹ã‚‰ %u.%uã¾ã§ã‚’サãƒãƒ¼ãƒˆã—ã¾ã™" -#: postmaster/postmaster.c:2264 utils/misc/guc.c:7400 utils/misc/guc.c:7436 utils/misc/guc.c:7506 utils/misc/guc.c:8937 utils/misc/guc.c:11971 utils/misc/guc.c:12012 +#: postmaster/postmaster.c:2264 utils/misc/guc.c:7400 utils/misc/guc.c:7436 utils/misc/guc.c:7506 utils/misc/guc.c:8944 utils/misc/guc.c:11986 utils/misc/guc.c:12027 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "パラメータ\"%s\"ã®å€¤ãŒä¸æ£ã§ã™: \"%s\"" @@ -19173,91 +19178,91 @@ msgstr "接続文å—列をパースã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "プライマリサーãƒãƒ¼ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚·ã‚¹ãƒ†ãƒ ã®è˜åˆ¥åã¨ã‚¿ã‚¤ãƒ ライン ID ã‚’å—ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:384 replication/libpqwalreceiver/libpqwalreceiver.c:622 +#: replication/libpqwalreceiver/libpqwalreceiver.c:388 replication/libpqwalreceiver/libpqwalreceiver.c:626 #, c-format msgid "invalid response from primary server" msgstr "プライマリサーãƒãƒ¼ã‹ã‚‰ã®å¿œç”ãŒä¸æ£ã§ã™" -#: replication/libpqwalreceiver/libpqwalreceiver.c:385 +#: replication/libpqwalreceiver/libpqwalreceiver.c:389 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "システムをè˜åˆ¥ã§ãã¾ã›ã‚“ã§ã—ãŸ: å—ä¿¡ã—ãŸã®ã¯%dè¡Œã§%d列ã€æœŸå¾…ã—ã¦ã„ãŸã®ã¯%dè¡Œã§%d以上ã®åˆ—ã§ã—ãŸã€‚" -#: replication/libpqwalreceiver/libpqwalreceiver.c:465 replication/libpqwalreceiver/libpqwalreceiver.c:472 replication/libpqwalreceiver/libpqwalreceiver.c:502 +#: replication/libpqwalreceiver/libpqwalreceiver.c:469 replication/libpqwalreceiver/libpqwalreceiver.c:476 replication/libpqwalreceiver/libpqwalreceiver.c:506 #, c-format msgid "could not start WAL streaming: %s" msgstr "WAL ストリーミングを開始ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:526 +#: replication/libpqwalreceiver/libpqwalreceiver.c:530 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "プライマリã«ã‚¹ãƒˆãƒªãƒ¼ãƒŸãƒ³ã‚°ã®çµ‚了メッセージをé€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:549 +#: replication/libpqwalreceiver/libpqwalreceiver.c:553 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "ストリーミングã®çµ‚了後ã®æƒ³å®šå¤–ã®çµæžœã‚»ãƒƒãƒˆ" -#: replication/libpqwalreceiver/libpqwalreceiver.c:564 +#: replication/libpqwalreceiver/libpqwalreceiver.c:568 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ストリーミングCOPY終了ä¸ã®ã‚¨ãƒ©ãƒ¼: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:574 +#: replication/libpqwalreceiver/libpqwalreceiver.c:578 #, c-format msgid "error reading result of streaming command: %s" msgstr "ストリーミングコマンドã®çµæžœèªã¿å–ã‚Šä¸ã®ã‚¨ãƒ©ãƒ¼: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:583 replication/libpqwalreceiver/libpqwalreceiver.c:821 +#: replication/libpqwalreceiver/libpqwalreceiver.c:587 replication/libpqwalreceiver/libpqwalreceiver.c:825 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "CommandComplete後ã®æƒ³å®šå¤–ã®çµæžœ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:610 +#: replication/libpqwalreceiver/libpqwalreceiver.c:614 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "プライマリサーãƒãƒ¼ã‹ã‚‰ã‚¿ã‚¤ãƒ ライン履æ´ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å—ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "2個ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’æŒã¤1個ã®ã‚¿ãƒ—ルを期待ã—ã¦ã„ã¾ã—ãŸãŒã€%2$d 個ã®ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã‚’æŒã¤ %1$d 個ã®ã‚¿ãƒ—ルをå—ä¿¡ã—ã¾ã—ãŸã€‚" -#: replication/libpqwalreceiver/libpqwalreceiver.c:784 replication/libpqwalreceiver/libpqwalreceiver.c:837 replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:788 replication/libpqwalreceiver/libpqwalreceiver.c:841 replication/libpqwalreceiver/libpqwalreceiver.c:848 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "WAL ストリームã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’å—ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:864 +#: replication/libpqwalreceiver/libpqwalreceiver.c:868 #, c-format msgid "could not send data to WAL stream: %s" msgstr "WAL ストリームã«ãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:956 +#: replication/libpqwalreceiver/libpqwalreceiver.c:960 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "レプリケーションスãƒãƒƒãƒˆ\"%s\"を作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1002 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1006 #, c-format msgid "invalid query response" msgstr "ä¸æ£ãªå•ã„åˆã‚ã›å¿œç”" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1007 #, c-format msgid "Expected %d fields, got %d fields." msgstr "%d個ã®åˆ—を期待ã—ã¦ã„ã¾ã—ãŸãŒã€%d列をå—ä¿¡ã—ã¾ã—ãŸã€‚" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1073 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1077 #, c-format msgid "the query interface requires a database connection" msgstr "クエリインタフェースã®å‹•ä½œã«ã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚³ãƒã‚¯ã‚·ãƒ§ãƒ³ãŒå¿…è¦ã§ã™" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1104 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1108 msgid "empty query" msgstr "空ã®å•ã„åˆã‚ã›" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1110 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1114 msgid "unexpected pipeline mode" msgstr "想定ã•ã‚Œã¦ã„ãªã„パイプラインモード" @@ -19613,47 +19618,47 @@ msgstr "サブスクリプション\"%s\"ã€ãƒ†ãƒ¼ãƒ–ル\"%s\"ã«å¯¾ã™ã‚‹è«–ç† msgid "logical replication apply worker for subscription \"%s\" will restart so that two_phase can be enabled" msgstr "two_phaseを有効化å¯èƒ½ã«ã™ã‚‹ãŸã‚ã€ã‚µãƒ–スクリプション\"%s\"ã«å¯¾å¿œã™ã‚‹è«–ç†ãƒ¬ãƒ—リケーションé©ç”¨ãƒ¯ãƒ¼ã‚«ãƒ¼ã‚’å†èµ·å‹•ã—ã¾ã™" -#: replication/logical/tablesync.c:731 replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:741 replication/logical/tablesync.c:882 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "テーブル\"%s.%s\"ã®ãƒ†ãƒ¼ãƒ–ãƒ«æƒ…å ±ã‚’ç™ºè¡Œã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/logical/tablesync.c:738 +#: replication/logical/tablesync.c:748 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "テーブル\"%s.%s\"ãŒç™ºè¡Œã‚µãƒ¼ãƒãƒ¼ä¸Šã§è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: replication/logical/tablesync.c:795 +#: replication/logical/tablesync.c:805 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "テーブル\"%s.%s\"ã®åˆ—ãƒªã‚¹ãƒˆæƒ…å ±ã‚’ç™ºè¡Œã‚µãƒ¼ãƒãƒ¼ã‹ã‚‰å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/logical/tablesync.c:974 +#: replication/logical/tablesync.c:984 #, c-format msgid "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: %s" msgstr "テーブル\"%s.%s\"ã®ãƒ†ãƒ¼ãƒ–ルã®ãƒ†ãƒ¼ãƒ–ルWHEREå¥ã‚’発行サーãƒãƒ¼ã‹ã‚‰å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/logical/tablesync.c:1111 +#: replication/logical/tablesync.c:1129 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "テーブル\"%s.%s\"ã®åˆæœŸå†…容ã®ã‚³ãƒ”ーを開始ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s" -#: replication/logical/tablesync.c:1323 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1341 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:1338 +#: replication/logical/tablesync.c:1356 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "テーブルコピーä¸ã«ç™ºè¡Œã‚µãƒ¼ãƒãƒ¼ä¸Šã§ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³é–‹å§‹ã«å¤±æ•—ã—ã¾ã—ãŸ: %s" -#: replication/logical/tablesync.c:1380 +#: replication/logical/tablesync.c:1398 #, c-format msgid "replication origin \"%s\" already exists" msgstr "レプリケーション基点\"%s\"ã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™" -#: replication/logical/tablesync.c:1393 +#: replication/logical/tablesync.c:1411 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "テーブルコピーä¸ã«ç™ºè¡Œã‚µãƒ¼ãƒãƒ¼ä¸Šã§ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³çµ‚了ã«å¤±æ•—ã—ã¾ã—ãŸ: %s" @@ -21095,17 +21100,17 @@ msgstr "共有メモリセグメント\"%s\"をクãƒãƒ¼ã‚ºã§ãã¾ã›ã‚“ã§ã— msgid "could not duplicate handle for \"%s\": %m" msgstr "\"%s\"ã®ãƒãƒ³ãƒ‰ãƒ«ã®è¤‡è£½ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: storage/ipc/procarray.c:3846 +#: storage/ipc/procarray.c:3845 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "データベース\"%s\"ã¯æº–備済ã¿ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã§ä½¿ç”¨ä¸ã§ã™" -#: storage/ipc/procarray.c:3878 storage/ipc/signalfuncs.c:226 +#: storage/ipc/procarray.c:3877 storage/ipc/signalfuncs.c:231 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "スーパーユーザーã®ãƒ—ãƒã‚»ã‚¹ã‚’終了ã•ã›ã‚‹ã«ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: storage/ipc/procarray.c:3885 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3884 storage/ipc/signalfuncs.c:236 #, c-format msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" msgstr "終了ã—よã†ã¨ã—ã¦ã„るプãƒã‚»ã‚¹ã®ãƒãƒ¼ãƒ«ã¾ãŸã¯pg_signal_backendã®ãƒ¡ãƒ³ãƒã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" @@ -21160,49 +21165,49 @@ msgstr "è¦æ±‚ã•ã‚ŒãŸå…±æœ‰ãƒ¡ãƒ¢ãƒªã®ã‚µã‚¤ã‚ºã¯size_tを超ãˆã¦ã„ã¾ã™ msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %dã¯PostgreSQLãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãƒ—ãƒã‚»ã‚¹ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1434 utils/adt/mcxtfuncs.c:190 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1442 utils/adt/mcxtfuncs.c:190 #, c-format msgid "could not send signal to process %d: %m" msgstr "プãƒã‚»ã‚¹%dã«ã‚·ã‚°ãƒŠãƒ«ã‚’é€ä¿¡ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: storage/ipc/signalfuncs.c:124 +#: storage/ipc/signalfuncs.c:129 #, c-format msgid "must be a superuser to cancel superuser query" msgstr "スーパーユーザーã®å•ã„åˆã‚ã›ã‚’ã‚ャンセルã™ã‚‹ã«ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: storage/ipc/signalfuncs.c:129 +#: storage/ipc/signalfuncs.c:134 #, c-format msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend" msgstr "ã‚ャンセルã—よã†ã¨ã—ã¦ã„ã‚‹å•ã„åˆã‚ã›ã®ãƒãƒ¼ãƒ«ã¾ãŸã¯pg_signal_backendã®ãƒ¡ãƒ³ãƒã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: storage/ipc/signalfuncs.c:170 +#: storage/ipc/signalfuncs.c:175 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "PID %dã®ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã®å˜åœ¨ã®ç¢ºèªã«å¤±æ•—ã—ã¾ã—ãŸ: %m" -#: storage/ipc/signalfuncs.c:188 +#: storage/ipc/signalfuncs.c:193 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" msgstr[0] "PID %dã®ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ãŒ%lldミリ秒ã§çµ‚了ã—ã¾ã›ã‚“ã§ã—ãŸ" -#: storage/ipc/signalfuncs.c:219 +#: storage/ipc/signalfuncs.c:224 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\"ã¯è² æ•°ã§ã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“" -#: storage/ipc/signalfuncs.c:271 +#: storage/ipc/signalfuncs.c:276 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" msgstr "adminpack 1.0 ã§ãƒã‚°ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ãƒãƒ¼ãƒ†ãƒ¼ãƒˆã™ã‚‹ã«ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™" #. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:273 utils/adt/genfile.c:250 +#: storage/ipc/signalfuncs.c:278 utils/adt/genfile.c:250 #, c-format msgid "Consider using %s, which is part of core, instead." msgstr "代ã‚ã‚Šã«ã‚³ã‚¢ã®ä¸€éƒ¨ã§ã‚ã‚‹ %s ã®ä½¿ç”¨ã‚’検討ã—ã¦ãã ã•ã„。" -#: storage/ipc/signalfuncs.c:279 storage/ipc/signalfuncs.c:299 +#: storage/ipc/signalfuncs.c:284 storage/ipc/signalfuncs.c:304 #, c-format msgid "rotation not possible because log collection not active" msgstr "ãƒã‚°åŽé›†ãŒæ´»å‹•ã—ã¦ã„ã¾ã›ã‚“ã®ã§ãƒãƒ¼ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¡Œã†ã“ã¨ãŒã§ãã¾ã›ã‚“" @@ -21475,27 +21480,27 @@ msgstr "リトライãŒè¡Œã‚ã‚ŒãŸå ´åˆã€ã“ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã¯æˆ msgid "number of requested standby connections exceeds max_wal_senders (currently %d)" msgstr "è¦æ±‚ã•ã‚ŒãŸã‚¹ã‚¿ãƒ³ãƒã‚¤æŽ¥ç¶šãŒ max_wal_senders を超ãˆã¦ã„ã¾ã™ï¼ˆç¾åœ¨ã¯ %d)" -#: storage/lmgr/proc.c:1531 +#: storage/lmgr/proc.c:1539 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "プãƒã‚»ã‚¹%1$dã¯ã€%4$ld.%5$03d ms後ã«ã‚ューã®é †ç•ªã‚’å†èª¿æ•´ã™ã‚‹ã“ã¨ã§ã€%3$s上ã®%2$sã«å¯¾ã™ã‚‹ãƒ‡ãƒƒãƒ‰ãƒãƒƒã‚¯ã‚’防ãŽã¾ã—ãŸã€‚" -#: storage/lmgr/proc.c:1546 +#: storage/lmgr/proc.c:1554 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "プãƒã‚»ã‚¹%1$dã¯ã€%3$s上ã®%2$sã«å¯¾ã—%4$ld.%5$03d mså¾…æ©Ÿã™ã‚‹ãƒ‡ãƒƒãƒ‰ãƒãƒƒã‚¯ã‚’検知ã—ã¾ã—ãŸ" -#: storage/lmgr/proc.c:1555 +#: storage/lmgr/proc.c:1563 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "プãƒã‚»ã‚¹%dã¯%sã‚’%sã§å¾…æ©Ÿã—ã¦ã„ã¾ã™ã€‚%ld.%03dミリ秒後" -#: storage/lmgr/proc.c:1562 +#: storage/lmgr/proc.c:1570 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "プãƒã‚»ã‚¹%1$dã¯%4$ld.%5$03d ms後ã«%3$s上ã®%2$sã‚’ç²å¾—ã—ã¾ã—ãŸ" -#: storage/lmgr/proc.c:1579 +#: storage/lmgr/proc.c:1587 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "プãƒã‚»ã‚¹%1$dã¯%4$ld.%5$03d ms後ã«%3$s上ã§%2$sã‚’ç²å¾—ã™ã‚‹ã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" @@ -22427,223 +22432,223 @@ msgstr "多次元é…列内ã®è¦ç´ ã®æ¤œç´¢ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" msgid "initial position must not be null" msgstr "åˆæœŸä½ç½®nullã§ã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:271 utils/adt/arrayfuncs.c:285 utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:318 utils/adt/arrayfuncs.c:333 utils/adt/arrayfuncs.c:347 utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360 utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:509 utils/adt/arrayfuncs.c:520 utils/adt/arrayfuncs.c:535 utils/adt/arrayfuncs.c:556 utils/adt/arrayfuncs.c:586 utils/adt/arrayfuncs.c:593 utils/adt/arrayfuncs.c:601 utils/adt/arrayfuncs.c:635 -#: utils/adt/arrayfuncs.c:658 utils/adt/arrayfuncs.c:678 utils/adt/arrayfuncs.c:790 utils/adt/arrayfuncs.c:799 utils/adt/arrayfuncs.c:829 utils/adt/arrayfuncs.c:844 utils/adt/arrayfuncs.c:897 +#: utils/adt/arrayfuncs.c:272 utils/adt/arrayfuncs.c:286 utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:319 utils/adt/arrayfuncs.c:334 utils/adt/arrayfuncs.c:348 utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:510 utils/adt/arrayfuncs.c:521 utils/adt/arrayfuncs.c:536 utils/adt/arrayfuncs.c:557 utils/adt/arrayfuncs.c:587 utils/adt/arrayfuncs.c:594 utils/adt/arrayfuncs.c:602 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:659 utils/adt/arrayfuncs.c:679 utils/adt/arrayfuncs.c:791 utils/adt/arrayfuncs.c:800 utils/adt/arrayfuncs.c:830 utils/adt/arrayfuncs.c:845 utils/adt/arrayfuncs.c:898 #, c-format msgid "malformed array literal: \"%s\"" msgstr "é…列リテラルã®æ›¸å¼ãŒèª¤ã£ã¦ã„ã¾ã™: \"%s\"" -#: utils/adt/arrayfuncs.c:272 +#: utils/adt/arrayfuncs.c:273 #, c-format msgid "\"[\" must introduce explicitly-specified array dimensions." msgstr "\"[\"ã¯é…列次元ã®æ˜Žç¤ºçš„ãªæŒ‡å®šã®å…ˆé ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:287 #, c-format msgid "Missing array dimension value." msgstr "é…列ã®æ¬¡å…ƒæ•°ã®å€¤ãŒã‚ã‚Šã¾ã›ã‚“。" -#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:334 +#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:335 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "é…列ã®æ¬¡å…ƒã®å¾Œã«\"%s\"ãŒã‚ã‚Šã¾ã›ã‚“。" -#: utils/adt/arrayfuncs.c:306 utils/adt/arrayfuncs.c:2909 utils/adt/arrayfuncs.c:2941 utils/adt/arrayfuncs.c:2956 +#: utils/adt/arrayfuncs.c:307 utils/adt/arrayfuncs.c:2945 utils/adt/arrayfuncs.c:2990 utils/adt/arrayfuncs.c:3005 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "上é™ã‚’下é™ã‚ˆã‚Šå°ã•ãã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:320 #, c-format msgid "Array value must start with \"{\" or dimension information." msgstr "é…列値ã¯\"{\"ã¾ãŸã¯æ¬¡å…ƒæƒ…å ±ã‹ã‚‰å§‹ã¾ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:349 #, c-format msgid "Array contents must start with \"{\"." msgstr "é…列ã®å†…容ã¯\"{\"ã§å§‹ã¾ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:355 utils/adt/arrayfuncs.c:362 #, c-format msgid "Specified array dimensions do not match array contents." msgstr "指定ã•ã‚ŒãŸé…列ã®æ¬¡å…ƒæ•°ãŒé…列ã®å†…容ã¨åˆè‡´ã—ã¦ã„ã¾ã›ã‚“。" -#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:521 utils/adt/multirangetypes.c:164 utils/adt/rangetypes.c:2310 utils/adt/rangetypes.c:2318 utils/adt/rowtypes.c:211 utils/adt/rowtypes.c:219 +#: utils/adt/arrayfuncs.c:495 utils/adt/arrayfuncs.c:522 utils/adt/multirangetypes.c:164 utils/adt/rangetypes.c:2310 utils/adt/rangetypes.c:2318 utils/adt/rowtypes.c:211 utils/adt/rowtypes.c:219 #, c-format msgid "Unexpected end of input." msgstr "想定外ã®å…¥åŠ›ã®çµ‚端。" -#: utils/adt/arrayfuncs.c:510 utils/adt/arrayfuncs.c:557 utils/adt/arrayfuncs.c:587 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:511 utils/adt/arrayfuncs.c:558 utils/adt/arrayfuncs.c:588 utils/adt/arrayfuncs.c:637 #, c-format msgid "Unexpected \"%c\" character." msgstr "想定外ã®æ–‡å—\"%c\"。" -#: utils/adt/arrayfuncs.c:536 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:537 utils/adt/arrayfuncs.c:660 #, c-format msgid "Unexpected array element." msgstr "想定外ã®é…列è¦ç´ 。" -#: utils/adt/arrayfuncs.c:594 +#: utils/adt/arrayfuncs.c:595 #, c-format msgid "Unmatched \"%c\" character." msgstr "対応ã—ãªã„\"%c\"æ–‡å—。" -#: utils/adt/arrayfuncs.c:602 utils/adt/jsonfuncs.c:2490 +#: utils/adt/arrayfuncs.c:603 utils/adt/jsonfuncs.c:2490 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "多次元é…列ã¯åˆè‡´ã™ã‚‹æ¬¡å…ƒã®å‰¯é…列をæŒãŸãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" -#: utils/adt/arrayfuncs.c:679 utils/adt/multirangetypes.c:287 +#: utils/adt/arrayfuncs.c:680 utils/adt/multirangetypes.c:287 #, c-format msgid "Junk after closing right brace." msgstr "å³å¤§æ‹¬å¼§ã®å¾Œã«ã”ã¿ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3369 utils/adt/arrayfuncs.c:5883 +#: utils/adt/arrayfuncs.c:1302 utils/adt/arrayfuncs.c:3418 utils/adt/arrayfuncs.c:5932 #, c-format msgid "invalid number of dimensions: %d" msgstr "ä¸æ£ãªæ¬¡å…ƒæ•°: %d" -#: utils/adt/arrayfuncs.c:1312 +#: utils/adt/arrayfuncs.c:1313 #, c-format msgid "invalid array flags" msgstr "ä¸æ£ãªé…列フラグ" -#: utils/adt/arrayfuncs.c:1334 +#: utils/adt/arrayfuncs.c:1335 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "ãƒã‚¤ãƒŠãƒªãƒ‡ãƒ¼ã‚¿ä¸ã«æœŸå¾…ã•ã‚Œã‚‹åž‹%3$u(%4$s)ã®ä»£ã‚ã‚Šã«%1$u(%2$s)ãŒã‚ã‚Šã¾ã—ãŸ" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:445 utils/adt/rangetypes.c:333 utils/cache/lsyscache.c:2915 +#: utils/adt/arrayfuncs.c:1379 utils/adt/multirangetypes.c:445 utils/adt/rangetypes.c:333 utils/cache/lsyscache.c:2915 #, c-format msgid "no binary input function available for type %s" msgstr "åž‹%sã«ã¯ãƒã‚¤ãƒŠãƒªå…¥åŠ›é–¢æ•°ãŒã‚ã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:1518 +#: utils/adt/arrayfuncs.c:1519 #, c-format msgid "improper binary format in array element %d" msgstr "é…列è¦ç´ %dã®ãƒã‚¤ãƒŠãƒªæ›¸å¼ãŒä¸é©åˆ‡ã§ã™" -#: utils/adt/arrayfuncs.c:1599 utils/adt/multirangetypes.c:450 utils/adt/rangetypes.c:338 utils/cache/lsyscache.c:2948 +#: utils/adt/arrayfuncs.c:1600 utils/adt/multirangetypes.c:450 utils/adt/rangetypes.c:338 utils/cache/lsyscache.c:2948 #, c-format msgid "no binary output function available for type %s" msgstr "åž‹%sã«ã¯ãƒã‚¤ãƒŠãƒªå‡ºåŠ›é–¢æ•°ãŒã‚ã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:2078 +#: utils/adt/arrayfuncs.c:2079 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "固定長é…列ã®éƒ¨åˆ†é…列ã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:2256 utils/adt/arrayfuncs.c:2278 utils/adt/arrayfuncs.c:2327 utils/adt/arrayfuncs.c:2565 utils/adt/arrayfuncs.c:2887 utils/adt/arrayfuncs.c:5869 utils/adt/arrayfuncs.c:5895 utils/adt/arrayfuncs.c:5906 utils/adt/json.c:1141 utils/adt/json.c:1215 utils/adt/jsonb.c:1315 utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4326 utils/adt/jsonfuncs.c:4480 utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4641 +#: utils/adt/arrayfuncs.c:2257 utils/adt/arrayfuncs.c:2279 utils/adt/arrayfuncs.c:2328 utils/adt/arrayfuncs.c:2582 utils/adt/arrayfuncs.c:2920 utils/adt/arrayfuncs.c:5918 utils/adt/arrayfuncs.c:5944 utils/adt/arrayfuncs.c:5955 utils/adt/json.c:1141 utils/adt/json.c:1215 utils/adt/jsonb.c:1315 utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4326 utils/adt/jsonfuncs.c:4480 utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4641 #, c-format msgid "wrong number of array subscripts" msgstr "é…列ã®æ·»ãˆå—ãŒä¸æ£ãªæ•°å€¤ã§ã™" -#: utils/adt/arrayfuncs.c:2261 utils/adt/arrayfuncs.c:2369 utils/adt/arrayfuncs.c:2632 utils/adt/arrayfuncs.c:2946 +#: utils/adt/arrayfuncs.c:2262 utils/adt/arrayfuncs.c:2386 utils/adt/arrayfuncs.c:2665 utils/adt/arrayfuncs.c:2995 #, c-format msgid "array subscript out of range" msgstr "é…列ã®æ·»ãˆå—ãŒç¯„囲外ã§ã™" -#: utils/adt/arrayfuncs.c:2266 +#: utils/adt/arrayfuncs.c:2267 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "固定長é…列ã®è¦ç´ ã«NULL値を代入ã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:2834 +#: utils/adt/arrayfuncs.c:2867 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "固定長é…列ã®éƒ¨åˆ†é…列ã®æ›´æ–°ã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:2865 +#: utils/adt/arrayfuncs.c:2898 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "é…列ã®ã‚¹ãƒ©ã‚¤ã‚¹ã®æ·»ãˆå—ã¯ä¸¡æ–¹ã®å¢ƒç•Œã‚’示ã™å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: utils/adt/arrayfuncs.c:2866 +#: utils/adt/arrayfuncs.c:2899 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "空ã®é…列値ã®ã‚¹ãƒ©ã‚¤ã‚¹ã«ä»£å…¥ã™ã‚‹ã«ã¯ã€ã‚¹ãƒ©ã‚¤ã‚¹ã®ç¯„囲ã¯å®Œå…¨ã«æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/adt/arrayfuncs.c:2877 utils/adt/arrayfuncs.c:2973 +#: utils/adt/arrayfuncs.c:2910 utils/adt/arrayfuncs.c:3022 #, c-format msgid "source array too small" msgstr "å…ƒã®é…列ãŒå°ã•ã™ãŽã¾ã™" -#: utils/adt/arrayfuncs.c:3527 +#: utils/adt/arrayfuncs.c:3576 #, c-format msgid "null array element not allowed in this context" msgstr "ã“ã®æ–‡è„ˆã§ã¯NULLã®é…列è¦ç´ ã¯è¨±å¯ã•ã‚Œã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:3629 utils/adt/arrayfuncs.c:3800 utils/adt/arrayfuncs.c:4191 +#: utils/adt/arrayfuncs.c:3678 utils/adt/arrayfuncs.c:3849 utils/adt/arrayfuncs.c:4240 #, c-format msgid "cannot compare arrays of different element types" msgstr "è¦ç´ åž‹ã®ç•°ãªã‚‹é…列を比較ã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:3978 utils/adt/multirangetypes.c:2799 utils/adt/multirangetypes.c:2871 utils/adt/rangetypes.c:1343 utils/adt/rangetypes.c:1407 utils/adt/rowtypes.c:1858 +#: utils/adt/arrayfuncs.c:4027 utils/adt/multirangetypes.c:2799 utils/adt/multirangetypes.c:2871 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" msgstr "åž‹ %s ã®ãƒãƒƒã‚·ãƒ¥é–¢æ•°ã‚’è˜åˆ¥ã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:4106 utils/adt/rowtypes.c:1979 +#: utils/adt/arrayfuncs.c:4155 utils/adt/rowtypes.c:1979 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "åž‹ %s ã®æ‹¡å¼µãƒãƒƒã‚·ãƒ¥é–¢æ•°ã‚’特定ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: utils/adt/arrayfuncs.c:5283 +#: utils/adt/arrayfuncs.c:5332 #, c-format msgid "data type %s is not an array type" msgstr "データ型%sã¯é…列型ã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5338 +#: utils/adt/arrayfuncs.c:5387 #, c-format msgid "cannot accumulate null arrays" msgstr "nullé…列ã¯é€£çµã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5366 +#: utils/adt/arrayfuncs.c:5415 #, c-format msgid "cannot accumulate empty arrays" msgstr "空ã®é…列ã¯é€£çµã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5393 utils/adt/arrayfuncs.c:5399 +#: utils/adt/arrayfuncs.c:5442 utils/adt/arrayfuncs.c:5448 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "次元ã®ç•°ãªã‚‹é…列ã¯çµåˆã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5767 utils/adt/arrayfuncs.c:5807 +#: utils/adt/arrayfuncs.c:5816 utils/adt/arrayfuncs.c:5856 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "次元é…列もã—ãã¯ä¸‹é™å€¤é…列㌠NULL ã§ã‚ã£ã¦ã¯ãªã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5870 utils/adt/arrayfuncs.c:5896 +#: utils/adt/arrayfuncs.c:5919 utils/adt/arrayfuncs.c:5945 #, c-format msgid "Dimension array must be one dimensional." msgstr "次元é…列ã¯1次元ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5875 utils/adt/arrayfuncs.c:5901 +#: utils/adt/arrayfuncs.c:5924 utils/adt/arrayfuncs.c:5950 #, c-format msgid "dimension values cannot be null" msgstr "次元値ã«nullã«ã¯ã§ãã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:5907 +#: utils/adt/arrayfuncs.c:5956 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "下é™é…列ãŒæ¬¡å…ƒé…列ã®ã‚µã‚¤ã‚ºã¨ç•°ãªã£ã¦ã„ã¾ã™" -#: utils/adt/arrayfuncs.c:6185 +#: utils/adt/arrayfuncs.c:6234 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "多次元é…列ã‹ã‚‰ã®è¦ç´ 削除ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:6462 +#: utils/adt/arrayfuncs.c:6511 #, c-format msgid "thresholds must be one-dimensional array" msgstr "閾値ã¯1次元ã®é…列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:6467 +#: utils/adt/arrayfuncs.c:6516 #, c-format msgid "thresholds array must not contain NULLs" msgstr "閾値é…列ã«ã¯NULL値をå«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“" -#: utils/adt/arrayfuncs.c:6700 +#: utils/adt/arrayfuncs.c:6749 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "削除ã™ã‚‹è¦ç´ ã®æ•°ã¯0ã¨%dã¨ã®é–“ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" @@ -22658,22 +22663,22 @@ msgstr "é…列ã®æ·»ãˆå—ã¯æ•´æ•°åž‹ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" msgid "array subscript in assignment must not be null" msgstr "代入ã«ãŠã‘ã‚‹é…列ã®æ·»ãˆå—ã¯nullã«ã¯ã§ãã¾ã›ã‚“" -#: utils/adt/arrayutils.c:140 +#: utils/adt/arrayutils.c:134 #, c-format msgid "array lower bound is too large: %d" msgstr "é…列ã®ä¸‹ç•ŒãŒå¤§ãã™ãŽã¾ã™: %d" -#: utils/adt/arrayutils.c:240 +#: utils/adt/arrayutils.c:234 #, c-format msgid "typmod array must be type cstring[]" msgstr "typmodé…列ã¯cstring[]åž‹ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: utils/adt/arrayutils.c:245 +#: utils/adt/arrayutils.c:239 #, c-format msgid "typmod array must be one-dimensional" msgstr "typmodé…列ã¯1次元ã®é…列ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: utils/adt/arrayutils.c:250 +#: utils/adt/arrayutils.c:244 #, c-format msgid "typmod array must not contain nulls" msgstr "typmodé…列ã«ã¯NULL値をå«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“" @@ -22697,7 +22702,7 @@ msgid "value \"%s\" is out of range for type %s" msgstr "値\"%s\"ã¯åž‹%sã®ç¯„囲外ã§ã™" #: utils/adt/cash.c:651 utils/adt/cash.c:701 utils/adt/cash.c:752 utils/adt/cash.c:801 utils/adt/cash.c:853 utils/adt/cash.c:903 utils/adt/float.c:105 utils/adt/int.c:842 utils/adt/int.c:958 utils/adt/int.c:1038 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:943 utils/adt/int8.c:1023 utils/adt/int8.c:1085 utils/adt/int8.c:1165 utils/adt/numeric.c:3093 utils/adt/numeric.c:3116 -#: utils/adt/numeric.c:3201 utils/adt/numeric.c:3219 utils/adt/numeric.c:3315 utils/adt/numeric.c:8481 utils/adt/numeric.c:8771 utils/adt/numeric.c:9096 utils/adt/numeric.c:10553 utils/adt/timestamp.c:3337 +#: utils/adt/numeric.c:3201 utils/adt/numeric.c:3219 utils/adt/numeric.c:3315 utils/adt/numeric.c:8481 utils/adt/numeric.c:8771 utils/adt/numeric.c:9096 utils/adt/numeric.c:10553 utils/adt/timestamp.c:3361 #, c-format msgid "division by zero" msgstr "0 ã«ã‚ˆã‚‹é™¤ç®—ãŒè¡Œã‚ã‚Œã¾ã—ãŸ" @@ -22757,20 +22762,20 @@ msgstr "ç„¡é™å¤§ã®æ—¥ä»˜ã¯æ¸›ç®—ã§ãã¾ã›ã‚“" msgid "date out of range for timestamp" msgstr "タイムスタンプã§æ—¥ä»˜ãŒç¯„囲外ã§ã™" -#: utils/adt/date.c:1115 utils/adt/date.c:1198 utils/adt/date.c:1214 utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4032 utils/adt/timestamp.c:4225 utils/adt/timestamp.c:4397 utils/adt/timestamp.c:4650 utils/adt/timestamp.c:4851 utils/adt/timestamp.c:4898 utils/adt/timestamp.c:5122 utils/adt/timestamp.c:5169 utils/adt/timestamp.c:5299 +#: utils/adt/date.c:1115 utils/adt/date.c:1198 utils/adt/date.c:1214 utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4078 utils/adt/timestamp.c:4271 utils/adt/timestamp.c:4443 utils/adt/timestamp.c:4696 utils/adt/timestamp.c:4897 utils/adt/timestamp.c:4944 utils/adt/timestamp.c:5168 utils/adt/timestamp.c:5215 utils/adt/timestamp.c:5345 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "å˜ä½\"%s\"ã¯åž‹%sã«å¯¾ã—ã¦ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/adt/date.c:1223 utils/adt/date.c:2211 utils/adt/date.c:2993 utils/adt/timestamp.c:4046 utils/adt/timestamp.c:4242 utils/adt/timestamp.c:4411 utils/adt/timestamp.c:4610 utils/adt/timestamp.c:4907 utils/adt/timestamp.c:5178 utils/adt/timestamp.c:5360 +#: utils/adt/date.c:1223 utils/adt/date.c:2211 utils/adt/date.c:2993 utils/adt/timestamp.c:4092 utils/adt/timestamp.c:4288 utils/adt/timestamp.c:4457 utils/adt/timestamp.c:4656 utils/adt/timestamp.c:4953 utils/adt/timestamp.c:5224 utils/adt/timestamp.c:5406 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "å˜ä½\"%s\"ã¯åž‹%sã«å¯¾ã—ã¦ã¯èªè˜ã§ãã¾ã›ã‚“" #: utils/adt/date.c:1307 utils/adt/date.c:1353 utils/adt/date.c:1907 utils/adt/date.c:1938 utils/adt/date.c:1967 utils/adt/date.c:2831 utils/adt/date.c:3078 utils/adt/datetime.c:420 utils/adt/datetime.c:1869 utils/adt/formatting.c:4141 utils/adt/formatting.c:4177 utils/adt/formatting.c:4268 utils/adt/formatting.c:4390 utils/adt/json.c:418 utils/adt/json.c:457 utils/adt/timestamp.c:225 utils/adt/timestamp.c:257 utils/adt/timestamp.c:699 utils/adt/timestamp.c:708 -#: utils/adt/timestamp.c:786 utils/adt/timestamp.c:819 utils/adt/timestamp.c:2916 utils/adt/timestamp.c:2937 utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2959 utils/adt/timestamp.c:2967 utils/adt/timestamp.c:3022 utils/adt/timestamp.c:3045 utils/adt/timestamp.c:3058 utils/adt/timestamp.c:3069 utils/adt/timestamp.c:3077 utils/adt/timestamp.c:3736 utils/adt/timestamp.c:3860 utils/adt/timestamp.c:3950 utils/adt/timestamp.c:4040 utils/adt/timestamp.c:4133 -#: utils/adt/timestamp.c:4236 utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4989 utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5453 utils/adt/timestamp.c:5458 utils/adt/timestamp.c:5472 utils/adt/timestamp.c:5505 utils/adt/timestamp.c:5592 utils/adt/timestamp.c:5633 utils/adt/timestamp.c:5637 utils/adt/timestamp.c:5706 utils/adt/timestamp.c:5710 utils/adt/timestamp.c:5724 utils/adt/timestamp.c:5758 utils/adt/xml.c:2231 utils/adt/xml.c:2238 -#: utils/adt/xml.c:2258 utils/adt/xml.c:2265 +#: utils/adt/timestamp.c:786 utils/adt/timestamp.c:819 utils/adt/timestamp.c:2916 utils/adt/timestamp.c:2937 utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2961 utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2975 utils/adt/timestamp.c:3030 utils/adt/timestamp.c:3053 utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3080 utils/adt/timestamp.c:3088 utils/adt/timestamp.c:3096 utils/adt/timestamp.c:3782 utils/adt/timestamp.c:3906 utils/adt/timestamp.c:3996 +#: utils/adt/timestamp.c:4086 utils/adt/timestamp.c:4179 utils/adt/timestamp.c:4282 utils/adt/timestamp.c:4761 utils/adt/timestamp.c:5035 utils/adt/timestamp.c:5485 utils/adt/timestamp.c:5499 utils/adt/timestamp.c:5504 utils/adt/timestamp.c:5518 utils/adt/timestamp.c:5551 utils/adt/timestamp.c:5638 utils/adt/timestamp.c:5679 utils/adt/timestamp.c:5683 utils/adt/timestamp.c:5752 utils/adt/timestamp.c:5756 utils/adt/timestamp.c:5770 utils/adt/timestamp.c:5804 +#: utils/adt/xml.c:2231 utils/adt/xml.c:2238 utils/adt/xml.c:2258 utils/adt/xml.c:2265 #, c-format msgid "timestamp out of range" msgstr "timestampã®ç¯„囲外ã§ã™" @@ -22785,7 +22790,7 @@ msgstr "時刻ãŒç¯„囲外ã§ã™" msgid "time field value out of range: %d:%02d:%02g" msgstr "時刻フィールドã®å€¤ãŒç¯„囲外ã§ã™: %d:%02d:%02g" -#: 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:2497 utils/adt/timestamp.c:3386 utils/adt/timestamp.c:3417 utils/adt/timestamp.c:3448 +#: 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:2497 utils/adt/timestamp.c:3432 utils/adt/timestamp.c:3463 utils/adt/timestamp.c:3494 #, c-format msgid "invalid preceding or following size in window function" msgstr "ウィンドウ関数ã§ã®ä¸æ£ãªã‚µã‚¤ã‚ºã® PRECEDING ã¾ãŸã¯ FOLLOWING 指定" @@ -22795,12 +22800,12 @@ msgstr "ウィンドウ関数ã§ã®ä¸æ£ãªã‚µã‚¤ã‚ºã® PRECEDING ã¾ãŸã¯ FOL msgid "time zone displacement out of range" msgstr "タイムゾーンã®ç½®æ›ãŒç¯„囲外ã§ã™" -#: utils/adt/date.c:3084 utils/adt/datetime.c:1121 utils/adt/datetime.c:2027 utils/adt/datetime.c:4898 utils/adt/timestamp.c:516 utils/adt/timestamp.c:543 utils/adt/timestamp.c:4319 utils/adt/timestamp.c:5464 utils/adt/timestamp.c:5716 +#: utils/adt/date.c:3084 utils/adt/datetime.c:1121 utils/adt/datetime.c:2027 utils/adt/datetime.c:4898 utils/adt/timestamp.c:516 utils/adt/timestamp.c:543 utils/adt/timestamp.c:4365 utils/adt/timestamp.c:5510 utils/adt/timestamp.c:5762 #, c-format msgid "time zone \"%s\" not recognized" msgstr "タイムゾーン\"%s\"ã¯ä¸æ˜Žã§ã™" -#: utils/adt/date.c:3116 utils/adt/timestamp.c:5494 utils/adt/timestamp.c:5747 +#: utils/adt/date.c:3117 utils/adt/timestamp.c:5540 utils/adt/timestamp.c:5793 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "intervalã«ã‚ˆã‚‹ã‚¿ã‚¤ãƒ ゾーン\"%s\"ã«ã¯æœˆã¾ãŸã¯æ—¥ã‚’å«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“" @@ -22830,7 +22835,7 @@ msgstr "タイムゾーンã®ç½®æ›ãŒç¯„囲外ã§ã™: \"%s\"" msgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "ã“ã®ã‚¿ã‚¤ãƒ ゾーンã¯ã‚¿ã‚¤ãƒ ゾーンçœç•¥å\"%s\"ã®æ§‹æˆãƒ•ã‚¡ã‚¤ãƒ«ã«ã‚るよã†ã§ã™ã€‚" -#: utils/adt/datum.c:90 utils/adt/datum.c:102 +#: utils/adt/datum.c:91 utils/adt/datum.c:103 #, c-format msgid "invalid Datum pointer" msgstr "ä¸æ£ãªDatumãƒã‚¤ãƒ³ã‚¿" @@ -23345,7 +23350,7 @@ msgstr "å°‘ãªãã¨ã‚‚2ãƒã‚¤ãƒ³ãƒˆã‚’è¦æ±‚ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" msgid "invalid int2vector data" msgstr "ä¸æ£ãªint2vectorデータ" -#: utils/adt/int.c:1528 utils/adt/int8.c:1404 utils/adt/numeric.c:1678 utils/adt/timestamp.c:5809 utils/adt/timestamp.c:5889 +#: utils/adt/int.c:1528 utils/adt/int8.c:1404 utils/adt/numeric.c:1678 utils/adt/timestamp.c:5855 utils/adt/timestamp.c:5935 #, c-format msgid "step size cannot equal zero" msgstr "ステップ数をゼãƒã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" @@ -24446,7 +24451,7 @@ msgstr "ä¸æ£ãªæ£è¦è¡¨ç¾ã‚ªãƒ—ション: \"%.*s\"" msgid "If you meant to use regexp_replace() with a start parameter, cast the fourth argument to integer explicitly." msgstr "regexp_replace()ã§ãƒ‘ラメータstartを指定ã—ãŸã„ã®ã§ã‚ã‚Œã°ã€4番目ã®ãƒ‘ラメータを明示的ã«æ•´æ•°ã«ã‚ャストã—ã¦ãã ã•ã„。" -#: 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:11860 utils/misc/guc.c:11894 +#: 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:11875 utils/misc/guc.c:11909 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "パラメータ\"%s\"ã®å€¤ãŒç„¡åŠ¹ã§ã™: %d" @@ -24677,7 +24682,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:12884 +#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12899 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestampãŒç¯„囲外ã§ã™: \"%s\"" @@ -24712,6 +24717,12 @@ msgstr "タイムスタンプ㯠NaN ã«ã¯ã§ãã¾ã›ã‚“" msgid "timestamp out of range: \"%g\"" msgstr "timestampãŒç¯„囲外ã§ã™: \"%g\"" +#: utils/adt/timestamp.c:938 utils/adt/timestamp.c:1509 utils/adt/timestamp.c:2761 utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2870 utils/adt/timestamp.c:3134 utils/adt/timestamp.c:3139 utils/adt/timestamp.c:3144 utils/adt/timestamp.c:3194 utils/adt/timestamp.c:3201 utils/adt/timestamp.c:3208 utils/adt/timestamp.c:3228 utils/adt/timestamp.c:3235 utils/adt/timestamp.c:3242 utils/adt/timestamp.c:3329 utils/adt/timestamp.c:3404 +#: utils/adt/timestamp.c:3777 utils/adt/timestamp.c:3901 utils/adt/timestamp.c:4451 +#, c-format +msgid "interval out of range" +msgstr "intervalãŒç¯„囲外ã§ã™" + #: utils/adt/timestamp.c:1062 utils/adt/timestamp.c:1095 #, c-format msgid "invalid INTERVAL type modifier" @@ -24737,22 +24748,22 @@ msgstr "interval(%d)ã®ç²¾åº¦ã¯%dã‹ã‚‰%dã¾ã§ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" msgid "cannot subtract infinite timestamps" msgstr "ç„¡é™å¤§ã®timestampを減算ã§ãã¾ã›ã‚“" -#: utils/adt/timestamp.c:3891 utils/adt/timestamp.c:4074 +#: utils/adt/timestamp.c:3937 utils/adt/timestamp.c:4120 #, c-format msgid "origin out of range" msgstr "基点ãŒç¯„囲外ã§ã™" -#: utils/adt/timestamp.c:3896 utils/adt/timestamp.c:4079 +#: utils/adt/timestamp.c:3942 utils/adt/timestamp.c:4125 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "タイムスタンプ型ã¯æœˆã‚„å¹´ã‚’å«ã‚€é–“éš”ã«ãƒ“ニングã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“" -#: utils/adt/timestamp.c:3903 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:3949 utils/adt/timestamp.c:4132 #, c-format msgid "stride must be greater than zero" msgstr "増分ã¯0より大ãããªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“" -#: utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4445 #, c-format msgid "Months usually have fractional weeks." msgstr "月ã¯é€šå¸¸é€±ã®ç«¯æ•°ã‚’å«ã‚“ã§ã„ã¾ã™ã€‚" @@ -25669,7 +25680,7 @@ msgstr "データディレクトリ\"%s\"ã®æ¨©é™è¨å®šãŒä¸æ£ã§ã™" msgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "権é™ã¯ u=rwx(0700) ã¾ãŸã¯ u=rwx,g=rx (0750) ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。" -#: utils/init/miscinit.c:665 utils/misc/guc.c:7830 +#: utils/init/miscinit.c:665 utils/misc/guc.c:7837 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "ã‚»ã‚ュリティー制é™æ“作内ã§ãƒ‘ラメーター\"%s\"ã‚’è¨å®šã§ãã¾ã›ã‚“" @@ -25689,122 +25700,122 @@ msgstr "ãƒãƒ¼ãƒ«\"%s\"ã¯ãƒã‚°ã‚¤ãƒ³ãŒè¨±å¯ã•ã‚Œã¾ã›ã‚“" msgid "too many connections for role \"%s\"" msgstr "ãƒãƒ¼ãƒ«\"%s\"ã‹ã‚‰ã®æŽ¥ç¶šãŒå¤šã™ãŽã¾ã™" -#: utils/init/miscinit.c:841 +#: utils/init/miscinit.c:849 #, c-format msgid "permission denied to set session authorization" msgstr "set session authorization用ã®æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“" -#: utils/init/miscinit.c:924 +#: utils/init/miscinit.c:932 #, c-format msgid "invalid role OID: %u" msgstr "ä¸æ£ãªãƒãƒ¼ãƒ«ID: %u" -#: utils/init/miscinit.c:978 +#: utils/init/miscinit.c:986 #, c-format msgid "database system is shut down" msgstr "データベースシステムã¯ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã—ã¾ã—ãŸ" -#: utils/init/miscinit.c:1065 +#: utils/init/miscinit.c:1073 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"を作æˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: utils/init/miscinit.c:1079 +#: utils/init/miscinit.c:1087 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"をオープンã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: utils/init/miscinit.c:1086 +#: utils/init/miscinit.c:1094 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"ã‚’èªã¿å–ã‚Œã¾ã›ã‚“ã§ã—ãŸ: %m" -#: utils/init/miscinit.c:1095 +#: utils/init/miscinit.c:1103 #, c-format msgid "lock file \"%s\" is empty" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"ãŒç©ºã§ã™" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1104 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "ä»–ã®ã‚µãƒ¼ãƒãƒ¼ãŒç¨¼åƒã—ã¦ã„ã‚‹ã‹ã€å‰å›žã®ã‚µãƒ¼ãƒãƒ¼èµ·å‹•å¤±æ•—ã®ãŸã‚ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«ãŒæ®‹ã£ã¦ã„ã‚‹ã‹ã®ã„ãšã‚Œã‹ã§ã™" -#: utils/init/miscinit.c:1140 +#: utils/init/miscinit.c:1148 #, c-format msgid "lock file \"%s\" already exists" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"ã¯ã™ã§ã«å˜åœ¨ã—ã¾ã™" -#: utils/init/miscinit.c:1144 +#: utils/init/miscinit.c:1152 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "ä»–ã®postgres(PID %d)ãŒãƒ‡ãƒ¼ã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª\"%s\"ã§ç¨¼å‹•ã—ã¦ã„ã¾ã›ã‚“ã‹?" -#: utils/init/miscinit.c:1146 +#: utils/init/miscinit.c:1154 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "ä»–ã®postmaster(PID %d)ãŒãƒ‡ãƒ¼ã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª\"%s\"ã§ç¨¼å‹•ã—ã¦ã„ã¾ã›ã‚“ã‹?" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1157 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "ä»–ã®postgres(PID %d)ãŒã‚½ã‚±ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«\"%s\"を使用ã—ã¦ã„ã¾ã›ã‚“ã‹?" -#: utils/init/miscinit.c:1151 +#: utils/init/miscinit.c:1159 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "ä»–ã®postmaster(PID %d)ãŒã‚½ã‚±ãƒƒãƒˆãƒ•ã‚¡ã‚¤ãƒ«\"%s\"を使用ã—ã¦ã„ã¾ã›ã‚“ã‹?" -#: utils/init/miscinit.c:1202 +#: utils/init/miscinit.c:1210 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "å¤ã„ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"を削除ã§ãã¾ã›ã‚“ã§ã—ãŸ: %m" -#: utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1212 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "ã“ã®ãƒ•ã‚¡ã‚¤ãƒ«ã¯å¶ç„¶æ®‹ã£ã¦ã—ã¾ã£ãŸã‚ˆã†ã§ã™ãŒã€å‰Šé™¤ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚手作æ¥ã§ã“れを削除ã—å†å®Ÿè¡Œã—ã¦ãã ã•ã„。" -#: utils/init/miscinit.c:1241 utils/init/miscinit.c:1255 utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1249 utils/init/miscinit.c:1263 utils/init/miscinit.c:1274 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"ã«æ›¸ã出ã›ã¾ã›ã‚“ã§ã—ãŸ: %m" -#: utils/init/miscinit.c:1377 utils/init/miscinit.c:1519 utils/misc/guc.c:10828 +#: utils/init/miscinit.c:1385 utils/init/miscinit.c:1527 utils/misc/guc.c:10843 #, c-format msgid "could not read from file \"%s\": %m" msgstr "ファイル\"%s\"ã‹ã‚‰èªã¿å–ã‚Œã¾ã›ã‚“ã§ã—ãŸ: %m" -#: utils/init/miscinit.c:1507 +#: utils/init/miscinit.c:1515 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "ファイル\"%s\"をオープンã§ãã¾ã›ã‚“ã§ã—ãŸ: %m; ã¨ã‚Šã‚ãˆãšç¶šã‘ã¾ã™" -#: utils/init/miscinit.c:1532 +#: utils/init/miscinit.c:1540 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "ãƒãƒƒã‚¯ãƒ•ã‚¡ã‚¤ãƒ«\"%s\"ãŒèª¤ã£ãŸPIDã‚’ã‚‚ã£ã¦ã„ã¾ã™: %ldã€æ£ã—ãã¯%ld" -#: utils/init/miscinit.c:1571 utils/init/miscinit.c:1587 +#: utils/init/miscinit.c:1579 utils/init/miscinit.c:1595 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\"ã¯æœ‰åŠ¹ãªãƒ‡ãƒ¼ã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“" -#: utils/init/miscinit.c:1573 +#: utils/init/miscinit.c:1581 #, c-format msgid "File \"%s\" is missing." msgstr "ファイル\"%s\"ãŒå˜åœ¨ã—ã¾ã›ã‚“" -#: utils/init/miscinit.c:1589 +#: utils/init/miscinit.c:1597 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "ファイル\"%s\"ã«æœ‰åŠ¹ãªãƒ‡ãƒ¼ã‚¿ãŒã‚ã‚Šã¾ã›ã‚“。" -#: utils/init/miscinit.c:1591 +#: utils/init/miscinit.c:1599 #, c-format msgid "You might need to initdb." msgstr "initdbã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“" -#: utils/init/miscinit.c:1599 +#: utils/init/miscinit.c:1607 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "データディレクトリã¯PostgreSQLãƒãƒ¼ã‚¸ãƒ§ãƒ³%sã§åˆæœŸåŒ–ã•ã‚Œã¾ã—ãŸãŒã€ã“ã‚Œã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³%sã¨ã¯äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“" @@ -25982,11 +25993,6 @@ msgstr "WINæ–‡å—セットã«å¯¾ã™ã‚‹ç¬¦å·åŒ–æ–¹å¼ID %dã¯æƒ³å®šå¤–ã§ã™<" msgid "conversion between %s and %s is not supported" msgstr "%sã¨%sé–“ã®å¤‰æ›ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/mb/mbutils.c:385 -#, c-format -msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "符å·åŒ–æ–¹å¼\"%s\"ã‹ã‚‰\"%s\"用ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå¤‰æ›é–¢æ•°ã¯å˜åœ¨ã—ã¾ã›ã‚“" - #: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 utils/mb/mbutils.c:842 #, c-format msgid "String of %d bytes is too long for encoding conversion." @@ -26328,7 +26334,7 @@ msgid "Forces synchronization of updates to disk." msgstr "強制的ã«æ›´æ–°ã‚’ディスクã«åŒæœŸã—ã¾ã™ã€‚" #: utils/misc/guc.c:1287 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "サーãƒãƒ¼ã¯ã€ç¢ºå®Ÿã«æ›´æ–°ãŒç‰©ç†çš„ã«ãƒ‡ã‚£ã‚¹ã‚¯ã«æ›¸ãè¾¼ã¾ã‚Œã‚‹ã‚ˆã†ã«è¤‡æ•°ã®å ´æ‰€ã§fsync()システムコールを使用ã—ã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šã€ã‚ªãƒšãƒ¬ãƒ¼ãƒ†ã‚£ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ã‚„ãƒãƒ¼ãƒ‰ã‚¦ã‚§ã‚¢ãŒã‚¯ãƒ©ãƒƒã‚·ãƒ¥ã—ãŸå¾Œã§ã‚‚データベースクラスタã¯ä¸€è²«ã—ãŸçŠ¶æ…‹ã«å¾©æ—§ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" #: utils/misc/guc.c:1298 @@ -28049,172 +28055,172 @@ msgstr "%d%s%s ã¯ãƒ‘ラメータ\"%s\"ã®æœ‰åŠ¹ç¯„囲 (%d .. %d) を超ãˆã¦ã msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" msgstr "%g%s%s ã¯ãƒ‘ラメータ\"%s\"ã®æœ‰åŠ¹ç¯„囲 (%g .. %g) を超ãˆã¦ã„ã¾ã™" -#: utils/misc/guc.c:7648 utils/misc/guc.c:9096 +#: utils/misc/guc.c:7649 utils/misc/guc.c:9103 #, c-format msgid "cannot set parameters during a parallel operation" msgstr "並列処ç†ä¸ã¯ãƒ‘ラメータã®è¨å®šã¯ã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:7665 utils/misc/guc.c:8920 +#: utils/misc/guc.c:7668 utils/misc/guc.c:8927 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "パラメータ\"%s\"を変更ã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:7698 +#: utils/misc/guc.c:7701 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "ç¾åœ¨ãƒ‘ラメータ\"%s\"を変更ã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:7725 utils/misc/guc.c:7783 utils/misc/guc.c:8896 utils/misc/guc.c:11796 +#: utils/misc/guc.c:7728 utils/misc/guc.c:7790 utils/misc/guc.c:8903 utils/misc/guc.c:11811 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "パラメータ\"%s\"ã‚’è¨å®šã™ã‚‹æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“" -#: utils/misc/guc.c:7763 +#: utils/misc/guc.c:7770 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "接続開始後ã«ãƒ‘ラメータ\"%s\"を変更ã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:7822 +#: utils/misc/guc.c:7829 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "ã‚»ã‚ュリティー定義用関数内ã§ãƒ‘ラメーター\"%s\"ã‚’è¨å®šã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:8475 utils/misc/guc.c:8522 utils/misc/guc.c:10002 +#: utils/misc/guc.c:8482 utils/misc/guc.c:8529 utils/misc/guc.c:10016 #, c-format msgid "must be superuser or have privileges of pg_read_all_settings to examine \"%s\"" msgstr "\"%s\"を確èªã™ã‚‹ã«ã¯ã‚¹ãƒ¼ãƒ‘ーユーザーã§ã‚ã‚‹ã‹ã€ã¾ãŸã¯pg_read_all_settingsã®æ¨©é™ã‚’æŒã¤å¿…è¦ãŒã‚ã‚Šã¾ã™" -#: utils/misc/guc.c:8606 +#: utils/misc/guc.c:8613 #, c-format msgid "SET %s takes only one argument" msgstr "SET %sã¯1ã¤ã®å¼•æ•°ã®ã¿ã‚’å–ã‚Šã¾ã™" -#: utils/misc/guc.c:8886 +#: utils/misc/guc.c:8893 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "ALTER SYSTEM RESET ALLã‚’è¡Œã†æ¨©é™ãŒã‚ã‚Šã¾ã›ã‚“" -#: utils/misc/guc.c:8953 +#: utils/misc/guc.c:8960 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "ALTER SYSTEMã§ã®ãƒ‘ラメータ値ã¯æ”¹è¡Œã‚’å«ã‚“ã§ã¯ã„ã‘ã¾ã›ã‚“" -#: utils/misc/guc.c:8998 +#: utils/misc/guc.c:9005 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "ファイル\"%s\"ã®å†…容をパースã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: utils/misc/guc.c:9172 +#: utils/misc/guc.c:9179 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" msgstr "SET LOCAL TRANSACTION SNAPSHOTã¯ã¾ã 実装ã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/misc/guc.c:9259 +#: utils/misc/guc.c:9266 #, c-format msgid "SET requires parameter name" msgstr "SETã«ã¯ãƒ‘ラメータåãŒå¿…è¦ã§ã™" -#: utils/misc/guc.c:9392 +#: utils/misc/guc.c:9399 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "パラメータ\"%s\"ã‚’å†å®šç¾©ã—よã†ã¨ã—ã¦ã„ã¾ã™" -#: utils/misc/guc.c:9719 +#: utils/misc/guc.c:9726 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "è¨å®šãƒ‘ラメータå\"%s\"ã¯ä¸æ£ã§ã™ã€å‰Šé™¤ã—ã¾ã™" -#: utils/misc/guc.c:9721 +#: utils/misc/guc.c:9728 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" ã¯äºˆç´„ã•ã‚ŒãŸæŽ¥é 辞ã«ãªã‚Šã¾ã—ãŸã€‚" -#: utils/misc/guc.c:11236 +#: utils/misc/guc.c:11251 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "パラメータ\"%s\"ã®\"%s\"ã¸ã®å¤‰æ›´ä¸" -#: utils/misc/guc.c:11405 +#: utils/misc/guc.c:11420 #, c-format msgid "parameter \"%s\" could not be set" msgstr "パラメータ\"%s\"ã‚’è¨å®šã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:11497 +#: utils/misc/guc.c:11512 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "パラメータ\"%s\"ã®è¨å®šã‚’パースã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:11928 +#: utils/misc/guc.c:11943 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "パラメータ\"%s\"ã®å€¤ãŒç„¡åŠ¹ã§ã™: %g" -#: utils/misc/guc.c:12241 +#: utils/misc/guc.c:12256 #, 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:12253 +#: utils/misc/guc.c:12268 #, c-format msgid "Bonjour is not supported by this build" msgstr "ã“ã®ãƒ“ルドã§ã¯ bonjour ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/misc/guc.c:12266 +#: utils/misc/guc.c:12281 #, c-format msgid "SSL is not supported by this build" msgstr "ã“ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§ã¯SSLã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ã¾ã›ã‚“" -#: utils/misc/guc.c:12278 +#: utils/misc/guc.c:12293 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "\"log_statement_stats\"ãŒçœŸã®å ´åˆã€ãƒ‘ラメータを有効ã«ã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:12290 +#: utils/misc/guc.c:12305 #, c-format msgid "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", \"log_planner_stats\", or \"log_executor_stats\" is true." msgstr "\"log_parser_stats\"ã€\"log_planner_stats\"ã€\"log_executor_stats\"ã®ã„ãšã‚Œã‹ãŒçœŸã®å ´åˆã¯\"log_statement_stats\"を有効ã«ã§ãã¾ã›ã‚“" -#: utils/misc/guc.c:12520 +#: utils/misc/guc.c:12535 #, c-format msgid "effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "posix_fadvise() ã‚’ã‚‚ãŸãªã„プラットフォームã§ã¯effective_io_concurrencyã¯0ã«è¨å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/misc/guc.c:12533 +#: utils/misc/guc.c:12548 #, c-format msgid "maintenance_io_concurrency must be set to 0 on platforms that lack posix_fadvise()." msgstr "posix_fadvise() ã‚’ã‚‚ãŸãªã„プラットフォームã§ã¯maintenance_io_concurrencyã¯0ã«è¨å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/misc/guc.c:12547 +#: utils/misc/guc.c:12562 #, c-format msgid "huge_page_size must be 0 on this platform." msgstr "ã“ã®ãƒ—ラットフォームã§ã¯huge_page_sizeã‚’0ã«è¨å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" -#: utils/misc/guc.c:12559 +#: utils/misc/guc.c:12574 #, 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:12671 +#: utils/misc/guc.c:12686 #, c-format msgid "invalid character" msgstr "ä¸æ£ãªæ–‡å—" -#: utils/misc/guc.c:12731 +#: utils/misc/guc.c:12746 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timelineãŒå¦¥å½“ãªæ•°å€¤ã§ã¯ã‚ã‚Šã¾ã›ã‚“。" -#: utils/misc/guc.c:12771 +#: utils/misc/guc.c:12786 #, c-format msgid "multiple recovery targets specified" msgstr "複数ã®ãƒªã‚«ãƒãƒªç›®æ¨™ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã™" -#: utils/misc/guc.c:12772 +#: utils/misc/guc.c:12787 #, 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 ã¯ã“ã®ä¸ã®1ã¤ã¾ã§è¨å®šå¯èƒ½ã§ã™ã€‚" -#: utils/misc/guc.c:12780 +#: utils/misc/guc.c:12795 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "\"immediate\"ã®ã¿ãŒæŒ‡å®šå¯èƒ½ã§ã™ã€‚" @@ -28224,7 +28230,7 @@ msgstr "\"immediate\"ã®ã¿ãŒæŒ‡å®šå¯èƒ½ã§ã™ã€‚" msgid "internal error: unrecognized run-time parameter type\n" msgstr "内部エラー: 実行時ã®ãƒ‘ラメータ型ãŒèªè˜ã§ãã¾ã›ã‚“\n" -#: utils/misc/pg_controldata.c:60 utils/misc/pg_controldata.c:138 utils/misc/pg_controldata.c:241 utils/misc/pg_controldata.c:306 +#: utils/misc/pg_controldata.c:63 utils/misc/pg_controldata.c:143 utils/misc/pg_controldata.c:248 utils/misc/pg_controldata.c:315 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "算出ã•ã‚ŒãŸCRCãƒã‚§ãƒƒã‚¯ã‚µãƒ ãŒãƒ•ã‚¡ã‚¤ãƒ«ã«æ ¼ç´ã•ã‚Œã¦ã„る値ã¨ä¸€è‡´ã—ã¾ã›ã‚“" @@ -28473,3 +28479,9 @@ msgstr "èªã¿å–ã‚Šã®ã¿ã®ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚¶ãƒ–ルトランザクション㧠#, c-format msgid "cannot import a snapshot from a different database" msgstr "ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‹ã‚‰ã®ã‚¹ãƒŠãƒƒãƒ—ショットをèªã¿è¾¼ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“" + +#~ msgid "out of memory while trying to decode a record of length %u" +#~ msgstr "é•·ã•%uã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã®ãƒ‡ã‚³ãƒ¼ãƒ‰ä¸ã®ãƒ¡ãƒ¢ãƒªä¸è¶³" + +#~ msgid "record length %u at %X/%X too long" +#~ msgstr "%2$X/%3$Xã®ãƒ¬ã‚³ãƒ¼ãƒ‰é•·%1$uãŒå¤§ãã™ãŽã¾ã™" diff --git a/src/backend/po/ko.po b/src/backend/po/ko.po index c977f4b..b458383 100644 --- a/src/backend/po/ko.po +++ b/src/backend/po/ko.po @@ -28603,7 +28603,7 @@ msgstr "ê°•ì œë¡œ ë³€ê²½ëœ ë²„í¼ ìžë£Œë¥¼ 디스í¬ì™€ ë™ê¸°í™” 시킴." #: utils/misc/guc.c:1287 msgid "" "The server will use the fsync() system call in several places to make sure " -"that updates are physically written to disk. This insures that a database " +"that updates are physically written to disk. This ensures that a database " "cluster will recover to a consistent state after an operating system or " "hardware crash." msgstr "" diff --git a/src/backend/po/ru.po b/src/backend/po/ru.po index 7d7f649..040010f 100644 --- a/src/backend/po/ru.po +++ b/src/backend/po/ru.po @@ -4,14 +4,14 @@ # Serguei A. Mokhov <mokhov@cs.concordia.ca>, 2001-2005. # Oleg Bartunov <oleg@sai.msu.su>, 2004-2005. # Dmitriy Olshevskiy <olshevskiy87@bk.ru>, 2014. -# Alexander Lakhin <exclusion@gmail.com>, 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023. +# Alexander Lakhin <exclusion@gmail.com>, 2012-2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024. # Maxim Yablokov <m.yablokov@postgrespro.ru>, 2021, 2022. msgid "" msgstr "" "Project-Id-Version: postgres (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:09+0300\n" -"PO-Revision-Date: 2023-11-03 10:37+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" +"PO-Revision-Date: 2024-02-02 19:00+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" "Language: ru\n" @@ -73,35 +73,35 @@ msgid "not recorded" msgstr "не запиÑано" #: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 -#: commands/copyfrom.c:1521 commands/extension.c:3401 utils/adt/genfile.c:123 +#: commands/copyfrom.c:1525 commands/extension.c:3401 utils/adt/genfile.c:123 #, c-format 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:3207 -#: access/transam/xlog.c:4022 access/transam/xlogrecovery.c:1197 -#: access/transam/xlogrecovery.c:1289 access/transam/xlogrecovery.c:1326 -#: access/transam/xlogrecovery.c:1386 backup/basebackup.c:1844 +#: access/transam/twophase.c:1349 access/transam/xlog.c:3209 +#: access/transam/xlog.c:4024 access/transam/xlogrecovery.c:1223 +#: access/transam/xlogrecovery.c:1315 access/transam/xlogrecovery.c:1352 +#: access/transam/xlogrecovery.c:1412 backup/basebackup.c:1844 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:4958 #: replication/logical/snapbuild.c:1870 replication/logical/snapbuild.c:1912 #: replication/logical/snapbuild.c:1939 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:863 utils/cache/relmapper.c:813 +#: utils/adt/genfile.c:197 utils/adt/misc.c:863 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:3212 access/transam/xlog.c:4027 +#: access/transam/xlog.c:3214 access/transam/xlog.c:4029 #: backup/basebackup.c:1848 replication/logical/origin.c:734 #: replication/logical/origin.c:773 replication/logical/snapbuild.c:1875 #: replication/logical/snapbuild.c:1917 replication/logical/snapbuild.c:1944 #: replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 -#: utils/cache/relmapper.c:817 +#: utils/cache/relmapper.c:820 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не удалоÑÑŒ прочитать файл \"%s\" (прочитано байт: %d из %zu)" @@ -111,18 +111,18 @@ 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:516 access/transam/twophase.c:1361 -#: access/transam/twophase.c:1773 access/transam/xlog.c:3054 -#: access/transam/xlog.c:3247 access/transam/xlog.c:3252 -#: access/transam/xlog.c:3390 access/transam/xlog.c:3992 -#: access/transam/xlog.c:4738 commands/copyfrom.c:1581 commands/copyto.c:327 +#: access/transam/twophase.c:1773 access/transam/xlog.c:3056 +#: access/transam/xlog.c:3249 access/transam/xlog.c:3254 +#: access/transam/xlog.c:3392 access/transam/xlog.c:3994 +#: access/transam/xlog.c:4740 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:5016 #: replication/logical/snapbuild.c:1779 replication/logical/snapbuild.c:1952 #: 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:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:828 -#: utils/cache/relmapper.c:956 +#: storage/file/fd.c:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:831 +#: utils/cache/relmapper.c:968 #, c-format msgid "could not close file \"%s\": %m" msgstr "не удалоÑÑŒ закрыть файл \"%s\": %m" @@ -150,10 +150,10 @@ msgstr "" #: ../common/file_utils.c:365 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:2941 access/transam/xlog.c:3123 -#: access/transam/xlog.c:3162 access/transam/xlog.c:3357 -#: access/transam/xlog.c:4012 access/transam/xlogrecovery.c:4209 -#: access/transam/xlogrecovery.c:4312 access/transam/xlogutils.c:852 +#: access/transam/xlog.c:2943 access/transam/xlog.c:3125 +#: access/transam/xlog.c:3164 access/transam/xlog.c:3359 +#: access/transam/xlog.c:4014 access/transam/xlogrecovery.c:4243 +#: access/transam/xlogrecovery.c:4346 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1520 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3611 #: replication/logical/reorderbuffer.c:4162 @@ -162,21 +162,21 @@ msgstr "" #: 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:3630 -#: storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:792 -#: utils/cache/relmapper.c:900 utils/error/elog.c:1933 -#: utils/init/miscinit.c:1366 utils/init/miscinit.c:1500 -#: utils/init/miscinit.c:1577 utils/misc/guc.c:8991 utils/misc/guc.c:9040 +#: storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:795 +#: utils/cache/relmapper.c:912 utils/error/elog.c:1933 +#: utils/init/miscinit.c:1374 utils/init/miscinit.c:1508 +#: utils/init/miscinit.c:1585 utils/misc/guc.c:8998 utils/misc/guc.c:9047 #, 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:1746 access/transam/twophase.c:1755 -#: access/transam/xlog.c:8674 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8676 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 #: postmaster/postmaster.c:5633 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 -#: utils/cache/relmapper.c:934 +#: utils/cache/relmapper.c:946 #, c-format msgid "could not write file \"%s\": %m" msgstr "не удалоÑÑŒ запиÑать файл \"%s\": %m" @@ -186,13 +186,13 @@ 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:510 access/transam/twophase.c:1767 -#: access/transam/xlog.c:3047 access/transam/xlog.c:3241 -#: access/transam/xlog.c:3985 access/transam/xlog.c:7977 -#: access/transam/xlog.c:8020 backup/basebackup_server.c:207 -#: replication/logical/snapbuild.c:1772 replication/slot.c:1684 -#: replication/slot.c:1789 storage/file/fd.c:737 storage/file/fd.c:3741 -#: storage/smgr/md.c:992 storage/smgr/md.c:1033 storage/sync/sync.c:453 -#: utils/cache/relmapper.c:949 utils/misc/guc.c:8760 +#: access/transam/xlog.c:3049 access/transam/xlog.c:3243 +#: access/transam/xlog.c:3987 access/transam/xlog.c:7979 +#: access/transam/xlog.c:8022 backup/basebackup_server.c:207 +#: commands/dbcommands.c:514 replication/logical/snapbuild.c:1772 +#: replication/slot.c:1684 replication/slot.c:1789 storage/file/fd.c:737 +#: storage/file/fd.c:3741 storage/smgr/md.c:992 storage/smgr/md.c:1033 +#: storage/sync/sync.c:453 utils/cache/relmapper.c:961 utils/misc/guc.c:8767 #, c-format msgid "could not fsync file \"%s\": %m" msgstr "не удалоÑÑŒ Ñинхронизировать Ñ Ð¤Ð¡ файл \"%s\": %m" @@ -204,8 +204,8 @@ msgstr "не удалоÑÑŒ Ñинхронизировать Ñ Ð¤Ð¡ файл \" #: ../common/md5_common.c:155 ../common/psprintf.c:143 #: ../common/scram-common.c:247 ../common/stringinfo.c:305 ../port/path.c:751 #: ../port/path.c:789 ../port/path.c:806 access/transam/twophase.c:1414 -#: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1338 -#: libpq/auth.c:1406 libpq/auth.c:1964 libpq/be-secure-gssapi.c:520 +#: 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:2594 postmaster/postmaster.c:4180 #: postmaster/postmaster.c:5558 postmaster/postmaster.c:5929 @@ -213,15 +213,15 @@ msgstr "не удалоÑÑŒ Ñинхронизировать Ñ Ð¤Ð¡ файл \" #: replication/logical/logical.c:205 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:1451 -#: storage/ipc/procarray.c:2281 storage/ipc/procarray.c:2288 -#: storage/ipc/procarray.c:2793 storage/ipc/procarray.c:3424 +#: storage/ipc/procarray.c:2280 storage/ipc/procarray.c:2287 +#: storage/ipc/procarray.c:2792 storage/ipc/procarray.c:3423 #: 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:5192 -#: utils/misc/guc.c:5208 utils/misc/guc.c:5221 utils/misc/guc.c:8738 +#: utils/misc/guc.c:5208 utils/misc/guc.c:5221 utils/misc/guc.c:8745 #: 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 @@ -273,7 +273,7 @@ msgstr "не удалоÑÑŒ найти запуÑкаемый файл \"%s\"" msgid "could not change directory to \"%s\": %m" msgstr "не удалоÑÑŒ перейти в каталог \"%s\": %m" -#: ../common/exec.c:299 access/transam/xlog.c:8323 backup/basebackup.c:1340 +#: ../common/exec.c:299 access/transam/xlog.c:8325 backup/basebackup.c:1340 #: utils/adt/misc.c:342 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -304,7 +304,7 @@ msgstr "попытка Ð´ÑƒÐ±Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÑƒÐ»ÐµÐ²Ð¾Ð³Ð¾ указатеР#: ../common/file_utils.c:455 access/transam/twophase.c:1317 #: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:237 #: backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 -#: commands/copyfrom.c:1531 commands/copyto.c:725 commands/extension.c:3390 +#: commands/copyfrom.c:1535 commands/copyto.c:725 commands/extension.c:3390 #: commands/tablespace.c:826 commands/tablespace.c:917 postmaster/pgarch.c:597 #: replication/logical/snapbuild.c:1651 storage/file/copydir.c:68 #: storage/file/copydir.c:107 storage/file/fd.c:1951 storage/file/fd.c:2037 @@ -463,7 +463,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:1368 libpq/auth.c:2400 +#: ../common/restricted_token.c:64 libpq/auth.c:1366 libpq/auth.c:2398 #, c-format msgid "could not load library \"%s\": error code %lu" msgstr "не удалоÑÑŒ загрузить библиотеку \"%s\" (код ошибки: %lu)" @@ -548,7 +548,7 @@ msgstr "" msgid "could not look up effective user ID %ld: %s" msgstr "выÑÑнить Ñффективный идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (%ld) не удалоÑÑŒ: %s" -#: ../common/username.c:45 libpq/auth.c:1900 +#: ../common/username.c:45 libpq/auth.c:1898 msgid "user does not exist" msgstr "пользователь не ÑущеÑтвует" @@ -726,7 +726,7 @@ msgstr "не удалоÑÑŒ открыть родительÑкую таблиц msgid "index \"%s\" is not valid" msgstr "Ð¸Ð½Ð´ÐµÐºÑ \"%s\" - нерабочий" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 +#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 #: access/brin/brin_minmax_multi.c:2986 access/brin/brin_minmax_multi.c:3129 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 @@ -882,7 +882,7 @@ msgstr "чиÑло Ñтолбцов (%d) превышает предел (%d)" msgid "number of index columns (%d) exceeds limit (%d)" msgstr "чиÑло Ñтолбцов индекÑа (%d) превышает предел (%d)" -#: access/common/indextuple.c:209 access/spgist/spgutils.c:958 +#: access/common/indextuple.c:209 access/spgist/spgutils.c:965 #, c-format msgid "index row requires %zu bytes, maximum size is %zu" msgstr "Ñтрока индекÑа требует байт: %zu, при макÑимуме: %zu" @@ -916,7 +916,7 @@ msgstr "Ð’ RESET не должно передаватьÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ пРmsgid "unrecognized parameter namespace \"%s\"" msgstr "нераÑпознанное проÑтранÑтво имён параметров \"%s\"" -#: access/common/reloptions.c:1303 utils/misc/guc.c:12995 +#: access/common/reloptions.c:1303 utils/misc/guc.c:13002 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблицы Ñо ÑвойÑтвом WITH OIDS не поддерживаютÑÑ" @@ -1024,7 +1024,7 @@ msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Ð”Ð»Ñ Ð¸ÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚Ðµ REINDEX INDEX \"%s\"." #: access/gin/ginutil.c:145 executor/execExpr.c:2168 -#: utils/adt/arrayfuncs.c:3817 utils/adt/arrayfuncs.c:6486 +#: utils/adt/arrayfuncs.c:3866 utils/adt/arrayfuncs.c:6535 #: utils/adt/rowtypes.c:957 #, c-format msgid "could not identify a comparison function for type %s" @@ -1137,7 +1137,7 @@ msgstr "" #: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:668 #: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:1979 commands/tablecmds.c:17503 commands/view.c:86 +#: commands/indexcmds.c:1955 commands/tablecmds.c:17513 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 @@ -1152,7 +1152,7 @@ msgid "index row size %zu exceeds hash maximum %zu" msgstr "размер Ñтроки индекÑа (%zu) больше предельного размера хеша (%zu)" #: access/hash/hashinsert.c:85 access/spgist/spgdoinsert.c:2005 -#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1019 +#: access/spgist/spgdoinsert.c:2282 access/spgist/spgutils.c:1026 #, c-format msgid "Values larger than a buffer page cannot be indexed." msgstr "ЗначениÑ, не умещающиеÑÑ Ð² Ñтраницу буфера, Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¾Ð¸Ð½Ð´ÐµÐºÑировать." @@ -1213,18 +1213,18 @@ msgstr "удалÑÑ‚ÑŒ кортежи во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ñ‹Ñ… Ð msgid "attempted to delete invisible tuple" msgstr "попытка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ð¾Ð³Ð¾ кортежа" -#: access/heap/heapam.c:3183 access/heap/heapam.c:6025 +#: access/heap/heapam.c:3188 access/heap/heapam.c:6032 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "изменÑÑ‚ÑŒ кортежи во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ñ‹Ñ… операций нельзÑ" -#: access/heap/heapam.c:3307 +#: access/heap/heapam.c:3312 #, c-format msgid "attempted to update invisible tuple" msgstr "попытка Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ð¾Ð³Ð¾ кортежа" -#: access/heap/heapam.c:4669 access/heap/heapam.c:4707 -#: access/heap/heapam.c:4972 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4676 access/heap/heapam.c:4714 +#: access/heap/heapam.c:4979 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не удалоÑÑŒ получить блокировку Ñтроки в таблице \"%s\"" @@ -1250,10 +1250,10 @@ msgstr "не удалоÑÑŒ запиÑать в файл \"%s\" (запиÑанР#: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:485 -#: access/transam/xlog.c:2963 access/transam/xlog.c:3176 -#: access/transam/xlog.c:3964 access/transam/xlog.c:8657 +#: access/transam/xlog.c:2965 access/transam/xlog.c:3178 +#: access/transam/xlog.c:3966 access/transam/xlog.c:8659 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 -#: backup/basebackup_server.c:242 commands/dbcommands.c:517 +#: backup/basebackup_server.c:242 commands/dbcommands.c:494 #: postmaster/postmaster.c:4607 postmaster/postmaster.c:5620 #: replication/logical/origin.c:587 replication/slot.c:1631 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 @@ -1268,15 +1268,15 @@ msgstr "не удалоÑÑŒ обрезать файл \"%s\" до нужного #: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3035 access/transam/xlog.c:3232 -#: access/transam/xlog.c:3976 commands/dbcommands.c:529 +#: access/transam/xlog.c:3037 access/transam/xlog.c:3234 +#: access/transam/xlog.c:3978 commands/dbcommands.c:506 #: postmaster/postmaster.c:4617 postmaster/postmaster.c:4627 #: replication/logical/origin.c:599 replication/logical/origin.c:641 #: replication/logical/origin.c:660 replication/logical/snapbuild.c:1748 #: replication/slot.c:1666 storage/file/buffile.c:537 -#: storage/file/copydir.c:207 utils/init/miscinit.c:1441 -#: utils/init/miscinit.c:1452 utils/init/miscinit.c:1460 utils/misc/guc.c:8721 -#: utils/misc/guc.c:8752 utils/misc/guc.c:10750 utils/misc/guc.c:10764 +#: storage/file/copydir.c:207 utils/init/miscinit.c:1449 +#: utils/init/miscinit.c:1460 utils/init/miscinit.c:1468 utils/misc/guc.c:8728 +#: utils/misc/guc.c:8759 utils/misc/guc.c:10757 utils/misc/guc.c:10771 #: utils/time/snapmgr.c:1266 utils/time/snapmgr.c:1273 #, c-format msgid "could not write to file \"%s\": %m" @@ -1575,14 +1575,14 @@ msgstr "Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° доÑтупа индекÑа \"%s\" не задан msgid "transaction aborted during system catalog scan" msgstr "Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð° во Ð²Ñ€ÐµÐ¼Ñ ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑиÑтемного каталога" -#: access/index/indexam.c:142 catalog/objectaddress.c:1376 -#: commands/indexcmds.c:2807 commands/tablecmds.c:271 commands/tablecmds.c:295 -#: commands/tablecmds.c:17191 commands/tablecmds.c:18974 +#: access/index/indexam.c:203 catalog/objectaddress.c:1376 +#: commands/indexcmds.c:2783 commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:17199 commands/tablecmds.c:18984 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" - Ñто не индекÑ" -#: access/index/indexam.c:973 +#: access/index/indexam.c:1010 #, c-format msgid "operator class %s has no options" msgstr "у клаÑÑа операторов %s нет параметров" @@ -1665,7 +1665,7 @@ msgstr "" "в ÑемейÑтве операторов \"%s\" метода доÑтупа %s нет опорной функции Ð´Ð»Ñ " "типов %s и %s" -#: access/spgist/spgutils.c:244 +#: access/spgist/spgutils.c:242 #, c-format msgid "" "compress method must be defined when leaf type is different from input type" @@ -1673,7 +1673,7 @@ msgstr "" "метод ÑÐ¶Ð°Ñ‚Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть определён, когда тип лиÑтьев отличаетÑÑ Ð¾Ñ‚ входного " "типа" -#: access/spgist/spgutils.c:1016 +#: access/spgist/spgutils.c:1023 #, c-format msgid "SP-GiST inner tuple size %zu exceeds maximum %zu" msgstr "внутренний размер кортежа SP-GiST (%zu) превышает макÑимум (%zu)" @@ -1701,8 +1701,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:1842 commands/tablecmds.c:13880 -#: commands/tablecmds.c:17200 +#: access/table/table.c:150 catalog/aclchk.c:1842 commands/tablecmds.c:13888 +#: commands/tablecmds.c:17208 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" - Ñто ÑоÑтавной тип" @@ -1718,7 +1718,7 @@ msgid "%s cannot be empty." msgstr "Значение %s не может быть пуÑтым." # well-spelled: Ñимв -#: access/table/tableamapi.c:122 utils/misc/guc.c:12919 +#: access/table/tableamapi.c:122 utils/misc/guc.c:12926 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "Длина %s превышает предел (%d Ñимв.)." @@ -2503,7 +2503,7 @@ msgstr "фикÑировать подтранзакции во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°Ñ€ msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одной транзакции не может быть больше 2^32-1 подтранзакций" -#: access/transam/xlog.c:1463 +#: access/transam/xlog.c:1465 #, c-format msgid "" "request to flush past end of generated WAL; request %X/%X, current position " @@ -2512,55 +2512,55 @@ msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° ÑÐ±Ñ€Ð¾Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… за концом Ñгенерированного WAL; запрошена Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ %X/" "%X, Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ %X/%X" -#: access/transam/xlog.c:2224 +#: access/transam/xlog.c:2226 #, 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 +#: access/transam/xlog.c:3473 access/transam/xlogutils.c:847 #: replication/walsender.c:2716 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запрошенный Ñегмент WAL %s уже удалён" -#: access/transam/xlog.c:3756 +#: access/transam/xlog.c:3758 #, 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:3800 access/transam/xlog.c:3810 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "требуемый каталог WAL \"%s\" не ÑущеÑтвует" -#: access/transam/xlog.c:3814 +#: access/transam/xlog.c:3816 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "ÑоздаётÑÑ Ð¾Ñ‚ÑутÑтвующий каталог WAL \"%s\"" -#: access/transam/xlog.c:3817 commands/dbcommands.c:3115 +#: access/transam/xlog.c:3819 commands/dbcommands.c:3115 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не удалоÑÑŒ Ñоздать отÑутÑтвующий каталог \"%s\": %m" -#: access/transam/xlog.c:3884 +#: access/transam/xlog.c:3886 #, 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 -#: utils/init/miscinit.c:1598 +#: access/transam/xlog.c:4045 access/transam/xlog.c:4054 +#: access/transam/xlog.c:4078 access/transam/xlog.c:4085 +#: access/transam/xlog.c:4092 access/transam/xlog.c:4097 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 +#: access/transam/xlog.c:4118 access/transam/xlog.c:4125 +#: access/transam/xlog.c:4132 access/transam/xlog.c:4139 +#: access/transam/xlog.c:4148 access/transam/xlog.c:4155 +#: utils/init/miscinit.c:1606 #, c-format msgid "database files are incompatible with server" msgstr "файлы базы данных неÑовмеÑтимы Ñ Ñервером" -#: access/transam/xlog.c:4044 +#: access/transam/xlog.c:4046 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d (0x%08x), " @@ -2569,7 +2569,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ PG_CONTROL_VERSION %d (0x%08x), но " "Ñервер Ñкомпилирован Ñ PG_CONTROL_VERSION %d (0x%08x)." -#: access/transam/xlog.c:4048 +#: access/transam/xlog.c:4050 #, c-format msgid "" "This could be a problem of mismatched byte ordering. It looks like you need " @@ -2578,7 +2578,7 @@ msgstr "" "Возможно, проблема вызвана разным порÑдком байт. КажетÑÑ, вам надо выполнить " "initdb." -#: access/transam/xlog.c:4053 +#: access/transam/xlog.c:4055 #, c-format msgid "" "The database cluster was initialized with PG_CONTROL_VERSION %d, but the " @@ -2587,18 +2587,18 @@ 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:4058 access/transam/xlog.c:4082 +#: access/transam/xlog.c:4089 access/transam/xlog.c:4094 #, c-format msgid "It looks like you need to initdb." msgstr "КажетÑÑ, вам надо выполнить initdb." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4069 #, c-format msgid "incorrect checksum in control file" msgstr "ошибка контрольной Ñуммы в файле pg_control" -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4079 #, c-format msgid "" "The database cluster was initialized with CATALOG_VERSION_NO %d, but the " @@ -2607,7 +2607,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ CATALOG_VERSION_NO %d, но Ñервер " "Ñкомпилирован Ñ CATALOG_VERSION_NO %d." -#: access/transam/xlog.c:4084 +#: access/transam/xlog.c:4086 #, c-format msgid "" "The database cluster was initialized with MAXALIGN %d, but the server was " @@ -2616,7 +2616,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ MAXALIGN %d, но Ñервер " "Ñкомпилирован Ñ MAXALIGN %d." -#: access/transam/xlog.c:4091 +#: access/transam/xlog.c:4093 #, c-format msgid "" "The database cluster appears to use a different floating-point number format " @@ -2625,7 +2625,7 @@ msgstr "" "КажетÑÑ, в клаÑтере баз данных и в программе Ñервера иÑпользуютÑÑ Ñ€Ð°Ð·Ð½Ñ‹Ðµ " "форматы чиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой." -#: access/transam/xlog.c:4096 +#: access/transam/xlog.c:4098 #, c-format msgid "" "The database cluster was initialized with BLCKSZ %d, but the server was " @@ -2634,16 +2634,16 @@ 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:4101 access/transam/xlog.c:4108 +#: access/transam/xlog.c:4115 access/transam/xlog.c:4122 +#: access/transam/xlog.c:4129 access/transam/xlog.c:4136 +#: access/transam/xlog.c:4143 access/transam/xlog.c:4151 +#: access/transam/xlog.c:4158 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "КажетÑÑ, вам надо перекомпилировать Ñервер или выполнить initdb." -#: access/transam/xlog.c:4103 +#: access/transam/xlog.c:4105 #, c-format msgid "" "The database cluster was initialized with RELSEG_SIZE %d, but the server was " @@ -2652,7 +2652,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ RELSEG_SIZE %d, но Ñервер " "Ñкомпилирован Ñ RELSEG_SIZE %d." -#: access/transam/xlog.c:4110 +#: access/transam/xlog.c:4112 #, c-format msgid "" "The database cluster was initialized with XLOG_BLCKSZ %d, but the server was " @@ -2661,7 +2661,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ XLOG_BLCKSZ %d, но Ñервер " "Ñкомпилирован Ñ XLOG_BLCKSZ %d." -#: access/transam/xlog.c:4117 +#: access/transam/xlog.c:4119 #, c-format msgid "" "The database cluster was initialized with NAMEDATALEN %d, but the server was " @@ -2670,7 +2670,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ NAMEDATALEN %d, но Ñервер " "Ñкомпилирован Ñ NAMEDATALEN %d." -#: access/transam/xlog.c:4124 +#: access/transam/xlog.c:4126 #, c-format msgid "" "The database cluster was initialized with INDEX_MAX_KEYS %d, but the server " @@ -2679,7 +2679,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ INDEX_MAX_KEYS %d, но Ñервер " "Ñкомпилирован Ñ INDEX_MAX_KEYS %d." -#: access/transam/xlog.c:4131 +#: access/transam/xlog.c:4133 #, c-format msgid "" "The database cluster was initialized with TOAST_MAX_CHUNK_SIZE %d, but the " @@ -2688,7 +2688,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ TOAST_MAX_CHUNK_SIZE %d, но Ñервер " "Ñкомпилирован Ñ TOAST_MAX_CHUNK_SIZE %d." -#: access/transam/xlog.c:4138 +#: access/transam/xlog.c:4140 #, c-format msgid "" "The database cluster was initialized with LOBLKSIZE %d, but the server was " @@ -2697,7 +2697,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ LOBLKSIZE %d, но Ñервер " "Ñкомпилирован Ñ LOBLKSIZE %d." -#: access/transam/xlog.c:4147 +#: access/transam/xlog.c:4149 #, c-format msgid "" "The database cluster was initialized without USE_FLOAT8_BYVAL but the server " @@ -2706,7 +2706,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован без USE_FLOAT8_BYVAL, но Ñервер " "Ñкомпилирован Ñ USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4154 +#: access/transam/xlog.c:4156 #, c-format msgid "" "The database cluster was initialized with USE_FLOAT8_BYVAL but the server " @@ -2715,7 +2715,7 @@ msgstr "" "КлаÑтер баз данных был инициализирован Ñ USE_FLOAT8_BYVAL, но Ñервер был " "Ñкомпилирован без USE_FLOAT8_BYVAL." -#: access/transam/xlog.c:4163 +#: access/transam/xlog.c:4165 #, c-format msgid "" "WAL segment size must be a power of two between 1 MB and 1 GB, but the " @@ -2733,76 +2733,76 @@ msgstr[2] "" "размер Ñегмента WAL должен задаватьÑÑ Ñтепенью 2 в интервале от 1 МБ до 1 " "ГБ, но в управлÑющем файле указано значение: %d" -#: access/transam/xlog.c:4175 +#: access/transam/xlog.c:4177 #, c-format msgid "\"min_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"min_wal_size\" должен быть минимум вдвое больше \"wal_segment_size\"" -#: access/transam/xlog.c:4179 +#: access/transam/xlog.c:4181 #, c-format msgid "\"max_wal_size\" must be at least twice \"wal_segment_size\"" msgstr "\"max_wal_size\" должен быть минимум вдвое больше \"wal_segment_size\"" -#: access/transam/xlog.c:4620 +#: access/transam/xlog.c:4622 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не удалоÑÑŒ запиÑать начальный файл журнала предзапиÑи: %m" -#: access/transam/xlog.c:4628 +#: access/transam/xlog.c:4630 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не удалоÑÑŒ ÑброÑить на диÑк начальный файл журнала предзапиÑи: %m" -#: access/transam/xlog.c:4634 +#: access/transam/xlog.c:4636 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не удалоÑÑŒ закрыть начальный файл журнала предзапиÑи: %m" -#: access/transam/xlog.c:4852 +#: access/transam/xlog.c:4854 #, 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:4855 #, 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:4856 #, c-format msgid "Use a backup taken after setting wal_level to higher than minimal." msgstr "" "ИÑпользуйте резервную копию, Ñделанную поÑле Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ wal_level на любой " "уровень выше minimal." -#: access/transam/xlog.c:4918 +#: access/transam/xlog.c:4920 #, c-format msgid "control file contains invalid checkpoint location" msgstr "файл pg_control Ñодержит неправильную позицию контрольной точки" -#: access/transam/xlog.c:4929 +#: access/transam/xlog.c:4931 #, c-format msgid "database system was shut down at %s" msgstr "ÑиÑтема БД была выключена: %s" -#: access/transam/xlog.c:4935 +#: access/transam/xlog.c:4937 #, c-format msgid "database system was shut down in recovery at %s" msgstr "ÑиÑтема БД была выключена в процеÑÑе воÑÑтановлениÑ: %s" -#: access/transam/xlog.c:4941 +#: access/transam/xlog.c:4943 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "выключение ÑиÑтемы БД было прервано; поÑледний момент работы: %s" -#: access/transam/xlog.c:4947 +#: access/transam/xlog.c:4949 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "работа ÑиÑтемы БД была прервана во Ð²Ñ€ÐµÐ¼Ñ Ð²Ð¾ÑÑтановлениÑ: %s" -#: access/transam/xlog.c:4949 +#: access/transam/xlog.c:4951 #, c-format msgid "" "This probably means that some data is corrupted and you will have to use the " @@ -2811,14 +2811,14 @@ msgstr "" "Ðто Ñкорее вÑего означает, что некоторые данные повреждены и вам придётÑÑ " "воÑÑтановить БД из поÑледней резервной копии." -#: access/transam/xlog.c:4955 +#: access/transam/xlog.c:4957 #, 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:4959 #, c-format msgid "" "If this has occurred more than once some data might be corrupted and you " @@ -2827,22 +2827,22 @@ msgstr "" "ЕÑли Ñто проиÑходит поÑтоÑнно, возможно, какие-то данные были иÑпорчены и " "Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñтоит выбрать более раннюю точку." -#: access/transam/xlog.c:4963 +#: access/transam/xlog.c:4965 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "работа ÑиÑтемы БД была прервана; поÑледний момент работы: %s" -#: access/transam/xlog.c:4969 +#: access/transam/xlog.c:4971 #, c-format msgid "control file contains invalid database cluster state" msgstr "файл pg_control Ñодержит неверный код ÑоÑтоÑÐ½Ð¸Ñ ÐºÐ»Ð°Ñтера" -#: access/transam/xlog.c:5353 +#: access/transam/xlog.c:5355 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL закончилÑÑ Ð±ÐµÐ· признака Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ" -#: access/transam/xlog.c:5354 +#: access/transam/xlog.c:5356 #, c-format msgid "" "All WAL generated while online backup was taken must be available at " @@ -2851,40 +2851,40 @@ msgstr "" "Ð’Ñе журналы WAL, Ñозданные во Ð²Ñ€ÐµÐ¼Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ \"на ходу\", " "должны быть в наличии Ð´Ð»Ñ Ð²Ð¾ÑÑтановлениÑ." -#: access/transam/xlog.c:5357 +#: access/transam/xlog.c:5359 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL закончилÑÑ Ð´Ð¾ ÑоглаÑованной точки воÑÑтановлениÑ" -#: access/transam/xlog.c:5405 +#: access/transam/xlog.c:5407 #, c-format msgid "selected new timeline ID: %u" msgstr "выбранный ID новой линии времени: %u" -#: access/transam/xlog.c:5438 +#: access/transam/xlog.c:5440 #, c-format msgid "archive recovery complete" msgstr "воÑÑтановление архива завершено" -#: access/transam/xlog.c:6044 +#: access/transam/xlog.c:6046 #, c-format msgid "shutting down" msgstr "выключение" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6083 +#: access/transam/xlog.c:6085 #, 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:6095 +#: access/transam/xlog.c:6097 #, c-format msgid "checkpoint starting:%s%s%s%s%s%s%s%s" msgstr "начата ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°:%s%s%s%s%s%s%s%s" # well-spelled: Ñинхр -#: access/transam/xlog.c:6155 +#: access/transam/xlog.c:6157 #, c-format msgid "" "restartpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d " @@ -2898,7 +2898,7 @@ msgstr "" "=%ld.%03d Ñек., ÑреднÑÑ=%ld.%03d Ñек.; раÑÑтоÑние=%d kB, ожидалоÑÑŒ=%d kB" # well-spelled: Ñинхр -#: access/transam/xlog.c:6175 +#: access/transam/xlog.c:6177 #, c-format msgid "" "checkpoint complete: wrote %d buffers (%.1f%%); %d WAL file(s) added, %d " @@ -2911,7 +2911,7 @@ msgstr "" "Ñек., вÑего=%ld.%03d Ñек.; Ñинхронизировано_файлов=%d, ÑамаÑ_долгаÑ_Ñинхр." "=%ld.%03d Ñек., ÑреднÑÑ=%ld.%03d Ñек.; раÑÑтоÑние=%d kB, ожидалоÑÑŒ=%d kB" -#: access/transam/xlog.c:6610 +#: access/transam/xlog.c:6612 #, c-format msgid "" "concurrent write-ahead log activity while database system is shutting down" @@ -2919,75 +2919,75 @@ msgstr "" "во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑиÑтемы баз данных отмечена активноÑÑ‚ÑŒ в журнале " "предзапиÑи" -#: access/transam/xlog.c:7167 +#: access/transam/xlog.c:7169 #, c-format msgid "recovery restart point at %X/%X" msgstr "точка перезапуÑка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² позиции %X/%X" -#: access/transam/xlog.c:7169 +#: access/transam/xlog.c:7171 #, c-format msgid "Last completed transaction was at log time %s." msgstr "ПоÑледнÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±Ñ‹Ð»Ð° выполнена в %s." -#: access/transam/xlog.c:7416 +#: access/transam/xlog.c:7418 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\" Ñоздана в позиции %X/%X" -#: access/transam/xlog.c:7623 +#: access/transam/xlog.c:7625 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "" "резервное копирование \"на ходу\" было отменено, продолжить воÑÑтановление " "нельзÑ" -#: access/transam/xlog.c:7680 +#: access/transam/xlog.c:7682 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в запиÑи точки выключениÑ" -#: access/transam/xlog.c:7738 +#: access/transam/xlog.c:7740 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в запиÑи точки активноÑти" -#: access/transam/xlog.c:7767 +#: access/transam/xlog.c:7769 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "" "неожиданный ID линии времени %u (должен быть %u) в запиÑи конец-" "воÑÑтановлениÑ" -#: access/transam/xlog.c:8025 +#: access/transam/xlog.c:8027 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не удалоÑÑŒ Ñинхронизировать Ñ Ð¤Ð¡ файл Ñквозной запиÑи %s: %m" -#: access/transam/xlog.c:8031 +#: access/transam/xlog.c:8033 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не удалоÑÑŒ Ñинхронизировать Ñ Ð¤Ð¡ данные (fdatasync) файла \"%s\": %m" -#: access/transam/xlog.c:8126 access/transam/xlog.c:8493 +#: access/transam/xlog.c:8128 access/transam/xlog.c:8495 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "" "Выбранный уровень WAL недоÑтаточен Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ \"на ходу\"" -#: access/transam/xlog.c:8127 access/transam/xlog.c:8494 +#: access/transam/xlog.c:8129 access/transam/xlog.c:8496 #: 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:8132 +#: access/transam/xlog.c:8134 #, c-format msgid "backup label too long (max %d bytes)" msgstr "длина метки резервной копии превышает предел (%d байт)" -#: access/transam/xlog.c:8248 +#: access/transam/xlog.c:8250 #, c-format msgid "" "WAL generated with full_page_writes=off was replayed since last restartpoint" @@ -2995,7 +2995,7 @@ msgstr "" "ПоÑле поÑледней точки перезапуÑка был воÑпроизведён WAL, Ñозданный в режиме " "full_page_writes=off." -#: access/transam/xlog.c:8250 access/transam/xlog.c:8606 +#: access/transam/xlog.c:8252 access/transam/xlog.c:8608 #, c-format msgid "" "This means that the backup being taken on the standby is corrupt and should " @@ -3007,32 +3007,32 @@ msgstr "" "CHECKPOINT на ведущем Ñервере, а затем попробуйте резервное копирование \"на " "ходу\" ещё раз." -#: access/transam/xlog.c:8330 backup/basebackup.c:1345 utils/adt/misc.c:347 +#: access/transam/xlog.c:8332 backup/basebackup.c:1345 utils/adt/misc.c:347 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "целевой путь ÑимволичеÑкой ÑÑылки \"%s\" Ñлишком длинный" -#: access/transam/xlog.c:8380 backup/basebackup.c:1360 +#: access/transam/xlog.c:8382 backup/basebackup.c:1360 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:355 #, c-format msgid "tablespaces are not supported on this platform" msgstr "табличные проÑтранÑтва не поддерживаютÑÑ Ð½Ð° Ñтой платформе" -#: access/transam/xlog.c:8539 access/transam/xlog.c:8552 -#: access/transam/xlogrecovery.c:1211 access/transam/xlogrecovery.c:1218 -#: access/transam/xlogrecovery.c:1277 access/transam/xlogrecovery.c:1357 -#: access/transam/xlogrecovery.c:1381 +#: access/transam/xlog.c:8541 access/transam/xlog.c:8554 +#: 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 #, c-format msgid "invalid data in file \"%s\"" msgstr "неверные данные в файле \"%s\"" -#: access/transam/xlog.c:8556 backup/basebackup.c:1200 +#: access/transam/xlog.c:8558 backup/basebackup.c:1200 #, c-format msgid "the standby was promoted during online backup" msgstr "" "дежурный Ñервер был повышен в процеÑÑе резервного ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ \"на ходу\"" -#: access/transam/xlog.c:8557 backup/basebackup.c:1201 +#: access/transam/xlog.c:8559 backup/basebackup.c:1201 #, c-format msgid "" "This means that the backup being taken is corrupt and should not be used. " @@ -3041,7 +3041,7 @@ msgstr "" "Ðто означает, что ÑÐ¾Ð·Ð´Ð°Ð²Ð°ÐµÐ¼Ð°Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¸Ñпорчена и иÑпользовать её не " "Ñледует. Попробуйте резервное копирование \"на ходу\" ещё раз." -#: access/transam/xlog.c:8604 +#: access/transam/xlog.c:8606 #, c-format msgid "" "WAL generated with full_page_writes=off was replayed during online backup" @@ -3049,13 +3049,13 @@ msgstr "" "Ð’ процеÑÑе резервного ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ \"на ходу\" был воÑпроизведён WAL, " "Ñозданный в режиме full_page_writes=off" -#: access/transam/xlog.c:8729 +#: access/transam/xlog.c:8731 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "" "базовое копирование выполнено, ожидаетÑÑ Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ Ð½ÑƒÐ¶Ð½Ñ‹Ñ… Ñегментов WAL" -#: access/transam/xlog.c:8743 +#: access/transam/xlog.c:8745 #, c-format msgid "" "still waiting for all required WAL segments to be archived (%d seconds " @@ -3063,7 +3063,7 @@ msgid "" msgstr "" "продолжаетÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ðµ архивации вÑех нужных Ñегментов WAL (прошло %d Ñек.)" -#: access/transam/xlog.c:8745 +#: access/transam/xlog.c:8747 #, c-format msgid "" "Check that your archive_command is executing properly. You can safely " @@ -3074,12 +3074,12 @@ msgstr "" "ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ отменить безопаÑно, но Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±Ð°Ð·Ñ‹ будет " "непригодна без вÑех Ñегментов WAL." -#: access/transam/xlog.c:8752 +#: access/transam/xlog.c:8754 #, c-format msgid "all required WAL segments have been archived" msgstr "вÑе нужные Ñегменты WAL заархивированы" -#: access/transam/xlog.c:8756 +#: access/transam/xlog.c:8758 #, c-format msgid "" "WAL archiving is not enabled; you must ensure that all required WAL segments " @@ -3088,7 +3088,7 @@ msgstr "" "Ð°Ñ€Ñ…Ð¸Ð²Ð°Ñ†Ð¸Ñ WAL не наÑтроена; вы должны обеÑпечить копирование вÑех требуемых " "Ñегментов WAL другими ÑредÑтвами Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии" -#: access/transam/xlog.c:8805 +#: access/transam/xlog.c:8807 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "" @@ -3204,7 +3204,7 @@ msgstr "%s Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÑÑ‚ÑŒ, когда производитÑÑ msgid "\"wait_seconds\" must not be negative or zero" msgstr "значение \"wait_seconds\" не должно быть отрицательным или нулевым" -#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:252 +#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:257 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "отправить Ñигнал процеÑÑу postmaster не удалоÑÑŒ: %m" @@ -3225,59 +3225,59 @@ msgstr "" "recovery_prefetch не поддерживаетÑÑ Ð½Ð° платформах, где отÑутÑтвует " "posix_fadvise()." -#: access/transam/xlogreader.c:592 +#: access/transam/xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "неверное Ñмещение запиÑи в позиции %X/%X" -#: access/transam/xlogreader.c:600 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "в позиции %X/%X запрошено продолжение запиÑи" -#: access/transam/xlogreader.c:641 access/transam/xlogreader.c:1106 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи в позиции %X/%X: ожидалоÑÑŒ %u, получено %u" -#: access/transam/xlogreader.c:730 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: access/transam/xlogreader.c:743 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° contrecord: %u (ожидалаÑÑŒ %lld) в позиции %X/%X" -#: access/transam/xlogreader.c:1114 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера реÑурÑов %u в позиции %X/%X" -#: access/transam/xlogreader.c:1127 access/transam/xlogreader.c:1143 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запиÑÑŒ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð¹ ÑÑылкой назад %X/%X в позиции %X/%X" -#: access/transam/xlogreader.c:1181 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма данных менеджера реÑурÑов в запиÑи в позиции " "%X/%X" -#: access/transam/xlogreader.c:1218 +#: access/transam/xlogreader.c:1246 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "неверное магичеÑкое чиÑло %04X в Ñегменте журнала %s, Ñмещение %u" -#: access/transam/xlogreader.c:1232 access/transam/xlogreader.c:1273 +#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "неверные информационные биты %04X в Ñегменте журнала %s, Ñмещение %u" -#: access/transam/xlogreader.c:1247 +#: access/transam/xlogreader.c:1275 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -3286,7 +3286,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: в нём указан идентификатор ÑиÑтемы БД " "%llu, а идентификатор ÑиÑтемы pg_control: %llu" -#: access/transam/xlogreader.c:1255 +#: access/transam/xlogreader.c:1283 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -3295,7 +3295,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный размер Ñегмента в заголовке " "Ñтраницы" -#: access/transam/xlogreader.c:1261 +#: access/transam/xlogreader.c:1289 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -3304,35 +3304,35 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "Ñтраницы" -#: access/transam/xlogreader.c:1292 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неожиданный pageaddr %X/%X в Ñегменте журнала %s, Ñмещение %u" -#: access/transam/xlogreader.c:1317 +#: access/transam/xlogreader.c:1345 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "" "нарушение поÑледовательноÑти ID линии времени %u (поÑле %u) в Ñегменте " "журнала %s, Ñмещение %u" -#: access/transam/xlogreader.c:1722 +#: access/transam/xlogreader.c:1750 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порÑдку в позиции %X/%X" -#: access/transam/xlogreader.c:1746 +#: access/transam/xlogreader.c:1774 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA уÑтановлен, но данных в позиции %X/%X нет" -#: access/transam/xlogreader.c:1753 +#: access/transam/xlogreader.c:1781 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "" "BKPBLOCK_HAS_DATA не уÑтановлен, но длина данных равна %u в позиции %X/%X" -#: access/transam/xlogreader.c:1789 +#: access/transam/xlogreader.c:1817 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -3341,21 +3341,21 @@ msgstr "" "BKPIMAGE_HAS_HOLE уÑтановлен, но Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка заданы Ñмещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: access/transam/xlogreader.c:1805 +#: access/transam/xlogreader.c:1833 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "" "BKPIMAGE_HAS_HOLE не уÑтановлен, но Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка заданы Ñмещение %u и длина " "%u в позиции %X/%X" -#: access/transam/xlogreader.c:1819 +#: access/transam/xlogreader.c:1847 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED уÑтановлен, но длина образа блока равна %u в позиции %X/" "%X" -#: access/transam/xlogreader.c:1834 +#: access/transam/xlogreader.c:1862 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -3364,41 +3364,41 @@ msgstr "" "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не уÑтановлены, но длина образа " "блока равна %u в позиции %X/%X" -#: access/transam/xlogreader.c:1850 +#: access/transam/xlogreader.c:1878 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL уÑтановлен, но предыдущее значение не задано в позиции %X/" "%X" -#: access/transam/xlogreader.c:1862 +#: access/transam/xlogreader.c:1890 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: access/transam/xlogreader.c:1929 +#: access/transam/xlogreader.c:1957 #, c-format msgid "record with invalid length at %X/%X" msgstr "запиÑÑŒ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð¹ длиной в позиции %X/%X" -#: access/transam/xlogreader.c:1954 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не удалоÑÑŒ найти копию блока Ñ ID %d в запиÑи журнала WAL" -#: access/transam/xlogreader.c:2038 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ неверным блоком %d" -#: access/transam/xlogreader.c:2045 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ ÑоÑтоÑнием, блок %d" -#: access/transam/xlogreader.c:2072 access/transam/xlogreader.c:2089 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -3407,7 +3407,7 @@ msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X, Ñжатый методом %s, который не " "поддерживаетÑÑ Ñтой Ñборкой, блок %d" -#: access/transam/xlogreader.c:2098 +#: access/transam/xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" @@ -3415,7 +3415,7 @@ msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X, Ñжатый неизвеÑтным методом, " "блок %d" -#: access/transam/xlogreader.c:2106 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не удалоÑÑŒ развернуть образ в позиции %X/%X, блок %d" @@ -3457,12 +3457,21 @@ msgstr "" msgid "starting archive recovery" msgstr "начинаетÑÑ Ð²Ð¾ÑÑтановление архива" -#: access/transam/xlogrecovery.c:651 +#: access/transam/xlogrecovery.c:635 +#, c-format +msgid "" +"starting backup recovery with redo LSN %X/%X, checkpoint LSN %X/%X, on " +"timeline ID %u" +msgstr "" +"начинаетÑÑ Ð²Ð¾ÑÑтановление копии Ñ LSN redo %X/%X, LSN контрольной точки %X/" +"%X, на линии времени %u" + +#: access/transam/xlogrecovery.c:667 #, c-format msgid "could not find redo location referenced by checkpoint record" msgstr "не удалоÑÑŒ найти положение REDO, указанное запиÑью контрольной точки" -#: access/transam/xlogrecovery.c:652 access/transam/xlogrecovery.c:662 +#: access/transam/xlogrecovery.c:668 access/transam/xlogrecovery.c:678 #, c-format msgid "" "If you are restoring from a backup, touch \"%s/recovery.signal\" and add " @@ -3478,42 +3487,47 @@ msgstr "" "Будьте оÑторожны: при воÑÑтановлении резервной копии удаление \"%s/" "backup_label\" приведёт к повреждению клаÑтера." -#: access/transam/xlogrecovery.c:661 +#: access/transam/xlogrecovery.c:677 #, c-format msgid "could not locate required checkpoint record" msgstr "не удалоÑÑŒ Ñчитать нужную запиÑÑŒ контрольной точки" -#: access/transam/xlogrecovery.c:690 commands/tablespace.c:685 +#: access/transam/xlogrecovery.c:706 commands/tablespace.c:685 #, c-format msgid "could not create symbolic link \"%s\": %m" msgstr "не удалоÑÑŒ Ñоздать ÑимволичеÑкую ÑÑылку \"%s\": %m" -#: access/transam/xlogrecovery.c:722 access/transam/xlogrecovery.c:728 +#: access/transam/xlogrecovery.c:738 access/transam/xlogrecovery.c:744 #, c-format msgid "ignoring file \"%s\" because no file \"%s\" exists" msgstr "файл \"%s\" игнорируетÑÑ Ð²Ð²Ð¸Ð´Ñƒ отÑутÑÑ‚Ð²Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° \"%s\"" -#: access/transam/xlogrecovery.c:724 +#: access/transam/xlogrecovery.c:740 #, c-format msgid "File \"%s\" was renamed to \"%s\"." msgstr "Файл \"%s\" был переименован в \"%s\"." -#: access/transam/xlogrecovery.c:730 +#: access/transam/xlogrecovery.c:746 #, c-format msgid "Could not rename file \"%s\" to \"%s\": %m." msgstr "Ðе удалоÑÑŒ переименовать файл \"%s\" в \"%s\" (%m)." -#: access/transam/xlogrecovery.c:784 +#: access/transam/xlogrecovery.c:785 +#, c-format +msgid "restarting backup recovery with redo LSN %X/%X" +msgstr "перезапуÑк воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¿Ð¸Ð¸ Ñ LSN redo %X/%X" + +#: access/transam/xlogrecovery.c:810 #, c-format msgid "could not locate a valid checkpoint record" msgstr "не удалоÑÑŒ Ñчитать правильную запиÑÑŒ контрольной точки" -#: access/transam/xlogrecovery.c:808 +#: access/transam/xlogrecovery.c:834 #, c-format msgid "requested timeline %u is not a child of this server's history" msgstr "в иÑтории Ñервера нет Ð¾Ñ‚Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð¾Ð¹ линии времени %u" -#: access/transam/xlogrecovery.c:810 +#: access/transam/xlogrecovery.c:836 #, c-format msgid "" "Latest checkpoint is at %X/%X on timeline %u, but in the history of the " @@ -3522,7 +3536,7 @@ msgstr "" "ПоÑледнÑÑ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°: %X/%X на линии времени %u, но в иÑтории " "запрошенной линии времени Ñервер ответвилÑÑ Ñ Ñтой линии в %X/%X." -#: access/transam/xlogrecovery.c:824 +#: access/transam/xlogrecovery.c:850 #, c-format msgid "" "requested timeline %u does not contain minimum recovery point %X/%X on " @@ -3531,22 +3545,22 @@ msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ %u не Ñодержит минимальную точку воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ %X/" "%X на линии времени %u" -#: access/transam/xlogrecovery.c:852 +#: access/transam/xlogrecovery.c:878 #, c-format msgid "invalid next transaction ID" msgstr "неверный ID Ñледующей транзакции" -#: access/transam/xlogrecovery.c:857 +#: access/transam/xlogrecovery.c:883 #, c-format msgid "invalid redo in checkpoint record" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ REDO в контрольной точке" -#: access/transam/xlogrecovery.c:868 +#: access/transam/xlogrecovery.c:894 #, c-format msgid "invalid redo record in shutdown checkpoint" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ REDO в контрольной точке выключениÑ" -#: access/transam/xlogrecovery.c:897 +#: access/transam/xlogrecovery.c:923 #, c-format msgid "" "database system was not properly shut down; automatic recovery in progress" @@ -3554,19 +3568,19 @@ msgstr "" "ÑиÑтема БД была оÑтановлена нештатно; производитÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкое " "воÑÑтановление" -#: access/transam/xlogrecovery.c:901 +#: access/transam/xlogrecovery.c:927 #, c-format msgid "crash recovery starts in timeline %u and has target timeline %u" msgstr "" "воÑÑтановление поÑле ÑÐ±Ð¾Ñ Ð½Ð°Ñ‡Ð¸Ð½Ð°ÐµÑ‚ÑÑ Ð½Ð° линии времени %u, Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ " "времени: %u" -#: access/transam/xlogrecovery.c:944 +#: access/transam/xlogrecovery.c:970 #, c-format msgid "backup_label contains data inconsistent with control file" msgstr "backup_label Ñодержит данные, не ÑоглаÑованные Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ pg_control" -#: access/transam/xlogrecovery.c:945 +#: access/transam/xlogrecovery.c:971 #, c-format msgid "" "This means that the backup is corrupted and you will have to use another " @@ -3575,24 +3589,24 @@ msgstr "" "Ðто означает, что Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ð¾Ð²Ñ€ÐµÐ¶Ð´ÐµÐ½Ð° и Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð‘Ð” " "придётÑÑ Ð¸Ñпользовать другую копию." -#: access/transam/xlogrecovery.c:999 +#: access/transam/xlogrecovery.c:1025 #, c-format msgid "using recovery command file \"%s\" is not supported" msgstr "" "иÑпользование файла Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÐµÐ¹ воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\" не поддерживаетÑÑ" -#: access/transam/xlogrecovery.c:1064 +#: access/transam/xlogrecovery.c:1090 #, c-format msgid "standby mode is not supported by single-user servers" msgstr "" "режим резервного Ñервера не поддерживаетÑÑ Ð¾Ð´Ð½Ð¾Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŒÑким Ñервером" -#: access/transam/xlogrecovery.c:1081 +#: access/transam/xlogrecovery.c:1107 #, c-format msgid "specified neither primary_conninfo nor restore_command" msgstr "не указано ни primary_conninfo, ни restore_command" -#: access/transam/xlogrecovery.c:1082 +#: access/transam/xlogrecovery.c:1108 #, c-format msgid "" "The database server will regularly poll the pg_wal subdirectory to check for " @@ -3601,79 +3615,79 @@ msgstr "" "Сервер БД будет регулÑрно опрашивать подкаталог pg_wal и проверÑÑ‚ÑŒ " "ÑодержащиеÑÑ Ð² нём файлы." -#: access/transam/xlogrecovery.c:1090 +#: access/transam/xlogrecovery.c:1116 #, c-format msgid "must specify restore_command when standby mode is not enabled" msgstr "" "необходимо задать restore_command, еÑли не выбран режим резервного Ñервера" -#: access/transam/xlogrecovery.c:1128 +#: access/transam/xlogrecovery.c:1154 #, c-format msgid "recovery target timeline %u does not exist" msgstr "Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ %u не ÑущеÑтвует" -#: access/transam/xlogrecovery.c:1278 +#: access/transam/xlogrecovery.c:1304 #, c-format msgid "Timeline ID parsed is %u, but expected %u." msgstr "Получен идентификатор линии времени %u, но ожидалÑÑ %u." -#: access/transam/xlogrecovery.c:1660 +#: access/transam/xlogrecovery.c:1686 #, c-format msgid "redo starts at %X/%X" msgstr "запиÑÑŒ REDO начинаетÑÑ Ñо ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %X/%X" -#: access/transam/xlogrecovery.c:1673 +#: access/transam/xlogrecovery.c:1699 #, 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:1765 +#: access/transam/xlogrecovery.c:1791 #, c-format msgid "requested recovery stop point is before consistent recovery point" msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾ÑˆÐµÐ½Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° оÑтановки воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´ÑˆÐµÑтвует ÑоглаÑованной точке " "воÑÑтановлениÑ" -#: access/transam/xlogrecovery.c:1797 +#: access/transam/xlogrecovery.c:1823 #, c-format msgid "redo done at %X/%X system usage: %s" msgstr "запиÑи REDO обработаны до ÑÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ %X/%X, нагрузка ÑиÑтемы: %s" -#: access/transam/xlogrecovery.c:1803 +#: access/transam/xlogrecovery.c:1829 #, c-format msgid "last completed transaction was at log time %s" msgstr "поÑледнÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±Ñ‹Ð»Ð° выполнена в %s" -#: access/transam/xlogrecovery.c:1812 +#: access/transam/xlogrecovery.c:1838 #, c-format msgid "redo is not required" msgstr "данные REDO не требуютÑÑ" -#: access/transam/xlogrecovery.c:1823 +#: access/transam/xlogrecovery.c:1849 #, c-format msgid "recovery ended before configured recovery target was reached" msgstr "воÑÑтановление окончилоÑÑŒ до доÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¹ цели воÑÑтановлениÑ" -#: access/transam/xlogrecovery.c:1998 +#: access/transam/xlogrecovery.c:2024 #, c-format msgid "successfully skipped missing contrecord at %X/%X, overwritten at %s" msgstr "" "уÑпешно пропущена отÑутÑÑ‚Ð²ÑƒÑŽÑ‰Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ contrecord в %X/%X, перезапиÑÐ°Ð½Ð½Ð°Ñ Ð² " "%s" -#: access/transam/xlogrecovery.c:2065 +#: access/transam/xlogrecovery.c:2091 #, c-format msgid "unexpected directory entry \"%s\" found in %s" msgstr "в %2$s обнаружен недопуÑтимый Ñлемент-каталог \"%1$s\"" -#: access/transam/xlogrecovery.c:2067 +#: access/transam/xlogrecovery.c:2093 #, c-format msgid "All directory entries in pg_tblspc/ should be symbolic links." msgstr "" "Ð’Ñе Ñлементы-каталоги в pg_tblspc/ должны быть ÑимволичеÑкими ÑÑылками." -#: access/transam/xlogrecovery.c:2068 +#: access/transam/xlogrecovery.c:2094 #, c-format msgid "" "Remove those directories, or set allow_in_place_tablespaces to ON " @@ -3682,18 +3696,23 @@ msgstr "" "Удалите Ñти каталоги или на Ð²Ñ€ÐµÐ¼Ñ ÑƒÑтановите в allow_in_place_tablespaces " "значение ON, чтобы воÑÑтановление завершилоÑÑŒ." -#: access/transam/xlogrecovery.c:2142 +#: access/transam/xlogrecovery.c:2146 +#, 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 #, c-format msgid "consistent recovery state reached at %X/%X" msgstr "ÑоглаÑованное ÑоÑтоÑние воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтигнуто в позиции %X/%X" #. translator: %s is a WAL record description -#: access/transam/xlogrecovery.c:2180 +#: access/transam/xlogrecovery.c:2214 #, c-format msgid "WAL redo at %X/%X for %s" msgstr "запиÑÑŒ REDO в WAL в позиции %X/%X Ð´Ð»Ñ %s" -#: access/transam/xlogrecovery.c:2276 +#: access/transam/xlogrecovery.c:2310 #, c-format msgid "" "unexpected previous timeline ID %u (current timeline ID %u) in checkpoint " @@ -3702,13 +3721,13 @@ msgstr "" "неожиданный ID предыдущей линии времени %u (ID текущей линии времени %u) в " "запиÑи контрольной точки" -#: access/transam/xlogrecovery.c:2285 +#: access/transam/xlogrecovery.c:2319 #, 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:2301 +#: access/transam/xlogrecovery.c:2335 #, c-format msgid "" "unexpected timeline ID %u in checkpoint record, before reaching minimum " @@ -3717,145 +3736,145 @@ msgstr "" "неожиданный ID линии времени %u в запиÑи контрольной точки, до доÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ " "минимальной к. Ñ‚. %X/%X на линии времени %u" -#: access/transam/xlogrecovery.c:2485 access/transam/xlogrecovery.c:2761 +#: access/transam/xlogrecovery.c:2519 access/transam/xlogrecovery.c:2795 #, c-format msgid "recovery stopping after reaching consistency" msgstr "" "воÑÑтановление оÑтанавливаетÑÑ Ð¿Ð¾Ñле доÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ ÑоглаÑованного ÑоÑтоÑниÑ" -#: access/transam/xlogrecovery.c:2506 +#: access/transam/xlogrecovery.c:2540 #, c-format msgid "recovery stopping before WAL location (LSN) \"%X/%X\"" msgstr "воÑÑтановление оÑтанавливаетÑÑ Ð¿ÐµÑ€ÐµÐ´ позицией в WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2596 +#: access/transam/xlogrecovery.c:2630 #, c-format msgid "recovery stopping before commit of transaction %u, time %s" msgstr "" "воÑÑтановление оÑтанавливаетÑÑ Ð¿ÐµÑ€ÐµÐ´ фикÑированием транзакции %u, Ð²Ñ€ÐµÐ¼Ñ %s" -#: access/transam/xlogrecovery.c:2603 +#: access/transam/xlogrecovery.c:2637 #, c-format msgid "recovery stopping before abort of transaction %u, time %s" msgstr "" "воÑÑтановление оÑтанавливаетÑÑ Ð¿ÐµÑ€ÐµÐ´ прерыванием транзакции %u, Ð²Ñ€ÐµÐ¼Ñ %s" -#: access/transam/xlogrecovery.c:2656 +#: access/transam/xlogrecovery.c:2690 #, c-format msgid "recovery stopping at restore point \"%s\", time %s" msgstr "воÑÑтановление оÑтанавливаетÑÑ Ð² точке воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\", Ð²Ñ€ÐµÐ¼Ñ %s" -#: access/transam/xlogrecovery.c:2674 +#: access/transam/xlogrecovery.c:2708 #, c-format msgid "recovery stopping after WAL location (LSN) \"%X/%X\"" msgstr "воÑÑтановление оÑтанавливаетÑÑ Ð¿Ð¾Ñле позиции в WAL (LSN) \"%X/%X\"" -#: access/transam/xlogrecovery.c:2741 +#: access/transam/xlogrecovery.c:2775 #, c-format msgid "recovery stopping after commit of transaction %u, time %s" msgstr "" "воÑÑтановление оÑтанавливаетÑÑ Ð¿Ð¾Ñле фикÑÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸ %u, Ð²Ñ€ÐµÐ¼Ñ %s" -#: access/transam/xlogrecovery.c:2749 +#: access/transam/xlogrecovery.c:2783 #, c-format msgid "recovery stopping after abort of transaction %u, time %s" msgstr "" "воÑÑтановление оÑтанавливаетÑÑ Ð¿Ð¾Ñле Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸ %u, Ð²Ñ€ÐµÐ¼Ñ %s" -#: access/transam/xlogrecovery.c:2830 +#: access/transam/xlogrecovery.c:2864 #, c-format msgid "pausing at the end of recovery" msgstr "оÑтановка в конце воÑÑтановлениÑ" -#: access/transam/xlogrecovery.c:2831 +#: access/transam/xlogrecovery.c:2865 #, c-format msgid "Execute pg_wal_replay_resume() to promote." msgstr "Выполните pg_wal_replay_resume() Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ." -#: access/transam/xlogrecovery.c:2834 access/transam/xlogrecovery.c:4644 +#: access/transam/xlogrecovery.c:2868 access/transam/xlogrecovery.c:4678 #, c-format msgid "recovery has paused" msgstr "воÑÑтановление приоÑтановлено" -#: access/transam/xlogrecovery.c:2835 +#: access/transam/xlogrecovery.c:2869 #, c-format msgid "Execute pg_wal_replay_resume() to continue." msgstr "Выполните pg_wal_replay_resume() Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ." -#: access/transam/xlogrecovery.c:3101 +#: access/transam/xlogrecovery.c:3135 #, c-format msgid "unexpected timeline ID %u in log segment %s, offset %u" msgstr "неожиданный ID линии времени %u в Ñегменте журнала %s, Ñмещение %u" -#: access/transam/xlogrecovery.c:3306 +#: access/transam/xlogrecovery.c:3340 #, c-format msgid "could not read from log segment %s, offset %u: %m" msgstr "не удалоÑÑŒ прочитать Ñегмент журнала %s, Ñмещение %u: %m" -#: access/transam/xlogrecovery.c:3312 +#: access/transam/xlogrecovery.c:3346 #, 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:3961 +#: access/transam/xlogrecovery.c:3995 #, c-format msgid "invalid primary checkpoint link in control file" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑÑылка на первичную контрольную точку в файле pg_control" -#: access/transam/xlogrecovery.c:3965 +#: access/transam/xlogrecovery.c:3999 #, c-format msgid "invalid checkpoint link in backup_label file" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑÑылка на контрольную точку в файле backup_label" -#: access/transam/xlogrecovery.c:3983 +#: access/transam/xlogrecovery.c:4017 #, c-format msgid "invalid primary checkpoint record" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ первичной контрольной точки" -#: access/transam/xlogrecovery.c:3987 +#: access/transam/xlogrecovery.c:4021 #, c-format msgid "invalid checkpoint record" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ контрольной точки" -#: access/transam/xlogrecovery.c:3998 +#: access/transam/xlogrecovery.c:4032 #, c-format msgid "invalid resource manager ID in primary checkpoint record" msgstr "неверный ID менеджера реÑурÑов в запиÑи первичной контрольной точки" -#: access/transam/xlogrecovery.c:4002 +#: access/transam/xlogrecovery.c:4036 #, c-format msgid "invalid resource manager ID in checkpoint record" msgstr "неверный ID менеджера реÑурÑов в запиÑи контрольной точки" -#: access/transam/xlogrecovery.c:4015 +#: access/transam/xlogrecovery.c:4049 #, c-format msgid "invalid xl_info in primary checkpoint record" msgstr "неверные флаги xl_info в запиÑи первичной контрольной точки" -#: access/transam/xlogrecovery.c:4019 +#: access/transam/xlogrecovery.c:4053 #, c-format msgid "invalid xl_info in checkpoint record" msgstr "неверные флаги xl_info в запиÑи контрольной точки" -#: access/transam/xlogrecovery.c:4030 +#: access/transam/xlogrecovery.c:4064 #, c-format msgid "invalid length of primary checkpoint record" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи первичной контрольной точки" -#: access/transam/xlogrecovery.c:4034 +#: access/transam/xlogrecovery.c:4068 #, c-format msgid "invalid length of checkpoint record" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи контрольной точки" -#: access/transam/xlogrecovery.c:4090 +#: access/transam/xlogrecovery.c:4124 #, c-format msgid "new timeline %u is not a child of database system timeline %u" msgstr "" "Ð½Ð¾Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ %u не ÑвлÑетÑÑ Ð¾Ñ‚Ð²ÐµÑ‚Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ линии времени ÑиÑтемы БД %u" -#: access/transam/xlogrecovery.c:4104 +#: access/transam/xlogrecovery.c:4138 #, c-format msgid "" "new timeline %u forked off current database system timeline %u before " @@ -3864,40 +3883,40 @@ msgstr "" "Ð½Ð¾Ð²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ %u ответвилаÑÑŒ от текущей линии времени базы данных %u " "до текущей точки воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ %X/%X" -#: access/transam/xlogrecovery.c:4123 +#: access/transam/xlogrecovery.c:4157 #, c-format msgid "new target timeline is %u" msgstr "Ð½Ð¾Ð²Ð°Ñ Ñ†ÐµÐ»ÐµÐ²Ð°Ñ Ð»Ð¸Ð½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ %u" -#: access/transam/xlogrecovery.c:4326 +#: access/transam/xlogrecovery.c:4360 #, c-format msgid "WAL receiver process shutdown requested" msgstr "получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° выключение процеÑÑа приёмника WAL" -#: access/transam/xlogrecovery.c:4389 +#: access/transam/xlogrecovery.c:4423 #, c-format msgid "received promote request" msgstr "получен Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ ÑтатуÑа" -#: access/transam/xlogrecovery.c:4402 +#: access/transam/xlogrecovery.c:4436 #, c-format msgid "promote trigger file found: %s" msgstr "найден файл триггера повышениÑ: %s" -#: access/transam/xlogrecovery.c:4410 +#: access/transam/xlogrecovery.c:4444 #, c-format msgid "could not stat promote trigger file \"%s\": %m" msgstr "не удалоÑÑŒ получить информацию о файле триггера Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ \"%s\": %m" -#: access/transam/xlogrecovery.c:4635 +#: access/transam/xlogrecovery.c:4669 #, c-format msgid "hot standby is not possible because of insufficient parameter settings" msgstr "" "режим горÑчего резерва невозможен из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð´Ð¾Ñтаточных значений " "параметров" -#: access/transam/xlogrecovery.c:4636 access/transam/xlogrecovery.c:4663 -#: access/transam/xlogrecovery.c:4693 +#: access/transam/xlogrecovery.c:4670 access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4727 #, c-format msgid "" "%s = %d is a lower setting than on the primary server, where its value was " @@ -3905,12 +3924,12 @@ msgid "" msgstr "" "Параметр %s = %d меньше, чем на ведущем Ñервере, где его значение было %d." -#: access/transam/xlogrecovery.c:4645 +#: access/transam/xlogrecovery.c:4679 #, c-format msgid "If recovery is unpaused, the server will shut down." msgstr "Ð’ Ñлучае Ð²Ð¾Ð·Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñервер отключитÑÑ." -#: access/transam/xlogrecovery.c:4646 +#: access/transam/xlogrecovery.c:4680 #, c-format msgid "" "You can then restart the server after making the necessary configuration " @@ -3919,24 +3938,24 @@ msgstr "" "Затем вы можете перезапуÑтить Ñервер поÑле внеÑÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ñ‹Ñ… изменений " "конфигурации." -#: access/transam/xlogrecovery.c:4657 +#: access/transam/xlogrecovery.c:4691 #, c-format msgid "promotion is not possible because of insufficient parameter settings" msgstr "повышение невозможно из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð´Ð¾Ñтаточных значений параметров" -#: access/transam/xlogrecovery.c:4667 +#: access/transam/xlogrecovery.c:4701 #, c-format msgid "Restart the server after making the necessary configuration changes." msgstr "" "ПерезапуÑтите Ñервер поÑле внеÑÐµÐ½Ð¸Ñ Ð½ÐµÐ¾Ð±Ñ…Ð¾Ð´Ð¸Ð¼Ñ‹Ñ… изменений конфигурации." -#: access/transam/xlogrecovery.c:4691 +#: access/transam/xlogrecovery.c:4725 #, c-format msgid "recovery aborted because of insufficient parameter settings" msgstr "" "воÑÑтановление прервано из-за отÑутÑÑ‚Ð²Ð¸Ñ Ð´Ð¾Ñтаточных значений параметров" -#: access/transam/xlogrecovery.c:4697 +#: access/transam/xlogrecovery.c:4731 #, c-format msgid "" "You can restart the server after making the necessary configuration changes." @@ -4162,7 +4181,7 @@ msgstr "" "Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸, ÑохранÑемой на Ñтороне Ñервера, Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ отноÑительный " "путь" -#: backup/basebackup_server.c:102 commands/dbcommands.c:500 +#: 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 @@ -4392,16 +4411,16 @@ msgstr "предложение IN SCHEMA Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать Ð #: catalog/aclchk.c:1587 catalog/catalog.c:627 catalog/objectaddress.c:1543 #: catalog/pg_publication.c:510 commands/analyze.c:391 commands/copy.c:779 -#: commands/sequence.c:1663 commands/tablecmds.c:7271 commands/tablecmds.c:7427 -#: commands/tablecmds.c:7477 commands/tablecmds.c:7551 -#: commands/tablecmds.c:7621 commands/tablecmds.c:7733 -#: commands/tablecmds.c:7827 commands/tablecmds.c:7886 -#: commands/tablecmds.c:7975 commands/tablecmds.c:8005 -#: commands/tablecmds.c:8133 commands/tablecmds.c:8215 -#: commands/tablecmds.c:8371 commands/tablecmds.c:8489 -#: commands/tablecmds.c:12218 commands/tablecmds.c:12399 -#: commands/tablecmds.c:12559 commands/tablecmds.c:13723 -#: commands/tablecmds.c:16292 commands/trigger.c:954 parser/analyze.c:2506 +#: commands/sequence.c:1663 commands/tablecmds.c:7275 commands/tablecmds.c:7431 +#: commands/tablecmds.c:7481 commands/tablecmds.c:7555 +#: commands/tablecmds.c:7625 commands/tablecmds.c:7737 +#: commands/tablecmds.c:7831 commands/tablecmds.c:7890 +#: commands/tablecmds.c:7979 commands/tablecmds.c:8009 +#: commands/tablecmds.c:8137 commands/tablecmds.c:8219 +#: commands/tablecmds.c:8375 commands/tablecmds.c:8493 +#: commands/tablecmds.c:12226 commands/tablecmds.c:12407 +#: commands/tablecmds.c:12567 commands/tablecmds.c:13731 +#: commands/tablecmds.c:16300 commands/trigger.c:954 parser/analyze.c:2506 #: parser/parse_relation.c:725 parser/parse_target.c:1063 #: parser/parse_type.c:144 parser/parse_utilcmd.c:3435 #: parser/parse_utilcmd.c:3471 parser/parse_utilcmd.c:3513 utils/adt/acl.c:2869 @@ -4411,7 +4430,7 @@ msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "Ñтолбец \"%s\" в таблице \"%s\" не ÑущеÑтвует" #: catalog/aclchk.c:1850 catalog/objectaddress.c:1383 commands/sequence.c:1172 -#: commands/tablecmds.c:253 commands/tablecmds.c:17164 utils/adt/acl.c:2077 +#: commands/tablecmds.c:253 commands/tablecmds.c:17172 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 #, c-format @@ -5035,12 +5054,12 @@ msgstr "удалить объект %s нельзÑ, так как от него #: catalog/dependency.c:1194 catalog/dependency.c:1201 #: catalog/dependency.c:1212 commands/tablecmds.c:1328 -#: commands/tablecmds.c:14365 commands/tablespace.c:476 commands/user.c:1008 +#: commands/tablecmds.c:14373 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:7402 -#: utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11873 -#: utils/misc/guc.c:11907 utils/misc/guc.c:11941 utils/misc/guc.c:11984 -#: utils/misc/guc.c:12026 +#: utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11880 +#: utils/misc/guc.c:11914 utils/misc/guc.c:11948 utils/misc/guc.c:11991 +#: utils/misc/guc.c:12033 #, c-format msgid "%s" msgstr "%s" @@ -5086,12 +5105,12 @@ msgid "System catalog modifications are currently disallowed." msgstr "Изменение ÑиÑтемного каталога в текущем ÑоÑтоÑнии запрещено." #: catalog/heap.c:466 commands/tablecmds.c:2348 commands/tablecmds.c:2985 -#: commands/tablecmds.c:6861 +#: commands/tablecmds.c:6865 #, c-format msgid "tables can have at most %d columns" msgstr "макÑимальное чиÑло Ñтолбцов в таблице: %d" -#: catalog/heap.c:484 commands/tablecmds.c:7161 +#: catalog/heap.c:484 commands/tablecmds.c:7165 #, c-format msgid "column name \"%s\" conflicts with a system column name" msgstr "Ð¸Ð¼Ñ Ñтолбца \"%s\" конфликтует Ñ ÑиÑтемным Ñтолбцом" @@ -5177,32 +5196,32 @@ msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "" "добавить ограничение NO INHERIT к Ñекционированной таблице \"%s\" нельзÑ" -#: catalog/heap.c:2401 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "ограничение-проверка \"%s\" уже ÑущеÑтвует" -#: catalog/heap.c:2571 catalog/index.c:889 catalog/pg_constraint.c:689 -#: commands/tablecmds.c:8863 +#: catalog/heap.c:2572 catalog/index.c:889 catalog/pg_constraint.c:689 +#: commands/tablecmds.c:8867 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "ограничение \"%s\" Ð´Ð»Ñ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" уже ÑущеÑтвует" -#: catalog/heap.c:2578 +#: catalog/heap.c:2579 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует Ñ Ð½ÐµÐ½Ð°Ñледуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2589 +#: catalog/heap.c:2590 #, c-format msgid "" "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "" "ограничение \"%s\" конфликтует Ñ Ð½Ð°Ñледуемым ограничением таблицы \"%s\"" -#: catalog/heap.c:2599 +#: catalog/heap.c:2600 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" @@ -5210,64 +5229,64 @@ msgstr "" "ограничение \"%s\" конфликтует Ñ Ð½ÐµÐ¿Ñ€Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ñ‹Ð¼ (NOT VALID) ограничением " "таблицы \"%s\"" -#: catalog/heap.c:2604 +#: catalog/heap.c:2605 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "ÑлиÑние Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ \"%s\" Ñ ÑƒÐ½Ð°Ñледованным определением" -#: catalog/heap.c:2709 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "" "иÑпользовать генерируемый Ñтолбец \"%s\" в выражении генерируемого Ñтолбца " "нельзÑ" -#: catalog/heap.c:2711 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "" "Генерируемый Ñтолбец не может ÑÑылатьÑÑ Ð½Ð° другой генерируемый Ñтолбец." -#: catalog/heap.c:2717 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "" "в выражении генерируемого Ñтолбца Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать переменные «вÑÑ Ñтрока»" -#: catalog/heap.c:2718 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "" "Ðто Ñделало бы генерируемый Ñтолбец завиÑимым от ÑобÑтвенного значениÑ." -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "генерирующее выражение не ÑвлÑетÑÑ Ð¿Ð¾ÑтоÑнным" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1290 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1290 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "Ñтолбец \"%s\" имеет тип %s, но тип Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2730 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2730 #: parser/parse_target.c:594 parser/parse_target.c:882 #: parser/parse_target.c:892 rewrite/rewriteHandler.c:1295 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Перепишите выражение или преобразуйте его тип." -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "в ограничении-проверке можно ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на таблицу \"%s\"" -#: catalog/heap.c:3149 +#: catalog/heap.c:3152 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "неподдерживаемое Ñочетание внешнего ключа Ñ ON COMMIT" -#: catalog/heap.c:3150 +#: catalog/heap.c:3153 #, c-format msgid "" "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT " @@ -5275,17 +5294,17 @@ msgid "" msgstr "" "Таблица \"%s\" ÑÑылаетÑÑ Ð½Ð° \"%s\", и Ð´Ð»Ñ Ð½Ð¸Ñ… задан разный режим ON COMMIT." -#: catalog/heap.c:3155 +#: catalog/heap.c:3158 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "опуÑтошить таблицу, на которую ÑÑылаетÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¹ ключ, нельзÑ" -#: catalog/heap.c:3156 +#: catalog/heap.c:3159 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Таблица \"%s\" ÑÑылаетÑÑ Ð½Ð° \"%s\"." -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "" @@ -5360,28 +5379,28 @@ msgstr "" msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY должен быть первым дейÑтвием в транзакции" -#: catalog/index.c:3646 +#: catalog/index.c:3663 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "переиндекÑировать временные таблицы других ÑеанÑов нельзÑ" -#: catalog/index.c:3657 commands/indexcmds.c:3560 +#: catalog/index.c:3674 commands/indexcmds.c:3536 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "переÑтроить нерабочий Ð¸Ð½Ð´ÐµÐºÑ Ð² таблице TOAST нельзÑ" -#: catalog/index.c:3673 commands/indexcmds.c:3440 commands/indexcmds.c:3584 +#: catalog/index.c:3690 commands/indexcmds.c:3416 commands/indexcmds.c:3560 #: commands/tablecmds.c:3305 #, c-format msgid "cannot move system relation \"%s\"" msgstr "перемеÑтить ÑиÑтемную таблицу \"%s\" нельзÑ" -#: catalog/index.c:3817 +#: catalog/index.c:3834 #, c-format msgid "index \"%s\" was reindexed" msgstr "Ð¸Ð½Ð´ÐµÐºÑ \"%s\" был переÑтроен" -#: catalog/index.c:3954 +#: catalog/index.c:3971 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "" @@ -5389,7 +5408,7 @@ msgstr "" "пропуÑкаетÑÑ" #: catalog/namespace.c:259 catalog/namespace.c:463 catalog/namespace.c:555 -#: commands/trigger.c:5812 +#: commands/trigger.c:5830 #, c-format msgid "cross-database references are not implemented: \"%s.%s.%s\"" msgstr "ÑÑылки между базами не реализованы: \"%s.%s.%s\"" @@ -5461,7 +5480,7 @@ msgstr "Ñловарь текÑтового поиÑка \"%s\" не ÑущеÑÑ msgid "text search template \"%s\" does not exist" msgstr "шаблон текÑтового поиÑка \"%s\" не ÑущеÑтвует" -#: catalog/namespace.c:2770 commands/tsearchcmds.c:1121 +#: catalog/namespace.c:2770 commands/tsearchcmds.c:1127 #: utils/cache/ts_cache.c:613 #, c-format msgid "text search configuration \"%s\" does not exist" @@ -5525,32 +5544,32 @@ msgid "cannot create temporary tables during a parallel operation" msgstr "Ñоздавать временные таблицы во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ñ‹Ñ… операций нельзÑ" #: catalog/namespace.c:4338 commands/tablespace.c:1236 commands/variable.c:64 -#: utils/misc/guc.c:12058 utils/misc/guc.c:12160 +#: utils/misc/guc.c:12065 utils/misc/guc.c:12167 #, 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:2184 -#: commands/tablecmds.c:12335 +#: commands/tablecmds.c:12343 #, c-format msgid "\"%s\" is not a table" msgstr "\"%s\" - Ñто не таблица" #: catalog/objectaddress.c:1398 commands/tablecmds.c:259 -#: commands/tablecmds.c:17169 commands/view.c:119 +#: commands/tablecmds.c:17177 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:17174 +#: commands/tablecmds.c:17182 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" - Ñто не материализованное предÑтавление" #: catalog/objectaddress.c:1412 commands/tablecmds.c:283 -#: commands/tablecmds.c:17179 +#: commands/tablecmds.c:17187 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" - Ñто не ÑтороннÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°" @@ -6357,7 +6376,7 @@ msgstr "" "отÑоединениÑ." #: catalog/pg_inherits.c:596 commands/tablecmds.c:4488 -#: commands/tablecmds.c:15481 +#: commands/tablecmds.c:15489 #, c-format msgid "" "Use ALTER TABLE ... DETACH PARTITION ... FINALIZE to complete the pending " @@ -7115,7 +7134,7 @@ msgstr "клаÑтеризовать временные таблицы другРmsgid "there is no previously clustered index for table \"%s\"" msgstr "таблица \"%s\" ранее не клаÑтеризовалаÑÑŒ по какому-либо индекÑу" -#: commands/cluster.c:190 commands/tablecmds.c:14179 commands/tablecmds.c:16060 +#: commands/cluster.c:190 commands/tablecmds.c:14187 commands/tablecmds.c:16068 #, c-format msgid "index \"%s\" for table \"%s\" does not exist" msgstr "Ð¸Ð½Ð´ÐµÐºÑ \"%s\" Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\" не ÑущеÑтвует" @@ -7130,7 +7149,7 @@ msgstr "клаÑтеризовать разделÑемый каталог неРmsgid "cannot vacuum temporary tables of other sessions" msgstr "очищать временные таблицы других ÑеанÑов нельзÑ" -#: commands/cluster.c:511 commands/tablecmds.c:16070 +#: commands/cluster.c:511 commands/tablecmds.c:16078 #, c-format msgid "\"%s\" is not an index for table \"%s\"" msgstr "\"%s\" не ÑвлÑетÑÑ Ð¸Ð½Ð´ÐµÐºÑом таблицы \"%s\"" @@ -7197,7 +7216,7 @@ msgid "collation attribute \"%s\" not recognized" msgstr "атрибут COLLATION \"%s\" не раÑпознан" #: commands/collationcmds.c:119 commands/collationcmds.c:125 -#: commands/define.c:389 commands/tablecmds.c:7808 +#: commands/define.c:389 commands/tablecmds.c:7812 #: replication/pgoutput/pgoutput.c:311 replication/pgoutput/pgoutput.c:334 #: replication/pgoutput/pgoutput.c:348 replication/pgoutput/pgoutput.c:358 #: replication/pgoutput/pgoutput.c:368 replication/pgoutput/pgoutput.c:378 @@ -7285,7 +7304,7 @@ msgid "must be superuser to import system collations" msgstr "" "импортировать ÑиÑтемные правила Ñортировки может только Ñуперпользователь" -#: commands/collationcmds.c:618 commands/copyfrom.c:1505 commands/copyto.c:679 +#: commands/collationcmds.c:618 commands/copyfrom.c:1509 commands/copyto.c:679 #: libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" @@ -7550,7 +7569,7 @@ msgstr "Ñтолбец \"%s\" — генерируемый" msgid "Generated columns cannot be used in COPY." msgstr "Генерируемые Ñтолбцы Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать в COPY." -#: commands/copy.c:784 commands/indexcmds.c:1850 commands/statscmds.c:243 +#: commands/copy.c:784 commands/indexcmds.c:1826 commands/statscmds.c:243 #: commands/tablecmds.c:2379 commands/tablecmds.c:3035 #: commands/tablecmds.c:3529 parser/parse_relation.c:3660 #: parser/parse_relation.c:3680 utils/adt/tsvector_op.c:2688 @@ -7635,24 +7654,24 @@ msgstr "" "выполнить COPY FREEZE нельзÑ, так как таблица не была Ñоздана или уÑечена в " "текущей подтранзакции" -#: commands/copyfrom.c:1267 commands/copyto.c:611 +#: commands/copyfrom.c:1270 commands/copyto.c:611 #, c-format msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" msgstr "Ñтолбец FORCE_NOT_NULL \"%s\" не фигурирует в COPY" -#: commands/copyfrom.c:1290 commands/copyto.c:634 +#: commands/copyfrom.c:1293 commands/copyto.c:634 #, c-format msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "Ñтолбец FORCE_NULL \"%s\" не фигурирует в COPY" -#: commands/copyfrom.c:1343 utils/mb/mbutils.c:385 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 #, c-format msgid "" "default conversion function for encoding \"%s\" to \"%s\" does not exist" msgstr "" "Ñтандартной функции Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· кодировки \"%s\" в \"%s\" не ÑущеÑтвует" -#: commands/copyfrom.c:1524 +#: commands/copyfrom.c:1528 #, c-format msgid "" "COPY FROM instructs the PostgreSQL server process to read a file. You may " @@ -7662,17 +7681,17 @@ msgstr "" "файла. Возможно, на Ñамом деле вам нужно клиентÑкое ÑредÑтво, например, " "\\copy в psql." -#: commands/copyfrom.c:1537 commands/copyto.c:731 +#: commands/copyfrom.c:1541 commands/copyto.c:731 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" - Ñто каталог" -#: commands/copyfrom.c:1605 commands/copyto.c:301 libpq/be-secure-common.c:105 +#: commands/copyfrom.c:1609 commands/copyto.c:301 libpq/be-secure-common.c:105 #, c-format msgid "could not close pipe to external command: %m" msgstr "не удалоÑÑŒ закрыть канал Ñообщений Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ¹ командой: %m" -#: commands/copyfrom.c:1620 commands/copyto.c:306 +#: commands/copyfrom.c:1624 commands/copyto.c:306 #, c-format msgid "program \"%s\" failed" msgstr "Ñбой программы \"%s\"" @@ -8358,7 +8377,7 @@ msgstr[0] "Ðта база данных иÑпользуетÑÑ ÐµÑ‰Ñ‘ в %d Ñ msgstr[1] "Ðта база данных иÑпользуетÑÑ ÐµÑ‰Ñ‘ в %d ÑеанÑах." msgstr[2] "Ðта база данных иÑпользуетÑÑ ÐµÑ‰Ñ‘ в %d ÑеанÑах." -#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3848 +#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3847 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -8427,7 +8446,7 @@ msgstr "ИÑпользуйте DROP AGGREGATE Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð°Ð³Ñ€ÐµÐ³ #: commands/dropcmds.c:158 commands/sequence.c:475 commands/tablecmds.c:3613 #: commands/tablecmds.c:3771 commands/tablecmds.c:3823 -#: commands/tablecmds.c:16487 tcop/utility.c:1332 +#: commands/tablecmds.c:16495 tcop/utility.c:1332 #, c-format msgid "relation \"%s\" does not exist, skipping" msgstr "отношение \"%s\" не ÑущеÑтвует, пропуÑкаетÑÑ" @@ -9553,7 +9572,7 @@ msgstr "" "ÐžÐ³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ %s не могут иÑпользоватьÑÑ, когда ключи ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÑŽÑ‚ " "выражениÑ." -#: commands/indexcmds.c:1037 +#: commands/indexcmds.c:1040 #, c-format msgid "" "unique constraint on partitioned table must include all partitioning columns" @@ -9561,7 +9580,7 @@ msgstr "" "ограничение уникальноÑти в Ñекционированной таблице должно включать вÑе " "Ñекционирующие Ñтолбцы" -#: commands/indexcmds.c:1038 +#: commands/indexcmds.c:1041 #, c-format msgid "" "%s constraint on table \"%s\" lacks column \"%s\" which is part of the " @@ -9570,92 +9589,92 @@ msgstr "" "Ð’ ограничении %s таблицы \"%s\" не хватает Ñтолбца \"%s\", входÑщего в ключ " "ÑекционированиÑ." -#: commands/indexcmds.c:1057 commands/indexcmds.c:1076 +#: commands/indexcmds.c:1060 commands/indexcmds.c:1079 #, c-format msgid "index creation on system columns is not supported" msgstr "Ñоздание индекÑа Ð´Ð»Ñ ÑиÑтемных Ñтолбцов не поддерживаетÑÑ" -#: commands/indexcmds.c:1276 tcop/utility.c:1518 +#: commands/indexcmds.c:1279 tcop/utility.c:1518 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "Ñоздать уникальный Ð¸Ð½Ð´ÐµÐºÑ Ð² Ñекционированной таблице \"%s\" нельзÑ" -#: commands/indexcmds.c:1278 tcop/utility.c:1520 +#: commands/indexcmds.c:1281 tcop/utility.c:1520 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Таблица \"%s\" Ñодержит Ñекции, ÑвлÑющиеÑÑ Ñторонними таблицами." -#: commands/indexcmds.c:1767 +#: commands/indexcmds.c:1743 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функции в предикате индекÑа должны быть помечены как IMMUTABLE" -#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:2529 +#: commands/indexcmds.c:1821 parser/parse_utilcmd.c:2529 #: parser/parse_utilcmd.c:2664 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "указанный в ключе Ñтолбец \"%s\" не ÑущеÑтвует" -#: commands/indexcmds.c:1869 parser/parse_utilcmd.c:1826 +#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:1826 #, c-format msgid "expressions are not supported in included columns" msgstr "Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾ включаемых Ñтолбцах не поддерживаютÑÑ" -#: commands/indexcmds.c:1910 +#: commands/indexcmds.c:1886 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "функции в индекÑном выражении должны быть помечены как IMMUTABLE" -#: commands/indexcmds.c:1925 +#: commands/indexcmds.c:1901 #, c-format msgid "including column does not support a collation" msgstr "включаемые Ñтолбцы не поддерживают правила Ñортировки" -#: commands/indexcmds.c:1929 +#: commands/indexcmds.c:1905 #, c-format msgid "including column does not support an operator class" msgstr "включаемые Ñтолбцы не поддерживают клаÑÑÑ‹ операторов" -#: commands/indexcmds.c:1933 +#: commands/indexcmds.c:1909 #, c-format msgid "including column does not support ASC/DESC options" msgstr "включаемые Ñтолбцы не поддерживают Ñортировку ASC/DESC" -#: commands/indexcmds.c:1937 +#: commands/indexcmds.c:1913 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "включаемые Ñтолбцы не поддерживают ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ NULLS FIRST/LAST" -#: commands/indexcmds.c:1978 +#: commands/indexcmds.c:1954 #, c-format msgid "could not determine which collation to use for index expression" msgstr "не удалоÑÑŒ определить правило Ñортировки Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑного выражениÑ" -#: commands/indexcmds.c:1986 commands/tablecmds.c:17510 commands/typecmds.c:807 +#: commands/indexcmds.c:1962 commands/tablecmds.c:17520 commands/typecmds.c:807 #: parser/parse_expr.c:2690 parser/parse_type.c:570 parser/parse_utilcmd.c:3796 #: utils/adt/misc.c:601 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не поддерживает Ñортировку (COLLATION)" -#: commands/indexcmds.c:2051 +#: commands/indexcmds.c:2027 #, c-format msgid "operator %s is not commutative" msgstr "оператор %s не коммутативен" -#: commands/indexcmds.c:2053 +#: commands/indexcmds.c:2029 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "" "Ð’ ограничениÑÑ…-иÑключениÑÑ… могут иÑпользоватьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ коммутативные " "операторы." -#: commands/indexcmds.c:2079 +#: commands/indexcmds.c:2055 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "оператор \"%s\" не входит в ÑемейÑтво операторов \"%s\"" -#: commands/indexcmds.c:2082 +#: commands/indexcmds.c:2058 #, c-format msgid "" "The exclusion operator must be related to the index operator class for the " @@ -9664,25 +9683,25 @@ msgstr "" "Оператор иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ отноÑитьÑÑ Ðº клаÑÑу операторов " "индекÑа." -#: commands/indexcmds.c:2117 +#: commands/indexcmds.c:2093 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "метод доÑтупа \"%s\" не поддерживает Ñортировку ASC/DESC" -#: commands/indexcmds.c:2122 +#: commands/indexcmds.c:2098 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доÑтупа \"%s\" не поддерживает параметр NULLS FIRST/LAST" -#: commands/indexcmds.c:2168 commands/tablecmds.c:17535 -#: commands/tablecmds.c:17541 commands/typecmds.c:2302 +#: commands/indexcmds.c:2144 commands/tablecmds.c:17545 +#: commands/tablecmds.c:17551 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "" "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° данных %s не определён клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² по умолчанию Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° " "доÑтупа \"%s\"" -#: commands/indexcmds.c:2170 +#: commands/indexcmds.c:2146 #, c-format msgid "" "You must specify an operator class for the index or define a default " @@ -9691,86 +9710,86 @@ msgstr "" "Ð’Ñ‹ должны указать клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑа или определить клаÑÑ " "операторов по умолчанию Ð´Ð»Ñ Ñтого типа данных." -#: commands/indexcmds.c:2199 commands/indexcmds.c:2207 +#: commands/indexcmds.c:2175 commands/indexcmds.c:2183 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² \"%s\" Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° доÑтупа \"%s\" не ÑущеÑтвует" -#: commands/indexcmds.c:2221 commands/typecmds.c:2290 +#: commands/indexcmds.c:2197 commands/typecmds.c:2290 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² \"%s\" не принимает тип данных %s" -#: commands/indexcmds.c:2311 +#: commands/indexcmds.c:2287 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "" "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° данных %s определено неÑколько клаÑÑов операторов по умолчанию" -#: commands/indexcmds.c:2639 +#: commands/indexcmds.c:2615 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "нераÑпознанный параметр REINDEX: \"%s\"" -#: commands/indexcmds.c:2863 +#: commands/indexcmds.c:2839 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "" "в таблице \"%s\" нет индекÑов, которые можно переиндекÑировать неблокирующим " "ÑпоÑобом" -#: commands/indexcmds.c:2877 +#: commands/indexcmds.c:2853 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "в таблице \"%s\" нет индекÑов Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¸Ð½Ð´ÐµÐºÑации" -#: commands/indexcmds.c:2917 commands/indexcmds.c:3421 -#: commands/indexcmds.c:3549 +#: commands/indexcmds.c:2893 commands/indexcmds.c:3397 +#: commands/indexcmds.c:3525 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "ПереиндекÑировать ÑиÑтемные каталоги неблокирующим ÑпоÑобом нельзÑ" -#: commands/indexcmds.c:2940 +#: commands/indexcmds.c:2916 #, c-format msgid "can only reindex the currently open database" msgstr "переиндекÑировать можно только текущую базу данных" -#: commands/indexcmds.c:3028 +#: commands/indexcmds.c:3004 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "" "вÑе ÑиÑтемные каталоги пропуÑкаютÑÑ, так как их Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÐ¸Ð½Ð´ÐµÐºÑировать " "неблокирующим ÑпоÑобом" -#: commands/indexcmds.c:3061 +#: commands/indexcmds.c:3037 #, c-format msgid "cannot move system relations, skipping all" msgstr "перемеÑтить ÑиÑтемные Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ð½ÐµÐ»ÑŒÐ·Ñ, вÑе они пропуÑкаютÑÑ" -#: commands/indexcmds.c:3107 +#: commands/indexcmds.c:3083 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "при переиндекÑировании Ñекционированной таблицы \"%s.%s\"" -#: commands/indexcmds.c:3110 +#: commands/indexcmds.c:3086 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "при переÑтроении Ñекционированного индекÑа \"%s.%s\"" -#: commands/indexcmds.c:3301 commands/indexcmds.c:4157 +#: commands/indexcmds.c:3277 commands/indexcmds.c:4133 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "таблица \"%s.%s\" переиндекÑирована" -#: commands/indexcmds.c:3453 commands/indexcmds.c:3505 +#: commands/indexcmds.c:3429 commands/indexcmds.c:3481 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "" "переÑтроить нерабочий Ð¸Ð½Ð´ÐµÐºÑ \"%s.%s\" неблокирующим ÑпоÑобом нельзÑ, он " "пропуÑкаетÑÑ" -#: commands/indexcmds.c:3459 +#: commands/indexcmds.c:3435 #, c-format msgid "" "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" @@ -9778,24 +9797,24 @@ msgstr "" "переÑтроить Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ-иÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ \"%s.%s\" неблокирующим ÑпоÑобом " "нельзÑ, он пропуÑкаетÑÑ" -#: commands/indexcmds.c:3614 +#: commands/indexcmds.c:3590 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "переиндекÑировать отношение такого типа неблокирующим ÑпоÑобом нельзÑ" -#: commands/indexcmds.c:3635 +#: commands/indexcmds.c:3611 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "" "перемеÑтить отношение, не ÑвлÑющееÑÑ Ñ€Ð°Ð·Ð´ÐµÐ»Ñемым, в табличное проÑтранÑтво " "\"%s\" нельзÑ" -#: commands/indexcmds.c:4138 commands/indexcmds.c:4150 +#: commands/indexcmds.c:4114 commands/indexcmds.c:4126 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "Ð¸Ð½Ð´ÐµÐºÑ \"%s.%s\" был переÑтроен" -#: commands/indexcmds.c:4140 commands/indexcmds.c:4159 +#: commands/indexcmds.c:4116 commands/indexcmds.c:4135 #, c-format msgid "%s." msgstr "%s." @@ -10141,8 +10160,8 @@ msgstr "атрибут оператора \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ" #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 #: commands/tablecmds.c:1609 commands/tablecmds.c:2197 #: commands/tablecmds.c:3423 commands/tablecmds.c:6312 -#: commands/tablecmds.c:9144 commands/tablecmds.c:17090 -#: commands/tablecmds.c:17125 commands/trigger.c:328 commands/trigger.c:1378 +#: commands/tablecmds.c:9148 commands/tablecmds.c:17098 +#: commands/tablecmds.c:17133 commands/trigger.c:328 commands/trigger.c:1378 #: commands/trigger.c:1488 rewrite/rewriteDefine.c:278 #: rewrite/rewriteDefine.c:957 rewrite/rewriteRemove.c:80 #, c-format @@ -10197,7 +10216,7 @@ msgstr "" "HOLD" #: commands/portalcmds.c:189 commands/portalcmds.c:242 -#: executor/execCurrent.c:70 utils/adt/xml.c:2593 utils/adt/xml.c:2763 +#: executor/execCurrent.c:70 utils/adt/xml.c:2603 utils/adt/xml.c:2773 #, c-format msgid "cursor \"%s\" does not exist" msgstr "курÑор \"%s\" не ÑущеÑтвует" @@ -10247,7 +10266,7 @@ msgstr "" "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ процедурного Ñзыка нужно быть Ñуперпользователем" #: commands/publicationcmds.c:130 postmaster/postmaster.c:1222 -#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1651 +#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1659 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неверный формат ÑпиÑка в параметре \"%s\"" @@ -10635,8 +10654,8 @@ msgstr "" msgid "cannot change ownership of identity sequence" msgstr "Ñменить владельца поÑледовательноÑти идентификации нельзÑ" -#: commands/sequence.c:1679 commands/tablecmds.c:13870 -#: commands/tablecmds.c:16507 +#: commands/sequence.c:1679 commands/tablecmds.c:13878 +#: commands/tablecmds.c:16515 #, c-format msgid "Sequence \"%s\" is linked to table \"%s\"." msgstr "ПоÑледовательноÑÑ‚ÑŒ \"%s\" ÑвÑзана Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÐ¹ \"%s\"." @@ -10718,12 +10737,12 @@ msgstr "повторÑющееÑÑ Ð¸Ð¼Ñ Ñтолбца в определени msgid "duplicate expression in statistics definition" msgstr "повторÑющееÑÑ Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ðµ в определении ÑтатиÑтики" -#: commands/statscmds.c:620 commands/tablecmds.c:8112 +#: commands/statscmds.c:620 commands/tablecmds.c:8116 #, c-format msgid "statistics target %d is too low" msgstr "ориентир ÑтатиÑтики Ñлишком мал (%d)" -#: commands/statscmds.c:628 commands/tablecmds.c:8120 +#: commands/statscmds.c:628 commands/tablecmds.c:8124 #, c-format msgid "lowering statistics target to %d" msgstr "ориентир ÑтатиÑтики ÑнижаетÑÑ Ð´Ð¾ %d" @@ -10776,7 +10795,7 @@ msgid "must be superuser to create subscriptions" msgstr "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñок нужно быть Ñуперпользователем" #: commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:776 -#: replication/logical/tablesync.c:1229 replication/logical/worker.c:3738 +#: replication/logical/tablesync.c:1247 replication/logical/worker.c:3738 #, c-format msgid "could not connect to the publisher: %s" msgstr "не удалоÑÑŒ подключитьÑÑ Ðº Ñерверу публикации: %s" @@ -10918,7 +10937,7 @@ msgid "could not receive list of replicated tables from the publisher: %s" msgstr "" "не удалоÑÑŒ получить ÑпиÑок реплицируемых таблиц Ñ Ñервера репликации: %s" -#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:809 +#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:819 #: replication/pgoutput/pgoutput.c:1072 #, c-format msgid "" @@ -11025,7 +11044,7 @@ msgstr "" "Выполните DROP MATERIALIZED VIEW Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ñ‚ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ " "предÑтавлениÑ." -#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19017 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19027 #: parser/parse_utilcmd.c:2261 #, c-format msgid "index \"%s\" does not exist" @@ -11049,8 +11068,8 @@ msgstr "\"%s\" - Ñто не тип" msgid "Use DROP TYPE to remove a type." msgstr "Выполните DROP TYPE Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð°." -#: commands/tablecmds.c:281 commands/tablecmds.c:13709 -#: commands/tablecmds.c:16210 +#: commands/tablecmds.c:281 commands/tablecmds.c:13717 +#: commands/tablecmds.c:16218 #, c-format msgid "foreign table \"%s\" does not exist" msgstr "ÑтороннÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° \"%s\" не ÑущеÑтвует" @@ -11076,7 +11095,7 @@ msgstr "" "в рамках операции Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñми по безопаÑноÑти Ð½ÐµÐ»ÑŒÐ·Ñ Ñоздать временную " "таблицу" -#: commands/tablecmds.c:764 commands/tablecmds.c:15017 +#: commands/tablecmds.c:764 commands/tablecmds.c:15025 #, c-format msgid "relation \"%s\" would be inherited from more than once" msgstr "отношение \"%s\" наÑледуетÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑ€Ð°Ñ‚Ð½Ð¾" @@ -11153,7 +11172,7 @@ msgstr "опуÑтошить Ñтороннюю таблицу \"%s\" нельз msgid "cannot truncate temporary tables of other sessions" msgstr "временные таблицы других ÑеанÑов Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ð¿ÑƒÑтошить" -#: commands/tablecmds.c:2462 commands/tablecmds.c:14914 +#: commands/tablecmds.c:2462 commands/tablecmds.c:14922 #, c-format msgid "cannot inherit from partitioned table \"%s\"" msgstr "наÑледование от Ñекционированной таблицы \"%s\" не допуÑкаетÑÑ" @@ -11178,12 +11197,12 @@ msgstr "" "Ñоздать временное отношение в качеÑтве Ñекции поÑтоÑнного Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" " "нельзÑ" -#: commands/tablecmds.c:2496 commands/tablecmds.c:14893 +#: commands/tablecmds.c:2496 commands/tablecmds.c:14901 #, c-format msgid "cannot inherit from temporary relation \"%s\"" msgstr "временное отношение \"%s\" не может наÑледоватьÑÑ" -#: commands/tablecmds.c:2506 commands/tablecmds.c:14901 +#: commands/tablecmds.c:2506 commands/tablecmds.c:14909 #, c-format msgid "cannot inherit from temporary relation of another session" msgstr "наÑледование от временного Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ ÑеанÑа невозможно" @@ -11238,7 +11257,7 @@ msgid "inherited column \"%s\" has a generation conflict" msgstr "конфликт ÑвойÑтва Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² наÑледованном Ñтолбце \"%s\"" #: commands/tablecmds.c:2717 commands/tablecmds.c:2772 -#: commands/tablecmds.c:12433 parser/parse_utilcmd.c:1302 +#: commands/tablecmds.c:12441 parser/parse_utilcmd.c:1302 #: parser/parse_utilcmd.c:1345 parser/parse_utilcmd.c:1754 #: parser/parse_utilcmd.c:1862 #, c-format @@ -11515,12 +11534,12 @@ msgstr "добавить Ñтолбец в типизированную табл msgid "cannot add column to a partition" msgstr "добавить Ñтолбец в Ñекцию нельзÑ" -#: commands/tablecmds.c:6784 commands/tablecmds.c:15144 +#: commands/tablecmds.c:6784 commands/tablecmds.c:15152 #, c-format msgid "child table \"%s\" has different type for column \"%s\"" msgstr "дочернÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° \"%s\" имеет другой тип Ð´Ð»Ñ Ñтолбца \"%s\"" -#: commands/tablecmds.c:6790 commands/tablecmds.c:15151 +#: commands/tablecmds.c:6790 commands/tablecmds.c:15159 #, c-format msgid "child table \"%s\" has different collation for column \"%s\"" msgstr "" @@ -11531,28 +11550,28 @@ msgstr "" msgid "merging definition of column \"%s\" for child \"%s\"" msgstr "объединение определений Ñтолбца \"%s\" Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ° \"%s\"" -#: commands/tablecmds.c:6847 +#: commands/tablecmds.c:6851 #, c-format msgid "cannot recursively add identity column to table that has child tables" msgstr "" "добавить Ñтолбец идентификации в таблицу, у которой еÑÑ‚ÑŒ дочерние, нельзÑ" -#: commands/tablecmds.c:7091 +#: commands/tablecmds.c:7095 #, c-format msgid "column must be added to child tables too" msgstr "Ñтолбец также должен быть добавлен к дочерним таблицам" -#: commands/tablecmds.c:7169 +#: commands/tablecmds.c:7173 #, c-format msgid "column \"%s\" of relation \"%s\" already exists, skipping" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" уже ÑущеÑтвует, пропуÑкаетÑÑ" -#: commands/tablecmds.c:7176 +#: commands/tablecmds.c:7180 #, c-format msgid "column \"%s\" of relation \"%s\" already exists" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" уже ÑущеÑтвует" -#: commands/tablecmds.c:7242 commands/tablecmds.c:12072 +#: commands/tablecmds.c:7246 commands/tablecmds.c:12080 #, c-format msgid "" "cannot remove constraint from only the partitioned table when partitions " @@ -11561,70 +11580,70 @@ msgstr "" "удалить ограничение только из Ñекционированной таблицы, когда ÑущеÑтвуют " "Ñекции, нельзÑ" -#: commands/tablecmds.c:7243 commands/tablecmds.c:7560 -#: commands/tablecmds.c:8557 commands/tablecmds.c:12073 +#: commands/tablecmds.c:7247 commands/tablecmds.c:7564 +#: commands/tablecmds.c:8561 commands/tablecmds.c:12081 #, c-format msgid "Do not specify the ONLY keyword." msgstr "Ðе указывайте ключевое Ñлово ONLY." -#: commands/tablecmds.c:7280 commands/tablecmds.c:7486 -#: commands/tablecmds.c:7628 commands/tablecmds.c:7742 -#: commands/tablecmds.c:7836 commands/tablecmds.c:7895 -#: commands/tablecmds.c:8014 commands/tablecmds.c:8153 -#: commands/tablecmds.c:8223 commands/tablecmds.c:8379 -#: commands/tablecmds.c:12227 commands/tablecmds.c:13732 -#: commands/tablecmds.c:16301 +#: commands/tablecmds.c:7284 commands/tablecmds.c:7490 +#: commands/tablecmds.c:7632 commands/tablecmds.c:7746 +#: commands/tablecmds.c:7840 commands/tablecmds.c:7899 +#: commands/tablecmds.c:8018 commands/tablecmds.c:8157 +#: commands/tablecmds.c:8227 commands/tablecmds.c:8383 +#: commands/tablecmds.c:12235 commands/tablecmds.c:13740 +#: commands/tablecmds.c:16309 #, c-format msgid "cannot alter system column \"%s\"" msgstr "ÑиÑтемный Ñтолбец \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ" -#: commands/tablecmds.c:7286 commands/tablecmds.c:7634 +#: commands/tablecmds.c:7290 commands/tablecmds.c:7638 #, c-format msgid "column \"%s\" of relation \"%s\" is an identity column" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" ÑвлÑетÑÑ Ñтолбцом идентификации" -#: commands/tablecmds.c:7329 +#: commands/tablecmds.c:7333 #, c-format msgid "column \"%s\" is in a primary key" msgstr "Ñтолбец \"%s\" входит в первичный ключ" -#: commands/tablecmds.c:7334 +#: commands/tablecmds.c:7338 #, c-format msgid "column \"%s\" is in index used as replica identity" msgstr "Ñтолбец \"%s\" входит в индекÑ, иÑпользуемый Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики" -#: commands/tablecmds.c:7357 +#: commands/tablecmds.c:7361 #, c-format msgid "column \"%s\" is marked NOT NULL in parent table" msgstr "Ñтолбец \"%s\" в родительÑкой таблице помечен как NOT NULL" -#: commands/tablecmds.c:7557 commands/tablecmds.c:9040 +#: commands/tablecmds.c:7561 commands/tablecmds.c:9044 #, c-format msgid "constraint must be added to child tables too" msgstr "ограничение также должно быть добавлено к дочерним таблицам" -#: commands/tablecmds.c:7558 +#: commands/tablecmds.c:7562 #, c-format msgid "Column \"%s\" of relation \"%s\" is not already NOT NULL." msgstr "Столбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" уже имеет ÑвойÑтво NOT NULL." -#: commands/tablecmds.c:7636 +#: commands/tablecmds.c:7640 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY instead." msgstr "ВмеÑто Ñтого выполните ALTER TABLE ... ALTER COLUMN ... DROP IDENTITY." -#: commands/tablecmds.c:7641 +#: commands/tablecmds.c:7645 #, c-format msgid "column \"%s\" of relation \"%s\" is a generated column" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" ÑвлÑетÑÑ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€ÑƒÐµÐ¼Ñ‹Ð¼" -#: commands/tablecmds.c:7644 +#: commands/tablecmds.c:7648 #, c-format msgid "Use ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION instead." msgstr "" "ВмеÑто Ñтого выполните ALTER TABLE ... ALTER COLUMN ... DROP EXPRESSION." -#: commands/tablecmds.c:7753 +#: commands/tablecmds.c:7757 #, c-format msgid "" "column \"%s\" of relation \"%s\" must be declared NOT NULL before identity " @@ -11633,46 +11652,46 @@ msgstr "" "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" должен быть объÑвлен как NOT NULL, чтобы его " "можно было Ñделать Ñтолбцом идентификации" -#: commands/tablecmds.c:7759 +#: commands/tablecmds.c:7763 #, c-format msgid "column \"%s\" of relation \"%s\" is already an identity column" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" уже ÑвлÑетÑÑ Ñтолбцом идентификации" -#: commands/tablecmds.c:7765 +#: commands/tablecmds.c:7769 #, c-format msgid "column \"%s\" of relation \"%s\" already has a default value" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" уже имеет значение по умолчанию" -#: commands/tablecmds.c:7842 commands/tablecmds.c:7903 +#: commands/tablecmds.c:7846 commands/tablecmds.c:7907 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column" msgstr "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" не ÑвлÑетÑÑ Ñтолбцом идентификации" -#: commands/tablecmds.c:7908 +#: commands/tablecmds.c:7912 #, c-format msgid "column \"%s\" of relation \"%s\" is not an identity column, skipping" msgstr "" "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" не ÑвлÑетÑÑ Ñтолбцом идентификации, " "пропуÑкаетÑÑ" -#: commands/tablecmds.c:7961 +#: commands/tablecmds.c:7965 #, c-format msgid "ALTER TABLE / DROP EXPRESSION must be applied to child tables too" msgstr "" "ALTER TABLE / DROP EXPRESSION нужно применÑÑ‚ÑŒ также к дочерним таблицам" -#: commands/tablecmds.c:7983 +#: commands/tablecmds.c:7987 #, c-format msgid "cannot drop generation expression from inherited column" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ генерирующее выражение из наÑледуемого Ñтолбца" -#: commands/tablecmds.c:8022 +#: commands/tablecmds.c:8026 #, c-format msgid "column \"%s\" of relation \"%s\" is not a stored generated column" msgstr "" "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" не ÑвлÑетÑÑ Ñохранённым генерируемым Ñтолбцом" -#: commands/tablecmds.c:8027 +#: commands/tablecmds.c:8031 #, c-format msgid "" "column \"%s\" of relation \"%s\" is not a stored generated column, skipping" @@ -11680,63 +11699,63 @@ msgstr "" "Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" пропуÑкаетÑÑ, так как не ÑвлÑетÑÑ " "Ñохранённым генерируемым Ñтолбцом" -#: commands/tablecmds.c:8100 +#: commands/tablecmds.c:8104 #, c-format msgid "cannot refer to non-index column by number" msgstr "по номеру можно ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на Ñтолбец в индекÑе" -#: commands/tablecmds.c:8143 +#: commands/tablecmds.c:8147 #, c-format msgid "column number %d of relation \"%s\" does not exist" msgstr "Ñтолбец Ñ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ %d Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" не ÑущеÑтвует" -#: commands/tablecmds.c:8162 +#: commands/tablecmds.c:8166 #, c-format msgid "cannot alter statistics on included column \"%s\" of index \"%s\"" msgstr "изменить ÑтатиÑтику включённого Ñтолбца \"%s\" индекÑа \"%s\" нельзÑ" -#: commands/tablecmds.c:8167 +#: commands/tablecmds.c:8171 #, c-format msgid "cannot alter statistics on non-expression column \"%s\" of index \"%s\"" msgstr "" "изменить ÑтатиÑтику Ñтолбца \"%s\" (не выражениÑ) индекÑа \"%s\" нельзÑ" -#: commands/tablecmds.c:8169 +#: commands/tablecmds.c:8173 #, c-format msgid "Alter statistics on table column instead." msgstr "ВмеÑто Ñтого измените ÑтатиÑтику Ð´Ð»Ñ Ñтолбца в таблице." -#: commands/tablecmds.c:8359 +#: commands/tablecmds.c:8363 #, c-format msgid "invalid storage type \"%s\"" msgstr "неверный тип хранилища \"%s\"" -#: commands/tablecmds.c:8391 +#: commands/tablecmds.c:8395 #, c-format msgid "column data type %s can only have storage PLAIN" msgstr "тип данных Ñтолбца %s ÑовмеÑтим только Ñ Ñ…Ñ€Ð°Ð½Ð¸Ð»Ð¸Ñ‰ÐµÐ¼ PLAIN" -#: commands/tablecmds.c:8436 +#: commands/tablecmds.c:8440 #, c-format msgid "cannot drop column from typed table" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ Ñтолбец в типизированной таблице" -#: commands/tablecmds.c:8495 +#: commands/tablecmds.c:8499 #, c-format msgid "column \"%s\" of relation \"%s\" does not exist, skipping" msgstr "Ñтолбец \"%s\" в таблице\"%s\" не ÑущеÑтвует, пропуÑкаетÑÑ" -#: commands/tablecmds.c:8508 +#: commands/tablecmds.c:8512 #, c-format msgid "cannot drop system column \"%s\"" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ ÑиÑтемный Ñтолбец \"%s\"" -#: commands/tablecmds.c:8518 +#: commands/tablecmds.c:8522 #, c-format msgid "cannot drop inherited column \"%s\"" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ наÑледованный Ñтолбец \"%s\"" -#: commands/tablecmds.c:8531 +#: commands/tablecmds.c:8535 #, c-format msgid "" "cannot drop column \"%s\" because it is part of the partition key of " @@ -11745,7 +11764,7 @@ msgstr "" "удалить Ñтолбец \"%s\" нельзÑ, так как он входит в ключ Ñ€Ð°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ " "\"%s\"" -#: commands/tablecmds.c:8556 +#: commands/tablecmds.c:8560 #, c-format msgid "" "cannot drop column from only the partitioned table when partitions exist" @@ -11753,7 +11772,7 @@ msgstr "" "удалить Ñтолбец только из Ñекционированной таблицы, когда ÑущеÑтвуют Ñекции, " "нельзÑ" -#: commands/tablecmds.c:8760 +#: commands/tablecmds.c:8764 #, c-format msgid "" "ALTER TABLE / ADD CONSTRAINT USING INDEX is not supported on partitioned " @@ -11762,14 +11781,14 @@ msgstr "" "ALTER TABLE / ADD CONSTRAINT USING INDEX не поддерживаетÑÑ Ñ " "Ñекционированными таблицами" -#: commands/tablecmds.c:8785 +#: commands/tablecmds.c:8789 #, 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:9122 +#: commands/tablecmds.c:9126 #, c-format msgid "" "cannot use ONLY for foreign key on partitioned table \"%s\" referencing " @@ -11778,7 +11797,7 @@ msgstr "" "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать ONLY Ð´Ð»Ñ Ñтороннего ключа в Ñекционированной таблице " "\"%s\", ÑÑылающегоÑÑ Ð½Ð° отношение \"%s\"" -#: commands/tablecmds.c:9128 +#: commands/tablecmds.c:9132 #, c-format msgid "" "cannot add NOT VALID foreign key on partitioned table \"%s\" referencing " @@ -11787,25 +11806,25 @@ msgstr "" "Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸Ñ‚ÑŒ Ñ Ñ…Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸Ñтикой NOT VALID Ñторонний ключ в " "Ñекционированной таблице \"%s\", ÑÑылающийÑÑ Ð½Ð° отношение \"%s\"" -#: commands/tablecmds.c:9131 +#: commands/tablecmds.c:9135 #, c-format msgid "This feature is not yet supported on partitioned tables." msgstr "" "Ðта функциональноÑÑ‚ÑŒ Ñ Ñекционированными таблицами пока не поддерживаетÑÑ." -#: commands/tablecmds.c:9138 commands/tablecmds.c:9604 +#: commands/tablecmds.c:9142 commands/tablecmds.c:9608 #, c-format msgid "referenced relation \"%s\" is not a table" msgstr "указанный объект \"%s\" не ÑвлÑетÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÐµÐ¹" -#: commands/tablecmds.c:9161 +#: commands/tablecmds.c:9165 #, c-format msgid "constraints on permanent tables may reference only permanent tables" msgstr "" "Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð² поÑтоÑнных таблицах могут ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на поÑтоÑнные " "таблицы" -#: commands/tablecmds.c:9168 +#: commands/tablecmds.c:9172 #, c-format msgid "" "constraints on unlogged tables may reference only permanent or unlogged " @@ -11814,13 +11833,13 @@ msgstr "" "Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð² нежурналируемых таблицах могут ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на поÑтоÑнные " "или нежурналируемые таблицы" -#: commands/tablecmds.c:9174 +#: commands/tablecmds.c:9178 #, c-format msgid "constraints on temporary tables may reference only temporary tables" msgstr "" "Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð¾ временных таблицах могут ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на временные таблицы" -#: commands/tablecmds.c:9178 +#: commands/tablecmds.c:9182 #, c-format msgid "" "constraints on temporary tables must involve temporary tables of this session" @@ -11828,7 +11847,7 @@ msgstr "" "Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð¾ временных таблицах должны ÑÑылатьÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на временные " "таблицы текущего ÑеанÑа" -#: commands/tablecmds.c:9252 commands/tablecmds.c:9258 +#: commands/tablecmds.c:9256 commands/tablecmds.c:9262 #, c-format msgid "" "invalid %s action for foreign key constraint containing generated column" @@ -11836,22 +11855,22 @@ msgstr "" "некорректное дейÑтвие %s Ð´Ð»Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ ключа, Ñодержащего " "генерируемый Ñтолбец" -#: commands/tablecmds.c:9274 +#: commands/tablecmds.c:9278 #, c-format msgid "number of referencing and referenced columns for foreign key disagree" msgstr "чиÑло Ñтолбцов в иÑточнике и назначении внешнего ключа не Ñовпадает" -#: commands/tablecmds.c:9381 +#: commands/tablecmds.c:9385 #, c-format msgid "foreign key constraint \"%s\" cannot be implemented" msgstr "ограничение внешнего ключа \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ñ‚ÑŒ" -#: commands/tablecmds.c:9383 +#: commands/tablecmds.c:9387 #, c-format msgid "Key columns \"%s\" and \"%s\" are of incompatible types: %s and %s." msgstr "Столбцы ключа \"%s\" и \"%s\" имеют неÑовмеÑтимые типы: %s и %s." -#: commands/tablecmds.c:9540 +#: commands/tablecmds.c:9544 #, c-format msgid "" "column \"%s\" referenced in ON DELETE SET action must be part of foreign key" @@ -11859,40 +11878,40 @@ msgstr "" "Ñтолбец \"%s\", фигурирующий в дейÑтвии ON DELETE SET, должен входить во " "внешний ключ" -#: commands/tablecmds.c:9813 commands/tablecmds.c:10281 +#: commands/tablecmds.c:9817 commands/tablecmds.c:10285 #: parser/parse_utilcmd.c:796 parser/parse_utilcmd.c:925 #, c-format msgid "foreign key constraints are not supported on foreign tables" msgstr "Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ ключа Ð´Ð»Ñ Ñторонних таблиц не поддерживаютÑÑ" -#: commands/tablecmds.c:10833 commands/tablecmds.c:11111 -#: commands/tablecmds.c:12029 commands/tablecmds.c:12104 +#: commands/tablecmds.c:10837 commands/tablecmds.c:11115 +#: commands/tablecmds.c:12037 commands/tablecmds.c:12112 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist" msgstr "ограничение \"%s\" в таблице \"%s\" не ÑущеÑтвует" -#: commands/tablecmds.c:10840 +#: commands/tablecmds.c:10844 #, c-format msgid "constraint \"%s\" of relation \"%s\" is not a foreign key constraint" msgstr "ограничение \"%s\" в таблице \"%s\" не ÑвлÑетÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¼ ключом" -#: commands/tablecmds.c:10878 +#: commands/tablecmds.c:10882 #, c-format msgid "cannot alter constraint \"%s\" on relation \"%s\"" msgstr "изменить ограничение \"%s\" таблицы \"%s\" нельзÑ" -#: commands/tablecmds.c:10881 +#: commands/tablecmds.c:10885 #, c-format msgid "Constraint \"%s\" is derived from constraint \"%s\" of relation \"%s\"." msgstr "" "Ограничение \"%s\" ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð½Ñ‹Ð¼ от Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ \"%s\" таблицы \"%s\"." -#: commands/tablecmds.c:10883 +#: commands/tablecmds.c:10887 #, c-format msgid "You may alter the constraint it derives from, instead." msgstr "ВмеÑто Ñтого вы можете изменить родительÑкое ограничение." -#: commands/tablecmds.c:11119 +#: commands/tablecmds.c:11123 #, c-format msgid "" "constraint \"%s\" of relation \"%s\" is not a foreign key or check constraint" @@ -11900,51 +11919,51 @@ msgstr "" "ограничение \"%s\" в таблице \"%s\" не ÑвлÑетÑÑ Ð²Ð½ÐµÑˆÐ½Ð¸Ð¼ ключом или " "ограничением-проверкой" -#: commands/tablecmds.c:11197 +#: commands/tablecmds.c:11201 #, c-format msgid "constraint must be validated on child tables too" msgstr "ограничение также должно ÑоблюдатьÑÑ Ð² дочерних таблицах" -#: commands/tablecmds.c:11287 +#: commands/tablecmds.c:11291 #, c-format msgid "column \"%s\" referenced in foreign key constraint does not exist" msgstr "Ñтолбец \"%s\", указанный в ограничении внешнего ключа, не ÑущеÑтвует" -#: commands/tablecmds.c:11293 +#: commands/tablecmds.c:11297 #, c-format msgid "system columns cannot be used in foreign keys" msgstr "ÑиÑтемные Ñтолбцы Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать во внешних ключах" -#: commands/tablecmds.c:11297 +#: commands/tablecmds.c:11301 #, c-format msgid "cannot have more than %d keys in a foreign key" msgstr "во внешнем ключе не может быть больше %d Ñтолбцов" -#: commands/tablecmds.c:11363 +#: commands/tablecmds.c:11367 #, c-format msgid "cannot use a deferrable primary key for referenced table \"%s\"" msgstr "" "иÑпользовать откладываемый первичный ключ в целевой внешней таблице \"%s\" " "нельзÑ" -#: commands/tablecmds.c:11380 +#: commands/tablecmds.c:11384 #, c-format msgid "there is no primary key for referenced table \"%s\"" msgstr "в целевой внешней таблице \"%s\" нет первичного ключа" -#: commands/tablecmds.c:11445 +#: commands/tablecmds.c:11453 #, c-format msgid "foreign key referenced-columns list must not contain duplicates" msgstr "в ÑпиÑке Ñтолбцов внешнего ключа не должно быть повторений" -#: commands/tablecmds.c:11539 +#: commands/tablecmds.c:11547 #, c-format msgid "cannot use a deferrable unique constraint for referenced table \"%s\"" msgstr "" "иÑпользовать откладываемое ограничение уникальноÑти в целевой внешней " "таблице \"%s\" нельзÑ" -#: commands/tablecmds.c:11544 +#: commands/tablecmds.c:11552 #, c-format msgid "" "there is no unique constraint matching given keys for referenced table \"%s\"" @@ -11952,27 +11971,27 @@ msgstr "" "в целевой внешней таблице \"%s\" нет Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÑƒÐ½Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ñти, " "ÑоответÑтвующего данным ключам" -#: commands/tablecmds.c:11985 +#: commands/tablecmds.c:11993 #, c-format msgid "cannot drop inherited constraint \"%s\" of relation \"%s\"" msgstr "удалить наÑледованное ограничение \"%s\" таблицы \"%s\" нельзÑ" -#: commands/tablecmds.c:12035 +#: commands/tablecmds.c:12043 #, c-format msgid "constraint \"%s\" of relation \"%s\" does not exist, skipping" msgstr "ограничение \"%s\" в таблице \"%s\" не ÑущеÑтвует, пропуÑкаетÑÑ" -#: commands/tablecmds.c:12211 +#: commands/tablecmds.c:12219 #, c-format msgid "cannot alter column type of typed table" msgstr "изменить тип Ñтолбца в типизированной таблице нельзÑ" -#: commands/tablecmds.c:12238 +#: commands/tablecmds.c:12246 #, c-format msgid "cannot alter inherited column \"%s\"" msgstr "изменить наÑледованный Ñтолбец \"%s\" нельзÑ" -#: commands/tablecmds.c:12247 +#: commands/tablecmds.c:12255 #, c-format msgid "" "cannot alter column \"%s\" because it is part of the partition key of " @@ -11981,7 +12000,7 @@ msgstr "" "изменить Ñтолбец \"%s\" нельзÑ, так как он входит в ключ Ñ€Ð°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ " "\"%s\"" -#: commands/tablecmds.c:12297 +#: commands/tablecmds.c:12305 #, c-format msgid "" "result of USING clause for column \"%s\" cannot be cast automatically to " @@ -11989,45 +12008,45 @@ msgid "" msgstr "" "результат USING Ð´Ð»Ñ Ñтолбца \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки привеÑти к типу %s" -#: commands/tablecmds.c:12300 +#: commands/tablecmds.c:12308 #, c-format msgid "You might need to add an explicit cast." msgstr "Возможно, необходимо добавить Ñвное приведение." -#: commands/tablecmds.c:12304 +#: commands/tablecmds.c:12312 #, c-format msgid "column \"%s\" cannot be cast automatically to type %s" msgstr "Ñтолбец \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки привеÑти к типу %s" # skip-rule: double-colons #. translator: USING is SQL, don't translate it -#: commands/tablecmds.c:12307 +#: commands/tablecmds.c:12315 #, c-format msgid "You might need to specify \"USING %s::%s\"." msgstr "Возможно, необходимо указать \"USING %s::%s\"." -#: commands/tablecmds.c:12406 +#: commands/tablecmds.c:12414 #, c-format msgid "cannot alter inherited column \"%s\" of relation \"%s\"" msgstr "изменить наÑледованный Ñтолбец \"%s\" Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" нельзÑ" -#: commands/tablecmds.c:12434 +#: commands/tablecmds.c:12442 #, c-format msgid "USING expression contains a whole-row table reference." msgstr "Выражение USING ÑÑылаетÑÑ Ð½Ð° тип вÑей Ñтроки таблицы." -#: commands/tablecmds.c:12445 +#: commands/tablecmds.c:12453 #, c-format msgid "type of inherited column \"%s\" must be changed in child tables too" msgstr "" "тип наÑледованного Ñтолбца \"%s\" должен быть изменён и в дочерних таблицах" -#: commands/tablecmds.c:12570 +#: commands/tablecmds.c:12578 #, c-format msgid "cannot alter type of column \"%s\" twice" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ тип Ñтолбца \"%s\" дважды" -#: commands/tablecmds.c:12608 +#: commands/tablecmds.c:12616 #, c-format msgid "" "generation expression for column \"%s\" cannot be cast automatically to type " @@ -12036,153 +12055,153 @@ msgstr "" "генерирующее выражение Ð´Ð»Ñ Ñтолбца \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки привеÑти к " "типу %s" -#: commands/tablecmds.c:12613 +#: commands/tablecmds.c:12621 #, c-format msgid "default for column \"%s\" cannot be cast automatically to type %s" msgstr "" "значение по умолчанию Ð´Ð»Ñ Ñтолбца \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки привеÑти к " "типу %s" -#: commands/tablecmds.c:12694 +#: commands/tablecmds.c:12702 #, c-format msgid "cannot alter type of a column used by a view or rule" msgstr "" "изменить тип Ñтолбца, задейÑтвованного в предÑтавлении или правиле, нельзÑ" -#: commands/tablecmds.c:12695 commands/tablecmds.c:12714 -#: commands/tablecmds.c:12732 +#: commands/tablecmds.c:12703 commands/tablecmds.c:12722 +#: commands/tablecmds.c:12740 #, c-format msgid "%s depends on column \"%s\"" msgstr "%s завиÑит от Ñтолбца \"%s\"" -#: commands/tablecmds.c:12713 +#: commands/tablecmds.c:12721 #, c-format msgid "cannot alter type of a column used in a trigger definition" msgstr "изменить тип Ñтолбца, задейÑтвованного в определении триггера, нельзÑ" -#: commands/tablecmds.c:12731 +#: commands/tablecmds.c:12739 #, c-format msgid "cannot alter type of a column used in a policy definition" msgstr "изменить тип Ñтолбца, задейÑтвованного в определении политики, нельзÑ" -#: commands/tablecmds.c:12762 +#: commands/tablecmds.c:12770 #, c-format msgid "cannot alter type of a column used by a generated column" msgstr "изменить тип Ñтолбца, задейÑтвованного в генерируемом Ñтолбце, нельзÑ" -#: commands/tablecmds.c:12763 +#: commands/tablecmds.c:12771 #, c-format msgid "Column \"%s\" is used by generated column \"%s\"." msgstr "Столбец \"%s\" иÑпользуетÑÑ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€ÑƒÐµÐ¼Ñ‹Ð¼ Ñтолбцом \"%s\"." -#: commands/tablecmds.c:13840 commands/tablecmds.c:13852 +#: commands/tablecmds.c:13848 commands/tablecmds.c:13860 #, c-format msgid "cannot change owner of index \"%s\"" msgstr "Ñменить владельца индекÑа \"%s\" нельзÑ" -#: commands/tablecmds.c:13842 commands/tablecmds.c:13854 +#: commands/tablecmds.c:13850 commands/tablecmds.c:13862 #, c-format msgid "Change the ownership of the index's table, instead." msgstr "Однако возможно Ñменить владельца таблицы, Ñодержащей Ñтот индекÑ." -#: commands/tablecmds.c:13868 +#: commands/tablecmds.c:13876 #, c-format msgid "cannot change owner of sequence \"%s\"" msgstr "Ñменить владельца поÑледовательноÑти \"%s\" нельзÑ" -#: commands/tablecmds.c:13882 commands/tablecmds.c:17201 -#: commands/tablecmds.c:17220 +#: commands/tablecmds.c:13890 commands/tablecmds.c:17209 +#: commands/tablecmds.c:17228 #, c-format msgid "Use ALTER TYPE instead." msgstr "ИÑпользуйте ALTER TYPE." -#: commands/tablecmds.c:13891 +#: commands/tablecmds.c:13899 #, c-format msgid "cannot change owner of relation \"%s\"" msgstr "Ñменить владельца Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" нельзÑ" -#: commands/tablecmds.c:14253 +#: commands/tablecmds.c:14261 #, c-format msgid "cannot have multiple SET TABLESPACE subcommands" msgstr "в одной инÑтрукции не может быть неÑколько подкоманд SET TABLESPACE" -#: commands/tablecmds.c:14330 +#: commands/tablecmds.c:14338 #, c-format msgid "cannot set options for relation \"%s\"" msgstr "задать параметры Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\" нельзÑ" -#: commands/tablecmds.c:14364 commands/view.c:521 +#: commands/tablecmds.c:14372 commands/view.c:521 #, c-format msgid "WITH CHECK OPTION is supported only on automatically updatable views" msgstr "" "WITH CHECK OPTION поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ñ Ð°Ð²Ñ‚Ð¾Ð¾Ð±Ð½Ð¾Ð²Ð»Ñемыми предÑтавлениÑми" -#: commands/tablecmds.c:14614 +#: commands/tablecmds.c:14622 #, c-format msgid "only tables, indexes, and materialized views exist in tablespaces" msgstr "" "в табличных проÑтранÑтвах еÑÑ‚ÑŒ только таблицы, индекÑÑ‹ и материализованные " "предÑтавлениÑ" -#: commands/tablecmds.c:14626 +#: commands/tablecmds.c:14634 #, c-format msgid "cannot move relations in to or out of pg_global tablespace" msgstr "перемещать объекты в/из табличного проÑтранÑтва pg_global нельзÑ" -#: commands/tablecmds.c:14718 +#: commands/tablecmds.c:14726 #, c-format msgid "aborting because lock on relation \"%s.%s\" is not available" msgstr "" "обработка прерываетÑÑ Ð¸Ð·-за невозможноÑти заблокировать отношение \"%s.%s\"" -#: commands/tablecmds.c:14734 +#: commands/tablecmds.c:14742 #, c-format msgid "no matching relations in tablespace \"%s\" found" msgstr "в табличном проÑтранÑтве \"%s\" не найдены подходÑщие отношениÑ" -#: commands/tablecmds.c:14852 +#: commands/tablecmds.c:14860 #, c-format msgid "cannot change inheritance of typed table" msgstr "изменить наÑледование типизированной таблицы нельзÑ" -#: commands/tablecmds.c:14857 commands/tablecmds.c:15413 +#: commands/tablecmds.c:14865 commands/tablecmds.c:15421 #, c-format msgid "cannot change inheritance of a partition" msgstr "изменить наÑледование Ñекции нельзÑ" -#: commands/tablecmds.c:14862 +#: commands/tablecmds.c:14870 #, c-format msgid "cannot change inheritance of partitioned table" msgstr "изменить наÑледование Ñекционированной таблицы нельзÑ" -#: commands/tablecmds.c:14908 +#: commands/tablecmds.c:14916 #, c-format msgid "cannot inherit to temporary relation of another session" msgstr "наÑледование Ð´Ð»Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð³Ð¾ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ ÑеанÑа невозможно" -#: commands/tablecmds.c:14921 +#: commands/tablecmds.c:14929 #, c-format msgid "cannot inherit from a partition" msgstr "наÑледование от Ñекции невозможно" -#: commands/tablecmds.c:14943 commands/tablecmds.c:17854 +#: commands/tablecmds.c:14951 commands/tablecmds.c:17864 #, c-format msgid "circular inheritance not allowed" msgstr "цикличеÑкое наÑледование недопуÑтимо" -#: commands/tablecmds.c:14944 commands/tablecmds.c:17855 +#: commands/tablecmds.c:14952 commands/tablecmds.c:17865 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" уже ÑвлÑетÑÑ Ð¿Ð¾Ñ‚Ð¾Ð¼ÐºÐ¾Ð¼ \"%s\"." -#: commands/tablecmds.c:14957 +#: commands/tablecmds.c:14965 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming an inheritance child" msgstr "" "триггер \"%s\" не позволÑет таблице \"%s\" Ñтать потомком в иерархии " "наÑледованиÑ" -#: commands/tablecmds.c:14959 +#: commands/tablecmds.c:14967 #, c-format msgid "" "ROW triggers with transition tables are not supported in inheritance " @@ -12191,36 +12210,36 @@ msgstr "" "Триггеры ROW Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð½Ñ‹Ð¼Ð¸ таблицами не поддерживаютÑÑ Ð² иерархиÑÑ… " "наÑледованиÑ." -#: commands/tablecmds.c:15162 +#: commands/tablecmds.c:15170 #, c-format msgid "column \"%s\" in child table must be marked NOT NULL" msgstr "Ñтолбец \"%s\" в дочерней таблице должен быть помечен как NOT NULL" -#: commands/tablecmds.c:15171 +#: commands/tablecmds.c:15179 #, c-format msgid "column \"%s\" in child table must be a generated column" msgstr "Ñтолбец \"%s\" в дочерней таблице должен быть генерируемым" -#: commands/tablecmds.c:15221 +#: commands/tablecmds.c:15229 #, c-format msgid "column \"%s\" in child table has a conflicting generation expression" msgstr "" "Ñтолбец \"%s\" в дочерней таблице Ñодержит конфликтующее генерирующее " "выражение" -#: commands/tablecmds.c:15249 +#: commands/tablecmds.c:15257 #, c-format msgid "child table is missing column \"%s\"" msgstr "в дочерней таблице не хватает Ñтолбца \"%s\"" -#: commands/tablecmds.c:15337 +#: commands/tablecmds.c:15345 #, c-format msgid "child table \"%s\" has different definition for check constraint \"%s\"" msgstr "" "дочернÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° \"%s\" Ñодержит другое определение ограничениÑ-проверки " "\"%s\"" -#: commands/tablecmds.c:15345 +#: commands/tablecmds.c:15353 #, c-format msgid "" "constraint \"%s\" conflicts with non-inherited constraint on child table " @@ -12229,7 +12248,7 @@ msgstr "" "ограничение \"%s\" конфликтует Ñ Ð½ÐµÐ½Ð°Ñледуемым ограничением дочерней таблицы " "\"%s\"" -#: commands/tablecmds.c:15356 +#: commands/tablecmds.c:15364 #, c-format msgid "" "constraint \"%s\" conflicts with NOT VALID constraint on child table \"%s\"" @@ -12237,82 +12256,82 @@ msgstr "" "ограничение \"%s\" конфликтует Ñ Ð½ÐµÐ¿Ñ€Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ñ‹Ð¼ (NOT VALID) ограничением " "дочерней таблицы \"%s\"" -#: commands/tablecmds.c:15391 +#: commands/tablecmds.c:15399 #, c-format msgid "child table is missing constraint \"%s\"" msgstr "в дочерней таблице не хватает Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ \"%s\"" -#: commands/tablecmds.c:15477 +#: commands/tablecmds.c:15485 #, c-format msgid "partition \"%s\" already pending detach in partitioned table \"%s.%s\"" msgstr "" "ÑÐµÐºÑ†Ð¸Ñ \"%s\" уже ожидает отÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñекционированной таблицы \"%s.%s\"" -#: commands/tablecmds.c:15506 commands/tablecmds.c:15554 +#: commands/tablecmds.c:15514 commands/tablecmds.c:15562 #, c-format msgid "relation \"%s\" is not a partition of relation \"%s\"" msgstr "отношение \"%s\" не ÑвлÑетÑÑ Ñекцией Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\"" -#: commands/tablecmds.c:15560 +#: commands/tablecmds.c:15568 #, c-format msgid "relation \"%s\" is not a parent of relation \"%s\"" msgstr "отношение \"%s\" не ÑвлÑетÑÑ Ð¿Ñ€ÐµÐ´ÐºÐ¾Ð¼ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ \"%s\"" -#: commands/tablecmds.c:15788 +#: commands/tablecmds.c:15796 #, c-format msgid "typed tables cannot inherit" msgstr "типизированные таблицы не могут наÑледоватьÑÑ" -#: commands/tablecmds.c:15818 +#: commands/tablecmds.c:15826 #, c-format msgid "table is missing column \"%s\"" msgstr "в таблице не хватает Ñтолбца \"%s\"" -#: commands/tablecmds.c:15829 +#: commands/tablecmds.c:15837 #, c-format msgid "table has column \"%s\" where type requires \"%s\"" msgstr "таблица Ñодержит Ñтолбец \"%s\", тогда как тип требует \"%s\"" -#: commands/tablecmds.c:15838 +#: commands/tablecmds.c:15846 #, c-format msgid "table \"%s\" has different type for column \"%s\"" msgstr "таблица \"%s\" Ñодержит Ñтолбец \"%s\" другого типа" -#: commands/tablecmds.c:15852 +#: commands/tablecmds.c:15860 #, c-format msgid "table has extra column \"%s\"" msgstr "таблица Ñодержит лишний Ñтолбец \"%s\"" -#: commands/tablecmds.c:15904 +#: commands/tablecmds.c:15912 #, c-format msgid "\"%s\" is not a typed table" msgstr "\"%s\" - Ñто не Ñ‚Ð¸Ð¿Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°" -#: commands/tablecmds.c:16078 +#: commands/tablecmds.c:16086 #, c-format msgid "cannot use non-unique index \"%s\" as replica identity" msgstr "" "Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать неуникальный Ð¸Ð½Ð´ÐµÐºÑ \"%s\"" -#: commands/tablecmds.c:16084 +#: commands/tablecmds.c:16092 #, c-format msgid "cannot use non-immediate index \"%s\" as replica identity" msgstr "" "Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать не непоÑредÑтвенный Ð¸Ð½Ð´ÐµÐºÑ " "\"%s\"" -#: commands/tablecmds.c:16090 +#: commands/tablecmds.c:16098 #, c-format msgid "cannot use expression index \"%s\" as replica identity" msgstr "" "Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать Ð¸Ð½Ð´ÐµÐºÑ Ñ Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼ \"%s\"" -#: commands/tablecmds.c:16096 +#: commands/tablecmds.c:16104 #, c-format msgid "cannot use partial index \"%s\" as replica identity" msgstr "Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать чаÑтичный Ð¸Ð½Ð´ÐµÐºÑ \"%s\"" -#: commands/tablecmds.c:16113 +#: commands/tablecmds.c:16121 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column %d is a " @@ -12321,7 +12340,7 @@ msgstr "" "Ð¸Ð½Ð´ÐµÐºÑ \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики, так как Ñтолбец " "%d - ÑиÑтемный" -#: commands/tablecmds.c:16120 +#: commands/tablecmds.c:16128 #, c-format msgid "" "index \"%s\" cannot be used as replica identity because column \"%s\" is " @@ -12330,13 +12349,13 @@ msgstr "" "Ð¸Ð½Ð´ÐµÐºÑ \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать Ð´Ð»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ реплики, так как Ñтолбец " "\"%s\" допуÑкает NULL" -#: commands/tablecmds.c:16367 +#: commands/tablecmds.c:16375 #, c-format msgid "cannot change logged status of table \"%s\" because it is temporary" msgstr "" "изменить ÑоÑтоÑние Ð¶ÑƒÑ€Ð½Ð°Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ %s нельзÑ, так как она временнаÑ" -#: commands/tablecmds.c:16391 +#: commands/tablecmds.c:16399 #, c-format msgid "" "cannot change table \"%s\" to unlogged because it is part of a publication" @@ -12344,12 +12363,12 @@ msgstr "" "таблицу \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ñделать нежурналируемой, так как она включена в " "публикацию" -#: commands/tablecmds.c:16393 +#: commands/tablecmds.c:16401 #, c-format msgid "Unlogged relations cannot be replicated." msgstr "Ðежурналируемые Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ Ð½Ðµ поддерживают репликацию." -#: commands/tablecmds.c:16438 +#: commands/tablecmds.c:16446 #, c-format msgid "" "could not change table \"%s\" to logged because it references unlogged table " @@ -12358,7 +12377,7 @@ msgstr "" "не удалоÑÑŒ Ñделать таблицу \"%s\" журналируемой, так как она ÑÑылаетÑÑ Ð½Ð° " "нежурналируемую таблицу \"%s\"" -#: commands/tablecmds.c:16448 +#: commands/tablecmds.c:16456 #, c-format msgid "" "could not change table \"%s\" to unlogged because it references logged table " @@ -12367,102 +12386,102 @@ msgstr "" "не удалоÑÑŒ Ñделать таблицу \"%s\" нежурналируемой, так как она ÑÑылаетÑÑ Ð½Ð° " "журналируемую таблицу \"%s\"" -#: commands/tablecmds.c:16506 +#: commands/tablecmds.c:16514 #, c-format msgid "cannot move an owned sequence into another schema" msgstr "перемеÑтить поÑледовательноÑÑ‚ÑŒ Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†ÐµÐ¼ в другую Ñхему нельзÑ" -#: commands/tablecmds.c:16613 +#: commands/tablecmds.c:16621 #, c-format msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "отношение \"%s\" уже ÑущеÑтвует в Ñхеме \"%s\"" -#: commands/tablecmds.c:17034 +#: commands/tablecmds.c:17042 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" - Ñто не таблица и не материализованное предÑтавление" -#: commands/tablecmds.c:17184 +#: commands/tablecmds.c:17192 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - Ñто не ÑоÑтавной тип" -#: commands/tablecmds.c:17212 +#: commands/tablecmds.c:17220 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "Ñменить Ñхему индекÑа \"%s\" нельзÑ" -#: commands/tablecmds.c:17214 commands/tablecmds.c:17226 +#: commands/tablecmds.c:17222 commands/tablecmds.c:17234 #, c-format msgid "Change the schema of the table instead." msgstr "Однако возможно Ñменить владельца таблицы." -#: commands/tablecmds.c:17218 +#: commands/tablecmds.c:17226 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "Ñменить Ñхему ÑоÑтавного типа \"%s\" нельзÑ" -#: commands/tablecmds.c:17224 +#: commands/tablecmds.c:17232 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "Ñменить Ñхему TOAST-таблицы \"%s\" нельзÑ" -#: commands/tablecmds.c:17261 +#: commands/tablecmds.c:17269 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "нераÑÐ¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð°Ñ ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ \"%s\"" -#: commands/tablecmds.c:17269 +#: commands/tablecmds.c:17277 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ð¸Ñ ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ ÑпиÑку не поддерживает неÑколько Ñтолбцов" -#: commands/tablecmds.c:17335 +#: commands/tablecmds.c:17343 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "Ñтолбец \"%s\", упомÑнутый в ключе ÑекционированиÑ, не ÑущеÑтвует" -#: commands/tablecmds.c:17343 +#: commands/tablecmds.c:17351 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "ÑиÑтемный Ñтолбец \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать в ключе ÑекционированиÑ" -#: commands/tablecmds.c:17354 commands/tablecmds.c:17468 +#: commands/tablecmds.c:17362 commands/tablecmds.c:17452 #, c-format msgid "cannot use generated column in partition key" msgstr "генерируемый Ñтолбец Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать в ключе ÑекционированиÑ" -#: commands/tablecmds.c:17355 commands/tablecmds.c:17469 commands/trigger.c:668 +#: commands/tablecmds.c:17363 commands/tablecmds.c:17453 commands/trigger.c:668 #: rewrite/rewriteHandler.c:929 rewrite/rewriteHandler.c:964 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Столбец \"%s\" ÑвлÑетÑÑ Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€ÑƒÐµÐ¼Ñ‹Ð¼." -#: commands/tablecmds.c:17431 -#, c-format -msgid "functions in partition key expression must be marked IMMUTABLE" -msgstr "" -"функции в выражении ключа ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть помечены как IMMUTABLE" - -#: commands/tablecmds.c:17451 +#: commands/tablecmds.c:17435 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "" "Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡ÐµÐ¹ ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ могут Ñодержать ÑÑылки на ÑиÑтемный " "Ñтолбец" -#: commands/tablecmds.c:17481 +#: commands/tablecmds.c:17482 +#, c-format +msgid "functions in partition key expression must be marked IMMUTABLE" +msgstr "" +"функции в выражении ключа ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть помечены как IMMUTABLE" + +#: commands/tablecmds.c:17491 #, c-format msgid "cannot use constant expression as partition key" msgstr "" "в качеÑтве ключа ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать конÑтантное выражение" -#: commands/tablecmds.c:17502 +#: commands/tablecmds.c:17512 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не удалоÑÑŒ определить правило Ñортировки Ð´Ð»Ñ Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÑекционированиÑ" -#: commands/tablecmds.c:17537 +#: commands/tablecmds.c:17547 #, c-format msgid "" "You must specify a hash operator class or define a default hash operator " @@ -12471,7 +12490,7 @@ msgstr "" "Ð’Ñ‹ должны указать клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ определить клаÑÑ " "операторов Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ умолчанию Ð´Ð»Ñ Ñтого типа данных." -#: commands/tablecmds.c:17543 +#: commands/tablecmds.c:17553 #, c-format msgid "" "You must specify a btree operator class or define a default btree operator " @@ -12480,27 +12499,27 @@ msgstr "" "Ð’Ñ‹ должны указать клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² B-дерева или определить клаÑÑ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð² " "B-дерева по умолчанию Ð´Ð»Ñ Ñтого типа данных." -#: commands/tablecmds.c:17794 +#: commands/tablecmds.c:17804 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" уже ÑвлÑетÑÑ Ñекцией" -#: commands/tablecmds.c:17800 +#: commands/tablecmds.c:17810 #, c-format msgid "cannot attach a typed table as partition" msgstr "подключить типизированную таблицу в качеÑтве Ñекции нельзÑ" -#: commands/tablecmds.c:17816 +#: commands/tablecmds.c:17826 #, c-format msgid "cannot attach inheritance child as partition" msgstr "подключить потомок в иерархии наÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве Ñекции нельзÑ" -#: commands/tablecmds.c:17830 +#: commands/tablecmds.c:17840 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "подключить родитель в иерархии наÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² качеÑтве Ñекции нельзÑ" -#: commands/tablecmds.c:17864 +#: commands/tablecmds.c:17874 #, c-format msgid "" "cannot attach a temporary relation as partition of permanent relation \"%s\"" @@ -12508,7 +12527,7 @@ msgstr "" "подключить временное отношение в качеÑтве Ñекции поÑтоÑнного Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ " "\"%s\" нельзÑ" -#: commands/tablecmds.c:17872 +#: commands/tablecmds.c:17882 #, c-format msgid "" "cannot attach a permanent relation as partition of temporary relation \"%s\"" @@ -12516,92 +12535,92 @@ msgstr "" "подключить поÑтоÑнное отношение в качеÑтве Ñекции временного Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ñ " "\"%s\" нельзÑ" -#: commands/tablecmds.c:17880 +#: commands/tablecmds.c:17890 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "подключить Ñекцию к временному отношению в другом ÑеанÑе нельзÑ" -#: commands/tablecmds.c:17887 +#: commands/tablecmds.c:17897 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "" "подключить временное отношение из другого ÑеанÑа в качеÑтве Ñекции нельзÑ" -#: commands/tablecmds.c:17907 +#: commands/tablecmds.c:17917 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "" "таблица \"%s\" Ñодержит Ñтолбец \"%s\", отÑутÑтвующий в родителе \"%s\"" -#: commands/tablecmds.c:17910 +#: commands/tablecmds.c:17920 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "" "ÐÐ¾Ð²Ð°Ñ ÑÐµÐºÑ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ Ñодержать только Ñтолбцы, имеющиеÑÑ Ð² родительÑкой " "таблице." -#: commands/tablecmds.c:17922 +#: commands/tablecmds.c:17932 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "триггер \"%s\" не позволÑет Ñделать таблицу \"%s\" Ñекцией" -#: commands/tablecmds.c:17924 +#: commands/tablecmds.c:17934 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Триггеры ROW Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð½Ñ‹Ð¼Ð¸ таблицами Ð´Ð»Ñ Ñекций не поддерживаютÑÑ." -#: commands/tablecmds.c:18103 +#: commands/tablecmds.c:18113 #, c-format msgid "" "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "" "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ñоединить Ñтороннюю таблицу \"%s\" в качеÑтве Ñекции таблицы \"%s\"" -#: commands/tablecmds.c:18106 +#: commands/tablecmds.c:18116 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Ð¡ÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° \"%s\" Ñодержит уникальные индекÑÑ‹." -#: commands/tablecmds.c:18421 +#: commands/tablecmds.c:18431 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "" "Ñекции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¾Ñ‚ÑоединÑÑ‚ÑŒ в режиме CONCURRENTLY, когда ÑущеÑтвует ÑÐµÐºÑ†Ð¸Ñ Ð¿Ð¾ " "умолчанию" -#: commands/tablecmds.c:18530 +#: commands/tablecmds.c:18540 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "ÑÐµÐºÑ†Ð¸Ð¾Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° \"%s\" была параллельно удалена" -#: commands/tablecmds.c:18536 +#: commands/tablecmds.c:18546 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "ÑÐµÐºÑ†Ð¸Ñ \"%s\" была параллельно удалена" -#: commands/tablecmds.c:19051 commands/tablecmds.c:19071 -#: commands/tablecmds.c:19091 commands/tablecmds.c:19110 -#: commands/tablecmds.c:19152 +#: commands/tablecmds.c:19061 commands/tablecmds.c:19081 +#: commands/tablecmds.c:19101 commands/tablecmds.c:19120 +#: commands/tablecmds.c:19162 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ñоединить Ð¸Ð½Ð´ÐµÐºÑ \"%s\" в качеÑтве Ñекции индекÑа \"%s\"" -#: commands/tablecmds.c:19054 +#: commands/tablecmds.c:19064 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Ð˜Ð½Ð´ÐµÐºÑ \"%s\" уже приÑоединён к другому индекÑу." -#: commands/tablecmds.c:19074 +#: commands/tablecmds.c:19084 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Ð˜Ð½Ð´ÐµÐºÑ \"%s\" не ÑвлÑетÑÑ Ð¸Ð½Ð´ÐµÐºÑом какой-либо Ñекции таблицы \"%s\"." -#: commands/tablecmds.c:19094 +#: commands/tablecmds.c:19104 #, c-format msgid "The index definitions do not match." msgstr "ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов не Ñовпадают." -#: commands/tablecmds.c:19113 +#: commands/tablecmds.c:19123 #, c-format msgid "" "The index \"%s\" belongs to a constraint in table \"%s\" but no constraint " @@ -12610,17 +12629,17 @@ msgstr "" "Ð˜Ð½Ð´ÐµÐºÑ \"%s\" принадлежит ограничению в таблице \"%s\", но Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑа " "\"%s\" Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð½ÐµÑ‚." -#: commands/tablecmds.c:19155 +#: commands/tablecmds.c:19165 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "К Ñекции \"%s\" уже приÑоединён другой индекÑ." -#: commands/tablecmds.c:19392 +#: commands/tablecmds.c:19402 #, c-format msgid "column data type %s does not support compression" msgstr "тим данных Ñтолбца %s не поддерживает Ñжатие" -#: commands/tablecmds.c:19399 +#: commands/tablecmds.c:19409 #, c-format msgid "invalid compression method \"%s\"" msgstr "неверный метод ÑÐ¶Ð°Ñ‚Ð¸Ñ \"%s\"" @@ -13008,7 +13027,7 @@ 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:3346 +#: commands/trigger.c:3364 #, c-format msgid "BEFORE STATEMENT trigger cannot return a value" msgstr "триггер BEFORE STATEMENT не может возвращать значение" @@ -13029,8 +13048,8 @@ msgstr "" "До Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ‚Ñ€Ð¸Ð³Ð³ÐµÑ€Ð° \"%s\" Ñтрока должна была находитьÑÑ Ð² Ñекции \"%s." "%s\"." -#: commands/trigger.c:3423 executor/nodeModifyTable.c:2344 -#: executor/nodeModifyTable.c:2427 +#: commands/trigger.c:3441 executor/nodeModifyTable.c:2350 +#: executor/nodeModifyTable.c:2433 #, c-format msgid "" "tuple to be updated was already modified by an operation triggered by the " @@ -13039,9 +13058,9 @@ msgstr "" "кортеж, который должен быть изменён, уже модифицирован в операции, вызванной " "текущей командой" -#: commands/trigger.c:3424 executor/nodeModifyTable.c:1510 -#: executor/nodeModifyTable.c:1584 executor/nodeModifyTable.c:2345 -#: executor/nodeModifyTable.c:2428 executor/nodeModifyTable.c:3059 +#: commands/trigger.c:3442 executor/nodeModifyTable.c:1514 +#: executor/nodeModifyTable.c:1588 executor/nodeModifyTable.c:2351 +#: executor/nodeModifyTable.c:2434 executor/nodeModifyTable.c:3079 #, c-format msgid "" "Consider using an AFTER trigger instead of a BEFORE trigger to propagate " @@ -13050,130 +13069,130 @@ msgstr "" "Возможно, Ð´Ð»Ñ Ñ€Ð°ÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ в другие Ñтроки Ñледует иÑпользовать " "триггер AFTER вмеÑто BEFORE." -#: commands/trigger.c:3465 executor/nodeLockRows.c:229 +#: commands/trigger.c:3483 executor/nodeLockRows.c:229 #: executor/nodeLockRows.c:238 executor/nodeModifyTable.c:308 -#: executor/nodeModifyTable.c:1526 executor/nodeModifyTable.c:2362 -#: executor/nodeModifyTable.c:2570 +#: executor/nodeModifyTable.c:1530 executor/nodeModifyTable.c:2368 +#: executor/nodeModifyTable.c:2576 #, c-format msgid "could not serialize access due to concurrent update" msgstr "не удалоÑÑŒ Ñериализовать доÑтуп из-за параллельного изменениÑ" -#: commands/trigger.c:3473 executor/nodeModifyTable.c:1616 -#: executor/nodeModifyTable.c:2445 executor/nodeModifyTable.c:2594 -#: executor/nodeModifyTable.c:2947 +#: commands/trigger.c:3491 executor/nodeModifyTable.c:1620 +#: executor/nodeModifyTable.c:2451 executor/nodeModifyTable.c:2600 +#: executor/nodeModifyTable.c:2967 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не удалоÑÑŒ Ñериализовать доÑтуп из-за параллельного удалениÑ" -#: commands/trigger.c:4680 +#: commands/trigger.c:4698 #, c-format msgid "cannot fire deferred trigger within security-restricted operation" msgstr "" "в рамках операции Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñми по безопаÑноÑти Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ð·Ð²Ð°Ñ‚ÑŒ отложенный " "триггер" -#: commands/trigger.c:5863 +#: commands/trigger.c:5881 #, c-format msgid "constraint \"%s\" is not deferrable" msgstr "ограничение \"%s\" не ÑвлÑетÑÑ Ð¾Ñ‚ÐºÐ»Ð°Ð´Ñ‹Ð²Ð°ÐµÐ¼Ñ‹Ð¼" -#: commands/trigger.c:5886 +#: commands/trigger.c:5904 #, c-format msgid "constraint \"%s\" does not exist" msgstr "ограничение \"%s\" не ÑущеÑтвует" -#: commands/tsearchcmds.c:118 commands/tsearchcmds.c:635 +#: commands/tsearchcmds.c:124 commands/tsearchcmds.c:641 #, c-format msgid "function %s should return type %s" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %s должна возвращать тип %s" -#: commands/tsearchcmds.c:194 +#: commands/tsearchcmds.c:200 #, c-format msgid "must be superuser to create text search parsers" msgstr "" "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð¾Ð² текÑтового поиÑка нужно быть Ñуперпользователем" -#: commands/tsearchcmds.c:247 +#: commands/tsearchcmds.c:253 #, c-format msgid "text search parser parameter \"%s\" not recognized" msgstr "параметр анализатора текÑтового поиÑка \"%s\" не раÑпознан" -#: commands/tsearchcmds.c:257 +#: commands/tsearchcmds.c:263 #, c-format msgid "text search parser start method is required" msgstr "Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° текÑтового поиÑка требуетÑÑ Ð¼ÐµÑ‚Ð¾Ð´ start" -#: commands/tsearchcmds.c:262 +#: commands/tsearchcmds.c:268 #, c-format msgid "text search parser gettoken method is required" msgstr "Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° текÑтового поиÑка требуетÑÑ Ð¼ÐµÑ‚Ð¾Ð´ gettoken" -#: commands/tsearchcmds.c:267 +#: commands/tsearchcmds.c:273 #, c-format msgid "text search parser end method is required" msgstr "Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° текÑтового поиÑка требуетÑÑ Ð¼ÐµÑ‚Ð¾Ð´ end" -#: commands/tsearchcmds.c:272 +#: commands/tsearchcmds.c:278 #, c-format msgid "text search parser lextypes method is required" msgstr "Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€Ð° текÑтового поиÑка требуетÑÑ Ð¼ÐµÑ‚Ð¾Ð´ lextypes" -#: commands/tsearchcmds.c:366 +#: commands/tsearchcmds.c:372 #, c-format msgid "text search template \"%s\" does not accept options" msgstr "шаблон текÑтового поиÑка \"%s\" не принимает параметры" -#: commands/tsearchcmds.c:440 +#: commands/tsearchcmds.c:446 #, c-format msgid "text search template is required" msgstr "требуетÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½ текÑтового поиÑка" -#: commands/tsearchcmds.c:701 +#: commands/tsearchcmds.c:707 #, c-format msgid "must be superuser to create text search templates" msgstr "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð² текÑтового поиÑка нужно быть Ñуперпользователем" -#: commands/tsearchcmds.c:743 +#: commands/tsearchcmds.c:749 #, c-format msgid "text search template parameter \"%s\" not recognized" msgstr "параметр шаблона текÑтового поиÑка \"%s\" не раÑпознан" -#: commands/tsearchcmds.c:753 +#: commands/tsearchcmds.c:759 #, c-format msgid "text search template lexize method is required" msgstr "Ð´Ð»Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð° текÑтового поиÑка требуетÑÑ Ð¼ÐµÑ‚Ð¾Ð´ lexize" -#: commands/tsearchcmds.c:933 +#: commands/tsearchcmds.c:939 #, c-format msgid "text search configuration parameter \"%s\" not recognized" msgstr "параметр конфигурации текÑтового поиÑка \"%s\" не раÑпознан" -#: commands/tsearchcmds.c:940 +#: commands/tsearchcmds.c:946 #, c-format msgid "cannot specify both PARSER and COPY options" msgstr "указать и PARSER, и COPY одновременно нельзÑ" -#: commands/tsearchcmds.c:976 +#: commands/tsearchcmds.c:982 #, c-format msgid "text search parser is required" msgstr "требуетÑÑ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°Ñ‚Ð¾Ñ€ текÑтового поиÑка" -#: commands/tsearchcmds.c:1200 +#: commands/tsearchcmds.c:1236 #, c-format msgid "token type \"%s\" does not exist" msgstr "тип фрагмента \"%s\" не ÑущеÑтвует" -#: commands/tsearchcmds.c:1427 +#: commands/tsearchcmds.c:1464 #, c-format msgid "mapping for token type \"%s\" does not exist" msgstr "ÑопоÑтавление Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° фрагмента \"%s\" не ÑущеÑтвует" -#: commands/tsearchcmds.c:1433 +#: commands/tsearchcmds.c:1470 #, c-format msgid "mapping for token type \"%s\" does not exist, skipping" msgstr "ÑопоÑтавление Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° фрагмента \"%s\" не ÑущеÑтвует, пропуÑкаетÑÑ" -#: commands/tsearchcmds.c:1596 commands/tsearchcmds.c:1711 +#: commands/tsearchcmds.c:1631 commands/tsearchcmds.c:1746 #, c-format msgid "invalid parameter list format: \"%s\"" msgstr "неверный формат ÑпиÑка параметров: \"%s\"" @@ -13979,7 +13998,7 @@ msgstr[2] "" "запущено %d параллельных процеÑÑов очиÑтки Ð´Ð»Ñ ÑƒÐ±Ð¾Ñ€ÐºÐ¸ индекÑа " "(планировалоÑÑŒ: %d)" -#: commands/variable.c:165 utils/misc/guc.c:12108 utils/misc/guc.c:12186 +#: commands/variable.c:165 utils/misc/guc.c:12115 utils/misc/guc.c:12193 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "нераÑпознанное ключевое Ñлово: \"%s\"." @@ -14231,7 +14250,7 @@ msgstr "" "Ð’ таблице определён тип %s (номер Ñтолбца: %d), а в запроÑе предполагаетÑÑ " "%s." -#: executor/execExpr.c:1098 parser/parse_agg.c:826 +#: executor/execExpr.c:1098 parser/parse_agg.c:837 #, c-format msgid "window function calls cannot be nested" msgstr "вложенные вызовы оконных функций недопуÑтимы" @@ -14317,10 +14336,10 @@ msgstr "" "МаÑÑив Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ Ñлементов %s Ð½ÐµÐ»ÑŒÐ·Ñ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ в конÑтрукцию ARRAY Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ " "Ñлементов %s." -#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:263 -#: utils/adt/arrayfuncs.c:563 utils/adt/arrayfuncs.c:1305 -#: utils/adt/arrayfuncs.c:3373 utils/adt/arrayfuncs.c:5370 -#: utils/adt/arrayfuncs.c:5887 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:264 +#: utils/adt/arrayfuncs.c:564 utils/adt/arrayfuncs.c:1306 +#: utils/adt/arrayfuncs.c:3422 utils/adt/arrayfuncs.c:5419 +#: utils/adt/arrayfuncs.c:5936 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" @@ -14335,11 +14354,14 @@ msgstr "" "размерноÑÑ‚Ñми" #: executor/execExprInterp.c:2811 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:936 utils/adt/arrayfuncs.c:1544 -#: utils/adt/arrayfuncs.c:3261 utils/adt/arrayfuncs.c:3403 -#: utils/adt/arrayfuncs.c:5979 utils/adt/arrayfuncs.c:6320 -#: utils/adt/arrayutils.c:94 utils/adt/arrayutils.c:103 -#: utils/adt/arrayutils.c:110 +#: utils/adt/arrayfuncs.c:937 utils/adt/arrayfuncs.c:1545 +#: utils/adt/arrayfuncs.c:2353 utils/adt/arrayfuncs.c:2368 +#: utils/adt/arrayfuncs.c:2630 utils/adt/arrayfuncs.c:2646 +#: utils/adt/arrayfuncs.c:2954 utils/adt/arrayfuncs.c:2969 +#: utils/adt/arrayfuncs.c:3310 utils/adt/arrayfuncs.c:3452 +#: utils/adt/arrayfuncs.c:6028 utils/adt/arrayfuncs.c:6369 +#: utils/adt/arrayutils.c:88 utils/adt/arrayutils.c:97 +#: utils/adt/arrayutils.c:104 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "размер маÑÑива превышает предел (%d)" @@ -14650,8 +14672,8 @@ msgstr "параллельное удаление; Ñледует повторн #: executor/execReplication.c:276 parser/parse_cte.c:308 #: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:724 -#: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3653 -#: utils/adt/arrayfuncs.c:4208 utils/adt/arrayfuncs.c:6200 +#: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3702 +#: utils/adt/arrayfuncs.c:4257 utils/adt/arrayfuncs.c:6249 #: utils/adt/rowtypes.c:1203 #, c-format msgid "could not identify an equality operator for type %s" @@ -14879,7 +14901,7 @@ msgid "aggregate %u needs to have compatible input type and transition type" msgstr "" "Ð°Ð³Ñ€ÐµÐ³Ð°Ñ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ %u должна иметь ÑовмеÑтимые входной и переходный типы" -#: executor/nodeAgg.c:3952 parser/parse_agg.c:668 parser/parse_agg.c:696 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:679 parser/parse_agg.c:707 #, c-format msgid "aggregate function calls cannot be nested" msgstr "вложенные вызовы агрегатных функций недопуÑтимы" @@ -14937,7 +14959,7 @@ msgstr "" msgid "Query has too few columns." msgstr "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ меньше Ñтолбцов." -#: executor/nodeModifyTable.c:1509 executor/nodeModifyTable.c:1583 +#: executor/nodeModifyTable.c:1513 executor/nodeModifyTable.c:1587 #, c-format msgid "" "tuple to be deleted was already modified by an operation triggered by the " @@ -14946,12 +14968,12 @@ msgstr "" "кортеж, который должен быть удалён, уже модифицирован в операции, вызванной " "текущей командой" -#: executor/nodeModifyTable.c:1737 +#: executor/nodeModifyTable.c:1742 #, c-format msgid "invalid ON UPDATE specification" msgstr "неверное указание ON UPDATE" -#: executor/nodeModifyTable.c:1738 +#: executor/nodeModifyTable.c:1743 #, c-format msgid "" "The result tuple would appear in a different partition than the original " @@ -14960,7 +14982,7 @@ msgstr "" "Результирующий кортеж окажетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰Ñ‘Ð½Ð½Ñ‹Ð¼ из Ñекции иÑходного кортежа в " "другую." -#: executor/nodeModifyTable.c:2198 +#: executor/nodeModifyTable.c:2204 #, c-format msgid "" "cannot move tuple across partitions when a non-root ancestor of the source " @@ -14969,25 +14991,25 @@ msgstr "" "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑтить кортеж между ÑекциÑми, когда внешний ключ непоÑредÑтвенно " "ÑÑылаетÑÑ Ð½Ð° предка иÑходной Ñекции, который не ÑвлÑетÑÑ ÐºÐ¾Ñ€Ð½ÐµÐ¼ иерархии" -#: executor/nodeModifyTable.c:2199 +#: executor/nodeModifyTable.c:2205 #, c-format msgid "" "A foreign key points to ancestor \"%s\" but not the root ancestor \"%s\"." msgstr "" "Внешний ключ ÑÑылаетÑÑ Ð½Ð° предка \"%s\", а не на корневого предка \"%s\"." -#: executor/nodeModifyTable.c:2202 +#: executor/nodeModifyTable.c:2208 #, c-format msgid "Consider defining the foreign key on table \"%s\"." msgstr "Возможно, имеет ÑмыÑл перенацелить внешний ключ на таблицу \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2548 executor/nodeModifyTable.c:2936 +#: executor/nodeModifyTable.c:2554 executor/nodeModifyTable.c:2956 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не может подейÑтвовать на Ñтроку дважды" -#: executor/nodeModifyTable.c:2550 +#: executor/nodeModifyTable.c:2556 #, c-format msgid "" "Ensure that no rows proposed for insertion within the same command have " @@ -14996,14 +15018,14 @@ msgstr "" "Проверьте, не Ñодержат ли Ñтроки, которые должна добавить команда, " "дублирующиеÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ, подпадающие под ограничениÑ." -#: executor/nodeModifyTable.c:2938 +#: executor/nodeModifyTable.c:2958 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "" "Проверьте, не может ли какой-либо целевой Ñтроке ÑоответÑтвовать более одной " "иÑходной Ñтроки." -#: executor/nodeModifyTable.c:3019 +#: executor/nodeModifyTable.c:3039 #, c-format msgid "" "tuple to be deleted was already moved to another partition due to concurrent " @@ -15012,7 +15034,7 @@ msgstr "" "кортеж, подлежащий удалению, был перемещён в другую Ñекцию в результате " "параллельного изменениÑ" -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3078 #, c-format msgid "" "tuple to be updated or deleted was already modified by an operation " @@ -15570,7 +15592,7 @@ msgstr "неверный размер пакета Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼" msgid "empty password returned by client" msgstr "клиент возвратил пуÑтой пароль" -#: libpq/auth.c:880 libpq/hba.c:1335 +#: libpq/auth.c:878 libpq/hba.c:1335 #, c-format msgid "" "MD5 authentication is not supported when \"db_user_namespace\" is enabled" @@ -15578,225 +15600,225 @@ msgstr "" "проверка подлинноÑти MD5 не поддерживаетÑÑ, когда включён режим " "\"db_user_namespace\"" -#: libpq/auth.c:886 +#: libpq/auth.c:884 #, c-format msgid "could not generate random MD5 salt" msgstr "не удалоÑÑŒ Ñгенерировать Ñлучайную Ñоль Ð´Ð»Ñ MD5" -#: libpq/auth.c:935 libpq/be-secure-gssapi.c:535 +#: libpq/auth.c:933 libpq/be-secure-gssapi.c:535 #, c-format msgid "could not set environment: %m" msgstr "не удалоÑÑŒ задать переменную окружениÑ: %m" -#: libpq/auth.c:971 +#: libpq/auth.c:969 #, c-format msgid "expected GSS response, got message type %d" msgstr "ожидалÑÑ Ð¾Ñ‚Ð²ÐµÑ‚ GSS, но получено Ñообщение %d" -#: libpq/auth.c:1031 +#: libpq/auth.c:1029 msgid "accepting GSS security context failed" msgstr "принÑÑ‚ÑŒ контекÑÑ‚ безопаÑноÑти GSS не удалоÑÑŒ" -#: libpq/auth.c:1072 +#: libpq/auth.c:1070 msgid "retrieving GSS user name failed" msgstr "получить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ GSS не удалоÑÑŒ" -#: libpq/auth.c:1221 +#: libpq/auth.c:1219 msgid "could not acquire SSPI credentials" msgstr "не удалоÑÑŒ получить удоÑтоверение SSPI" -#: libpq/auth.c:1246 +#: libpq/auth.c:1244 #, c-format msgid "expected SSPI response, got message type %d" msgstr "ожидалÑÑ Ð¾Ñ‚Ð²ÐµÑ‚ SSPI, но получено Ñообщение %d" -#: libpq/auth.c:1324 +#: libpq/auth.c:1322 msgid "could not accept SSPI security context" msgstr "принÑÑ‚ÑŒ контекÑÑ‚ безопаÑноÑти SSPI не удалоÑÑŒ" -#: libpq/auth.c:1386 +#: libpq/auth.c:1384 msgid "could not get token from SSPI security context" msgstr "не удалоÑÑŒ получить маркер из контекÑта безопаÑноÑти SSPI" -#: libpq/auth.c:1525 libpq/auth.c:1544 +#: libpq/auth.c:1523 libpq/auth.c:1542 #, c-format msgid "could not translate name" msgstr "не удалоÑÑŒ преобразовать имÑ" -#: libpq/auth.c:1557 +#: libpq/auth.c:1555 #, c-format msgid "realm name too long" msgstr "Ð¸Ð¼Ñ Ð¾Ð±Ð»Ð°Ñти Ñлишком длинное" -#: libpq/auth.c:1572 +#: libpq/auth.c:1570 #, c-format msgid "translated account name too long" msgstr "преобразованное Ð¸Ð¼Ñ ÑƒÑ‡Ñ‘Ñ‚Ð½Ð¾Ð¹ запиÑи Ñлишком длинное" -#: libpq/auth.c:1753 +#: libpq/auth.c:1751 #, c-format msgid "could not create socket for Ident connection: %m" msgstr "не удалоÑÑŒ Ñоздать Ñокет Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº Ñерверу Ident: %m" -#: libpq/auth.c:1768 +#: libpq/auth.c:1766 #, c-format msgid "could not bind to local address \"%s\": %m" msgstr "не удалоÑÑŒ привÑзатьÑÑ Ðº локальному адреÑу \"%s\": %m" -#: libpq/auth.c:1780 +#: libpq/auth.c:1778 #, c-format msgid "could not connect to Ident server at address \"%s\", port %s: %m" msgstr "не удалоÑÑŒ подключитьÑÑ Ðº Ñерверу Ident по адреÑу \"%s\", порт %s: %m" -#: libpq/auth.c:1802 +#: libpq/auth.c:1800 #, c-format msgid "could not send query to Ident server at address \"%s\", port %s: %m" msgstr "" "не удалоÑÑŒ отправить Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñерверу Ident по адреÑу \"%s\", порт %s: %m" -#: libpq/auth.c:1819 +#: libpq/auth.c:1817 #, c-format msgid "" "could not receive response from Ident server at address \"%s\", port %s: %m" msgstr "" "не удалоÑÑŒ получить ответ от Ñервера Ident по адреÑу \"%s\", порт %s: %m" -#: libpq/auth.c:1829 +#: libpq/auth.c:1827 #, c-format msgid "invalidly formatted response from Ident server: \"%s\"" msgstr "неверно форматированный ответ от Ñервера Ident: \"%s\"" -#: libpq/auth.c:1882 +#: libpq/auth.c:1880 #, c-format msgid "peer authentication is not supported on this platform" msgstr "проверка подлинноÑти peer в Ñтой ОС не поддерживаетÑÑ" -#: libpq/auth.c:1886 +#: libpq/auth.c:1884 #, c-format msgid "could not get peer credentials: %m" msgstr "не удалоÑÑŒ получить данные Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ‡ÐµÑ€ÐµÐ· механизм peer: %m" -#: libpq/auth.c:1898 +#: libpq/auth.c:1896 #, c-format msgid "could not look up local user ID %ld: %s" msgstr "найти локального Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ идентификатору (%ld) не удалоÑÑŒ: %s" -#: libpq/auth.c:1999 +#: libpq/auth.c:1997 #, c-format msgid "error from underlying PAM layer: %s" msgstr "ошибка в нижележащем Ñлое PAM: %s" -#: libpq/auth.c:2010 +#: libpq/auth.c:2008 #, c-format msgid "unsupported PAM conversation %d/\"%s\"" msgstr "неподдерживаемое Ñообщение ответа PAM %d/\"%s\"" -#: libpq/auth.c:2070 +#: libpq/auth.c:2068 #, c-format msgid "could not create PAM authenticator: %s" msgstr "не удалоÑÑŒ Ñоздать аутентификатор PAM: %s" -#: libpq/auth.c:2081 +#: libpq/auth.c:2079 #, c-format msgid "pam_set_item(PAM_USER) failed: %s" msgstr "ошибка в pam_set_item(PAM_USER): %s" -#: libpq/auth.c:2113 +#: libpq/auth.c:2111 #, c-format msgid "pam_set_item(PAM_RHOST) failed: %s" msgstr "ошибка в pam_set_item(PAM_RHOST): %s" -#: libpq/auth.c:2125 +#: libpq/auth.c:2123 #, c-format msgid "pam_set_item(PAM_CONV) failed: %s" msgstr "ошибка в pam_set_item(PAM_CONV): %s" -#: libpq/auth.c:2138 +#: libpq/auth.c:2136 #, c-format msgid "pam_authenticate failed: %s" msgstr "ошибка в pam_authenticate: %s" -#: libpq/auth.c:2151 +#: libpq/auth.c:2149 #, c-format msgid "pam_acct_mgmt failed: %s" msgstr "ошибка в pam_acct_mgmt: %s" -#: libpq/auth.c:2162 +#: libpq/auth.c:2160 #, c-format msgid "could not release PAM authenticator: %s" msgstr "не удалоÑÑŒ оÑвободить аутентификатор PAM: %s" -#: libpq/auth.c:2242 +#: libpq/auth.c:2240 #, c-format msgid "could not initialize LDAP: error code %d" msgstr "не удалоÑÑŒ инициализировать LDAP (код ошибки: %d)" -#: libpq/auth.c:2279 +#: libpq/auth.c:2277 #, c-format msgid "could not extract domain name from ldapbasedn" msgstr "не удалоÑÑŒ извлечь Ð¸Ð¼Ñ Ð´Ð¾Ð¼ÐµÐ½Ð° из ldapbasedn" -#: libpq/auth.c:2287 +#: libpq/auth.c:2285 #, c-format msgid "LDAP authentication could not find DNS SRV records for \"%s\"" msgstr "Ð´Ð»Ñ Ð°ÑƒÑ‚ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ð¸ LDAP не удалоÑÑŒ найти запиÑи DNS SRV Ð´Ð»Ñ \"%s\"" -#: libpq/auth.c:2289 +#: libpq/auth.c:2287 #, c-format msgid "Set an LDAP server name explicitly." msgstr "Задайте Ð¸Ð¼Ñ Ñервера LDAP Ñвным образом." -#: libpq/auth.c:2341 +#: libpq/auth.c:2339 #, c-format msgid "could not initialize LDAP: %s" msgstr "не удалоÑÑŒ инициализировать LDAP: %s" -#: libpq/auth.c:2351 +#: libpq/auth.c:2349 #, c-format msgid "ldaps not supported with this LDAP library" msgstr "протокол ldaps Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ библиотекой LDAP не поддерживаетÑÑ" -#: libpq/auth.c:2359 +#: libpq/auth.c:2357 #, c-format msgid "could not initialize LDAP: %m" msgstr "не удалоÑÑŒ инициализировать LDAP: %m" -#: libpq/auth.c:2369 +#: libpq/auth.c:2367 #, c-format msgid "could not set LDAP protocol version: %s" msgstr "не удалоÑÑŒ задать верÑию протокола LDAP: %s" -#: libpq/auth.c:2409 +#: libpq/auth.c:2407 #, c-format msgid "could not load function _ldap_start_tls_sA in wldap32.dll" msgstr "не удалоÑÑŒ найти функцию _ldap_start_tls_sA в wldap32.dll" -#: libpq/auth.c:2410 +#: libpq/auth.c:2408 #, c-format msgid "LDAP over SSL is not supported on this platform." msgstr "LDAP через SSL не поддерживаетÑÑ Ð² Ñтой ОС." -#: libpq/auth.c:2426 +#: libpq/auth.c:2424 #, c-format msgid "could not start LDAP TLS session: %s" msgstr "не удалоÑÑŒ начать ÑÐµÐ°Ð½Ñ LDAP TLS: %s" -#: libpq/auth.c:2497 +#: libpq/auth.c:2495 #, c-format msgid "LDAP server not specified, and no ldapbasedn" msgstr "LDAP-Ñервер не задан и значение ldapbasedn не определено" -#: libpq/auth.c:2504 +#: libpq/auth.c:2502 #, c-format msgid "LDAP server not specified" msgstr "LDAP-Ñервер не определён" -#: libpq/auth.c:2566 +#: libpq/auth.c:2564 #, c-format msgid "invalid character in user name for LDAP authentication" msgstr "недопуÑтимый Ñимвол в имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ подлинноÑти LDAP" -#: libpq/auth.c:2583 +#: libpq/auth.c:2581 #, c-format msgid "" "could not perform initial LDAP bind for ldapbinddn \"%s\" on server \"%s\": " @@ -15805,28 +15827,28 @@ msgstr "" "не удалоÑÑŒ выполнить начальную привÑзку LDAP Ð´Ð»Ñ ldapbinddn \"%s\" на " "Ñервере \"%s\": %s" -#: libpq/auth.c:2612 +#: libpq/auth.c:2610 #, c-format msgid "could not search LDAP for filter \"%s\" on server \"%s\": %s" msgstr "" "не удалоÑÑŒ выполнить LDAP-поиÑк по фильтру \"%s\" на Ñервере \"%s\": %s" -#: libpq/auth.c:2626 +#: libpq/auth.c:2624 #, c-format msgid "LDAP user \"%s\" does not exist" msgstr "в LDAP нет Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\"" -#: libpq/auth.c:2627 +#: libpq/auth.c:2625 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned no entries." msgstr "LDAP-поиÑк по фильтру \"%s\" на Ñервере \"%s\" не вернул результатов" -#: libpq/auth.c:2631 +#: libpq/auth.c:2629 #, c-format msgid "LDAP user \"%s\" is not unique" msgstr "пользователь LDAP \"%s\" не уникален" -#: libpq/auth.c:2632 +#: libpq/auth.c:2630 #, c-format msgid "LDAP search for filter \"%s\" on server \"%s\" returned %d entry." msgid_plural "" @@ -15835,7 +15857,7 @@ msgstr[0] "LDAP-поиÑк по фильтру \"%s\" на Ñервере \"%s\" msgstr[1] "LDAP-поиÑк по фильтру \"%s\" на Ñервере \"%s\" вернул %d запиÑи." msgstr[2] "LDAP-поиÑк по фильтру \"%s\" на Ñервере \"%s\" вернул %d запиÑей." -#: libpq/auth.c:2652 +#: libpq/auth.c:2650 #, c-format msgid "" "could not get dn for the first entry matching \"%s\" on server \"%s\": %s" @@ -15843,24 +15865,24 @@ msgstr "" "не удалоÑÑŒ получить dn Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ результата, ÑоответÑтвующего \"%s\" на " "Ñервере \"%s\": %s" -#: libpq/auth.c:2673 +#: libpq/auth.c:2671 #, c-format msgid "could not unbind after searching for user \"%s\" on server \"%s\"" msgstr "" "не удалоÑÑŒ отвÑзатьÑÑ Ð¿Ð¾Ñле поиÑка Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\" на Ñервере \"%s\"" -#: libpq/auth.c:2704 +#: libpq/auth.c:2702 #, c-format msgid "LDAP login failed for user \"%s\" on server \"%s\": %s" msgstr "" "ошибка при региÑтрации в LDAP Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\" на Ñервере \"%s\": %s" -#: libpq/auth.c:2736 +#: libpq/auth.c:2734 #, c-format msgid "LDAP diagnostics: %s" msgstr "ДиагноÑтика LDAP: %s" -#: libpq/auth.c:2774 +#: libpq/auth.c:2772 #, c-format msgid "" "certificate authentication failed for user \"%s\": client certificate " @@ -15869,7 +15891,7 @@ msgstr "" "ошибка проверки подлинноÑти Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\" по Ñертификату: Ñертификат " "клиента не Ñодержит Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: libpq/auth.c:2795 +#: libpq/auth.c:2793 #, c-format msgid "" "certificate authentication failed for user \"%s\": unable to retrieve " @@ -15878,7 +15900,7 @@ msgstr "" "пользователь \"%s\" не прошёл проверку подлинноÑти по Ñертификату: не " "удалоÑÑŒ получить DN Ñубъекта" -#: libpq/auth.c:2818 +#: libpq/auth.c:2816 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": DN " @@ -15887,7 +15909,7 @@ msgstr "" "проверка Ñертификата (clientcert=verify-full) Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\" не " "прошла: отличаетÑÑ DN" -#: libpq/auth.c:2823 +#: libpq/auth.c:2821 #, c-format msgid "" "certificate validation (clientcert=verify-full) failed for user \"%s\": CN " @@ -15896,99 +15918,99 @@ msgstr "" "проверка Ñертификата (clientcert=verify-full) Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\" не " "прошла: отличаетÑÑ CN" -#: libpq/auth.c:2925 +#: libpq/auth.c:2923 #, c-format msgid "RADIUS server not specified" msgstr "RADIUS-Ñервер не определён" -#: libpq/auth.c:2932 +#: libpq/auth.c:2930 #, c-format msgid "RADIUS secret not specified" msgstr "Ñекрет RADIUS не определён" # well-spelled: Ñимв -#: libpq/auth.c:2946 +#: libpq/auth.c:2944 #, c-format msgid "" "RADIUS authentication does not support passwords longer than %d characters" msgstr "проверка подлинноÑти RADIUS не поддерживает пароли длиннее %d Ñимв." -#: libpq/auth.c:3053 libpq/hba.c:1976 +#: libpq/auth.c:3051 libpq/hba.c:1976 #, c-format msgid "could not translate RADIUS server name \"%s\" to address: %s" msgstr "не удалоÑÑŒ преобразовать Ð¸Ð¼Ñ Ñервера RADIUS \"%s\" в адреÑ: %s" -#: libpq/auth.c:3067 +#: libpq/auth.c:3065 #, c-format msgid "could not generate random encryption vector" msgstr "не удалоÑÑŒ Ñгенерировать Ñлучайный вектор шифрованиÑ" -#: libpq/auth.c:3104 +#: libpq/auth.c:3102 #, c-format msgid "could not perform MD5 encryption of password: %s" msgstr "не удалоÑÑŒ вычиÑлить MD5-хеш паролÑ: %s" -#: libpq/auth.c:3131 +#: libpq/auth.c:3129 #, c-format msgid "could not create RADIUS socket: %m" msgstr "не удалоÑÑŒ Ñоздать Ñокет RADIUS: %m" -#: libpq/auth.c:3153 +#: libpq/auth.c:3151 #, c-format msgid "could not bind local RADIUS socket: %m" msgstr "не удалоÑÑŒ привÑзатьÑÑ Ðº локальному Ñокету RADIUS: %m" -#: libpq/auth.c:3163 +#: libpq/auth.c:3161 #, c-format msgid "could not send RADIUS packet: %m" msgstr "не удалоÑÑŒ отправить пакет RADIUS: %m" -#: libpq/auth.c:3197 libpq/auth.c:3223 +#: libpq/auth.c:3195 libpq/auth.c:3221 #, c-format msgid "timeout waiting for RADIUS response from %s" msgstr "превышено Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð° RADIUS от %s" -#: libpq/auth.c:3216 +#: libpq/auth.c:3214 #, c-format msgid "could not check status on RADIUS socket: %m" msgstr "не удалоÑÑŒ проверить ÑоÑтоÑние Ñокета RADIUS: %m" -#: libpq/auth.c:3246 +#: libpq/auth.c:3244 #, c-format msgid "could not read RADIUS response: %m" msgstr "не удалоÑÑŒ прочитать ответ RADIUS: %m" -#: libpq/auth.c:3259 libpq/auth.c:3263 +#: libpq/auth.c:3257 libpq/auth.c:3261 #, c-format msgid "RADIUS response from %s was sent from incorrect port: %d" msgstr "ответ RADIUS от %s был отправлен Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð³Ð¾ порта: %d" -#: libpq/auth.c:3272 +#: libpq/auth.c:3270 #, c-format msgid "RADIUS response from %s too short: %d" msgstr "Ñлишком короткий ответ RADIUS от %s: %d" -#: libpq/auth.c:3279 +#: libpq/auth.c:3277 #, c-format msgid "RADIUS response from %s has corrupt length: %d (actual length %d)" msgstr "в ответе RADIUS от %s иÑпорчена длина: %d (фактичеÑÐºÐ°Ñ Ð´Ð»Ð¸Ð½Ð° %d)" -#: libpq/auth.c:3287 +#: libpq/auth.c:3285 #, c-format msgid "RADIUS response from %s is to a different request: %d (should be %d)" msgstr "пришёл ответ RADIUS от %s на другой запроÑ: %d (ожидалÑÑ %d)" -#: libpq/auth.c:3312 +#: libpq/auth.c:3310 #, c-format msgid "could not perform MD5 encryption of received packet: %s" msgstr "не удалоÑÑŒ вычиÑлить MD5-хеш Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð½Ñтого пакета: %s" -#: libpq/auth.c:3322 +#: libpq/auth.c:3320 #, c-format msgid "RADIUS response from %s has incorrect MD5 signature" msgstr "ответ RADIUS от %s Ñодержит неверную подпиÑÑŒ MD5" -#: libpq/auth.c:3340 +#: libpq/auth.c:3338 #, c-format msgid "RADIUS response from %s has invalid code (%d) for user \"%s\"" msgstr "ответ RADIUS от %s Ñодержит неверный код (%d) Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ \"%s\"" @@ -16104,16 +16126,16 @@ msgstr "" "он принадлежит пользователю Ñервера, либо u=rw,g=r (0640) или более Ñтрогие, " "еÑли он принадлежит root." -#: libpq/be-secure-gssapi.c:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "ошибка Ð¾Ð±Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² GSSAPI" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "иÑходÑщее Ñообщение GSSAPI не будет защищено" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:622 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:622 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "Ñервер попыталÑÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚ÑŒ чрезмерно большой пакет GSSAPI (%zu > %zu)" @@ -16245,22 +16267,22 @@ msgstr "инициализировать SSL-подключение не удаРmsgid "could not set SSL socket: %s" msgstr "не удалоÑÑŒ Ñоздать SSL-Ñокет: %s" -#: libpq/be-secure-openssl.c:499 +#: libpq/be-secure-openssl.c:500 #, c-format msgid "could not accept SSL connection: %m" msgstr "не удалоÑÑŒ принÑÑ‚ÑŒ SSL-подключение: %m" -#: libpq/be-secure-openssl.c:503 libpq/be-secure-openssl.c:556 +#: libpq/be-secure-openssl.c:504 libpq/be-secure-openssl.c:557 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "не удалоÑÑŒ принÑÑ‚ÑŒ SSL-подключение: обрыв данных" -#: libpq/be-secure-openssl.c:542 +#: libpq/be-secure-openssl.c:543 #, c-format msgid "could not accept SSL connection: %s" msgstr "не удалоÑÑŒ принÑÑ‚ÑŒ SSL-подключение: %s" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:546 #, c-format msgid "" "This may indicate that the client does not support any SSL protocol version " @@ -16269,94 +16291,94 @@ msgstr "" "Ðто может указывать на то, что клиент не поддерживает ни одну верÑию " "протокола SSL между %s и %s." -#: libpq/be-secure-openssl.c:561 libpq/be-secure-openssl.c:750 -#: libpq/be-secure-openssl.c:814 +#: libpq/be-secure-openssl.c:562 libpq/be-secure-openssl.c:751 +#: libpq/be-secure-openssl.c:821 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нераÑпознанный код ошибки SSL: %d" -#: libpq/be-secure-openssl.c:607 +#: libpq/be-secure-openssl.c:608 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Ð˜Ð¼Ñ SSL-Ñертификата включает нулевой байт" -#: libpq/be-secure-openssl.c:653 +#: libpq/be-secure-openssl.c:654 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "уникальное Ð¸Ð¼Ñ (DN) в SSL-Ñертификате Ñодержит нулевой байт" -#: libpq/be-secure-openssl.c:739 libpq/be-secure-openssl.c:798 +#: libpq/be-secure-openssl.c:740 libpq/be-secure-openssl.c:805 #, c-format msgid "SSL error: %s" msgstr "ошибка SSL: %s" -#: libpq/be-secure-openssl.c:980 +#: libpq/be-secure-openssl.c:982 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "не удалоÑÑŒ открыть файл параметров DH \"%s\": %m" -#: libpq/be-secure-openssl.c:992 +#: libpq/be-secure-openssl.c:994 #, c-format msgid "could not load DH parameters file: %s" msgstr "не удалоÑÑŒ загрузить файл параметров DH: %s" -#: libpq/be-secure-openssl.c:1002 +#: libpq/be-secure-openssl.c:1004 #, c-format msgid "invalid DH parameters: %s" msgstr "неверные параметры DH: %s" -#: libpq/be-secure-openssl.c:1011 +#: libpq/be-secure-openssl.c:1013 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "неверные параметры DH: p - не проÑтое чиÑло" -#: libpq/be-secure-openssl.c:1020 +#: libpq/be-secure-openssl.c:1022 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "" "неверные параметры DH: нет подходÑщего генератора или небезопаÑное проÑтое " "чиÑло" -#: libpq/be-secure-openssl.c:1181 +#: libpq/be-secure-openssl.c:1183 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: не удалоÑÑŒ загрузить параметры DH" -#: libpq/be-secure-openssl.c:1189 +#: libpq/be-secure-openssl.c:1191 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: не удалоÑÑŒ задать параметры DH: %s" -#: libpq/be-secure-openssl.c:1216 +#: libpq/be-secure-openssl.c:1218 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: нераÑпознанное Ð¸Ð¼Ñ ÐºÑ€Ð¸Ð²Ð¾Ð¹: %s" -#: libpq/be-secure-openssl.c:1225 +#: libpq/be-secure-openssl.c:1227 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: не удалоÑÑŒ Ñоздать ключ" -#: libpq/be-secure-openssl.c:1253 +#: libpq/be-secure-openssl.c:1255 msgid "no SSL error reported" msgstr "нет ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибке SSL" -#: libpq/be-secure-openssl.c:1257 +#: libpq/be-secure-openssl.c:1259 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" -#: libpq/be-secure-openssl.c:1416 +#: libpq/be-secure-openssl.c:1418 #, c-format msgid "could not create BIO" msgstr "не удалоÑÑŒ Ñоздать BIO" -#: libpq/be-secure-openssl.c:1426 +#: libpq/be-secure-openssl.c:1428 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "не удалоÑÑŒ получить NID Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1434 +#: libpq/be-secure-openssl.c:1436 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "не удалоÑÑŒ преобразовать NID %d в Ñтруктуру ASN1_OBJECT" @@ -16931,9 +16953,9 @@ msgid "could not accept new connection: %m" msgstr "не удалоÑÑŒ принÑÑ‚ÑŒ новое подключение: %m" #: libpq/pqcomm.c:766 libpq/pqcomm.c:775 libpq/pqcomm.c:807 libpq/pqcomm.c:817 -#: libpq/pqcomm.c:1642 libpq/pqcomm.c:1687 libpq/pqcomm.c:1727 -#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1810 libpq/pqcomm.c:1849 -#: libpq/pqcomm.c:1885 libpq/pqcomm.c:1924 +#: libpq/pqcomm.c:1652 libpq/pqcomm.c:1697 libpq/pqcomm.c:1737 +#: libpq/pqcomm.c:1781 libpq/pqcomm.c:1820 libpq/pqcomm.c:1859 +#: libpq/pqcomm.c:1895 libpq/pqcomm.c:1934 #, c-format msgid "%s(%s) failed: %m" msgstr "ошибка в %s(%s): %m" @@ -16943,47 +16965,47 @@ msgstr "ошибка в %s(%s): %m" msgid "there is no client connection" msgstr "нет клиентÑкого подключениÑ" -#: libpq/pqcomm.c:972 libpq/pqcomm.c:1068 +#: libpq/pqcomm.c:977 libpq/pqcomm.c:1078 #, c-format msgid "could not receive data from client: %m" msgstr "не удалоÑÑŒ получить данные от клиента: %m" -#: libpq/pqcomm.c:1173 tcop/postgres.c:4373 +#: libpq/pqcomm.c:1183 tcop/postgres.c:4373 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "закрытие Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð·-за потери Ñинхронизации протокола" -#: libpq/pqcomm.c:1239 +#: libpq/pqcomm.c:1249 #, c-format msgid "unexpected EOF within message length word" msgstr "неожиданный обрыв данных в Ñлове длины ÑообщениÑ" -#: libpq/pqcomm.c:1249 +#: libpq/pqcomm.c:1259 #, c-format msgid "invalid message length" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° ÑообщениÑ" -#: libpq/pqcomm.c:1271 libpq/pqcomm.c:1284 +#: libpq/pqcomm.c:1281 libpq/pqcomm.c:1294 #, c-format msgid "incomplete message from client" msgstr "неполное Ñообщение от клиента" -#: libpq/pqcomm.c:1395 +#: libpq/pqcomm.c:1405 #, c-format msgid "could not send data to client: %m" msgstr "не удалоÑÑŒ поÑлать данные клиенту: %m" -#: libpq/pqcomm.c:1610 +#: libpq/pqcomm.c:1620 #, c-format msgid "%s(%s) failed: error code %d" msgstr "ошибка в %s(%s): код ошибки %d" -#: libpq/pqcomm.c:1699 +#: libpq/pqcomm.c:1709 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "изменение Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ keepalives_idle не поддерживаетÑÑ" -#: libpq/pqcomm.c:1783 libpq/pqcomm.c:1858 libpq/pqcomm.c:1933 +#: libpq/pqcomm.c:1793 libpq/pqcomm.c:1868 libpq/pqcomm.c:1943 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) не поддерживаетÑÑ" @@ -16994,7 +17016,7 @@ msgid "no data left in message" msgstr "в Ñообщении не оÑталоÑÑŒ данных" #: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 -#: utils/adt/arrayfuncs.c:1482 utils/adt/rowtypes.c:588 +#: utils/adt/arrayfuncs.c:1483 utils/adt/rowtypes.c:588 #, c-format msgid "insufficient data left in message" msgstr "недоÑтаточно данных оÑталоÑÑŒ в Ñообщении" @@ -17436,7 +17458,7 @@ msgstr "Ð’Ñе Ñтолбцы должны иметь хешируемые тиРmsgid "could not implement %s" msgstr "не удалоÑÑŒ реализовать %s" -#: optimizer/util/clauses.c:4777 +#: optimizer/util/clauses.c:4843 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "Ð²Ð½ÐµÐ´Ñ€Ñ‘Ð½Ð½Ð°Ñ Ð² код SQL-Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ \"%s\"" @@ -17714,208 +17736,208 @@ msgstr "%s Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ к именованному хранРmsgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "отношение \"%s\" в определении %s отÑутÑтвует в предложении FROM" -#: parser/parse_agg.c:220 parser/parse_oper.c:227 +#: parser/parse_agg.c:208 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s не удалоÑÑŒ найти оператор Ñортировки" -#: parser/parse_agg.c:222 +#: parser/parse_agg.c:210 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Ðгрегатным функциÑм Ñ DISTINCT необходимо Ñортировать входные данные." -#: parser/parse_agg.c:257 +#: parser/parse_agg.c:268 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "у GROUPING должно быть меньше 32 аргументов" -#: parser/parse_agg.c:360 +#: parser/parse_agg.c:371 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… JOIN" -#: parser/parse_agg.c:362 +#: parser/parse_agg.c:373 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… JOIN" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:385 msgid "" "aggregate functions are not allowed in FROM clause of their own query level" msgstr "" "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в предложении FROM их ÑƒÑ€Ð¾Ð²Ð½Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа" -#: parser/parse_agg.c:376 +#: parser/parse_agg.c:387 msgid "" "grouping operations are not allowed in FROM clause of their own query level" msgstr "" "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в предложении FROM их ÑƒÑ€Ð¾Ð²Ð½Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа" -#: parser/parse_agg.c:381 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в функциÑÑ… во FROM" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в функциÑÑ… во FROM" -#: parser/parse_agg.c:391 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… политик" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… политик" -#: parser/parse_agg.c:410 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в указании RANGE Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" -#: parser/parse_agg.c:412 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в указании RANGE Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" -#: parser/parse_agg.c:417 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в указании ROWS Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в указании ROWS Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в указании GROUPS Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в указании GROUPS Ð´Ð»Ñ Ð¾ÐºÐ½Ð°" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… MERGE WHEN" -#: parser/parse_agg.c:441 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… MERGE WHEN" -#: parser/parse_agg.c:467 +#: parser/parse_agg.c:478 msgid "aggregate functions are not allowed in check constraints" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в ограничениÑÑ…-проверках" -#: parser/parse_agg.c:469 +#: parser/parse_agg.c:480 msgid "grouping operations are not allowed in check constraints" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в ограничениÑÑ…-проверках" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:487 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… DEFAULT" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:489 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… DEFAULT" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:494 msgid "aggregate functions are not allowed in index expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… индекÑов" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:496 msgid "grouping operations are not allowed in index expressions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… индекÑов" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:501 msgid "aggregate functions are not allowed in index predicates" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в предикатах индекÑов" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:503 msgid "grouping operations are not allowed in index predicates" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в предикатах индекÑов" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:508 msgid "aggregate functions are not allowed in statistics expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… ÑтатиÑтики" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:510 msgid "grouping operations are not allowed in statistics expressions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… ÑтатиÑтики" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:515 msgid "aggregate functions are not allowed in transform expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… преобразований" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:517 msgid "grouping operations are not allowed in transform expressions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… преобразований" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:522 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в параметрах EXECUTE" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:524 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в параметрах EXECUTE" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:529 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… WHEN Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³Ð³ÐµÑ€Ð¾Ð²" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:531 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… WHEN Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³Ð³ÐµÑ€Ð¾Ð²" -#: parser/parse_agg.c:525 +#: parser/parse_agg.c:536 msgid "aggregate functions are not allowed in partition bound" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражении границы Ñекции" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:538 msgid "grouping operations are not allowed in partition bound" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражении границы Ñекции" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:543 msgid "aggregate functions are not allowed in partition key expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… ключа ÑекционированиÑ" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:545 msgid "grouping operations are not allowed in partition key expressions" msgstr "" "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… ключа ÑекционированиÑ" -#: parser/parse_agg.c:540 +#: parser/parse_agg.c:551 msgid "aggregate functions are not allowed in column generation expressions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… генерируемых Ñтолбцов" -#: parser/parse_agg.c:542 +#: parser/parse_agg.c:553 msgid "grouping operations are not allowed in column generation expressions" msgstr "" "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… генерируемых Ñтолбцов" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:559 msgid "aggregate functions are not allowed in CALL arguments" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в аргументах CALL" -#: parser/parse_agg.c:550 +#: parser/parse_agg.c:561 msgid "grouping operations are not allowed in CALL arguments" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в аргументах CALL" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:567 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "агрегатные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… COPY FROM WHERE" -#: parser/parse_agg.c:558 +#: parser/parse_agg.c:569 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:585 parser/parse_clause.c:1836 +#: parser/parse_agg.c:596 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:588 +#: parser/parse_agg.c:599 #, c-format msgid "grouping operations are not allowed in %s" msgstr "операции группировки Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в конÑтрукции %s" -#: parser/parse_agg.c:689 +#: parser/parse_agg.c:700 #, c-format msgid "" "outer-level aggregate cannot contain a lower-level variable in its direct " @@ -17924,14 +17946,14 @@ msgstr "" "Ð°Ð³Ñ€ÐµÐ³Ð°Ñ‚Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ ÑƒÑ€Ð¾Ð²Ð½Ñ Ð½Ðµ может Ñодержать в Ñвоих аргументах " "переменные нижнего уровнÑ" -#: parser/parse_agg.c:767 +#: parser/parse_agg.c:778 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "" "вызовы агрегатных функций не могут включать вызовы функций, возвращающих " "множеÑтва" -#: parser/parse_agg.c:768 parser/parse_expr.c:1674 parser/parse_expr.c:2156 +#: parser/parse_agg.c:779 parser/parse_expr.c:1674 parser/parse_expr.c:2156 #: parser/parse_func.c:883 #, c-format msgid "" @@ -17941,107 +17963,107 @@ msgstr "" "ИÑправить Ñитуацию можно, перемеÑтив функцию, возвращающую множеÑтво, в " "Ñлемент LATERAL FROM." -#: parser/parse_agg.c:773 +#: parser/parse_agg.c:784 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "вызовы агрегатных функций не могут включать вызовы оконных функции" -#: parser/parse_agg.c:852 +#: parser/parse_agg.c:863 msgid "window functions are not allowed in JOIN conditions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… JOIN" -#: parser/parse_agg.c:859 +#: parser/parse_agg.c:870 msgid "window functions are not allowed in functions in FROM" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в функциÑÑ… во FROM" -#: parser/parse_agg.c:865 +#: parser/parse_agg.c:876 msgid "window functions are not allowed in policy expressions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… политик" -#: parser/parse_agg.c:878 +#: parser/parse_agg.c:889 msgid "window functions are not allowed in window definitions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в определении окна" -#: parser/parse_agg.c:889 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… MERGE WHEN" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in check constraints" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в ограничениÑÑ…-проверках" -#: parser/parse_agg.c:917 +#: parser/parse_agg.c:928 msgid "window functions are not allowed in DEFAULT expressions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… DEFAULT" -#: parser/parse_agg.c:920 +#: parser/parse_agg.c:931 msgid "window functions are not allowed in index expressions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… индекÑов" -#: parser/parse_agg.c:923 +#: parser/parse_agg.c:934 msgid "window functions are not allowed in statistics expressions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… ÑтатиÑтики" -#: parser/parse_agg.c:926 +#: parser/parse_agg.c:937 msgid "window functions are not allowed in index predicates" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в предикатах индекÑов" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in transform expressions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… преобразований" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:943 msgid "window functions are not allowed in EXECUTE parameters" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в параметрах EXECUTE" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:946 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… WHEN Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³Ð³ÐµÑ€Ð¾Ð²" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:949 msgid "window functions are not allowed in partition bound" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражении границы Ñекции" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:952 msgid "window functions are not allowed in partition key expressions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в выражениÑÑ… ключа ÑекционированиÑ" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:955 msgid "window functions are not allowed in CALL arguments" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в аргументах CALL" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:958 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в уÑловиÑÑ… COPY FROM WHERE" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:961 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:973 parser/parse_clause.c:1845 +#: parser/parse_agg.c:984 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "оконные функции Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÑÑ‚ÑŒ в конÑтрукции %s" -#: parser/parse_agg.c:1007 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1018 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "окно \"%s\" не ÑущеÑтвует" -#: parser/parse_agg.c:1091 +#: parser/parse_agg.c:1102 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "Ñлишком много наборов Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (при макÑимуме 4096)" -#: parser/parse_agg.c:1231 +#: parser/parse_agg.c:1242 #, c-format msgid "" "aggregate functions are not allowed in a recursive query's recursive term" msgstr "" "в рекурÑивной чаÑти рекурÑивного запроÑа агрегатные функции недопуÑтимы" -#: parser/parse_agg.c:1424 +#: parser/parse_agg.c:1435 #, c-format msgid "" "column \"%s.%s\" must appear in the GROUP BY clause or be used in an " @@ -18050,7 +18072,7 @@ msgstr "" "Ñтолбец \"%s.%s\" должен фигурировать в предложении GROUP BY или " "иÑпользоватьÑÑ Ð² агрегатной функции" -#: parser/parse_agg.c:1427 +#: parser/parse_agg.c:1438 #, c-format msgid "" "Direct arguments of an ordered-set aggregate must use only grouped columns." @@ -18058,13 +18080,13 @@ msgstr "" "ПрÑмые аргументы Ñортирующей агрегатной функции могут включать только " "группируемые Ñтолбцы." -#: parser/parse_agg.c:1432 +#: parser/parse_agg.c:1443 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "" "Ð¿Ð¾Ð´Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¸Ñпользует негруппированный Ñтолбец \"%s.%s\" из внешнего запроÑа" -#: parser/parse_agg.c:1596 +#: parser/parse_agg.c:1607 #, c-format msgid "" "arguments to GROUPING must be grouping expressions of the associated query " @@ -20421,14 +20443,14 @@ msgid "huge pages not supported with the current shared_memory_type setting" msgstr "" "огромные Ñтраницы не поддерживаютÑÑ Ñ Ñ‚ÐµÐºÑƒÑ‰Ð¸Ð¼ значением shared_memory_type" -#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1187 +#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1195 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "" "ранее выделенный блок разделÑемой памÑти (ключ %lu, ID %lu) по-прежнему " "иÑпользуетÑÑ" -#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1189 +#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1197 #, c-format msgid "" "Terminate any old server processes associated with data directory \"%s\"." @@ -21019,8 +21041,8 @@ msgstr "" "%u.0 - %u.%u" #: postmaster/postmaster.c:2264 utils/misc/guc.c:7400 utils/misc/guc.c:7436 -#: utils/misc/guc.c:7506 utils/misc/guc.c:8937 utils/misc/guc.c:11979 -#: utils/misc/guc.c:12020 +#: utils/misc/guc.c:7506 utils/misc/guc.c:8944 utils/misc/guc.c:11986 +#: utils/misc/guc.c:12027 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "неверное значение Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"%s\": \"%s\"" @@ -21567,13 +21589,13 @@ msgstr "" "не удалоÑÑŒ получить идентификатор СУБД и код линии времени Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ " "Ñервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:384 -#: replication/libpqwalreceiver/libpqwalreceiver.c:622 +#: replication/libpqwalreceiver/libpqwalreceiver.c:388 +#: replication/libpqwalreceiver/libpqwalreceiver.c:626 #, c-format msgid "invalid response from primary server" msgstr "неверный ответ главного Ñервера" -#: replication/libpqwalreceiver/libpqwalreceiver.c:385 +#: replication/libpqwalreceiver/libpqwalreceiver.c:389 #, c-format msgid "" "Could not identify system: got %d rows and %d fields, expected %d rows and " @@ -21582,86 +21604,86 @@ msgstr "" "Ðе удалоÑÑŒ идентифицировать ÑиÑтему, получено Ñтрок: %d, полей: %d " "(ожидалоÑÑŒ: %d и %d (или более))." -#: replication/libpqwalreceiver/libpqwalreceiver.c:465 -#: replication/libpqwalreceiver/libpqwalreceiver.c:472 -#: replication/libpqwalreceiver/libpqwalreceiver.c:502 +#: replication/libpqwalreceiver/libpqwalreceiver.c:469 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:506 #, c-format msgid "could not start WAL streaming: %s" msgstr "не удалоÑÑŒ начать транÑлÑцию WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:526 +#: replication/libpqwalreceiver/libpqwalreceiver.c:530 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не удалоÑÑŒ отправить главному Ñерверу Ñообщение о конце передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:549 +#: replication/libpqwalreceiver/libpqwalreceiver.c:553 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неожиданный набор данных поÑле конца передачи" -#: replication/libpqwalreceiver/libpqwalreceiver.c:564 +#: replication/libpqwalreceiver/libpqwalreceiver.c:568 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "ошибка при оÑтановке потоковой операции COPY: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:574 +#: replication/libpqwalreceiver/libpqwalreceiver.c:578 #, c-format msgid "error reading result of streaming command: %s" msgstr "ошибка при чтении результата команды передачи: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:583 -#: replication/libpqwalreceiver/libpqwalreceiver.c:821 +#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:825 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неожиданный результат поÑле CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:610 +#: replication/libpqwalreceiver/libpqwalreceiver.c:614 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не удалоÑÑŒ получить файл иÑтории линии времени Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ Ñервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "ОжидалÑÑ 1 кортеж Ñ 2 полÑми, однако получено кортежей: %d, полей: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:784 -#: replication/libpqwalreceiver/libpqwalreceiver.c:837 -#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:788 +#: replication/libpqwalreceiver/libpqwalreceiver.c:841 +#: replication/libpqwalreceiver/libpqwalreceiver.c:848 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не удалоÑÑŒ получить данные из потока WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:864 +#: replication/libpqwalreceiver/libpqwalreceiver.c:868 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не удалоÑÑŒ отправить данные в поток WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:956 +#: replication/libpqwalreceiver/libpqwalreceiver.c:960 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не удалоÑÑŒ Ñоздать Ñлот репликации \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1002 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1006 #, c-format msgid "invalid query response" msgstr "неверный ответ на запроÑ" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1007 #, c-format msgid "Expected %d fields, got %d fields." msgstr "ОжидалоÑÑŒ полей: %d, получено: %d." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1073 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1077 #, c-format msgid "the query interface requires a database connection" msgstr "Ð´Ð»Ñ Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñа запроÑов требуетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ к БД" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1104 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1108 msgid "empty query" msgstr "пуÑтой запроÑ" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1110 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1114 msgid "unexpected pipeline mode" msgstr "неожиданный режим канала" @@ -22100,25 +22122,25 @@ msgstr "" "применÑющий процеÑÑ Ð»Ð¾Ð³Ð¸Ñ‡ÐµÑкой репликации Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñки \"%s\" будет " "перезапущен, чтобы можно было включить режим two_phase" -#: replication/logical/tablesync.c:731 replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:741 replication/logical/tablesync.c:882 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалоÑÑŒ получить информацию о таблице \"%s.%s\" Ñ Ñервера публикации: %s" -#: replication/logical/tablesync.c:738 +#: replication/logical/tablesync.c:748 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "таблица \"%s.%s\" не найдена на Ñервере публикации" -#: replication/logical/tablesync.c:795 +#: replication/logical/tablesync.c:805 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "" "не удалоÑÑŒ получить информацию о ÑпиÑке Ñтолбцов таблицы \"%s.%s\" Ñ Ñервера " "публикации: %s" -#: replication/logical/tablesync.c:974 +#: replication/logical/tablesync.c:984 #, c-format msgid "" "could not fetch table WHERE clause info for table \"%s.%s\" from publisher: " @@ -22127,13 +22149,13 @@ msgstr "" "не удалоÑÑŒ получить информацию о предложении WHERE таблицы \"%s.%s\" Ñ " "Ñервера публикации: %s" -#: replication/logical/tablesync.c:1111 +#: replication/logical/tablesync.c:1129 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "" "не удалоÑÑŒ начать копирование начального Ñодержимого таблицы \"%s.%s\": %s" -#: replication/logical/tablesync.c:1323 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1341 replication/logical/worker.c:1635 #, c-format msgid "" "user \"%s\" cannot replicate into relation with row-level security enabled: " @@ -22142,19 +22164,19 @@ msgstr "" "пользователь \"%s\" не может реплицировать данные в отношение Ñ Ð²ÐºÐ»ÑŽÑ‡Ñ‘Ð½Ð½Ð¾Ð¹ " "защитой на уровне Ñтрок: \"%s\"" -#: replication/logical/tablesync.c:1338 +#: replication/logical/tablesync.c:1356 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "" "при копировании таблицы не удалоÑÑŒ начать транзакцию на Ñервере публикации: " "%s" -#: replication/logical/tablesync.c:1380 +#: replication/logical/tablesync.c:1398 #, c-format msgid "replication origin \"%s\" already exists" msgstr "иÑточник репликации \"%s\" уже ÑущеÑтвует" -#: replication/logical/tablesync.c:1393 +#: replication/logical/tablesync.c:1411 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "" @@ -23779,17 +23801,17 @@ msgstr "не удалоÑÑŒ закрыть Ñегмент разделÑемой msgid "could not duplicate handle for \"%s\": %m" msgstr "не удалоÑÑŒ продублировать указатель Ð´Ð»Ñ \"%s\": %m" -#: storage/ipc/procarray.c:3846 +#: storage/ipc/procarray.c:3845 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "база \"%s\" иÑпользуетÑÑ Ð¿Ð¾Ð´Ð³Ð¾Ñ‚Ð¾Ð²Ð»ÐµÐ½Ð½Ñ‹Ð¼Ð¸ транзакциÑми" -#: storage/ipc/procarray.c:3878 storage/ipc/signalfuncs.c:226 +#: storage/ipc/procarray.c:3877 storage/ipc/signalfuncs.c:231 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "прерывать процеÑÑ ÑÑƒÐ¿ÐµÑ€Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ‚ только Ñуперпользователь" -#: storage/ipc/procarray.c:3885 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3884 storage/ipc/signalfuncs.c:236 #, c-format msgid "" "must be a member of the role whose process is being terminated or member of " @@ -23863,18 +23885,18 @@ msgstr "запрошенный размер разделÑемой памÑти msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d не отноÑитÑÑ Ðº обÑлуживающему процеÑÑу PostgreSQL" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1442 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1442 #: utils/adt/mcxtfuncs.c:190 #, c-format msgid "could not send signal to process %d: %m" msgstr "отправить Ñигнал процеÑÑу %d не удалоÑÑŒ: %m" -#: storage/ipc/signalfuncs.c:124 +#: storage/ipc/signalfuncs.c:129 #, c-format msgid "must be a superuser to cancel superuser query" msgstr "Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹ запроÑа ÑÑƒÐ¿ÐµÑ€Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½ÑƒÐ¶Ð½Ð¾ быть Ñуперпользователем" -#: storage/ipc/signalfuncs.c:129 +#: storage/ipc/signalfuncs.c:134 #, c-format msgid "" "must be a member of the role whose query is being canceled or member of " @@ -23883,13 +23905,13 @@ msgstr "" "необходимо быть членом роли, Ð·Ð°Ð¿Ñ€Ð¾Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ отменÑетÑÑ, или роли " "pg_signal_backend" -#: storage/ipc/signalfuncs.c:170 +#: storage/ipc/signalfuncs.c:175 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "" "не удалоÑÑŒ проверить ÑущеÑтвование обÑлуживающего процеÑÑа Ñ PID %d: %m" -#: storage/ipc/signalfuncs.c:188 +#: storage/ipc/signalfuncs.c:193 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" @@ -23897,12 +23919,12 @@ msgstr[0] "обÑлуживающий процеÑÑ Ñ PID %d не заверш msgstr[1] "обÑлуживающий процеÑÑ Ñ PID %d не завершилÑÑ Ð·Ð° %lld мÑ" msgstr[2] "обÑлуживающий процеÑÑ Ñ PID %d не завершилÑÑ Ð·Ð° %lld мÑ" -#: storage/ipc/signalfuncs.c:219 +#: storage/ipc/signalfuncs.c:224 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" не может быть отрицательным" -#: storage/ipc/signalfuncs.c:271 +#: storage/ipc/signalfuncs.c:276 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" msgstr "" @@ -23910,12 +23932,12 @@ msgstr "" "Ñуперпользователь" #. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:273 utils/adt/genfile.c:250 +#: storage/ipc/signalfuncs.c:278 utils/adt/genfile.c:250 #, c-format msgid "Consider using %s, which is part of core, instead." msgstr "РаÑÑмотрите возможноÑÑ‚ÑŒ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ %s, включённой в Ñдро." -#: storage/ipc/signalfuncs.c:279 storage/ipc/signalfuncs.c:299 +#: storage/ipc/signalfuncs.c:284 storage/ipc/signalfuncs.c:304 #, c-format msgid "rotation not possible because log collection not active" msgstr "прокрутка невозможна, так как протоколирование отключено" @@ -25064,38 +25086,38 @@ msgstr "Значение MaxFragments должно быть >= 0" msgid "could not unlink permanent statistics file \"%s\": %m" msgstr "ошибка ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑтоÑнного файла ÑтатиÑтики \"%s\": %m" -#: utils/activity/pgstat.c:1226 +#: utils/activity/pgstat.c:1229 #, c-format msgid "invalid statistics kind: \"%s\"" msgstr "неверный вид ÑтатиÑтики: \"%s\"" -#: utils/activity/pgstat.c:1306 +#: utils/activity/pgstat.c:1309 #, c-format msgid "could not open temporary statistics file \"%s\": %m" msgstr "не удалоÑÑŒ открыть временный файл ÑтатиÑтики \"%s\": %m" -#: utils/activity/pgstat.c:1412 +#: utils/activity/pgstat.c:1415 #, c-format msgid "could not write temporary statistics file \"%s\": %m" msgstr "не удалоÑÑŒ запиÑать во временный файл ÑтатиÑтики \"%s\": %m" -#: utils/activity/pgstat.c:1421 +#: utils/activity/pgstat.c:1424 #, c-format msgid "could not close temporary statistics file \"%s\": %m" msgstr "не удалоÑÑŒ закрыть временный файл ÑтатиÑтики \"%s\": %m" -#: utils/activity/pgstat.c:1429 +#: utils/activity/pgstat.c:1432 #, c-format msgid "could not rename temporary statistics file \"%s\" to \"%s\": %m" msgstr "" "не удалоÑÑŒ переименовать временный файл ÑтатиÑтики из \"%s\" в \"%s\": %m" -#: utils/activity/pgstat.c:1478 +#: utils/activity/pgstat.c:1481 #, c-format msgid "could not open statistics file \"%s\": %m" msgstr "не удалоÑÑŒ открыть файл ÑтатиÑтики \"%s\": %m" -#: utils/activity/pgstat.c:1634 +#: utils/activity/pgstat.c:1637 #, c-format msgid "corrupted statistics file \"%s\"" msgstr "файл ÑтатиÑтики \"%s\" иÑпорчен" @@ -25293,59 +25315,59 @@ msgstr "поиÑк Ñлементов в многомерных маÑÑивах msgid "initial position must not be null" msgstr "Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ðµ может быть NULL" -#: utils/adt/arrayfuncs.c:271 utils/adt/arrayfuncs.c:285 -#: utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:318 -#: utils/adt/arrayfuncs.c:333 utils/adt/arrayfuncs.c:347 -#: utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360 -#: utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:509 -#: utils/adt/arrayfuncs.c:520 utils/adt/arrayfuncs.c:535 -#: utils/adt/arrayfuncs.c:556 utils/adt/arrayfuncs.c:586 -#: utils/adt/arrayfuncs.c:593 utils/adt/arrayfuncs.c:601 -#: utils/adt/arrayfuncs.c:635 utils/adt/arrayfuncs.c:658 -#: utils/adt/arrayfuncs.c:678 utils/adt/arrayfuncs.c:790 -#: utils/adt/arrayfuncs.c:799 utils/adt/arrayfuncs.c:829 -#: utils/adt/arrayfuncs.c:844 utils/adt/arrayfuncs.c:897 +#: utils/adt/arrayfuncs.c:272 utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:334 utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:510 +#: utils/adt/arrayfuncs.c:521 utils/adt/arrayfuncs.c:536 +#: utils/adt/arrayfuncs.c:557 utils/adt/arrayfuncs.c:587 +#: utils/adt/arrayfuncs.c:594 utils/adt/arrayfuncs.c:602 +#: utils/adt/arrayfuncs.c:636 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:679 utils/adt/arrayfuncs.c:791 +#: utils/adt/arrayfuncs.c:800 utils/adt/arrayfuncs.c:830 +#: utils/adt/arrayfuncs.c:845 utils/adt/arrayfuncs.c:898 #, c-format msgid "malformed array literal: \"%s\"" msgstr "ошибочный литерал маÑÑива: \"%s\"" -#: utils/adt/arrayfuncs.c:272 +#: utils/adt/arrayfuncs.c:273 #, c-format msgid "\"[\" must introduce explicitly-specified array dimensions." msgstr "За \"[\" должны Ñледовать Ñвно задаваемые размерноÑти маÑÑива." -#: utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:287 #, c-format msgid "Missing array dimension value." msgstr "ОтÑутÑтвует значение размерноÑти маÑÑива." -#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:334 +#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:335 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "ПоÑле размерноÑтей маÑÑива отÑутÑтвует \"%s\"." -#: utils/adt/arrayfuncs.c:306 utils/adt/arrayfuncs.c:2909 -#: utils/adt/arrayfuncs.c:2941 utils/adt/arrayfuncs.c:2956 +#: utils/adt/arrayfuncs.c:307 utils/adt/arrayfuncs.c:2945 +#: utils/adt/arrayfuncs.c:2990 utils/adt/arrayfuncs.c:3005 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "верхнÑÑ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ð° не может быть меньше нижней" -#: utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:320 #, c-format msgid "Array value must start with \"{\" or dimension information." msgstr "Значение маÑÑива должно начинатьÑÑ Ñ \"{\" или ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð½Ð¾Ñти." -#: utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:349 #, c-format msgid "Array contents must start with \"{\"." msgstr "Содержимое маÑÑива должно начинатьÑÑ Ñ \"{\"." -#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:355 utils/adt/arrayfuncs.c:362 #, c-format msgid "Specified array dimensions do not match array contents." msgstr "Указанные размерноÑти маÑÑива не ÑоответÑтвуют его Ñодержимому." -#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:521 +#: utils/adt/arrayfuncs.c:495 utils/adt/arrayfuncs.c:522 #: utils/adt/multirangetypes.c:164 utils/adt/rangetypes.c:2310 #: utils/adt/rangetypes.c:2318 utils/adt/rowtypes.c:211 #: utils/adt/rowtypes.c:219 @@ -25353,78 +25375,78 @@ msgstr "Указанные размерноÑти маÑÑива не Ñоотв msgid "Unexpected end of input." msgstr "Ðеожиданный конец ввода." -#: utils/adt/arrayfuncs.c:510 utils/adt/arrayfuncs.c:557 -#: utils/adt/arrayfuncs.c:587 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:511 utils/adt/arrayfuncs.c:558 +#: utils/adt/arrayfuncs.c:588 utils/adt/arrayfuncs.c:637 #, c-format msgid "Unexpected \"%c\" character." msgstr "Ðеожиданный знак \"%c\"." -#: utils/adt/arrayfuncs.c:536 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:537 utils/adt/arrayfuncs.c:660 #, c-format msgid "Unexpected array element." msgstr "Ðеожиданный Ñлемент маÑÑива." -#: utils/adt/arrayfuncs.c:594 +#: utils/adt/arrayfuncs.c:595 #, c-format msgid "Unmatched \"%c\" character." msgstr "Ðепарный знак \"%c\"." -#: utils/adt/arrayfuncs.c:602 utils/adt/jsonfuncs.c:2490 +#: utils/adt/arrayfuncs.c:603 utils/adt/jsonfuncs.c:2490 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "" "Ð”Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¾Ð¼ÐµÑ€Ð½Ñ‹Ñ… маÑÑивов должны задаватьÑÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñ‹Ðµ маÑÑивы Ñ " "ÑоответÑтвующими размерноÑÑ‚Ñми." -#: utils/adt/arrayfuncs.c:679 utils/adt/multirangetypes.c:287 +#: utils/adt/arrayfuncs.c:680 utils/adt/multirangetypes.c:287 #, c-format msgid "Junk after closing right brace." msgstr "МуÑор поÑле закрывающей фигурной Ñкобки." -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3369 -#: utils/adt/arrayfuncs.c:5883 +#: utils/adt/arrayfuncs.c:1302 utils/adt/arrayfuncs.c:3418 +#: utils/adt/arrayfuncs.c:5932 #, c-format msgid "invalid number of dimensions: %d" msgstr "неверное чиÑло размерноÑтей: %d" -#: utils/adt/arrayfuncs.c:1312 +#: utils/adt/arrayfuncs.c:1313 #, c-format msgid "invalid array flags" msgstr "неверные флаги маÑÑива" -#: utils/adt/arrayfuncs.c:1334 +#: utils/adt/arrayfuncs.c:1335 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "" "Ñ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ð¼Ð¸ данными ÑвÑзан тип Ñлемента маÑÑива %u (%s) вмеÑто ожидаемого %u " "(%s)" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:445 +#: utils/adt/arrayfuncs.c:1379 utils/adt/multirangetypes.c:445 #: utils/adt/rangetypes.c:333 utils/cache/lsyscache.c:2915 #, c-format msgid "no binary input function available for type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s нет функции ввода двоичных данных" -#: utils/adt/arrayfuncs.c:1518 +#: utils/adt/arrayfuncs.c:1519 #, c-format msgid "improper binary format in array element %d" msgstr "неподходÑщий двоичный формат в Ñлементе маÑÑива %d" -#: utils/adt/arrayfuncs.c:1599 utils/adt/multirangetypes.c:450 +#: utils/adt/arrayfuncs.c:1600 utils/adt/multirangetypes.c:450 #: utils/adt/rangetypes.c:338 utils/cache/lsyscache.c:2948 #, c-format msgid "no binary output function available for type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s нет функции вывода двоичных данных" -#: utils/adt/arrayfuncs.c:2078 +#: utils/adt/arrayfuncs.c:2079 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "разрезание маÑÑивов поÑтоÑнной длины не поддерживаетÑÑ" -#: utils/adt/arrayfuncs.c:2256 utils/adt/arrayfuncs.c:2278 -#: utils/adt/arrayfuncs.c:2327 utils/adt/arrayfuncs.c:2565 -#: utils/adt/arrayfuncs.c:2887 utils/adt/arrayfuncs.c:5869 -#: utils/adt/arrayfuncs.c:5895 utils/adt/arrayfuncs.c:5906 +#: utils/adt/arrayfuncs.c:2257 utils/adt/arrayfuncs.c:2279 +#: utils/adt/arrayfuncs.c:2328 utils/adt/arrayfuncs.c:2582 +#: utils/adt/arrayfuncs.c:2920 utils/adt/arrayfuncs.c:5918 +#: utils/adt/arrayfuncs.c:5944 utils/adt/arrayfuncs.c:5955 #: utils/adt/json.c:1141 utils/adt/json.c:1215 utils/adt/jsonb.c:1315 #: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4326 utils/adt/jsonfuncs.c:4480 #: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4641 @@ -25432,28 +25454,28 @@ msgstr "разрезание маÑÑивов поÑтоÑнной длины н msgid "wrong number of array subscripts" msgstr "неверное чиÑло индекÑов маÑÑива" -#: utils/adt/arrayfuncs.c:2261 utils/adt/arrayfuncs.c:2369 -#: utils/adt/arrayfuncs.c:2632 utils/adt/arrayfuncs.c:2946 +#: utils/adt/arrayfuncs.c:2262 utils/adt/arrayfuncs.c:2386 +#: utils/adt/arrayfuncs.c:2665 utils/adt/arrayfuncs.c:2995 #, c-format msgid "array subscript out of range" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð°ÑÑива вне диапазона" -#: utils/adt/arrayfuncs.c:2266 +#: utils/adt/arrayfuncs.c:2267 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€Ð¸Ñвоить значение null Ñлементу маÑÑива фикÑированной длины" -#: utils/adt/arrayfuncs.c:2834 +#: utils/adt/arrayfuncs.c:2867 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñрезах маÑÑивов фикÑированной длины не поддерживаютÑÑ" -#: utils/adt/arrayfuncs.c:2865 +#: utils/adt/arrayfuncs.c:2898 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "в указании Ñреза маÑÑива должны быть заданы обе границы" -#: utils/adt/arrayfuncs.c:2866 +#: utils/adt/arrayfuncs.c:2899 #, c-format msgid "" "When assigning to a slice of an empty array value, slice boundaries must be " @@ -25462,90 +25484,90 @@ msgstr "" "При приÑвоении значений Ñрезу в пуÑтом маÑÑиве, должны полноÑтью задаватьÑÑ " "обе границы." -#: utils/adt/arrayfuncs.c:2877 utils/adt/arrayfuncs.c:2973 +#: utils/adt/arrayfuncs.c:2910 utils/adt/arrayfuncs.c:3022 #, c-format msgid "source array too small" msgstr "иÑходный маÑÑив Ñлишком мал" -#: utils/adt/arrayfuncs.c:3527 +#: utils/adt/arrayfuncs.c:3576 #, c-format msgid "null array element not allowed in this context" msgstr "Ñлемент маÑÑива null недопуÑтим в данном контекÑте" -#: utils/adt/arrayfuncs.c:3629 utils/adt/arrayfuncs.c:3800 -#: utils/adt/arrayfuncs.c:4191 +#: utils/adt/arrayfuncs.c:3678 utils/adt/arrayfuncs.c:3849 +#: utils/adt/arrayfuncs.c:4240 #, c-format msgid "cannot compare arrays of different element types" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ñравнивать маÑÑивы Ñ Ñлементами разных типов" -#: utils/adt/arrayfuncs.c:3978 utils/adt/multirangetypes.c:2799 +#: utils/adt/arrayfuncs.c:4027 utils/adt/multirangetypes.c:2799 #: utils/adt/multirangetypes.c:2871 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" msgstr "не удалоÑÑŒ найти функцию Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s" -#: utils/adt/arrayfuncs.c:4106 utils/adt/rowtypes.c:1979 +#: utils/adt/arrayfuncs.c:4155 utils/adt/rowtypes.c:1979 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "не удалоÑÑŒ найти функцию раÑширенного Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s" -#: utils/adt/arrayfuncs.c:5283 +#: utils/adt/arrayfuncs.c:5332 #, c-format msgid "data type %s is not an array type" msgstr "тип данных %s не ÑвлÑетÑÑ Ñ‚Ð¸Ð¿Ð¾Ð¼ маÑÑива" -#: utils/adt/arrayfuncs.c:5338 +#: utils/adt/arrayfuncs.c:5387 #, c-format msgid "cannot accumulate null arrays" msgstr "аккумулировать NULL-маÑÑивы нельзÑ" -#: utils/adt/arrayfuncs.c:5366 +#: utils/adt/arrayfuncs.c:5415 #, c-format msgid "cannot accumulate empty arrays" msgstr "аккумулировать пуÑтые маÑÑивы нельзÑ" -#: utils/adt/arrayfuncs.c:5393 utils/adt/arrayfuncs.c:5399 +#: utils/adt/arrayfuncs.c:5442 utils/adt/arrayfuncs.c:5448 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "аккумулировать маÑÑивы различной размерноÑти нельзÑ" -#: utils/adt/arrayfuncs.c:5767 utils/adt/arrayfuncs.c:5807 +#: utils/adt/arrayfuncs.c:5816 utils/adt/arrayfuncs.c:5856 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "маÑÑив размерноÑтей или маÑÑив нижних границ не может быть null" -#: utils/adt/arrayfuncs.c:5870 utils/adt/arrayfuncs.c:5896 +#: utils/adt/arrayfuncs.c:5919 utils/adt/arrayfuncs.c:5945 #, c-format msgid "Dimension array must be one dimensional." msgstr "МаÑÑив размерноÑтей должен быть одномерным." -#: utils/adt/arrayfuncs.c:5875 utils/adt/arrayfuncs.c:5901 +#: utils/adt/arrayfuncs.c:5924 utils/adt/arrayfuncs.c:5950 #, c-format msgid "dimension values cannot be null" msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð½Ð¾Ñтей не могут быть null" -#: utils/adt/arrayfuncs.c:5907 +#: utils/adt/arrayfuncs.c:5956 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "МаÑÑив нижних границ и маÑÑив размерноÑтей имеют разные размеры." -#: utils/adt/arrayfuncs.c:6185 +#: utils/adt/arrayfuncs.c:6234 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "удаление Ñлементов из многомерных маÑÑивов не поддерживаетÑÑ" -#: utils/adt/arrayfuncs.c:6462 +#: utils/adt/arrayfuncs.c:6511 #, c-format msgid "thresholds must be one-dimensional array" msgstr "границы должны задаватьÑÑ Ð¾Ð´Ð½Ð¾Ð¼ÐµÑ€Ð½Ñ‹Ð¼ маÑÑивом" -#: utils/adt/arrayfuncs.c:6467 +#: utils/adt/arrayfuncs.c:6516 #, c-format msgid "thresholds array must not contain NULLs" msgstr "маÑÑив границ не должен Ñодержать NULL" -#: utils/adt/arrayfuncs.c:6700 +#: utils/adt/arrayfuncs.c:6749 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "чиÑло удалÑемых Ñлементов должно быть от 0 до %d" @@ -25560,22 +25582,22 @@ msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ñлемента маÑÑива должен быть цеРmsgid "array subscript in assignment must not be null" msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ñлемента маÑÑива в приÑваивании не может быть NULL" -#: utils/adt/arrayutils.c:140 +#: utils/adt/arrayutils.c:134 #, c-format msgid "array lower bound is too large: %d" msgstr "нижнÑÑ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ð° маÑÑива Ñлишком велика: %d" -#: utils/adt/arrayutils.c:240 +#: utils/adt/arrayutils.c:234 #, c-format msgid "typmod array must be type cstring[]" msgstr "маÑÑив typmod должен иметь тип cstring[]" -#: utils/adt/arrayutils.c:245 +#: utils/adt/arrayutils.c:239 #, c-format msgid "typmod array must be one-dimensional" msgstr "маÑÑив typmod должен быть одномерным" -#: utils/adt/arrayutils.c:250 +#: utils/adt/arrayutils.c:244 #, c-format msgid "typmod array must not contain nulls" msgstr "маÑÑив typmod не должен Ñодержать Ñлементы null" @@ -25625,7 +25647,7 @@ msgstr "значение \"%s\" вне диапазона Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s" #: utils/adt/int8.c:1165 utils/adt/numeric.c:3093 utils/adt/numeric.c:3116 #: utils/adt/numeric.c:3201 utils/adt/numeric.c:3219 utils/adt/numeric.c:3315 #: utils/adt/numeric.c:8481 utils/adt/numeric.c:8771 utils/adt/numeric.c:9096 -#: utils/adt/numeric.c:10553 utils/adt/timestamp.c:3337 +#: utils/adt/numeric.c:10553 utils/adt/timestamp.c:3361 #, c-format msgid "division by zero" msgstr "деление на ноль" @@ -25664,7 +25686,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:2209 +#: utils/adt/xml.c:2219 #, c-format msgid "date out of range" msgstr "дата вне диапазона" @@ -25691,20 +25713,20 @@ msgid "date out of range for timestamp" msgstr "дата вне диапазона Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° timestamp" #: utils/adt/date.c:1115 utils/adt/date.c:1198 utils/adt/date.c:1214 -#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4032 -#: utils/adt/timestamp.c:4225 utils/adt/timestamp.c:4397 -#: utils/adt/timestamp.c:4650 utils/adt/timestamp.c:4851 -#: utils/adt/timestamp.c:4898 utils/adt/timestamp.c:5122 -#: utils/adt/timestamp.c:5169 utils/adt/timestamp.c:5299 +#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4078 +#: utils/adt/timestamp.c:4271 utils/adt/timestamp.c:4443 +#: utils/adt/timestamp.c:4696 utils/adt/timestamp.c:4897 +#: utils/adt/timestamp.c:4944 utils/adt/timestamp.c:5168 +#: utils/adt/timestamp.c:5215 utils/adt/timestamp.c:5345 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "единица \"%s\" Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s не поддерживаетÑÑ" #: utils/adt/date.c:1223 utils/adt/date.c:2211 utils/adt/date.c:2993 -#: utils/adt/timestamp.c:4046 utils/adt/timestamp.c:4242 -#: utils/adt/timestamp.c:4411 utils/adt/timestamp.c:4610 -#: utils/adt/timestamp.c:4907 utils/adt/timestamp.c:5178 -#: utils/adt/timestamp.c:5360 +#: utils/adt/timestamp.c:4092 utils/adt/timestamp.c:4288 +#: utils/adt/timestamp.c:4457 utils/adt/timestamp.c:4656 +#: utils/adt/timestamp.c:4953 utils/adt/timestamp.c:5224 +#: utils/adt/timestamp.c:5406 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "единица \"%s\" Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s не раÑпознана" @@ -25718,21 +25740,22 @@ msgstr "единица \"%s\" Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° %s не раÑпознана" #: utils/adt/timestamp.c:699 utils/adt/timestamp.c:708 #: utils/adt/timestamp.c:786 utils/adt/timestamp.c:819 #: utils/adt/timestamp.c:2916 utils/adt/timestamp.c:2937 -#: utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2959 -#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:3022 -#: utils/adt/timestamp.c:3045 utils/adt/timestamp.c:3058 -#: utils/adt/timestamp.c:3069 utils/adt/timestamp.c:3077 -#: utils/adt/timestamp.c:3736 utils/adt/timestamp.c:3860 -#: utils/adt/timestamp.c:3950 utils/adt/timestamp.c:4040 -#: utils/adt/timestamp.c:4133 utils/adt/timestamp.c:4236 -#: utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4989 -#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5453 -#: utils/adt/timestamp.c:5458 utils/adt/timestamp.c:5472 -#: utils/adt/timestamp.c:5505 utils/adt/timestamp.c:5592 -#: utils/adt/timestamp.c:5633 utils/adt/timestamp.c:5637 -#: utils/adt/timestamp.c:5706 utils/adt/timestamp.c:5710 -#: utils/adt/timestamp.c:5724 utils/adt/timestamp.c:5758 utils/adt/xml.c:2231 -#: utils/adt/xml.c:2238 utils/adt/xml.c:2258 utils/adt/xml.c:2265 +#: utils/adt/timestamp.c:2950 utils/adt/timestamp.c:2961 +#: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:2975 +#: utils/adt/timestamp.c:3030 utils/adt/timestamp.c:3053 +#: utils/adt/timestamp.c:3066 utils/adt/timestamp.c:3080 +#: utils/adt/timestamp.c:3088 utils/adt/timestamp.c:3096 +#: utils/adt/timestamp.c:3782 utils/adt/timestamp.c:3906 +#: utils/adt/timestamp.c:3996 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:4179 utils/adt/timestamp.c:4282 +#: utils/adt/timestamp.c:4761 utils/adt/timestamp.c:5035 +#: utils/adt/timestamp.c:5485 utils/adt/timestamp.c:5499 +#: utils/adt/timestamp.c:5504 utils/adt/timestamp.c:5518 +#: utils/adt/timestamp.c:5551 utils/adt/timestamp.c:5638 +#: utils/adt/timestamp.c:5679 utils/adt/timestamp.c:5683 +#: utils/adt/timestamp.c:5752 utils/adt/timestamp.c:5756 +#: utils/adt/timestamp.c:5770 utils/adt/timestamp.c:5804 utils/adt/xml.c:2241 +#: utils/adt/xml.c:2248 utils/adt/xml.c:2268 utils/adt/xml.c:2275 #, c-format msgid "timestamp out of range" msgstr "timestamp вне диапазона" @@ -25750,8 +25773,8 @@ msgstr "значение Ð¿Ð¾Ð»Ñ Ñ‚Ð¸Ð¿Ð° time вне диапазона: %d:%0 #: 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:2497 -#: utils/adt/timestamp.c:3386 utils/adt/timestamp.c:3417 -#: utils/adt/timestamp.c:3448 +#: utils/adt/timestamp.c:3432 utils/adt/timestamp.c:3463 +#: utils/adt/timestamp.c:3494 #, c-format msgid "invalid preceding or following size in window function" msgstr "неверное Ñмещение PRECEDING или FOLLOWING в оконной функции" @@ -25763,13 +25786,13 @@ msgstr "Ñмещение чаÑового поÑÑа вне диапазона" #: utils/adt/date.c:3084 utils/adt/datetime.c:1121 utils/adt/datetime.c:2027 #: utils/adt/datetime.c:4898 utils/adt/timestamp.c:516 -#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4319 -#: utils/adt/timestamp.c:5464 utils/adt/timestamp.c:5716 +#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4365 +#: utils/adt/timestamp.c:5510 utils/adt/timestamp.c:5762 #, c-format msgid "time zone \"%s\" not recognized" msgstr "чаÑовой поÑÑ \"%s\" не раÑпознан" -#: utils/adt/date.c:3117 utils/adt/timestamp.c:5494 utils/adt/timestamp.c:5747 +#: utils/adt/date.c:3117 utils/adt/timestamp.c:5540 utils/adt/timestamp.c:5793 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "" @@ -26366,7 +26389,7 @@ msgid "invalid int2vector data" msgstr "неверные данные int2vector" #: utils/adt/int.c:1528 utils/adt/int8.c:1404 utils/adt/numeric.c:1678 -#: utils/adt/timestamp.c:5809 utils/adt/timestamp.c:5889 +#: utils/adt/timestamp.c:5855 utils/adt/timestamp.c:5935 #, c-format msgid "step size cannot equal zero" msgstr "размер шага не может быть нулевым" @@ -27601,7 +27624,7 @@ msgstr "" #: 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:11868 utils/misc/guc.c:11902 +#: utils/adt/regexp.c:1857 utils/misc/guc.c:11875 utils/misc/guc.c:11909 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неверное значение параметра \"%s\": %d" @@ -27878,7 +27901,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:12892 +#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12899 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "timestamp вне диапазона: \"%s\"" @@ -27918,14 +27941,13 @@ msgstr "timestamp вне диапазона: \"%g\"" #: utils/adt/timestamp.c:938 utils/adt/timestamp.c:1509 #: utils/adt/timestamp.c:2761 utils/adt/timestamp.c:2778 #: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2870 -#: utils/adt/timestamp.c:3115 utils/adt/timestamp.c:3120 -#: utils/adt/timestamp.c:3125 utils/adt/timestamp.c:3175 -#: utils/adt/timestamp.c:3182 utils/adt/timestamp.c:3189 -#: utils/adt/timestamp.c:3209 utils/adt/timestamp.c:3216 -#: utils/adt/timestamp.c:3223 utils/adt/timestamp.c:3253 -#: utils/adt/timestamp.c:3261 utils/adt/timestamp.c:3305 -#: utils/adt/timestamp.c:3731 utils/adt/timestamp.c:3855 -#: utils/adt/timestamp.c:4405 +#: utils/adt/timestamp.c:3134 utils/adt/timestamp.c:3139 +#: utils/adt/timestamp.c:3144 utils/adt/timestamp.c:3194 +#: utils/adt/timestamp.c:3201 utils/adt/timestamp.c:3208 +#: utils/adt/timestamp.c:3228 utils/adt/timestamp.c:3235 +#: utils/adt/timestamp.c:3242 utils/adt/timestamp.c:3329 +#: utils/adt/timestamp.c:3404 utils/adt/timestamp.c:3777 +#: utils/adt/timestamp.c:3901 utils/adt/timestamp.c:4451 #, c-format msgid "interval out of range" msgstr "interval вне диапазона" @@ -27955,23 +27977,23 @@ msgstr "точноÑÑ‚ÑŒ interval(%d) должна быть между %d и %d" msgid "cannot subtract infinite timestamps" msgstr "вычитать беÑконечные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ timestamp нельзÑ" -#: utils/adt/timestamp.c:3891 utils/adt/timestamp.c:4074 +#: utils/adt/timestamp.c:3937 utils/adt/timestamp.c:4120 #, c-format msgid "origin out of range" msgstr "начало вне диапазона" -#: utils/adt/timestamp.c:3896 utils/adt/timestamp.c:4079 +#: utils/adt/timestamp.c:3942 utils/adt/timestamp.c:4125 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "" "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ timestamp Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ð´Ð¾Ð³Ð½Ð°Ñ‚ÑŒ под интервалы, Ñодержащие меÑÑцы или годы" -#: utils/adt/timestamp.c:3903 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:3949 utils/adt/timestamp.c:4132 #, c-format msgid "stride must be greater than zero" msgstr "шаг должен быть больше нулÑ" -#: utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4445 #, c-format msgid "Months usually have fractional weeks." msgstr "Ð’ меÑÑцах обычно дробное количеÑтво недель." @@ -28390,57 +28412,57 @@ msgstr "ID транзакции %llu отноÑитÑÑ Ðº будущему" msgid "invalid external pg_snapshot data" msgstr "неверное внешнее предÑтавление pg_snapshot" -#: utils/adt/xml.c:222 +#: utils/adt/xml.c:232 #, c-format msgid "unsupported XML feature" msgstr "XML-функции не поддерживаютÑÑ" -#: utils/adt/xml.c:223 +#: utils/adt/xml.c:233 #, c-format msgid "This functionality requires the server to be built with libxml support." msgstr "Ð”Ð»Ñ Ñтой функциональноÑти в Ñервере не хватает поддержки libxml." -#: utils/adt/xml.c:242 utils/mb/mbutils.c:627 +#: utils/adt/xml.c:252 utils/mb/mbutils.c:627 #, c-format msgid "invalid encoding name \"%s\"" msgstr "неверное Ð¸Ð¼Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ¸: \"%s\"" -#: utils/adt/xml.c:485 utils/adt/xml.c:490 +#: utils/adt/xml.c:495 utils/adt/xml.c:500 #, c-format msgid "invalid XML comment" msgstr "ошибка в XML-комментарии" -#: utils/adt/xml.c:619 +#: utils/adt/xml.c:629 #, c-format msgid "not an XML document" msgstr "не XML-документ" -#: utils/adt/xml.c:778 utils/adt/xml.c:801 +#: utils/adt/xml.c:788 utils/adt/xml.c:811 #, c-format msgid "invalid XML processing instruction" msgstr "Ð½ÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ XML-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ (PI)" -#: utils/adt/xml.c:779 +#: utils/adt/xml.c:789 #, c-format msgid "XML processing instruction target name cannot be \"%s\"." msgstr "назначением XML-инÑтрукции обработки (PI) не может быть \"%s\"." -#: utils/adt/xml.c:802 +#: utils/adt/xml.c:812 #, c-format msgid "XML processing instruction cannot contain \"?>\"." msgstr "XML-инÑÑ‚Ñ€ÑƒÐºÑ†Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ (PI) не может Ñодержать \"?>\"." -#: utils/adt/xml.c:881 +#: utils/adt/xml.c:891 #, c-format msgid "xmlvalidate is not implemented" msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ xmlvalidate не реализована" -#: utils/adt/xml.c:960 +#: utils/adt/xml.c:970 #, c-format msgid "could not initialize XML library" msgstr "не удалоÑÑŒ инициализировать библиотеку XML" -#: utils/adt/xml.c:961 +#: utils/adt/xml.c:971 #, c-format msgid "" "libxml2 has incompatible char type: sizeof(char)=%zu, sizeof(xmlChar)=%zu." @@ -28448,12 +28470,12 @@ msgstr "" "Ð’ libxml2 оказалÑÑ Ð½ÐµÑовмеÑтимый тип char: sizeof(char)=%zu, " "sizeof(xmlChar)=%zu." -#: utils/adt/xml.c:1047 +#: utils/adt/xml.c:1057 #, c-format msgid "could not set up XML error handler" msgstr "не удалоÑÑŒ уÑтановить обработчик XML-ошибок" -#: utils/adt/xml.c:1048 +#: utils/adt/xml.c:1058 #, c-format msgid "" "This probably indicates that the version of libxml2 being used is not " @@ -28462,99 +28484,99 @@ msgstr "" "Возможно, Ñто означает, что иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ libxml2 неÑовмеÑтима Ñ " "заголовочными файлами libxml2, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ð¼Ð¸ был Ñобран PostgreSQL." -#: utils/adt/xml.c:1935 +#: utils/adt/xml.c:1945 msgid "Invalid character value." msgstr "Ðеверный Ñимвол." -#: utils/adt/xml.c:1938 +#: utils/adt/xml.c:1948 msgid "Space required." msgstr "ТребуетÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»." -#: utils/adt/xml.c:1941 +#: utils/adt/xml.c:1951 msgid "standalone accepts only 'yes' or 'no'." msgstr "значениÑми атрибута standalone могут быть только 'yes' и 'no'." -#: utils/adt/xml.c:1944 +#: utils/adt/xml.c:1954 msgid "Malformed declaration: missing version." msgstr "Ошибочное объÑвление: не указана верÑиÑ." -#: utils/adt/xml.c:1947 +#: utils/adt/xml.c:1957 msgid "Missing encoding in text declaration." msgstr "Ð’ объÑвлении не указана кодировка." -#: utils/adt/xml.c:1950 +#: utils/adt/xml.c:1960 msgid "Parsing XML declaration: '?>' expected." msgstr "Ошибка при разборе XML-объÑвлениÑ: ожидаетÑÑ '?>'." -#: utils/adt/xml.c:1953 +#: utils/adt/xml.c:1963 #, c-format msgid "Unrecognized libxml error code: %d." msgstr "ÐераÑпознанный код ошибки libxml: %d." -#: utils/adt/xml.c:2210 +#: utils/adt/xml.c:2220 #, c-format msgid "XML does not support infinite date values." msgstr "XML не поддерживает беÑконечноÑÑ‚ÑŒ в датах." -#: utils/adt/xml.c:2232 utils/adt/xml.c:2259 +#: utils/adt/xml.c:2242 utils/adt/xml.c:2269 #, c-format msgid "XML does not support infinite timestamp values." msgstr "XML не поддерживает беÑконечноÑÑ‚ÑŒ в timestamp." -#: utils/adt/xml.c:2675 +#: utils/adt/xml.c:2685 #, c-format msgid "invalid query" msgstr "неверный запроÑ" -#: utils/adt/xml.c:2767 +#: utils/adt/xml.c:2777 #, c-format msgid "portal \"%s\" does not return tuples" msgstr "портал \"%s\" не возвращает кортежи" -#: utils/adt/xml.c:4019 +#: utils/adt/xml.c:4029 #, c-format msgid "invalid array for XML namespace mapping" msgstr "неправильный маÑÑив Ñ ÑопоÑтавлениÑми проÑтранÑтв имён XML" -#: utils/adt/xml.c:4020 +#: utils/adt/xml.c:4030 #, c-format msgid "" "The array must be two-dimensional with length of the second axis equal to 2." msgstr "МаÑÑив должен быть двухмерным и Ñодержать 2 Ñлемента по второй оÑи." -#: utils/adt/xml.c:4044 +#: utils/adt/xml.c:4054 #, c-format msgid "empty XPath expression" msgstr "пуÑтое выражение XPath" -#: utils/adt/xml.c:4096 +#: utils/adt/xml.c:4106 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ни префикÑ, ни URI проÑтранÑтва имён не может быть null" -#: utils/adt/xml.c:4103 +#: utils/adt/xml.c:4113 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "" "не удалоÑÑŒ зарегиÑтрировать проÑтранÑтво имён XML Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑом \"%s\" и URI " "\"%s\"" -#: utils/adt/xml.c:4454 +#: utils/adt/xml.c:4464 #, c-format msgid "DEFAULT namespace is not supported" msgstr "проÑтранÑтво имён DEFAULT не поддерживаетÑÑ" -#: utils/adt/xml.c:4483 +#: utils/adt/xml.c:4493 #, c-format msgid "row path filter must not be empty string" msgstr "путь отбираемых Ñтрок не должен быть пуÑтым" -#: utils/adt/xml.c:4514 +#: utils/adt/xml.c:4524 #, c-format msgid "column path filter must not be empty string" msgstr "путь отбираемого Ñтолбца не должен быть пуÑтым" -#: utils/adt/xml.c:4658 +#: utils/adt/xml.c:4668 #, c-format msgid "more than one value returned by column XPath expression" msgstr "выражение XPath, отбирающее Ñтолбец, возвратило более одного значениÑ" @@ -28620,18 +28642,18 @@ msgstr "Продолжаем вÑÑ‘ равно, Ñ…Ð¾Ñ‚Ñ Ñ‡Ñ‚Ð¾-то не так msgid "could not remove cache file \"%s\": %m" msgstr "не удалоÑÑŒ Ñтереть файл кеша \"%s\": %m" -#: utils/cache/relmapper.c:590 +#: utils/cache/relmapper.c:591 #, c-format msgid "cannot PREPARE a transaction that modified relation mapping" msgstr "" "выполнить PREPARE Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸, изменившей ÑопоÑтавление отношений, нельзÑ" -#: utils/cache/relmapper.c:836 +#: utils/cache/relmapper.c:839 #, c-format msgid "relation mapping file \"%s\" contains invalid data" msgstr "файл ÑопоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ð¹ \"%s\" Ñодержит неверные данные" -#: utils/cache/relmapper.c:846 +#: utils/cache/relmapper.c:849 #, c-format msgid "relation mapping file \"%s\" contains incorrect checksum" msgstr "ошибка контрольной Ñуммы в файле ÑопоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð½Ð¾ÑˆÐµÐ½Ð¸Ð¹ \"%s\"" @@ -28943,7 +28965,7 @@ msgstr "Ð´Ð»Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð° данных \"%s\" уÑтановлены неРmsgid "Permissions should be u=rwx (0700) or u=rwx,g=rx (0750)." msgstr "МаÑка прав должна быть u=rwx (0700) или u=rwx,g=rx (0750)." -#: utils/init/miscinit.c:665 utils/misc/guc.c:7830 +#: utils/init/miscinit.c:665 utils/misc/guc.c:7837 #, c-format msgid "cannot set parameter \"%s\" within security-restricted operation" msgstr "" @@ -28965,42 +28987,42 @@ msgstr "Ð´Ð»Ñ Ñ€Ð¾Ð»Ð¸ \"%s\" вход запрещён" msgid "too many connections for role \"%s\"" msgstr "Ñлишком много подключений Ð´Ð»Ñ Ñ€Ð¾Ð»Ð¸ \"%s\"" -#: utils/init/miscinit.c:841 +#: utils/init/miscinit.c:849 #, c-format msgid "permission denied to set session authorization" msgstr "нет прав Ð´Ð»Ñ Ñмены объекта авторизации в ÑеанÑе" -#: utils/init/miscinit.c:924 +#: utils/init/miscinit.c:932 #, c-format msgid "invalid role OID: %u" msgstr "неверный OID роли: %u" -#: utils/init/miscinit.c:978 +#: utils/init/miscinit.c:986 #, c-format msgid "database system is shut down" msgstr "ÑиÑтема БД выключена" -#: utils/init/miscinit.c:1065 +#: utils/init/miscinit.c:1073 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "не удалоÑÑŒ Ñоздать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1079 +#: utils/init/miscinit.c:1087 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "не удалоÑÑŒ открыть файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1086 +#: utils/init/miscinit.c:1094 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "не удалоÑÑŒ прочитать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1095 +#: utils/init/miscinit.c:1103 #, c-format msgid "lock file \"%s\" is empty" msgstr "файл блокировки \"%s\" пуÑÑ‚" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1104 #, c-format msgid "" "Either another server is starting, or the lock file is the remnant of a " @@ -29009,38 +29031,38 @@ msgstr "" "Либо ÑÐµÐ¹Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑкаетÑÑ Ð´Ñ€ÑƒÐ³Ð¾Ð¹ Ñервер, либо Ñтот файл оÑталÑÑ Ð² результате " "ÑÐ±Ð¾Ñ Ð¿Ñ€Ð¸ предыдущем запуÑке." -#: utils/init/miscinit.c:1140 +#: utils/init/miscinit.c:1148 #, c-format msgid "lock file \"%s\" already exists" msgstr "файл блокировки \"%s\" уже ÑущеÑтвует" -#: utils/init/miscinit.c:1144 +#: utils/init/miscinit.c:1152 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Другой ÑкземплÑÑ€ postgres (PID %d) работает Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼ данных \"%s\"?" -#: utils/init/miscinit.c:1146 +#: utils/init/miscinit.c:1154 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "" "Другой ÑкземплÑÑ€ postmaster (PID %d) работает Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼ данных \"%s\"?" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1157 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Другой ÑкземплÑÑ€ postgres (PID %d) иÑпользует файл Ñокета \"%s\"?" -#: utils/init/miscinit.c:1151 +#: utils/init/miscinit.c:1159 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Другой ÑкземплÑÑ€ postmaster (PID %d) иÑпользует файл Ñокета \"%s\"?" -#: utils/init/miscinit.c:1202 +#: utils/init/miscinit.c:1210 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "не удалоÑÑŒ Ñтереть Ñтарый файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1212 #, c-format msgid "" "The file seems accidentally left over, but it could not be removed. Please " @@ -29049,48 +29071,48 @@ msgstr "" "КажетÑÑ, файл ÑохранилÑÑ Ð¿Ð¾ ошибке, но удалить его не получилоÑÑŒ. " "ПожалуйÑта, удалите файл вручную и повторите попытку." -#: utils/init/miscinit.c:1241 utils/init/miscinit.c:1255 -#: utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1249 utils/init/miscinit.c:1263 +#: utils/init/miscinit.c:1274 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "не удалоÑÑŒ запиÑать файл блокировки \"%s\": %m" -#: utils/init/miscinit.c:1377 utils/init/miscinit.c:1519 utils/misc/guc.c:10836 +#: utils/init/miscinit.c:1385 utils/init/miscinit.c:1527 utils/misc/guc.c:10843 #, c-format msgid "could not read from file \"%s\": %m" msgstr "не удалоÑÑŒ прочитать файл \"%s\": %m" -#: utils/init/miscinit.c:1507 +#: utils/init/miscinit.c:1515 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "не удалоÑÑŒ открыть файл \"%s\": %m; ошибка игнорируетÑÑ" -#: utils/init/miscinit.c:1532 +#: utils/init/miscinit.c:1540 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "файл блокировки \"%s\" Ñодержит неверный PID: %ld вмеÑто %ld" -#: utils/init/miscinit.c:1571 utils/init/miscinit.c:1587 +#: utils/init/miscinit.c:1579 utils/init/miscinit.c:1595 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" не ÑвлÑетÑÑ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ð¾Ð¼ данных" -#: utils/init/miscinit.c:1573 +#: utils/init/miscinit.c:1581 #, c-format msgid "File \"%s\" is missing." msgstr "Файл \"%s\" отÑутÑтвует." -#: utils/init/miscinit.c:1589 +#: utils/init/miscinit.c:1597 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Файл \"%s\" Ñодержит неприемлемые данные." -#: utils/init/miscinit.c:1591 +#: utils/init/miscinit.c:1599 #, c-format msgid "You might need to initdb." msgstr "Возможно, вам нужно выполнить initdb." -#: utils/init/miscinit.c:1599 +#: utils/init/miscinit.c:1607 #, c-format msgid "" "The data directory was initialized by PostgreSQL version %s, which is not " @@ -29677,13 +29699,13 @@ msgstr "ÐŸÑ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ изменений на Ð´Ð¸Ñ #: utils/misc/guc.c:1287 msgid "" "The server will use the fsync() system call in several places to make sure " -"that updates are physically written to disk. This insures that a database " +"that updates are physically written to disk. This ensures that a database " "cluster will recover to a consistent state after an operating system or " "hardware crash." msgstr "" -"Сервер будет вызывать ÑиÑтемную функцию fsync() в разных меÑтах Ð´Ð»Ñ Ð³Ð°Ñ€Ð°Ð½Ñ‚Ð¸Ð¸ " -"физичеÑкой запиÑи данных на диÑк. Ðто позволит привеÑти клаÑтер БД в " -"целоÑтное ÑоÑтоÑние поÑле отказа ОС или оборудованиÑ." +"Сервер будет вызывать в определённые моменты ÑиÑтемную функцию fsync(), " +"обеÑпечивающую физичеÑкую запиÑÑŒ данных на диÑк. Тем Ñамым гарантируетÑÑ, " +"что клаÑтер БД придёт в целоÑтное ÑоÑтоÑние поÑле отказа ОС или оборудованиÑ." #: utils/misc/guc.c:1298 msgid "Continues processing after a checksum failure." @@ -31976,47 +31998,47 @@ msgstr "%d%s%s вне диапазона, допуÑтимого Ð´Ð»Ñ Ð¿Ð°Ñ€Ð° msgid "%g%s%s is outside the valid range for parameter \"%s\" (%g .. %g)" msgstr "%g%s%s вне диапазона, допуÑтимого Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"%s\" (%g .. %g)" -#: utils/misc/guc.c:7648 utils/misc/guc.c:9096 +#: utils/misc/guc.c:7649 utils/misc/guc.c:9103 #, c-format msgid "cannot set parameters during a parallel operation" msgstr "уÑтанавливать параметры во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð°Ñ€Ð°Ð»Ð»ÐµÐ»ÑŒÐ½Ñ‹Ñ… операций нельзÑ" -#: utils/misc/guc.c:7665 utils/misc/guc.c:8920 +#: utils/misc/guc.c:7668 utils/misc/guc.c:8927 #, c-format msgid "parameter \"%s\" cannot be changed" msgstr "параметр \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ" -#: utils/misc/guc.c:7688 utils/misc/guc.c:7908 utils/misc/guc.c:8006 -#: utils/misc/guc.c:8104 utils/misc/guc.c:8228 utils/misc/guc.c:8331 +#: utils/misc/guc.c:7691 utils/misc/guc.c:7915 utils/misc/guc.c:8013 +#: utils/misc/guc.c:8111 utils/misc/guc.c:8235 utils/misc/guc.c:8338 #: guc-file.l:353 #, c-format msgid "parameter \"%s\" cannot be changed without restarting the server" msgstr "параметр \"%s\" изменÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ при перезапуÑке Ñервера" -#: utils/misc/guc.c:7698 +#: utils/misc/guc.c:7701 #, c-format msgid "parameter \"%s\" cannot be changed now" msgstr "параметр \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ ÑейчаÑ" -#: utils/misc/guc.c:7725 utils/misc/guc.c:7783 utils/misc/guc.c:8896 -#: utils/misc/guc.c:11804 +#: utils/misc/guc.c:7728 utils/misc/guc.c:7790 utils/misc/guc.c:8903 +#: utils/misc/guc.c:11811 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "нет прав Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"%s\"" -#: utils/misc/guc.c:7763 +#: utils/misc/guc.c:7770 #, c-format msgid "parameter \"%s\" cannot be set after connection start" msgstr "параметр \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ñ‚ÑŒ поÑле уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑоединениÑ" -#: utils/misc/guc.c:7822 +#: utils/misc/guc.c:7829 #, c-format msgid "cannot set parameter \"%s\" within security-definer function" msgstr "" "параметр \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°Ð´Ð°Ñ‚ÑŒ в функции Ñ ÐºÐ¾Ð½Ñ‚ÐµÐºÑтом безопаÑноÑти " "определившего" -#: utils/misc/guc.c:8475 utils/misc/guc.c:8522 utils/misc/guc.c:10009 +#: utils/misc/guc.c:8482 utils/misc/guc.c:8529 utils/misc/guc.c:10016 #, c-format msgid "" "must be superuser or have privileges of pg_read_all_settings to examine " @@ -32025,72 +32047,72 @@ msgstr "" "чтобы прочитать \"%s\", нужно быть Ñуперпользователем или иметь права роли " "pg_read_all_settings" -#: utils/misc/guc.c:8606 +#: utils/misc/guc.c:8613 #, c-format msgid "SET %s takes only one argument" msgstr "SET %s принимает только один аргумент" -#: utils/misc/guc.c:8886 +#: utils/misc/guc.c:8893 #, c-format msgid "permission denied to perform ALTER SYSTEM RESET ALL" msgstr "нет прав Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ALTER SYSTEM RESET ALL" -#: utils/misc/guc.c:8953 +#: utils/misc/guc.c:8960 #, c-format msgid "parameter value for ALTER SYSTEM must not contain a newline" msgstr "значение параметра Ð´Ð»Ñ ALTER SYSTEM не должно быть многоÑтрочным" -#: utils/misc/guc.c:8998 +#: utils/misc/guc.c:9005 #, c-format msgid "could not parse contents of file \"%s\"" msgstr "не удалоÑÑŒ разобрать Ñодержимое файла \"%s\"" -#: utils/misc/guc.c:9172 +#: utils/misc/guc.c:9179 #, c-format msgid "SET LOCAL TRANSACTION SNAPSHOT is not implemented" msgstr "SET LOCAL TRANSACTION SNAPSHOT не реализовано" -#: utils/misc/guc.c:9259 +#: utils/misc/guc.c:9266 #, c-format msgid "SET requires parameter name" msgstr "SET требует Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°" -#: utils/misc/guc.c:9392 +#: utils/misc/guc.c:9399 #, c-format msgid "attempt to redefine parameter \"%s\"" msgstr "попытка переопределить параметр \"%s\"" -#: utils/misc/guc.c:9719 +#: utils/misc/guc.c:9726 #, c-format msgid "invalid configuration parameter name \"%s\", removing it" msgstr "неверное Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° конфигурации: \"%s\", он удалÑетÑÑ" -#: utils/misc/guc.c:9721 +#: utils/misc/guc.c:9728 #, c-format msgid "\"%s\" is now a reserved prefix." msgstr "Теперь \"%s\" — зарезервированный префикÑ." -#: utils/misc/guc.c:11244 +#: utils/misc/guc.c:11251 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "при назначении параметру \"%s\" Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ \"%s\"" -#: utils/misc/guc.c:11413 +#: utils/misc/guc.c:11420 #, c-format msgid "parameter \"%s\" could not be set" msgstr "параметр \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÑтановить" -#: utils/misc/guc.c:11505 +#: utils/misc/guc.c:11512 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "не удалоÑÑŒ разобрать значение параметра \"%s\"" -#: utils/misc/guc.c:11936 +#: utils/misc/guc.c:11943 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "неверное значение параметра \"%s\": %g" -#: utils/misc/guc.c:12249 +#: utils/misc/guc.c:12256 #, c-format msgid "" "\"temp_buffers\" cannot be changed after any temporary tables have been " @@ -32099,23 +32121,23 @@ msgstr "" "параметр \"temp_buffers\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ поÑле Ð¾Ð±Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ðº временным " "таблицам в текущем ÑеанÑе." -#: utils/misc/guc.c:12261 +#: utils/misc/guc.c:12268 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour не поддерживаетÑÑ Ð² данной Ñборке" -#: utils/misc/guc.c:12274 +#: utils/misc/guc.c:12281 #, c-format msgid "SSL is not supported by this build" msgstr "SSL не поддерживаетÑÑ Ð² данной Ñборке" -#: utils/misc/guc.c:12286 +#: utils/misc/guc.c:12293 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "" "Ðтот параметр Ð½ÐµÐ»ÑŒÐ·Ñ Ð²ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒ, когда \"log_statement_stats\" равен true." -#: utils/misc/guc.c:12298 +#: utils/misc/guc.c:12305 #, c-format msgid "" "Cannot enable \"log_statement_stats\" when \"log_parser_stats\", " @@ -32125,7 +32147,7 @@ msgstr "" "\"log_parser_stats\", \"log_planner_stats\" или \"log_executor_stats\" равны " "true." -#: utils/misc/guc.c:12528 +#: utils/misc/guc.c:12535 #, c-format msgid "" "effective_io_concurrency must be set to 0 on platforms that lack " @@ -32134,7 +32156,7 @@ msgstr "" "Значение effective_io_concurrency должно равнÑÑ‚ÑŒÑÑ 0 на платформах, где " "отÑутÑтвует lack posix_fadvise()." -#: utils/misc/guc.c:12541 +#: utils/misc/guc.c:12548 #, c-format msgid "" "maintenance_io_concurrency must be set to 0 on platforms that lack " @@ -32143,34 +32165,34 @@ msgstr "" "Значение maintenance_io_concurrency должно равнÑÑ‚ÑŒÑÑ 0 на платформах, где " "отÑутÑтвует lack posix_fadvise()." -#: utils/misc/guc.c:12555 +#: utils/misc/guc.c:12562 #, c-format msgid "huge_page_size must be 0 on this platform." msgstr "Значение huge_page_size должно равнÑÑ‚ÑŒÑÑ 0 на Ñтой платформе." -#: utils/misc/guc.c:12567 +#: utils/misc/guc.c:12574 #, 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:12679 +#: utils/misc/guc.c:12686 #, c-format msgid "invalid character" msgstr "неверный Ñимвол" -#: utils/misc/guc.c:12739 +#: utils/misc/guc.c:12746 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline не ÑвлÑетÑÑ Ð´Ð¾Ð¿ÑƒÑтимым чиÑлом." -#: utils/misc/guc.c:12779 +#: utils/misc/guc.c:12786 #, c-format msgid "multiple recovery targets specified" msgstr "указано неÑколько целей воÑÑтановлениÑ" -#: utils/misc/guc.c:12780 +#: utils/misc/guc.c:12787 #, c-format msgid "" "At most one of recovery_target, recovery_target_lsn, recovery_target_name, " @@ -32180,7 +32202,7 @@ msgstr "" "recovery_target_lsn, recovery_target_name, recovery_target_time, " "recovery_target_xid." -#: utils/misc/guc.c:12788 +#: utils/misc/guc.c:12795 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "ЕдинÑтвенное допуÑтимое значение: \"immediate\"." @@ -33810,10 +33832,6 @@ msgstr "ИÑпользуйте Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи ÑпецÑимволов Ñи #~ "Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ PREPARE Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸, задейÑтвующей процеÑÑÑ‹ " #~ "логичеÑкой репликации" -#~ msgid "updated min recovery point to %X/%X on timeline %u" -#~ msgstr "" -#~ "Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ° воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð° на %X/%X на линии времени %u" - #~ msgid "recycled write-ahead log file \"%s\"" #~ msgstr "файл журнала предзапиÑи \"%s\" иÑпользуетÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾" diff --git a/src/backend/po/sv.po b/src/backend/po/sv.po index fa9ca38..920bf18 100644 --- a/src/backend/po/sv.po +++ b/src/backend/po/sv.po @@ -27153,7 +27153,7 @@ msgid "Forces synchronization of updates to disk." msgstr "Tvingar synkronisering av uppdateringar till disk." #: utils/misc/guc.c:1287 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "Servern kommer använda systemanropet fsync() pÃ¥ ett antal platser för att se till att uppdateringar fysiskt skrivs till disk. Detta för att säkerställa att databasklustret kan starta i ett konsistent tillstÃ¥nd efter en operativsystemkrash eller hÃ¥rdvarukrash." #: utils/misc/guc.c:1298 diff --git a/src/backend/po/uk.po b/src/backend/po/uk.po index 70281d3..f810e47 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: 2023-08-17 04:27+0000\n" -"PO-Revision-Date: 2023-08-17 15:51\n" +"POT-Creation-Date: 2023-12-17 22:26+0000\n" +"PO-Revision-Date: 2023-12-18 17:41\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -64,22 +64,22 @@ msgstr "алгоритм ÑтиÑÐ½ÐµÐ½Ð½Ñ \"%s\" не приймає кільРmsgid "not recorded" msgstr "не запиÑано" -#: ../common/controldata_utils.c:69 ../common/controldata_utils.c:73 -#: commands/copyfrom.c:1515 commands/extension.c:3401 utils/adt/genfile.c:123 +#: ../common/controldata_utils.c:79 ../common/controldata_utils.c:83 +#: commands/copyfrom.c:1525 commands/extension.c:3401 utils/adt/genfile.c:123 #, c-format msgid "could not open file \"%s\" for reading: %m" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл \"%s\" Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ: %m" -#: ../common/controldata_utils.c:84 ../common/controldata_utils.c:86 +#: ../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:3207 -#: access/transam/xlog.c:4022 access/transam/xlogrecovery.c:1197 +#: access/transam/twophase.c:1349 access/transam/xlog.c:3209 +#: access/transam/xlog.c:4024 access/transam/xlogrecovery.c:1197 #: access/transam/xlogrecovery.c:1289 access/transam/xlogrecovery.c:1326 #: access/transam/xlogrecovery.c:1386 backup/basebackup.c:1844 #: commands/extension.c:3411 libpq/hba.c:505 replication/logical/origin.c:729 #: replication/logical/origin.c:765 replication/logical/reorderbuffer.c:4958 -#: replication/logical/snapbuild.c:1858 replication/logical/snapbuild.c:1900 -#: replication/logical/snapbuild.c:1927 replication/slot.c:1807 +#: replication/logical/snapbuild.c:1870 replication/logical/snapbuild.c:1912 +#: replication/logical/snapbuild.c:1939 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:863 utils/cache/relmapper.c:813 @@ -87,30 +87,30 @@ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл \"%s\" Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½ msgid "could not read file \"%s\": %m" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл \"%s\": %m" -#: ../common/controldata_utils.c:92 ../common/controldata_utils.c:95 -#: access/transam/xlog.c:3212 access/transam/xlog.c:4027 +#: ../common/controldata_utils.c:102 ../common/controldata_utils.c:105 +#: access/transam/xlog.c:3214 access/transam/xlog.c:4029 #: backup/basebackup.c:1848 replication/logical/origin.c:734 -#: replication/logical/origin.c:773 replication/logical/snapbuild.c:1863 -#: replication/logical/snapbuild.c:1905 replication/logical/snapbuild.c:1932 +#: replication/logical/origin.c:773 replication/logical/snapbuild.c:1875 +#: replication/logical/snapbuild.c:1917 replication/logical/snapbuild.c:1944 #: replication/slot.c:1811 replication/slot.c:1852 replication/walsender.c:663 #: utils/cache/relmapper.c:817 #, c-format msgid "could not read file \"%s\": read %d of %zu" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл \"%s\": прочитано %d з %zu" -#: ../common/controldata_utils.c:104 ../common/controldata_utils.c:108 -#: ../common/controldata_utils.c:241 ../common/controldata_utils.c:244 +#: ../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:516 access/transam/twophase.c:1361 -#: access/transam/twophase.c:1773 access/transam/xlog.c:3054 -#: access/transam/xlog.c:3247 access/transam/xlog.c:3252 -#: access/transam/xlog.c:3390 access/transam/xlog.c:3992 -#: access/transam/xlog.c:4738 commands/copyfrom.c:1575 commands/copyto.c:327 +#: access/transam/twophase.c:1773 access/transam/xlog.c:3056 +#: access/transam/xlog.c:3249 access/transam/xlog.c:3254 +#: access/transam/xlog.c:3392 access/transam/xlog.c:3994 +#: access/transam/xlog.c:4740 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:5016 -#: replication/logical/snapbuild.c:1767 replication/logical/snapbuild.c:1940 +#: replication/logical/snapbuild.c:1779 replication/logical/snapbuild.c:1952 #: 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:3643 storage/file/fd.c:3749 utils/cache/relmapper.c:828 @@ -119,11 +119,11 @@ msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл \"%s\": прочитан msgid "could not close file \"%s\": %m" msgstr "неможливо закрити файл \"%s\": %m" -#: ../common/controldata_utils.c:124 +#: ../common/controldata_utils.c:154 msgid "byte ordering mismatch" msgstr "неправильний порÑдок байтів" -#: ../common/controldata_utils.c:126 +#: ../common/controldata_utils.c:156 #, c-format msgid "possible byte ordering mismatch\n" "The byte ordering used to store the pg_control file might not match the one\n" @@ -132,51 +132,51 @@ msgid "possible byte ordering mismatch\n" msgstr "можлива помилка у поÑлідовноÑÑ‚Ñ– байтів.\n" "ПорÑдок байтів, що викориÑтовують Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ pg_control, може не відповідати тому, Ñкий викориÑтовуєтьÑÑ Ñ†Ñ–Ñ”ÑŽ програмою. У такому випадку результати нижче будуть неправильним, Ñ– інÑталÑÑ†Ñ–Ñ PostgreSQL буде неÑуміÑною з цим каталогом даних." -#: ../common/controldata_utils.c:189 ../common/controldata_utils.c:194 +#: ../common/controldata_utils.c:219 ../common/controldata_utils.c:224 #: ../common/file_utils.c:232 ../common/file_utils.c:291 #: ../common/file_utils.c:365 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:2941 access/transam/xlog.c:3123 -#: access/transam/xlog.c:3162 access/transam/xlog.c:3357 -#: access/transam/xlog.c:4012 access/transam/xlogrecovery.c:4209 +#: access/transam/xlog.c:2943 access/transam/xlog.c:3125 +#: access/transam/xlog.c:3164 access/transam/xlog.c:3359 +#: access/transam/xlog.c:4014 access/transam/xlogrecovery.c:4209 #: access/transam/xlogrecovery.c:4312 access/transam/xlogutils.c:852 #: backup/basebackup.c:522 backup/basebackup.c:1520 postmaster/syslogger.c:1560 #: replication/logical/origin.c:719 replication/logical/reorderbuffer.c:3611 #: replication/logical/reorderbuffer.c:4162 #: replication/logical/reorderbuffer.c:4938 -#: replication/logical/snapbuild.c:1722 replication/logical/snapbuild.c:1829 +#: replication/logical/snapbuild.c:1734 replication/logical/snapbuild.c:1841 #: 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:3630 #: storage/file/fd.c:3720 storage/smgr/md.c:541 utils/cache/relmapper.c:792 #: utils/cache/relmapper.c:900 utils/error/elog.c:1933 -#: utils/init/miscinit.c:1366 utils/init/miscinit.c:1500 -#: utils/init/miscinit.c:1577 utils/misc/guc.c:8991 utils/misc/guc.c:9040 +#: utils/init/miscinit.c:1374 utils/init/miscinit.c:1508 +#: utils/init/miscinit.c:1585 utils/misc/guc.c:8991 utils/misc/guc.c:9040 #, c-format msgid "could not open file \"%s\": %m" msgstr "не можливо відкрити файл \"%s\": %m" -#: ../common/controldata_utils.c:210 ../common/controldata_utils.c:213 +#: ../common/controldata_utils.c:240 ../common/controldata_utils.c:243 #: access/transam/twophase.c:1746 access/transam/twophase.c:1755 -#: access/transam/xlog.c:8674 access/transam/xlogfuncs.c:600 +#: access/transam/xlog.c:8676 access/transam/xlogfuncs.c:600 #: backup/basebackup_server.c:173 backup/basebackup_server.c:266 -#: postmaster/postmaster.c:5630 postmaster/syslogger.c:1571 +#: postmaster/postmaster.c:5633 postmaster/syslogger.c:1571 #: postmaster/syslogger.c:1584 postmaster/syslogger.c:1597 #: utils/cache/relmapper.c:934 #, c-format msgid "could not write file \"%s\": %m" msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл \"%s\": %m" -#: ../common/controldata_utils.c:227 ../common/controldata_utils.c:232 +#: ../common/controldata_utils.c:257 ../common/controldata_utils.c:262 #: ../common/file_utils.c:303 ../common/file_utils.c:373 #: access/heap/rewriteheap.c:960 access/heap/rewriteheap.c:1172 #: access/heap/rewriteheap.c:1275 access/transam/timeline.c:432 #: access/transam/timeline.c:510 access/transam/twophase.c:1767 -#: access/transam/xlog.c:3047 access/transam/xlog.c:3241 -#: access/transam/xlog.c:3985 access/transam/xlog.c:7977 -#: access/transam/xlog.c:8020 backup/basebackup_server.c:207 -#: replication/logical/snapbuild.c:1760 replication/slot.c:1684 +#: access/transam/xlog.c:3049 access/transam/xlog.c:3243 +#: access/transam/xlog.c:3987 access/transam/xlog.c:7979 +#: access/transam/xlog.c:8022 backup/basebackup_server.c:207 +#: replication/logical/snapbuild.c:1772 replication/slot.c:1684 #: replication/slot.c:1789 storage/file/fd.c:737 storage/file/fd.c:3741 #: storage/smgr/md.c:992 storage/smgr/md.c:1033 storage/sync/sync.c:453 #: utils/cache/relmapper.c:949 utils/misc/guc.c:8760 @@ -194,14 +194,14 @@ msgstr "не вдалоÑÑ fsync файл \"%s\": %m" #: access/transam/xlogrecovery.c:587 lib/dshash.c:253 libpq/auth.c:1338 #: libpq/auth.c:1406 libpq/auth.c:1964 libpq/be-secure-gssapi.c:520 #: postmaster/bgworker.c:349 postmaster/bgworker.c:931 -#: postmaster/postmaster.c:2591 postmaster/postmaster.c:4177 -#: postmaster/postmaster.c:5555 postmaster/postmaster.c:5926 +#: postmaster/postmaster.c:2594 postmaster/postmaster.c:4180 +#: postmaster/postmaster.c:5558 postmaster/postmaster.c:5929 #: replication/libpqwalreceiver/libpqwalreceiver.c:300 #: replication/logical/logical.c:205 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:1451 -#: storage/ipc/procarray.c:2281 storage/ipc/procarray.c:2288 -#: storage/ipc/procarray.c:2793 storage/ipc/procarray.c:3424 +#: storage/ipc/procarray.c:2280 storage/ipc/procarray.c:2287 +#: storage/ipc/procarray.c:2792 storage/ipc/procarray.c:3423 #: 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 @@ -260,7 +260,7 @@ msgstr "неможливо знайти \"%s\" Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ" msgid "could not change directory to \"%s\": %m" msgstr "не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ каталог на \"%s\": %m" -#: ../common/exec.c:299 access/transam/xlog.c:8323 backup/basebackup.c:1340 +#: ../common/exec.c:299 access/transam/xlog.c:8325 backup/basebackup.c:1340 #: utils/adt/misc.c:342 #, c-format msgid "could not read symbolic link \"%s\": %m" @@ -289,11 +289,11 @@ msgstr "неможливо дублювати нульовий покажчик #: ../common/file_utils.c:87 ../common/file_utils.c:451 #: ../common/file_utils.c:455 access/transam/twophase.c:1317 -#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:230 +#: access/transam/xlogarchive.c:111 access/transam/xlogarchive.c:237 #: backup/basebackup.c:338 backup/basebackup.c:528 backup/basebackup.c:599 -#: commands/copyfrom.c:1525 commands/copyto.c:725 commands/extension.c:3390 +#: commands/copyfrom.c:1535 commands/copyto.c:725 commands/extension.c:3390 #: commands/tablespace.c:826 commands/tablespace.c:917 postmaster/pgarch.c:597 -#: replication/logical/snapbuild.c:1639 storage/file/copydir.c:68 +#: replication/logical/snapbuild.c:1651 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:3450 utils/adt/dbsize.c:92 #: utils/adt/dbsize.c:244 utils/adt/dbsize.c:324 utils/adt/genfile.c:413 @@ -303,7 +303,7 @@ msgid "could not stat file \"%s\": %m" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ інформацію від файлу \"%s\": %m" #: ../common/file_utils.c:166 ../common/pgfnames.c:48 commands/tablespace.c:749 -#: commands/tablespace.c:759 postmaster/postmaster.c:1576 +#: commands/tablespace.c:759 postmaster/postmaster.c:1579 #: storage/file/fd.c:2812 storage/file/reinit.c:126 utils/adt/misc.c:235 #: utils/misc/tzparser.c:338 #, c-format @@ -315,8 +315,8 @@ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ каталог \"%s\": %m" msgid "could not read directory \"%s\": %m" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ каталог \"%s\": %m" -#: ../common/file_utils.c:383 access/transam/xlogarchive.c:419 -#: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1779 +#: ../common/file_utils.c:383 access/transam/xlogarchive.c:426 +#: postmaster/syslogger.c:1608 replication/logical/snapbuild.c:1791 #: 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 #, c-format @@ -656,7 +656,7 @@ msgstr "не вдаєтьÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ членÑтво токену msgid "request for BRIN range summarization for index \"%s\" page %u was not recorded" msgstr "запит на підÑумок діапазону BRIN Ð´Ð»Ñ Ñ–Ð½Ð´ÐµÐºÑу «%s» Ñторінки %u не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати" -#: access/brin/brin.c:1036 access/brin/brin.c:1137 access/gin/ginfast.c:1043 +#: access/brin/brin.c:1036 access/brin/brin.c:1143 access/gin/ginfast.c:1042 #: access/transam/xlogfuncs.c:165 access/transam/xlogfuncs.c:192 #: access/transam/xlogfuncs.c:231 access/transam/xlogfuncs.c:252 #: access/transam/xlogfuncs.c:273 access/transam/xlogfuncs.c:343 @@ -665,28 +665,34 @@ msgstr "запит на підÑумок діапазону BRIN Ð´Ð»Ñ Ñ–Ð½Ð´Ðµ msgid "recovery is in progress" msgstr "Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñƒ процеÑÑ–" -#: access/brin/brin.c:1037 access/brin/brin.c:1138 +#: access/brin/brin.c:1037 access/brin/brin.c:1144 #, c-format msgid "BRIN control functions cannot be executed during recovery." msgstr "Контрольна Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ BRIN не може бути виконана під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ." -#: access/brin/brin.c:1042 access/brin/brin.c:1143 +#: access/brin/brin.c:1042 access/brin/brin.c:1149 #, c-format msgid "block number out of range: %lld" msgstr "номер блоку поза діапазоном: %lld" -#: access/brin/brin.c:1086 access/brin/brin.c:1169 +#: access/brin/brin.c:1086 access/brin/brin.c:1175 #, c-format msgid "\"%s\" is not a BRIN index" msgstr "\"%s\" не Ñ” індекÑом BRIN" -#: access/brin/brin.c:1102 access/brin/brin.c:1185 +#: access/brin/brin.c:1102 access/brin/brin.c:1191 #, c-format msgid "could not open parent table of index \"%s\"" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ батьківÑьку таблицю індекÑу \"%s\"" -#: access/brin/brin_bloom.c:750 access/brin/brin_bloom.c:792 -#: access/brin/brin_minmax_multi.c:3012 access/brin/brin_minmax_multi.c:3155 +#: access/brin/brin.c:1111 access/brin/brin.c:1207 access/gin/ginfast.c:1087 +#: parser/parse_utilcmd.c:2287 +#, c-format +msgid "index \"%s\" is not valid" +msgstr "Ñ–Ð½Ð´ÐµÐºÑ \"%s\" не Ñ” припуÑтимим" + +#: access/brin/brin_bloom.c:749 access/brin/brin_bloom.c:791 +#: access/brin/brin_minmax_multi.c:2986 access/brin/brin_minmax_multi.c:3129 #: statistics/dependencies.c:663 statistics/dependencies.c:716 #: statistics/mcv.c:1484 statistics/mcv.c:1515 statistics/mvdistinct.c:344 #: statistics/mvdistinct.c:397 utils/adt/pseudotypes.c:43 @@ -695,25 +701,9 @@ msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ батьківÑьку таблиц msgid "cannot accept a value of type %s" msgstr "не можна прийнÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ %s" -#: access/brin/brin_minmax_multi.c:2171 access/brin/brin_minmax_multi.c:2178 -#: access/brin/brin_minmax_multi.c:2185 utils/adt/timestamp.c:938 -#: utils/adt/timestamp.c:1509 utils/adt/timestamp.c:2761 -#: utils/adt/timestamp.c:2778 utils/adt/timestamp.c:2831 -#: utils/adt/timestamp.c:2870 utils/adt/timestamp.c:3115 -#: utils/adt/timestamp.c:3120 utils/adt/timestamp.c:3125 -#: utils/adt/timestamp.c:3175 utils/adt/timestamp.c:3182 -#: utils/adt/timestamp.c:3189 utils/adt/timestamp.c:3209 -#: utils/adt/timestamp.c:3216 utils/adt/timestamp.c:3223 -#: utils/adt/timestamp.c:3253 utils/adt/timestamp.c:3261 -#: utils/adt/timestamp.c:3305 utils/adt/timestamp.c:3731 -#: utils/adt/timestamp.c:3855 utils/adt/timestamp.c:4405 -#, c-format -msgid "interval out of range" -msgstr "інтервал поза діапазоном" - #: 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:1442 access/spgist/spgdoinsert.c:2001 +#: access/gist/gist.c:1462 access/spgist/spgdoinsert.c:2001 #: access/spgist/spgdoinsert.c:2278 #, c-format msgid "index row size %zu exceeds maximum %zu for index \"%s\"" @@ -812,7 +802,7 @@ msgstr "Ðтрибут \"%s\" типу %s не збігаєтьÑÑ Ð· відпРmsgid "Attribute \"%s\" of type %s does not exist in type %s." msgstr "Ðтрибут \"%s\" типу %s не Ñ–Ñнує в типі %s." -#: access/common/heaptuple.c:1036 access/common/heaptuple.c:1371 +#: access/common/heaptuple.c:1133 access/common/heaptuple.c:1468 #, c-format msgid "number of columns (%d) exceeds limit (%d)" msgstr "кількіÑÑ‚ÑŒ Ñтовпців (%d) перевищує Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ (%d)" @@ -856,7 +846,7 @@ msgstr "RESET не має міÑтити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ msgid "unrecognized parameter namespace \"%s\"" msgstr "нерозпізнаний параметр проÑтору імен \"%s\"" -#: access/common/reloptions.c:1303 utils/misc/guc.c:12987 +#: access/common/reloptions.c:1303 utils/misc/guc.c:12995 #, c-format msgid "tables declared WITH OIDS are not supported" msgstr "таблиці, позначені WITH OIDS, не підтримуютьÑÑ" @@ -932,17 +922,17 @@ msgstr "ÑпиÑок вказівників задовгий" msgid "Reduce maintenance_work_mem." msgstr "Зменшіть maintenance_work_mem." -#: access/gin/ginfast.c:1044 +#: access/gin/ginfast.c:1043 #, c-format msgid "GIN pending list cannot be cleaned up during recovery." msgstr "Черга запиÑів GIN не може бути очищена під Ñ‡Ð°Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ." -#: access/gin/ginfast.c:1051 +#: access/gin/ginfast.c:1050 #, c-format msgid "\"%s\" is not a GIN index" msgstr "\"%s\" не Ñ” індекÑом GIN" -#: access/gin/ginfast.c:1062 +#: access/gin/ginfast.c:1061 #, c-format msgid "cannot access temporary indexes of other sessions" msgstr "доÑтуп до тимчаÑових індекÑів з інших ÑеÑій заблокований" @@ -963,7 +953,7 @@ msgid "To fix this, do REINDEX INDEX \"%s\"." msgstr "Щоб виправити це, зробіть REINDEX INDEX \"%s\"." #: access/gin/ginutil.c:145 executor/execExpr.c:2168 -#: utils/adt/arrayfuncs.c:3817 utils/adt/arrayfuncs.c:6486 +#: utils/adt/arrayfuncs.c:3866 utils/adt/arrayfuncs.c:6535 #: utils/adt/rowtypes.c:957 #, c-format msgid "could not identify a comparison function for type %s" @@ -1005,7 +995,7 @@ msgstr "Це викликано неповним поділом Ñторінки msgid "Please REINDEX it." msgstr "Будь лаÑка, виконайте REINDEX." -#: access/gist/gist.c:1176 +#: access/gist/gist.c:1195 #, c-format msgid "fixing incomplete split in index \"%s\", block %u" msgstr "Ð²Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¿Ð¾Ð²Ð½Ð¾Ð³Ð¾ розділу в індекÑÑ– \"%s\", блок %u" @@ -1050,7 +1040,7 @@ msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸, Ñкий параметр Ñор #: access/hash/hashfunc.c:279 access/hash/hashfunc.c:336 catalog/heap.c:668 #: catalog/heap.c:674 commands/createas.c:206 commands/createas.c:515 -#: commands/indexcmds.c:1979 commands/tablecmds.c:17495 commands/view.c:86 +#: commands/indexcmds.c:1955 commands/tablecmds.c:17505 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 @@ -1120,18 +1110,18 @@ msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ кортежі під Ñ‡Ð°Ñ Ð¿Ð°Ñ€ msgid "attempted to delete invisible tuple" msgstr "Ñпроба видалити невидимий кортеж" -#: access/heap/heapam.c:3183 access/heap/heapam.c:6025 +#: access/heap/heapam.c:3188 access/heap/heapam.c:6032 #, c-format msgid "cannot update tuples during a parallel operation" msgstr "неможливо оновити кортежі під Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¾Ñ— операції" -#: access/heap/heapam.c:3307 +#: access/heap/heapam.c:3312 #, c-format msgid "attempted to update invisible tuple" msgstr "Ñпроба оновити невидимий кортеж" -#: access/heap/heapam.c:4669 access/heap/heapam.c:4707 -#: access/heap/heapam.c:4972 access/heap/heapam_handler.c:456 +#: access/heap/heapam.c:4676 access/heap/heapam.c:4714 +#: access/heap/heapam.c:4979 access/heap/heapam_handler.c:456 #, c-format msgid "could not obtain lock on row in relation \"%s\"" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñ€Ñдку ÑтоÑовно \"%s\"" @@ -1153,11 +1143,11 @@ msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати до файлу \"%s\", запиÑÐ #: access/heap/rewriteheap.c:1013 access/heap/rewriteheap.c:1131 #: access/transam/timeline.c:329 access/transam/timeline.c:485 -#: access/transam/xlog.c:2963 access/transam/xlog.c:3176 -#: access/transam/xlog.c:3964 access/transam/xlog.c:8657 +#: access/transam/xlog.c:2965 access/transam/xlog.c:3178 +#: access/transam/xlog.c:3966 access/transam/xlog.c:8659 #: access/transam/xlogfuncs.c:594 backup/basebackup_server.c:149 #: backup/basebackup_server.c:242 commands/dbcommands.c:517 -#: postmaster/postmaster.c:4604 postmaster/postmaster.c:5617 +#: postmaster/postmaster.c:4607 postmaster/postmaster.c:5620 #: replication/logical/origin.c:587 replication/slot.c:1631 #: storage/file/copydir.c:167 storage/smgr/md.c:222 utils/time/snapmgr.c:1261 #, c-format @@ -1171,25 +1161,25 @@ msgstr "не вдалоÑÑ Ñкоротити файл \"%s\" до потріб #: access/heap/rewriteheap.c:1159 access/transam/timeline.c:384 #: access/transam/timeline.c:424 access/transam/timeline.c:502 -#: access/transam/xlog.c:3035 access/transam/xlog.c:3232 -#: access/transam/xlog.c:3976 commands/dbcommands.c:529 -#: postmaster/postmaster.c:4614 postmaster/postmaster.c:4624 +#: access/transam/xlog.c:3037 access/transam/xlog.c:3234 +#: access/transam/xlog.c:3978 commands/dbcommands.c:529 +#: postmaster/postmaster.c:4617 postmaster/postmaster.c:4627 #: replication/logical/origin.c:599 replication/logical/origin.c:641 -#: replication/logical/origin.c:660 replication/logical/snapbuild.c:1736 +#: replication/logical/origin.c:660 replication/logical/snapbuild.c:1748 #: replication/slot.c:1666 storage/file/buffile.c:537 -#: storage/file/copydir.c:207 utils/init/miscinit.c:1441 -#: utils/init/miscinit.c:1452 utils/init/miscinit.c:1460 utils/misc/guc.c:8721 -#: utils/misc/guc.c:8752 utils/misc/guc.c:10742 utils/misc/guc.c:10756 +#: storage/file/copydir.c:207 utils/init/miscinit.c:1449 +#: utils/init/miscinit.c:1460 utils/init/miscinit.c:1468 utils/misc/guc.c:8721 +#: utils/misc/guc.c:8752 utils/misc/guc.c:10750 utils/misc/guc.c:10764 #: 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:1706 -#: access/transam/xlogarchive.c:119 access/transam/xlogarchive.c:429 +#: 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:4431 -#: replication/logical/snapbuild.c:1681 replication/logical/snapbuild.c:2097 +#: replication/logical/snapbuild.c:1693 replication/logical/snapbuild.c:2109 #: 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 #: storage/smgr/md.c:373 storage/smgr/md.c:432 storage/sync/sync.c:250 @@ -1422,8 +1412,8 @@ msgid "transaction aborted during system catalog scan" msgstr "транзакцію перервано під Ñ‡Ð°Ñ ÑÐºÐ°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемного каталогу" #: access/index/indexam.c:142 catalog/objectaddress.c:1376 -#: commands/indexcmds.c:2807 commands/tablecmds.c:271 commands/tablecmds.c:295 -#: commands/tablecmds.c:17183 commands/tablecmds.c:18966 +#: commands/indexcmds.c:2783 commands/tablecmds.c:271 commands/tablecmds.c:295 +#: commands/tablecmds.c:17191 commands/tablecmds.c:18976 #, c-format msgid "\"%s\" is not an index" msgstr "\"%s\" не Ñ” індекÑом" @@ -1469,17 +1459,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:2669 +#: access/nbtree/nbtutils.c:2684 #, 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:2675 +#: access/nbtree/nbtutils.c:2690 #, c-format msgid "Index row references tuple (%u,%u) in relation \"%s\"." msgstr "Ð Ñдок індекÑу поÑилаєтьÑÑ Ð½Ð° кортеж (%u,,%u) у відношенні \"%s\"." -#: access/nbtree/nbtutils.c:2679 +#: access/nbtree/nbtutils.c:2694 #, 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,7 +1509,7 @@ 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:1842 commands/tablecmds.c:13880 -#: commands/tablecmds.c:17192 +#: commands/tablecmds.c:17200 #, c-format msgid "\"%s\" is a composite type" msgstr "\"%s\" це Ñкладений тип" @@ -1534,7 +1524,7 @@ msgstr "невірний tid (%u, %u) Ð´Ð»Ñ Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\"" msgid "%s cannot be empty." msgstr "%s не може бути пуÑтим." -#: access/table/tableamapi.c:122 utils/misc/guc.c:12911 +#: access/table/tableamapi.c:122 utils/misc/guc.c:12919 #, c-format msgid "%s is too long (maximum %d characters)." msgstr "%s занадто довгий (макÑимум %d Ñимволів)." @@ -2108,249 +2098,249 @@ msgid "cannot PREPARE a transaction that has exported snapshots" msgstr "не можна виконати PREPARE Ð´Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ—, Ñка має екÑпортовані знімки" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3478 +#: access/transam/xact.c:3479 #, c-format msgid "%s cannot run inside a transaction block" msgstr "%s неможливо запуÑтити вÑередині блоку транзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3488 +#: access/transam/xact.c:3489 #, c-format msgid "%s cannot run inside a subtransaction" msgstr "%s неможливо запуÑтити вÑередині підтранзакції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3498 +#: access/transam/xact.c:3499 #, c-format msgid "%s cannot be executed within a pipeline" msgstr "%s не можна викориÑтовувати в межах конвеєра" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3508 +#: access/transam/xact.c:3509 #, c-format msgid "%s cannot be executed from a function" msgstr "%s неможливо виконати з функції" #. translator: %s represents an SQL statement name -#: access/transam/xact.c:3579 access/transam/xact.c:3894 -#: access/transam/xact.c:3973 access/transam/xact.c:4096 -#: access/transam/xact.c:4247 access/transam/xact.c:4316 -#: access/transam/xact.c:4427 +#: 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 #, c-format msgid "%s can only be used in transaction blocks" msgstr "%s може викориÑтовуватиÑÑ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ в блоках транзакції" -#: access/transam/xact.c:3780 +#: access/transam/xact.c:3781 #, c-format msgid "there is already a transaction in progress" msgstr "Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ Ð²Ð¶Ðµ виконуєтьÑÑ" -#: access/transam/xact.c:3899 access/transam/xact.c:3978 -#: access/transam/xact.c:4101 +#: access/transam/xact.c:3900 access/transam/xact.c:3979 +#: access/transam/xact.c:4102 #, c-format msgid "there is no transaction in progress" msgstr "немає незавершеної транзакції" -#: access/transam/xact.c:3989 +#: access/transam/xact.c:3990 #, c-format msgid "cannot commit during a parallel operation" msgstr "не можна фікÑувати транзакції під Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… операцій" -#: access/transam/xact.c:4112 +#: access/transam/xact.c:4113 #, c-format msgid "cannot abort during a parallel operation" msgstr "не можна перервати під Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… операцій" -#: access/transam/xact.c:4211 +#: access/transam/xact.c:4212 #, c-format msgid "cannot define savepoints during a parallel operation" msgstr "не можна визначати точки Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… операцій" -#: access/transam/xact.c:4298 +#: access/transam/xact.c:4299 #, c-format msgid "cannot release savepoints during a parallel operation" msgstr "не можна вивільнÑти точки Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… транзакцій" -#: access/transam/xact.c:4308 access/transam/xact.c:4359 -#: access/transam/xact.c:4419 access/transam/xact.c:4468 +#: access/transam/xact.c:4309 access/transam/xact.c:4360 +#: access/transam/xact.c:4420 access/transam/xact.c:4469 #, c-format msgid "savepoint \"%s\" does not exist" msgstr "точка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" не Ñ–Ñнує" -#: access/transam/xact.c:4365 access/transam/xact.c:4474 +#: access/transam/xact.c:4366 access/transam/xact.c:4475 #, c-format msgid "savepoint \"%s\" does not exist within current savepoint level" msgstr "точка Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" не Ñ–Ñнує на поточному рівні Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº" -#: access/transam/xact.c:4407 +#: access/transam/xact.c:4408 #, c-format msgid "cannot rollback to savepoints during a parallel operation" msgstr "не можна відкотити назад до точки Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… операцій" -#: access/transam/xact.c:4535 +#: access/transam/xact.c:4536 #, c-format msgid "cannot start subtransactions during a parallel operation" msgstr "не можна запуÑтити підтранзакцію під Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… операцій" -#: access/transam/xact.c:4603 +#: access/transam/xact.c:4604 #, c-format msgid "cannot commit subtransactions during a parallel operation" msgstr "не можна визначити підтранзакцію під Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¸Ñ… операцій" -#: access/transam/xact.c:5250 +#: access/transam/xact.c:5251 #, c-format msgid "cannot have more than 2^32-1 subtransactions in a transaction" msgstr "в одній транзакції не може бути більше 2^32-1 підтранзакцій" -#: access/transam/xlog.c:1463 +#: access/transam/xlog.c:1465 #, 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:2224 +#: access/transam/xlog.c:2226 #, 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 +#: access/transam/xlog.c:3473 access/transam/xlogutils.c:847 #: replication/walsender.c:2716 #, c-format msgid "requested WAL segment %s has already been removed" msgstr "запитуваний Ñегмент WAL %s вже видалений" -#: access/transam/xlog.c:3756 +#: access/transam/xlog.c:3758 #, 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:3800 access/transam/xlog.c:3810 #, c-format msgid "required WAL directory \"%s\" does not exist" msgstr "необхідний каталог WAL \"%s\" не Ñ–Ñнує" -#: access/transam/xlog.c:3814 +#: access/transam/xlog.c:3816 #, c-format msgid "creating missing WAL directory \"%s\"" msgstr "ÑтворюєтьÑÑ Ð²Ñ–Ð´Ñутній каталог WAL \"%s\"" -#: access/transam/xlog.c:3817 commands/dbcommands.c:3115 +#: access/transam/xlog.c:3819 commands/dbcommands.c:3115 #, c-format msgid "could not create missing directory \"%s\": %m" msgstr "не вдалоÑÑ Ñтворити відÑтуній каталог \"%s\": %m" -#: access/transam/xlog.c:3884 +#: access/transam/xlog.c:3886 #, 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 -#: utils/init/miscinit.c:1598 +#: access/transam/xlog.c:4045 access/transam/xlog.c:4054 +#: access/transam/xlog.c:4078 access/transam/xlog.c:4085 +#: access/transam/xlog.c:4092 access/transam/xlog.c:4097 +#: access/transam/xlog.c:4104 access/transam/xlog.c:4111 +#: access/transam/xlog.c:4118 access/transam/xlog.c:4125 +#: access/transam/xlog.c:4132 access/transam/xlog.c:4139 +#: access/transam/xlog.c:4148 access/transam/xlog.c:4155 +#: utils/init/miscinit.c:1606 #, c-format msgid "database files are incompatible with server" msgstr "файли бази даних Ñ” неÑуміÑними з даним Ñервером" -#: access/transam/xlog.c:4044 +#: access/transam/xlog.c:4046 #, 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:4050 #, 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:4055 #, 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:4058 access/transam/xlog.c:4082 +#: access/transam/xlog.c:4089 access/transam/xlog.c:4094 #, c-format msgid "It looks like you need to initdb." msgstr "ЗдаєтьÑÑ, Вам треба виконати initdb." -#: access/transam/xlog.c:4067 +#: access/transam/xlog.c:4069 #, c-format msgid "incorrect checksum in control file" msgstr "помилка контрольної Ñуми у файлі pg_control" -#: access/transam/xlog.c:4077 +#: access/transam/xlog.c:4079 #, 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:4086 #, 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:4093 #, 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:4098 #, 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:4101 access/transam/xlog.c:4108 +#: access/transam/xlog.c:4115 access/transam/xlog.c:4122 +#: access/transam/xlog.c:4129 access/transam/xlog.c:4136 +#: access/transam/xlog.c:4143 access/transam/xlog.c:4151 +#: access/transam/xlog.c:4158 #, c-format msgid "It looks like you need to recompile or initdb." msgstr "ЗдаєтьÑÑ, вам потрібно перекомпілювати Ñервер або виконати initdb." -#: access/transam/xlog.c:4103 +#: access/transam/xlog.c:4105 #, 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:4112 #, 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:4119 #, 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:4126 #, 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:4133 #, 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:4140 #, 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:4149 #, 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:4156 #, 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:4165 #, 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" @@ -2359,236 +2349,236 @@ 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:4177 #, 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:4181 #, 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:4622 #, c-format msgid "could not write bootstrap write-ahead log file: %m" msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати початкове Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð¿ÐµÑ€ÐµÐ´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ журналюваннÑ: %m" -#: access/transam/xlog.c:4628 +#: access/transam/xlog.c:4630 #, c-format msgid "could not fsync bootstrap write-ahead log file: %m" msgstr "не вдалоÑÑ Ñкинути на диÑк початкове Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð¿ÐµÑ€ÐµÐ´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ журналюваннÑ: %m" -#: access/transam/xlog.c:4634 +#: access/transam/xlog.c:4636 #, c-format msgid "could not close bootstrap write-ahead log file: %m" msgstr "не вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ початкове Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð¿ÐµÑ€ÐµÐ´Ð¶ÑƒÐ²Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ журналюваннÑ: %m" -#: access/transam/xlog.c:4852 +#: access/transam/xlog.c:4854 #, 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:4855 #, 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:4856 #, 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:4920 #, c-format msgid "control file contains invalid checkpoint location" msgstr "контрольний файл міÑтить недійÑне Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ñ— точки" -#: access/transam/xlog.c:4929 +#: access/transam/xlog.c:4931 #, c-format msgid "database system was shut down at %s" msgstr "ÑиÑтема бази даних була вимкнена %s" -#: access/transam/xlog.c:4935 +#: access/transam/xlog.c:4937 #, c-format msgid "database system was shut down in recovery at %s" msgstr "ÑиÑтема бази даних завершила роботу у процеÑÑ– Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %s" -#: access/transam/xlog.c:4941 +#: access/transam/xlog.c:4943 #, c-format msgid "database system shutdown was interrupted; last known up at %s" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ бази даних було перервано; оÑтанній момент роботи %s" -#: access/transam/xlog.c:4947 +#: access/transam/xlog.c:4949 #, c-format msgid "database system was interrupted while in recovery at %s" msgstr "ÑиÑтема бази даних була перервана в процеÑÑ– Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ %s" -#: access/transam/xlog.c:4949 +#: access/transam/xlog.c:4951 #, 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:4957 #, 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:4959 #, 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:4965 #, c-format msgid "database system was interrupted; last known up at %s" msgstr "робота ÑиÑтеми бази даних була перервана; оÑтанній момент роботи %s" -#: access/transam/xlog.c:4969 +#: access/transam/xlog.c:4971 #, c-format msgid "control file contains invalid database cluster state" msgstr "контрольний файл міÑтить недійÑний Ñтан клаÑтеру бази даних" -#: access/transam/xlog.c:5353 +#: access/transam/xlog.c:5355 #, c-format msgid "WAL ends before end of online backup" msgstr "WAL завершивÑÑ Ð´Ð¾ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ð½Ð»Ð°Ð¹Ð½ резервного копіюваннÑ" -#: access/transam/xlog.c:5354 +#: 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:5357 +#: access/transam/xlog.c:5359 #, c-format msgid "WAL ends before consistent recovery point" msgstr "WAL завершивÑÑ Ð´Ð¾ узгодженої точки відновленнÑ" -#: access/transam/xlog.c:5405 +#: access/transam/xlog.c:5407 #, c-format msgid "selected new timeline ID: %u" msgstr "вибрано новий ID чаÑової лінії: %u" -#: access/transam/xlog.c:5438 +#: access/transam/xlog.c:5440 #, c-format msgid "archive recovery complete" msgstr "Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ñ€Ñ…Ñ–Ð²Ñƒ завершено" -#: access/transam/xlog.c:6044 +#: access/transam/xlog.c:6046 #, c-format msgid "shutting down" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸" #. translator: the placeholders show checkpoint options -#: access/transam/xlog.c:6083 +#: access/transam/xlog.c:6085 #, 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:6095 +#: access/transam/xlog.c:6097 #, 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:6155 +#: access/transam/xlog.c:6157 #, 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:6175 +#: access/transam/xlog.c:6177 #, 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:6610 +#: access/transam/xlog.c:6612 #, c-format msgid "concurrent write-ahead log activity while database system is shutting down" msgstr "під Ñ‡Ð°Ñ Ñ‚Ð¾Ð³Ð¾ Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð‘Ð” помічено конкурентну активніÑÑ‚ÑŒ у випереджувальному журналюванні" -#: access/transam/xlog.c:7167 +#: access/transam/xlog.c:7169 #, c-format msgid "recovery restart point at %X/%X" msgstr "Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾Ñ— точки %X/%X" -#: access/transam/xlog.c:7169 +#: access/transam/xlog.c:7171 #, c-format msgid "Last completed transaction was at log time %s." msgstr "ОÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð° Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ Ð±ÑƒÐ»Ð° в %s." -#: access/transam/xlog.c:7416 +#: access/transam/xlog.c:7418 #, c-format msgid "restore point \"%s\" created at %X/%X" msgstr "точка Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ \"%s\" Ñтворена в %X/%X" -#: access/transam/xlog.c:7623 +#: access/transam/xlog.c:7625 #, c-format msgid "online backup was canceled, recovery cannot continue" msgstr "онлайн резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ÑкаÑовано, неможливо продовжити відновленнÑ" -#: access/transam/xlog.c:7680 +#: access/transam/xlog.c:7682 #, c-format msgid "unexpected timeline ID %u (should be %u) in shutdown checkpoint record" msgstr "неочікуваний ID лінії чаÑу %u (повинен бути %u) у запиÑÑ– контрольної точки вимкненнÑ" -#: access/transam/xlog.c:7738 +#: access/transam/xlog.c:7740 #, c-format msgid "unexpected timeline ID %u (should be %u) in online checkpoint record" msgstr "неочікуваний ID лінії чаÑу %u (повинен бути %u) у запиÑÑ– контрольної точки онлайн" -#: access/transam/xlog.c:7767 +#: access/transam/xlog.c:7769 #, c-format msgid "unexpected timeline ID %u (should be %u) in end-of-recovery record" msgstr "неочікуваний ID лінії чаÑу %u (повинен бути %u) у запиÑÑ– ÐºÑ–Ð½Ñ†Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ" -#: access/transam/xlog.c:8025 +#: access/transam/xlog.c:8027 #, c-format msgid "could not fsync write-through file \"%s\": %m" msgstr "не вдалоÑÑŒÑÑинхронізувати файл наÑкрізного запиÑу %s: %m" -#: access/transam/xlog.c:8031 +#: access/transam/xlog.c:8033 #, c-format msgid "could not fdatasync file \"%s\": %m" msgstr "не вдалоÑÑ fdatasync файл \"%s\": %m" -#: access/transam/xlog.c:8126 access/transam/xlog.c:8493 +#: access/transam/xlog.c:8128 access/transam/xlog.c:8495 #, c-format msgid "WAL level not sufficient for making an online backup" msgstr "Обраний рівень WAL недоÑтатній Ð´Ð»Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ \"на ходу\"" -#: access/transam/xlog.c:8127 access/transam/xlog.c:8494 +#: access/transam/xlog.c:8129 access/transam/xlog.c:8496 #: 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:8132 +#: access/transam/xlog.c:8134 #, c-format msgid "backup label too long (max %d bytes)" msgstr "мітка резервного ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð¾Ð²Ð³Ð° (макÑимум %d байт)" -#: access/transam/xlog.c:8248 +#: access/transam/xlog.c:8250 #, 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:8250 access/transam/xlog.c:8606 +#: access/transam/xlog.c:8252 access/transam/xlog.c:8608 #, 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:8330 backup/basebackup.c:1345 utils/adt/misc.c:347 +#: access/transam/xlog.c:8332 backup/basebackup.c:1345 utils/adt/misc.c:347 #, c-format msgid "symbolic link \"%s\" target is too long" msgstr "таргет Ñимволічного поÑÐ¸Ð»Ð°Ð½Ð½Ñ \"%s\" задовгий" -#: access/transam/xlog.c:8380 backup/basebackup.c:1360 +#: access/transam/xlog.c:8382 backup/basebackup.c:1360 #: commands/tablespace.c:399 commands/tablespace.c:581 utils/adt/misc.c:355 #, c-format msgid "tablespaces are not supported on this platform" msgstr "табличний проÑÑ‚Ñ–Ñ€ не підтримуєтьÑÑ Ð½Ð° цій платформі" -#: access/transam/xlog.c:8539 access/transam/xlog.c:8552 +#: access/transam/xlog.c:8541 access/transam/xlog.c:8554 #: access/transam/xlogrecovery.c:1211 access/transam/xlogrecovery.c:1218 #: access/transam/xlogrecovery.c:1277 access/transam/xlogrecovery.c:1357 #: access/transam/xlogrecovery.c:1381 @@ -2596,67 +2586,67 @@ msgstr "табличний проÑÑ‚Ñ–Ñ€ не підтримуєтьÑÑ Ð½Ð° Ñ msgid "invalid data in file \"%s\"" msgstr "невірні дані у файлі \"%s\"" -#: access/transam/xlog.c:8556 backup/basebackup.c:1200 +#: access/transam/xlog.c:8558 backup/basebackup.c:1200 #, c-format msgid "the standby was promoted during online backup" msgstr "режим Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ»Ð¾ підвищено у процеÑÑ– резервного ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ \"на ходу\"" -#: access/transam/xlog.c:8557 backup/basebackup.c:1201 +#: access/transam/xlog.c:8559 backup/basebackup.c:1201 #, 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:8604 +#: access/transam/xlog.c:8606 #, 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:8729 +#: access/transam/xlog.c:8731 #, c-format msgid "base backup done, waiting for required WAL segments to be archived" msgstr "резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ðµ, очікуютьÑÑ Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ñ– Ñегменти WAL Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ð²Ð°Ñ†Ñ–Ñ—" -#: access/transam/xlog.c:8743 +#: access/transam/xlog.c:8745 #, c-format msgid "still waiting for all required WAL segments to be archived (%d seconds elapsed)" msgstr "вÑе ще чекає на необхідні Ñегменти WAL Ð´Ð»Ñ Ð°Ñ€Ñ…Ñ–Ð²Ð°Ñ†Ñ–Ñ— (%d Ñекунд пройшло)" -#: access/transam/xlog.c:8745 +#: access/transam/xlog.c:8747 #, 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:8752 +#: access/transam/xlog.c:8754 #, c-format msgid "all required WAL segments have been archived" msgstr "уÑÑ– необхідні Ñегменти WAL архівовані" -#: access/transam/xlog.c:8756 +#: access/transam/xlog.c:8758 #, 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:8805 +#: access/transam/xlog.c:8807 #, c-format msgid "aborting backup due to backend exiting before pg_backup_stop was called" msgstr "Ð¿Ñ€Ð¸Ð¿Ð¸Ð½ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¾Ð±Ñлуговуючого процеÑу до виклику pg_backup_stop" -#: access/transam/xlogarchive.c:208 +#: access/transam/xlogarchive.c:215 #, c-format msgid "archive file \"%s\" has wrong size: %lld instead of %lld" msgstr "файл архіву \"%s\" має неправильний розмір: %lld заміÑÑ‚ÑŒ %lld" -#: access/transam/xlogarchive.c:217 +#: access/transam/xlogarchive.c:224 #, c-format msgid "restored log file \"%s\" from archive" msgstr "відновлений файл журналу \"%s\" з архіву" -#: access/transam/xlogarchive.c:231 +#: access/transam/xlogarchive.c:238 #, c-format msgid "restore_command returned a zero exit status, but stat() failed." msgstr "restore_command повернула нульовий ÑÑ‚Ð°Ñ‚ÑƒÑ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ, але stat() не вдавÑÑ." -#: access/transam/xlogarchive.c:263 +#: access/transam/xlogarchive.c:270 #, c-format msgid "could not restore file \"%s\" from archive: %s" msgstr "неможливо відновити файл \"%s\" з архіву: %s" @@ -2664,17 +2654,17 @@ msgstr "неможливо відновити файл \"%s\" з архіву: % #. translator: First %s represents a postgresql.conf parameter name like #. "recovery_end_command", the 2nd is the value of that parameter, the #. third an already translated error message. -#: access/transam/xlogarchive.c:376 +#: access/transam/xlogarchive.c:383 #, c-format msgid "%s \"%s\": %s" msgstr "%s \"%s\": %s" -#: access/transam/xlogarchive.c:486 access/transam/xlogarchive.c:566 +#: access/transam/xlogarchive.c:493 access/transam/xlogarchive.c:573 #, c-format msgid "could not create archive status file \"%s\": %m" msgstr "неможливо Ñтворити файл ÑтатуÑу архіву \"%s\": %m" -#: access/transam/xlogarchive.c:494 access/transam/xlogarchive.c:574 +#: access/transam/xlogarchive.c:501 access/transam/xlogarchive.c:581 #, c-format msgid "could not write archive status file \"%s\": %m" msgstr "неможливо запиÑати файл архівного ÑтатуÑу \"%s\": %m" @@ -2745,7 +2735,7 @@ msgstr "%s не може бути виконаний піÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾ Ñк п msgid "\"wait_seconds\" must not be negative or zero" msgstr "\"wait_seconds\" не має бути від'ємним чи нулем" -#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:252 +#: access/transam/xlogfuncs.c:607 storage/ipc/signalfuncs.c:257 #, c-format msgid "failed to send signal to postmaster: %m" msgstr "надіÑлати Ñигнал процеÑу postmaster не вдалоÑÑ: %m" @@ -2764,167 +2754,157 @@ msgstr[3] "Ñервер не підвищувавÑÑ Ð¿Ñ€Ð¾Ñ‚Ñгом %d Ñек msgid "recovery_prefetch is not supported on platforms that lack posix_fadvise()." msgstr "recovery_prefetch не підтримуєтьÑÑ Ð½Ð° платформах, у Ñких відÑÑƒÑ‚Ð½Ñ posix_fadvise()." -#: access/transam/xlogreader.c:625 +#: access/transam/xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "невірний зÑув запиÑу: %X/%X" -#: access/transam/xlogreader.c:633 +#: access/transam/xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "по зÑуву %X/%X запитано Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу" -#: access/transam/xlogreader.c:674 access/transam/xlogreader.c:1117 +#: access/transam/xlogreader.c:669 access/transam/xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "невірна довжина запиÑу по зÑуву %X/%X: очікувалоÑÑŒ %u, отримано %u" -#: access/transam/xlogreader.c:703 -#, c-format -msgid "out of memory while trying to decode a record of length %u" -msgstr "не виÑтачило пам'ÑÑ‚Ñ– під Ñ‡Ð°Ñ Ñпроби Ð·Ð°ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу довжиною %u" - -#: access/transam/xlogreader.c:725 -#, c-format -msgid "record length %u at %X/%X too long" -msgstr "довжина запиÑу %u на %X/%X Ñ” задовгою" - -#: access/transam/xlogreader.c:774 +#: access/transam/xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "немає Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†Ñ contrecord в позиції %X/%X" -#: access/transam/xlogreader.c:787 +#: access/transam/xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "неприпуÑтима довжина contrecord %u (очікувалоÑÑŒ %lld) на %X/%X" -#: access/transam/xlogreader.c:1125 +#: access/transam/xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "невірний ID менеджера реÑурÑів %u в %X/%X" -#: access/transam/xlogreader.c:1138 access/transam/xlogreader.c:1154 +#: access/transam/xlogreader.c:1155 access/transam/xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð· неправильним попереднім поÑиланнÑм %X/%X на %X/%X" -#: access/transam/xlogreader.c:1190 +#: access/transam/xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "некоректна контрольна Ñума даних менеджера реÑурÑів у запиÑу по зÑуву %X/%X" -#: access/transam/xlogreader.c:1227 +#: access/transam/xlogreader.c:1246 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "невірне магічне чиÑло %04X в Ñегменті журналу %s, зÑув %u" -#: access/transam/xlogreader.c:1241 access/transam/xlogreader.c:1282 +#: access/transam/xlogreader.c:1260 access/transam/xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "невірні інформаційні біти %04X в Ñегменті журналу %s, зÑув %u" -#: access/transam/xlogreader.c:1256 +#: access/transam/xlogreader.c:1275 #, 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:1264 +#: access/transam/xlogreader.c:1283 #, c-format msgid "WAL file is from different database system: incorrect segment size in page header" msgstr "Файл WAL належить іншій ÑиÑтемі баз даних: некоректний розмір Ñегменту в заголовку Ñторінки" -#: access/transam/xlogreader.c:1270 +#: access/transam/xlogreader.c:1289 #, c-format msgid "WAL file is from different database system: incorrect XLOG_BLCKSZ in page header" msgstr "Файл WAL належить іншій ÑиÑтемі баз даних: некоректний XLOG_BLCKSZ в заголовку Ñторінки" -#: access/transam/xlogreader.c:1301 +#: access/transam/xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неочікуваний pageaddr %X/%X в Ñегменті журналу %s, зÑув %u" -#: access/transam/xlogreader.c:1326 +#: access/transam/xlogreader.c:1345 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "Ð¿Ð¾Ñ€ÑƒÑˆÐµÐ½Ð½Ñ Ð¿Ð¾ÑлідовноÑÑ‚Ñ– ID лінії чаÑу %u (піÑÐ»Ñ %u) в Ñегменті журналу %s, зÑув %u" -#: access/transam/xlogreader.c:1731 +#: access/transam/xlogreader.c:1750 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "ідентифікатор блока %u out-of-order в позиції %X/%X" -#: access/transam/xlogreader.c:1755 +#: access/transam/xlogreader.c:1774 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA вÑтановлений, але немає даних в позиції %X/%X" -#: access/transam/xlogreader.c:1762 +#: access/transam/xlogreader.c:1781 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "BKPBLOCK_HAS_DATA вÑтановлений, але довжина даних дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1798 +#: access/transam/xlogreader.c:1817 #, 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:1814 +#: access/transam/xlogreader.c:1833 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "BKPIMAGE_HAS_HOLE не вÑтановлений, але Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑку задані: зÑув %u, довжина %u в позиції %X/%X" -#: access/transam/xlogreader.c:1828 +#: access/transam/xlogreader.c:1847 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "BKPIMAGE_COMPRESSED вÑтановлений, але довжина образу блока дорівнює %u в позиції %X/%X" -#: access/transam/xlogreader.c:1843 +#: access/transam/xlogreader.c:1862 #, 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:1859 +#: access/transam/xlogreader.c:1878 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "BKPBLOCK_SAME_REL вÑтановлений, але попереднє Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ задано в позиції %X/%X" -#: access/transam/xlogreader.c:1871 +#: access/transam/xlogreader.c:1890 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "невірний ідентифікатор блоку %u в позиції %X/%X" -#: access/transam/xlogreader.c:1938 +#: access/transam/xlogreader.c:1957 #, c-format msgid "record with invalid length at %X/%X" msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð· невірною довжиною на %X/%X" -#: access/transam/xlogreader.c:1963 +#: access/transam/xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ блок резервної копії з ID %d у запиÑÑ– WAL" -#: access/transam/xlogreader.c:2047 +#: access/transam/xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ %X/%X з недійÑним вказаним блоком %d" -#: access/transam/xlogreader.c:2054 +#: access/transam/xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ %X/%X з недійÑним Ñтаном, блок %d" -#: access/transam/xlogreader.c:2081 access/transam/xlogreader.c:2098 +#: access/transam/xlogreader.c:2100 access/transam/xlogreader.c:2117 #, 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:2107 +#: access/transam/xlogreader.c:2126 #, c-format msgid "could not restore image at %X/%X compressed with unknown method, block %d" msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ %X/%X ÑтиÑнуте з невідомим методом, блок %d" -#: access/transam/xlogreader.c:2115 +#: access/transam/xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¿Ð°ÐºÑƒÐ²Ð°Ñ‚Ð¸ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° %X/%X, блок %d" @@ -3585,7 +3565,7 @@ msgstr "не вдалоÑÑ Ñтворити каталог \"%s\": %m" msgid "directory \"%s\" exists but is not empty" msgstr "каталог \"%s\" Ñ–Ñнує, але він не порожній" -#: backup/basebackup_server.c:123 utils/init/postinit.c:1086 +#: backup/basebackup_server.c:123 utils/init/postinit.c:1090 #, c-format msgid "could not access directory \"%s\": %m" msgstr "немає доÑтупу до каталогу \"%s\": %m" @@ -3806,7 +3786,7 @@ msgstr "Ñ€ÐµÑ‡ÐµÐ½Ð½Ñ IN SCHEMA не можна викориÑтати в GRANT #: commands/tablecmds.c:8371 commands/tablecmds.c:8489 #: commands/tablecmds.c:12218 commands/tablecmds.c:12399 #: commands/tablecmds.c:12559 commands/tablecmds.c:13723 -#: commands/tablecmds.c:16292 commands/trigger.c:954 parser/analyze.c:2468 +#: commands/tablecmds.c:16292 commands/trigger.c:954 parser/analyze.c:2506 #: parser/parse_relation.c:725 parser/parse_target.c:1063 #: parser/parse_type.c:144 parser/parse_utilcmd.c:3435 #: parser/parse_utilcmd.c:3471 parser/parse_utilcmd.c:3513 utils/adt/acl.c:2869 @@ -3816,7 +3796,7 @@ msgid "column \"%s\" of relation \"%s\" does not exist" msgstr "Ñтовпець \"%s\" зв'Ñзку \"%s\" не Ñ–Ñнує" #: catalog/aclchk.c:1850 catalog/objectaddress.c:1383 commands/sequence.c:1172 -#: commands/tablecmds.c:253 commands/tablecmds.c:17156 utils/adt/acl.c:2077 +#: commands/tablecmds.c:253 commands/tablecmds.c:17164 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 #, c-format @@ -4262,8 +4242,8 @@ msgstr "джерело Ñторонніх даних з OID %u не Ñ–Ñнує" msgid "foreign server with OID %u does not exist" msgstr "Ñтороннього Ñерверу з OID %u не уÑніє" -#: catalog/aclchk.c:4816 catalog/aclchk.c:5210 utils/cache/typcache.c:385 -#: utils/cache/typcache.c:440 +#: catalog/aclchk.c:4816 catalog/aclchk.c:5210 utils/cache/typcache.c:390 +#: utils/cache/typcache.c:445 #, c-format msgid "type with OID %u does not exist" msgstr "тип з OID %u не Ñ–Ñнує" @@ -4425,10 +4405,10 @@ msgstr "неможливо видалити %s, тому що від нього #: catalog/dependency.c:1212 commands/tablecmds.c:1328 #: commands/tablecmds.c:14365 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:1413 utils/misc/guc.c:7402 -#: utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11865 -#: utils/misc/guc.c:11899 utils/misc/guc.c:11933 utils/misc/guc.c:11976 -#: utils/misc/guc.c:12018 +#: storage/lmgr/deadlock.c:1151 storage/lmgr/proc.c:1421 utils/misc/guc.c:7402 +#: utils/misc/guc.c:7438 utils/misc/guc.c:7508 utils/misc/guc.c:11873 +#: utils/misc/guc.c:11907 utils/misc/guc.c:11941 utils/misc/guc.c:11984 +#: utils/misc/guc.c:12026 #, c-format msgid "%s" msgstr "%s" @@ -4555,100 +4535,100 @@ msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ relfilenode не вÑтановлено в режимі msgid "cannot add NO INHERIT constraint to partitioned table \"%s\"" msgstr "не можна додати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ NO INHERIT до Ñекціонованої таблиці \"%s\"" -#: catalog/heap.c:2401 +#: catalog/heap.c:2402 #, c-format msgid "check constraint \"%s\" already exists" msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ \"%s\" вже інÑує" -#: catalog/heap.c:2571 catalog/index.c:889 catalog/pg_constraint.c:689 +#: catalog/heap.c:2572 catalog/index.c:889 catalog/pg_constraint.c:689 #: commands/tablecmds.c:8863 #, c-format msgid "constraint \"%s\" for relation \"%s\" already exists" msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\" вже Ñ–Ñнує" -#: catalog/heap.c:2578 +#: catalog/heap.c:2579 #, c-format msgid "constraint \"%s\" conflicts with non-inherited constraint on relation \"%s\"" msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" конфліктує з неуÑпадкованим обмеженнÑм Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\"" -#: catalog/heap.c:2589 +#: catalog/heap.c:2590 #, c-format msgid "constraint \"%s\" conflicts with inherited constraint on relation \"%s\"" msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" конфліктує з уÑпадкованим обмеженнÑм Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\"" -#: catalog/heap.c:2599 +#: catalog/heap.c:2600 #, c-format msgid "constraint \"%s\" conflicts with NOT VALID constraint on relation \"%s\"" msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" конфліктує з обмеженнÑм NOT VALID в відношенні \"%s\"" -#: catalog/heap.c:2604 +#: catalog/heap.c:2605 #, c-format msgid "merging constraint \"%s\" with inherited definition" msgstr "Ð·Ð»Ð¸Ñ‚Ñ‚Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" з уÑпадкованим визначеннÑм" -#: catalog/heap.c:2709 +#: catalog/heap.c:2710 #, c-format msgid "cannot use generated column \"%s\" in column generation expression" msgstr "в виразі ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð½Ðµ можна викориÑтовувати згенерований Ñтовпець \"%s\" " -#: catalog/heap.c:2711 +#: catalog/heap.c:2712 #, c-format msgid "A generated column cannot reference another generated column." msgstr "Згенерований Ñтовпець не може поÑилатиÑÑ Ð½Ð° інший згенерований Ñтовпець." -#: catalog/heap.c:2717 +#: catalog/heap.c:2718 #, c-format msgid "cannot use whole-row variable in column generation expression" msgstr "у виразі ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñтовпців не можна викориÑтовувати змінну уÑього Ñ€Ñдка" -#: catalog/heap.c:2718 +#: catalog/heap.c:2719 #, c-format msgid "This would cause the generated column to depend on its own value." msgstr "Це призведе до того, що згенерований Ñтовпець буде залежати від влаÑного значеннÑ." -#: catalog/heap.c:2771 +#: catalog/heap.c:2774 #, c-format msgid "generation expression is not immutable" msgstr "вираз генерації не Ñ” незмінним" -#: catalog/heap.c:2799 rewrite/rewriteHandler.c:1290 +#: catalog/heap.c:2802 rewrite/rewriteHandler.c:1290 #, c-format msgid "column \"%s\" is of type %s but default expression is of type %s" msgstr "Ñтовпець \"%s\" має тип %s, але тип виразу за замовчуваннÑм %s" -#: catalog/heap.c:2804 commands/prepare.c:334 parser/analyze.c:2692 +#: catalog/heap.c:2807 commands/prepare.c:334 parser/analyze.c:2730 #: parser/parse_target.c:594 parser/parse_target.c:882 #: parser/parse_target.c:892 rewrite/rewriteHandler.c:1295 #, c-format msgid "You will need to rewrite or cast the expression." msgstr "Потрібно буде перепиÑати або привеÑти вираз." -#: catalog/heap.c:2851 +#: catalog/heap.c:2854 #, c-format msgid "only table \"%s\" can be referenced in check constraint" msgstr "в обмеженні-перевірці можна поÑилатиÑÑ Ð»Ð¸ÑˆÐµ на таблицю \"%s\"" -#: catalog/heap.c:3149 +#: catalog/heap.c:3152 #, c-format msgid "unsupported ON COMMIT and foreign key combination" msgstr "непідтримуване Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ ключа з ON COMMIT" -#: catalog/heap.c:3150 +#: catalog/heap.c:3153 #, c-format msgid "Table \"%s\" references \"%s\", but they do not have the same ON COMMIT setting." msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" поÑилаєтьÑÑ Ð½Ð° \"%s\", але вони не мають той же параметр ON COMMIT." -#: catalog/heap.c:3155 +#: catalog/heap.c:3158 #, c-format msgid "cannot truncate a table referenced in a foreign key constraint" msgstr "Ñкоротити таблицю, на Ñку поÑилаєтьÑÑ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½Ñ–Ð¹ ключ, не можливо" -#: catalog/heap.c:3156 +#: catalog/heap.c:3159 #, c-format msgid "Table \"%s\" references \"%s\"." msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" поÑилаєтьÑÑ Ð½Ð° \"%s\"." -#: catalog/heap.c:3158 +#: catalog/heap.c:3161 #, c-format msgid "Truncate table \"%s\" at the same time, or use TRUNCATE ... CASCADE." msgstr "Скоротіть таблицю \"%s\" паралельно або викориÑтайте TRUNCATE ... CASCADE." @@ -4714,28 +4694,28 @@ msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу relfilenode не вÑтановлено msgid "DROP INDEX CONCURRENTLY must be first action in transaction" msgstr "DROP INDEX CONCURRENTLY повинен бути першою дією в транзакції" -#: catalog/index.c:3637 +#: catalog/index.c:3646 #, c-format msgid "cannot reindex temporary tables of other sessions" msgstr "повторно індекÑувати тимчаÑові таблиці інших ÑеанÑів не можна" -#: catalog/index.c:3648 commands/indexcmds.c:3560 +#: catalog/index.c:3657 commands/indexcmds.c:3536 #, c-format msgid "cannot reindex invalid index on TOAST table" msgstr "переіндекÑувати неприпуÑтимий Ñ–Ð½Ð´ÐµÐºÑ Ð² таблиці TOAST не можна" -#: catalog/index.c:3664 commands/indexcmds.c:3440 commands/indexcmds.c:3584 +#: catalog/index.c:3673 commands/indexcmds.c:3416 commands/indexcmds.c:3560 #: commands/tablecmds.c:3305 #, c-format msgid "cannot move system relation \"%s\"" msgstr "переміÑтити ÑиÑтемне Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\" не можна" -#: catalog/index.c:3808 +#: catalog/index.c:3817 #, c-format msgid "index \"%s\" was reindexed" msgstr "Ñ–Ð½Ð´ÐµÐºÑ \"%s\" був перебудований" -#: catalog/index.c:3945 +#: catalog/index.c:3954 #, c-format msgid "cannot reindex invalid index \"%s.%s\" on TOAST table, skipping" msgstr "переіндекÑувати неприпуÑтимий Ñ–Ð½Ð´ÐµÐºÑ \"%s.%s\" в таблиці TOAST не можна, пропуÑкаєтьÑÑ" @@ -4877,7 +4857,7 @@ msgid "cannot create temporary tables during a parallel operation" msgstr "не можна Ñтворити тимчаÑові таблиці під Ñ‡Ð°Ñ Ð¿Ð°Ñ€Ð°Ð»ÐµÐ»ÑŒÐ½Ð¾Ñ— операції" #: catalog/namespace.c:4338 commands/tablespace.c:1236 commands/variable.c:64 -#: utils/misc/guc.c:12050 utils/misc/guc.c:12152 +#: utils/misc/guc.c:12058 utils/misc/guc.c:12160 #, c-format msgid "List syntax is invalid." msgstr "Помилка ÑинтакÑиÑу у ÑпиÑку." @@ -4890,19 +4870,19 @@ msgid "\"%s\" is not a table" msgstr "\"%s\" не Ñ” таблицею" #: catalog/objectaddress.c:1398 commands/tablecmds.c:259 -#: commands/tablecmds.c:17161 commands/view.c:119 +#: commands/tablecmds.c:17169 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:17166 +#: commands/tablecmds.c:17174 #, c-format msgid "\"%s\" is not a materialized view" msgstr "\"%s\" не Ñ” матеріалізованим поданнÑм" #: catalog/objectaddress.c:1412 commands/tablecmds.c:283 -#: commands/tablecmds.c:17171 +#: commands/tablecmds.c:17179 #, c-format msgid "\"%s\" is not a foreign table" msgstr "\"%s\" не Ñ” Ñторонньою таблицею" @@ -6512,7 +6492,7 @@ msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ локальну назву \ msgid "must be superuser to import system collations" msgstr "імпортувати ÑиÑтмені правила ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ тільки ÑуперкориÑтувач" -#: commands/collationcmds.c:618 commands/copyfrom.c:1499 commands/copyto.c:679 +#: commands/collationcmds.c:618 commands/copyfrom.c:1509 commands/copyto.c:679 #: libpq/be-secure-common.c:81 #, c-format msgid "could not execute command \"%s\": %m" @@ -6527,8 +6507,8 @@ msgstr "придатні ÑиÑтемні локалі не знайдені" #: commands/dbcommands.c:1874 commands/dbcommands.c:2068 #: commands/dbcommands.c:2310 commands/dbcommands.c:2405 #: commands/dbcommands.c:2515 commands/dbcommands.c:3014 -#: utils/init/postinit.c:947 utils/init/postinit.c:1053 -#: utils/init/postinit.c:1079 +#: utils/init/postinit.c:947 utils/init/postinit.c:1011 +#: utils/init/postinit.c:1083 #, c-format msgid "database \"%s\" does not exist" msgstr "бази даних \"%s\" не Ñ–Ñнує" @@ -6754,7 +6734,7 @@ msgstr "Ñтовпець \"%s\" Ñ” згенерованим Ñтовпцем" msgid "Generated columns cannot be used in COPY." msgstr "Згенеровані Ñтовпці не можна викориÑтовувати в COPY." -#: commands/copy.c:784 commands/indexcmds.c:1850 commands/statscmds.c:243 +#: commands/copy.c:784 commands/indexcmds.c:1826 commands/statscmds.c:243 #: commands/tablecmds.c:2379 commands/tablecmds.c:3035 #: commands/tablecmds.c:3529 parser/parse_relation.c:3660 #: parser/parse_relation.c:3680 utils/adt/tsvector_op.c:2688 @@ -6833,32 +6813,37 @@ msgstr "виконати COPY FREEZE через попередню Ð°ÐºÑ‚Ð¸Ð²Ð½Ñ msgid "cannot perform COPY FREEZE because the table was not created or truncated in the current subtransaction" msgstr "не можна виконати COPY FREEZE, тому, що Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð½Ðµ була Ñтворена або Ñкорочена в поточній підтранзакції" -#: commands/copyfrom.c:1267 commands/copyto.c:611 +#: commands/copyfrom.c:1270 commands/copyto.c:611 #, c-format msgid "FORCE_NOT_NULL column \"%s\" not referenced by COPY" msgstr "Стовпець FORCE_NOT_NULL \"%s\" не фігурує в COPY" -#: commands/copyfrom.c:1290 commands/copyto.c:634 +#: commands/copyfrom.c:1293 commands/copyto.c:634 #, c-format msgid "FORCE_NULL column \"%s\" not referenced by COPY" msgstr "Стовпець FORCE_NULL \"%s\" не фігурує в COPY" -#: commands/copyfrom.c:1518 +#: commands/copyfrom.c:1346 utils/mb/mbutils.c:385 +#, c-format +msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" +msgstr "функції за замовчуваннÑм Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" в \"%s\" не Ñ–Ñнує" + +#: commands/copyfrom.c:1528 #, c-format msgid "COPY FROM instructs the PostgreSQL server process to read a file. You may want a client-side facility such as psql's \\copy." msgstr "COPY FROM наказує Ñерверному процеÑу PostgreSQL прочитати дані з файлу. Можливо, вам потрібна клієнтÑька команда, наприклад \\copy в psql." -#: commands/copyfrom.c:1531 commands/copyto.c:731 +#: commands/copyfrom.c:1541 commands/copyto.c:731 #, c-format msgid "\"%s\" is a directory" msgstr "\"%s\" - каталог" -#: commands/copyfrom.c:1599 commands/copyto.c:301 libpq/be-secure-common.c:105 +#: commands/copyfrom.c:1609 commands/copyto.c:301 libpq/be-secure-common.c:105 #, c-format msgid "could not close pipe to external command: %m" msgstr "не вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ канал за допомогою зовнішньої команди: %m" -#: commands/copyfrom.c:1614 commands/copyto.c:306 +#: commands/copyfrom.c:1624 commands/copyto.c:306 #, c-format msgid "program \"%s\" failed" msgstr "збій програми \"%s\"" @@ -7183,7 +7168,7 @@ msgid "cannot use invalid database \"%s\" as template" msgstr "не можна викориÑтовувати невірну базу даних \"%s\" в ÑкоÑÑ‚Ñ– шаблону" #: commands/dbcommands.c:976 commands/dbcommands.c:2320 -#: utils/init/postinit.c:1062 +#: utils/init/postinit.c:1026 #, c-format msgid "Use DROP DATABASE to drop invalid databases." msgstr "ВикориÑтайте DROP DATABASE Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ²Ñ–Ñ€Ð½Ð¸Ñ… баз даних." @@ -7467,7 +7452,7 @@ msgstr[1] "Є %d інші ÑеанÑи з викориÑтаннÑм цієї б msgstr[2] "Є %d інших ÑеанÑів з викориÑтаннÑм цієї бази даних." msgstr[3] "Є %d інших ÑеанÑів з викориÑтаннÑм цієї бази даних." -#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3848 +#: commands/dbcommands.c:2966 storage/ipc/procarray.c:3847 #, c-format msgid "There is %d prepared transaction using the database." msgid_plural "There are %d prepared transactions using the database." @@ -8582,218 +8567,218 @@ msgstr "непідтримуване Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ \"%s\" з визначе msgid "%s constraints cannot be used when partition keys include expressions." msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ %s не можуть викориÑтовуватиÑÑŒ, Ñкщо ключі ÑÐµÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÑŽÑ‚ÑŒ вирази." -#: commands/indexcmds.c:1037 +#: commands/indexcmds.c:1040 #, c-format msgid "unique constraint on partitioned table must include all partitioning columns" msgstr "Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÑƒÐ½Ñ–ÐºÐ°Ð»ÑŒÐ½Ð¾ÑÑ‚Ñ– в Ñекціонованій таблиці повинно включати вÑÑ– Ñтовпці ÑекціонуваннÑ" -#: commands/indexcmds.c:1038 +#: commands/indexcmds.c:1041 #, c-format msgid "%s constraint on table \"%s\" lacks column \"%s\" which is part of the partition key." msgstr "в обмеженні %s таблиці\"%s\" не виÑтачає ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ \"%s\", що Ñ” чаÑтиною ключа ÑекціонуваннÑ." -#: commands/indexcmds.c:1057 commands/indexcmds.c:1076 +#: commands/indexcmds.c:1060 commands/indexcmds.c:1079 #, c-format msgid "index creation on system columns is not supported" msgstr "ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу Ð´Ð»Ñ ÑиÑтемних Ñтовпців не підтримуєтьÑÑ" -#: commands/indexcmds.c:1276 tcop/utility.c:1518 +#: commands/indexcmds.c:1279 tcop/utility.c:1518 #, c-format msgid "cannot create unique index on partitioned table \"%s\"" msgstr "не можна Ñтворити унікальний Ñ–Ð½Ð´ÐµÐºÑ Ð² Ñекціонованій таблиці \"%s\"" -#: commands/indexcmds.c:1278 tcop/utility.c:1520 +#: commands/indexcmds.c:1281 tcop/utility.c:1520 #, c-format msgid "Table \"%s\" contains partitions that are foreign tables." msgstr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" міÑтить Ñекції, Ñкі Ñ” зовнішніми таблицÑми." -#: commands/indexcmds.c:1767 +#: commands/indexcmds.c:1743 #, c-format msgid "functions in index predicate must be marked IMMUTABLE" msgstr "функції в предикаті індекÑу повинні бути позначені Ñк IMMUTABLE" -#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:2529 +#: commands/indexcmds.c:1821 parser/parse_utilcmd.c:2529 #: parser/parse_utilcmd.c:2664 #, c-format msgid "column \"%s\" named in key does not exist" msgstr "вказаний у ключі Ñтовпець \"%s\" не Ñ–Ñнує" -#: commands/indexcmds.c:1869 parser/parse_utilcmd.c:1826 +#: commands/indexcmds.c:1845 parser/parse_utilcmd.c:1826 #, c-format msgid "expressions are not supported in included columns" msgstr "вирази не підтримуютьÑÑ Ñƒ включених ÑтовпцÑÑ… " -#: commands/indexcmds.c:1910 +#: commands/indexcmds.c:1886 #, c-format msgid "functions in index expression must be marked IMMUTABLE" msgstr "функції в індекÑному виразі повинні бути позначені Ñк IMMUTABLE" -#: commands/indexcmds.c:1925 +#: commands/indexcmds.c:1901 #, c-format msgid "including column does not support a collation" msgstr "включені Ñтовпці не підтримують правила ÑортуваннÑ" -#: commands/indexcmds.c:1929 +#: commands/indexcmds.c:1905 #, c-format msgid "including column does not support an operator class" msgstr "включені Ñтовпці не підтримують клаÑи операторів" -#: commands/indexcmds.c:1933 +#: commands/indexcmds.c:1909 #, c-format msgid "including column does not support ASC/DESC options" msgstr "включені Ñтовпці не підтримують параметри ASC/DESC" -#: commands/indexcmds.c:1937 +#: commands/indexcmds.c:1913 #, c-format msgid "including column does not support NULLS FIRST/LAST options" msgstr "включені Ñтовпці не підтримують параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:1978 +#: commands/indexcmds.c:1954 #, c-format msgid "could not determine which collation to use for index expression" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸, Ñке правило ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтати Ð´Ð»Ñ Ñ–Ð½Ð´ÐµÐºÑного виразу" -#: commands/indexcmds.c:1986 commands/tablecmds.c:17502 commands/typecmds.c:807 +#: commands/indexcmds.c:1962 commands/tablecmds.c:17512 commands/typecmds.c:807 #: parser/parse_expr.c:2690 parser/parse_type.c:570 parser/parse_utilcmd.c:3796 #: utils/adt/misc.c:601 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не підтримує правила ÑортуваннÑ" -#: commands/indexcmds.c:2051 +#: commands/indexcmds.c:2027 #, c-format msgid "operator %s is not commutative" msgstr "оператор %s не комутативний" -#: commands/indexcmds.c:2053 +#: commands/indexcmds.c:2029 #, c-format msgid "Only commutative operators can be used in exclusion constraints." msgstr "Ð’ обмеженнÑÑ…-виключеннÑÑ… можуть викориÑтовуватиÑÑŒ лише комутативні оператори." -#: commands/indexcmds.c:2079 +#: commands/indexcmds.c:2055 #, c-format msgid "operator %s is not a member of operator family \"%s\"" msgstr "оператор %s не Ñ” членом ÑімейÑтва операторів \"%s\"" -#: commands/indexcmds.c:2082 +#: commands/indexcmds.c:2058 #, c-format msgid "The exclusion operator must be related to the index operator class for the constraint." msgstr "Оператор винÑтку Ð´Ð»Ñ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ відноÑитиÑÑŒ до клаÑу операторів індекÑу." -#: commands/indexcmds.c:2117 +#: commands/indexcmds.c:2093 #, c-format msgid "access method \"%s\" does not support ASC/DESC options" msgstr "метод доÑтупу \"%s\" не підтримує параметри ASC/DESC" -#: commands/indexcmds.c:2122 +#: commands/indexcmds.c:2098 #, c-format msgid "access method \"%s\" does not support NULLS FIRST/LAST options" msgstr "метод доÑтупу \"%s\" не підтримує параметри NULLS FIRST/LAST" -#: commands/indexcmds.c:2168 commands/tablecmds.c:17527 -#: commands/tablecmds.c:17533 commands/typecmds.c:2302 +#: commands/indexcmds.c:2144 commands/tablecmds.c:17537 +#: commands/tablecmds.c:17543 commands/typecmds.c:2302 #, c-format msgid "data type %s has no default operator class for access method \"%s\"" msgstr "тип даних %s не має клаÑу операторів за замовчуваннÑм Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ñƒ доÑтупу \"%s\"" -#: commands/indexcmds.c:2170 +#: commands/indexcmds.c:2146 #, c-format msgid "You must specify an operator class for the index or define a default operator class for the data type." msgstr "Ви повинні вказати ÐºÐ»Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² Ð´Ð»Ñ Ñ–Ð½Ð´ÐµÐºÑу або визначити ÐºÐ»Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² за замовчуваннÑм Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ типу даних." -#: commands/indexcmds.c:2199 commands/indexcmds.c:2207 +#: commands/indexcmds.c:2175 commands/indexcmds.c:2183 #: commands/opclasscmds.c:205 #, c-format msgid "operator class \"%s\" does not exist for access method \"%s\"" msgstr "ÐºÐ»Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² \"%s\" не Ñ–Ñнує Ð´Ð»Ñ Ð¼ÐµÑ‚Ð¾Ð´Ñƒ доÑтупу \"%s\"" -#: commands/indexcmds.c:2221 commands/typecmds.c:2290 +#: commands/indexcmds.c:2197 commands/typecmds.c:2290 #, c-format msgid "operator class \"%s\" does not accept data type %s" msgstr "ÐºÐ»Ð°Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² \"%s\" не приймає тип даних %s" -#: commands/indexcmds.c:2311 +#: commands/indexcmds.c:2287 #, c-format msgid "there are multiple default operator classes for data type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ даних %s Ñ” кілька клаÑів операторів за замовчуваннÑм" -#: commands/indexcmds.c:2639 +#: commands/indexcmds.c:2615 #, c-format msgid "unrecognized REINDEX option \"%s\"" msgstr "нерозпізнаний параметр REINDEX \"%s\"" -#: commands/indexcmds.c:2863 +#: commands/indexcmds.c:2839 #, c-format msgid "table \"%s\" has no indexes that can be reindexed concurrently" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" не має індекÑів, Ñкі можна переіндекÑувати паралельно" -#: commands/indexcmds.c:2877 +#: commands/indexcmds.c:2853 #, c-format msgid "table \"%s\" has no indexes to reindex" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" не має індекÑів Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ–Ð½Ð´ÐµÐºÑуваннÑ" -#: commands/indexcmds.c:2917 commands/indexcmds.c:3421 -#: commands/indexcmds.c:3549 +#: commands/indexcmds.c:2893 commands/indexcmds.c:3397 +#: commands/indexcmds.c:3525 #, c-format msgid "cannot reindex system catalogs concurrently" msgstr "не можна конкурентно переіндекÑувати ÑиÑтемні каталоги" -#: commands/indexcmds.c:2940 +#: commands/indexcmds.c:2916 #, c-format msgid "can only reindex the currently open database" msgstr "переіндекÑувати можна тільки наразі відкриту базу даних" -#: commands/indexcmds.c:3028 +#: commands/indexcmds.c:3004 #, c-format msgid "cannot reindex system catalogs concurrently, skipping all" msgstr "не можна конкурентно переіндекÑувати ÑиÑтемні каталоги, пропуÑкаємо" -#: commands/indexcmds.c:3061 +#: commands/indexcmds.c:3037 #, c-format msgid "cannot move system relations, skipping all" msgstr "не можна переміÑтити ÑиÑтемні відношеннÑ, пропуÑкаютьÑÑ ÑƒÑÑ–" -#: commands/indexcmds.c:3107 +#: commands/indexcmds.c:3083 #, c-format msgid "while reindexing partitioned table \"%s.%s\"" msgstr "під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ–Ð½Ð´ÐµÐºÑÑƒÐ²Ð°Ð½Ð½Ñ Ñекціонованої таблиці \"%s.%s\"" -#: commands/indexcmds.c:3110 +#: commands/indexcmds.c:3086 #, c-format msgid "while reindexing partitioned index \"%s.%s\"" msgstr "під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ–Ð½Ð´ÐµÐºÑÑƒÐ²Ð°Ð½Ð½Ñ Ñекціонованого індекÑу \"%s.%s\"" -#: commands/indexcmds.c:3301 commands/indexcmds.c:4157 +#: commands/indexcmds.c:3277 commands/indexcmds.c:4133 #, c-format msgid "table \"%s.%s\" was reindexed" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s.%s\" була переіндекÑована" -#: commands/indexcmds.c:3453 commands/indexcmds.c:3505 +#: commands/indexcmds.c:3429 commands/indexcmds.c:3481 #, c-format msgid "cannot reindex invalid index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндекÑувати пошкоджений Ñ–Ð½Ð´ÐµÐºÑ \"%s.%s\" паралельно, пропуÑкаєтьÑÑ" -#: commands/indexcmds.c:3459 +#: commands/indexcmds.c:3435 #, c-format msgid "cannot reindex exclusion constraint index \"%s.%s\" concurrently, skipping" msgstr "неможливо переіндекÑувати Ñ–Ð½Ð´ÐµÐºÑ Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ-Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ \"%s.%s\" паралельно, пропуÑкаєтьÑÑ" -#: commands/indexcmds.c:3614 +#: commands/indexcmds.c:3590 #, c-format msgid "cannot reindex this type of relation concurrently" msgstr "неможливо переіндекÑувати цей тип відношень паралельон" -#: commands/indexcmds.c:3635 +#: commands/indexcmds.c:3611 #, c-format msgid "cannot move non-shared relation to tablespace \"%s\"" msgstr "не можна переміÑтити не Ñпільне Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð´Ð¾ табличного проÑтору \"%s\"" -#: commands/indexcmds.c:4138 commands/indexcmds.c:4150 +#: commands/indexcmds.c:4114 commands/indexcmds.c:4126 #, c-format msgid "index \"%s.%s\" was reindexed" msgstr "Ñ–Ð½Ð´ÐµÐºÑ \"%s.%s\" був перебудований" -#: commands/indexcmds.c:4140 commands/indexcmds.c:4159 +#: commands/indexcmds.c:4116 commands/indexcmds.c:4135 #, c-format msgid "%s." msgstr "%s." @@ -9108,8 +9093,8 @@ msgstr "атрибут оператора \"%s\" неможливо змінит #: commands/policy.c:89 commands/policy.c:382 commands/statscmds.c:149 #: commands/tablecmds.c:1609 commands/tablecmds.c:2197 #: commands/tablecmds.c:3423 commands/tablecmds.c:6312 -#: commands/tablecmds.c:9144 commands/tablecmds.c:17082 -#: commands/tablecmds.c:17117 commands/trigger.c:328 commands/trigger.c:1378 +#: commands/tablecmds.c:9144 commands/tablecmds.c:17090 +#: commands/tablecmds.c:17125 commands/trigger.c:328 commands/trigger.c:1378 #: commands/trigger.c:1488 rewrite/rewriteDefine.c:278 #: rewrite/rewriteDefine.c:957 rewrite/rewriteRemove.c:80 #, c-format @@ -9207,8 +9192,8 @@ msgstr "підготовлений оператор \"%s\" не Ñ–Ñнує" msgid "must be superuser to create custom procedural language" msgstr "Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувацької мови потрібно бути ÑуперкориÑтувачем" -#: commands/publicationcmds.c:130 postmaster/postmaster.c:1219 -#: postmaster/postmaster.c:1318 utils/init/miscinit.c:1651 +#: commands/publicationcmds.c:130 postmaster/postmaster.c:1222 +#: postmaster/postmaster.c:1321 utils/init/miscinit.c:1659 #, c-format msgid "invalid list syntax in parameter \"%s\"" msgstr "неприпуÑтимий ÑинтакÑÐ¸Ñ ÑпиÑку в параметрі \"%s\"" @@ -9678,7 +9663,7 @@ msgid "must be superuser to create subscriptions" msgstr "Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸Ñок потрібно бути ÑуперкориÑтувачем" #: commands/subscriptioncmds.c:648 commands/subscriptioncmds.c:776 -#: replication/logical/tablesync.c:1229 replication/logical/worker.c:3738 +#: replication/logical/tablesync.c:1247 replication/logical/worker.c:3738 #, c-format msgid "could not connect to the publisher: %s" msgstr "не вдалоÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚Ð¸ÑÑŒ до Ñервера публікації: %s" @@ -9791,7 +9776,7 @@ msgstr "ВлаÑником підпиÑки повинен бути Ñуперк msgid "could not receive list of replicated tables from the publisher: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑпиÑок реплікованих таблиць із Ñервера публікації: %s" -#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:809 +#: commands/subscriptioncmds.c:1810 replication/logical/tablesync.c:819 #: replication/pgoutput/pgoutput.c:1072 #, c-format msgid "cannot use different column lists for table \"%s.%s\" in different publications" @@ -9884,7 +9869,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:19009 +#: commands/tablecmds.c:269 commands/tablecmds.c:293 commands/tablecmds.c:19019 #: parser/parse_utilcmd.c:2261 #, c-format msgid "index \"%s\" does not exist" @@ -10815,8 +10800,8 @@ msgstr "ЗаміÑÑ‚ÑŒ цього змініть влаÑника таблиці msgid "cannot change owner of sequence \"%s\"" msgstr "неможливо змінити влаÑника поÑлідовноÑÑ‚Ñ– \"%s\"" -#: commands/tablecmds.c:13882 commands/tablecmds.c:17193 -#: commands/tablecmds.c:17212 +#: commands/tablecmds.c:13882 commands/tablecmds.c:17201 +#: commands/tablecmds.c:17220 #, c-format msgid "Use ALTER TYPE instead." msgstr "ЗаміÑÑ‚ÑŒ цього викориÑтайте ALTER TYPE." @@ -10886,12 +10871,12 @@ msgstr "уÑÐ¿Ð°Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¸Ð¼Ñ‡Ð°Ñового відношенРmsgid "cannot inherit from a partition" msgstr "уÑÐ¿Ð°Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ Ñекції неможливе" -#: commands/tablecmds.c:14943 commands/tablecmds.c:17846 +#: commands/tablecmds.c:14943 commands/tablecmds.c:17856 #, c-format msgid "circular inheritance not allowed" msgstr "циклічне уÑÐ¿Ð°Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ¿Ñ€Ð¸Ð¿ÑƒÑтиме" -#: commands/tablecmds.c:14944 commands/tablecmds.c:17847 +#: commands/tablecmds.c:14944 commands/tablecmds.c:17857 #, c-format msgid "\"%s\" is already a child of \"%s\"." msgstr "\"%s\" вже Ñ” нащадком \"%s\"." @@ -11056,220 +11041,220 @@ msgstr "переміÑтити поÑлідовніÑÑ‚ÑŒ з влаÑником msgid "relation \"%s\" already exists in schema \"%s\"" msgstr "Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\" вже Ñ–Ñнує в Ñхемі \"%s\"" -#: commands/tablecmds.c:17026 +#: commands/tablecmds.c:17034 #, c-format msgid "\"%s\" is not a table or materialized view" msgstr "\"%s\" не Ñ” таблицею або матеріалізованим поданнÑм" -#: commands/tablecmds.c:17176 +#: commands/tablecmds.c:17184 #, c-format msgid "\"%s\" is not a composite type" msgstr "\"%s\" - не Ñкладений тип" -#: commands/tablecmds.c:17204 +#: commands/tablecmds.c:17212 #, c-format msgid "cannot change schema of index \"%s\"" msgstr "змінити Ñхему індекÑу \"%s\" не можна" -#: commands/tablecmds.c:17206 commands/tablecmds.c:17218 +#: commands/tablecmds.c:17214 commands/tablecmds.c:17226 #, c-format msgid "Change the schema of the table instead." msgstr "ЗаміÑÑ‚ÑŒ цього змініть Ñхему таблиці." -#: commands/tablecmds.c:17210 +#: commands/tablecmds.c:17218 #, c-format msgid "cannot change schema of composite type \"%s\"" msgstr "змінити Ñхему Ñкладеного типу \"%s\" не можна" -#: commands/tablecmds.c:17216 +#: commands/tablecmds.c:17224 #, c-format msgid "cannot change schema of TOAST table \"%s\"" msgstr "змінити Ñхему таблиці TOAST \"%s\" не можна" -#: commands/tablecmds.c:17253 +#: commands/tablecmds.c:17261 #, c-format msgid "unrecognized partitioning strategy \"%s\"" msgstr "нерозпізнана ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ñ–Ñ ÑÐµÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ \"%s\"" -#: commands/tablecmds.c:17261 +#: commands/tablecmds.c:17269 #, c-format msgid "cannot use \"list\" partition strategy with more than one column" msgstr "ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ñ–Ñ ÑÐµÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ \"по ÑпиÑку\" не може викориÑтовувати декілька Ñтовпців" -#: commands/tablecmds.c:17327 +#: commands/tablecmds.c:17335 #, c-format msgid "column \"%s\" named in partition key does not exist" msgstr "Ñтовпець \"%s\", згаданий в ключі ÑекціонуваннÑ, не Ñ–Ñнує" -#: commands/tablecmds.c:17335 +#: commands/tablecmds.c:17343 #, c-format msgid "cannot use system column \"%s\" in partition key" msgstr "ÑиÑтемний Ñтовпець \"%s\" не можна викориÑтати в ключі ÑекціонуваннÑ" -#: commands/tablecmds.c:17346 commands/tablecmds.c:17460 +#: commands/tablecmds.c:17354 commands/tablecmds.c:17444 #, c-format msgid "cannot use generated column in partition key" msgstr "викориÑтати згенерований Ñтовпець в ключі Ñекції, не можна" -#: commands/tablecmds.c:17347 commands/tablecmds.c:17461 commands/trigger.c:668 +#: commands/tablecmds.c:17355 commands/tablecmds.c:17445 commands/trigger.c:668 #: rewrite/rewriteHandler.c:929 rewrite/rewriteHandler.c:964 #, c-format msgid "Column \"%s\" is a generated column." msgstr "Стовпець \"%s\" Ñ” згенерованим Ñтовпцем." -#: commands/tablecmds.c:17423 -#, c-format -msgid "functions in partition key expression must be marked IMMUTABLE" -msgstr "функції у виразі ключа ÑÐµÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ– бути позначені Ñк IMMUTABLE" - -#: commands/tablecmds.c:17443 +#: commands/tablecmds.c:17427 #, c-format msgid "partition key expressions cannot contain system column references" msgstr "вирази ключа ÑÐµÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можуть міÑтити поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° ÑиÑтемний Ñтовпець" -#: commands/tablecmds.c:17473 +#: commands/tablecmds.c:17474 +#, c-format +msgid "functions in partition key expression must be marked IMMUTABLE" +msgstr "функції у виразі ключа ÑÐµÐºÑ†Ñ–Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ– бути позначені Ñк IMMUTABLE" + +#: commands/tablecmds.c:17483 #, c-format msgid "cannot use constant expression as partition key" msgstr "не можна викориÑтати конÑтантий вираз Ñк ключ ÑекціонуваннÑ" -#: commands/tablecmds.c:17494 +#: commands/tablecmds.c:17504 #, c-format msgid "could not determine which collation to use for partition expression" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸, Ñке правило ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтати Ð´Ð»Ñ Ð²Ð¸Ñ€Ð°Ð·Ñƒ ÑекціонуваннÑ" -#: commands/tablecmds.c:17529 +#: commands/tablecmds.c:17539 #, 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:17535 +#: commands/tablecmds.c:17545 #, 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:17786 +#: commands/tablecmds.c:17796 #, c-format msgid "\"%s\" is already a partition" msgstr "\"%s\" вже Ñ” Ñекцією" -#: commands/tablecmds.c:17792 +#: commands/tablecmds.c:17802 #, c-format msgid "cannot attach a typed table as partition" msgstr "неможливо підключити типізовану таблицю в ÑкоÑÑ‚Ñ– Ñекції" -#: commands/tablecmds.c:17808 +#: commands/tablecmds.c:17818 #, c-format msgid "cannot attach inheritance child as partition" msgstr "неможливо підключити нащадка уÑÐ¿Ð°Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð² ÑкоÑÑ‚Ñ– Ñекції" -#: commands/tablecmds.c:17822 +#: commands/tablecmds.c:17832 #, c-format msgid "cannot attach inheritance parent as partition" msgstr "неможливо підключити предка уÑÐ¿Ð°Ð´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð² ÑкоÑÑ‚Ñ– Ñекції" -#: commands/tablecmds.c:17856 +#: commands/tablecmds.c:17866 #, c-format msgid "cannot attach a temporary relation as partition of permanent relation \"%s\"" msgstr "неможливо підкючити тимчаÑове Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð² ÑкоÑÑ‚Ñ– Ñекції поÑтійного Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\"" -#: commands/tablecmds.c:17864 +#: commands/tablecmds.c:17874 #, c-format msgid "cannot attach a permanent relation as partition of temporary relation \"%s\"" msgstr "неможливо підключити поÑтійне Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð² ÑкоÑÑ‚Ñ– Ñекції тимчаÑового Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\"" -#: commands/tablecmds.c:17872 +#: commands/tablecmds.c:17882 #, c-format msgid "cannot attach as partition of temporary relation of another session" msgstr "неможливо підключити Ñекцію до тимчаÑового Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð² іншому ÑеанÑÑ–" -#: commands/tablecmds.c:17879 +#: commands/tablecmds.c:17889 #, c-format msgid "cannot attach temporary relation of another session as partition" msgstr "неможливо підключити тимчаÑове Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð· іншого ÑеанÑу в ÑкоÑÑ‚Ñ– Ñекції" -#: commands/tablecmds.c:17899 +#: commands/tablecmds.c:17909 #, c-format msgid "table \"%s\" contains column \"%s\" not found in parent \"%s\"" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" міÑтить Ñтовпець \"%s\", відÑутній в батьківÑькій \"%s\"" -#: commands/tablecmds.c:17902 +#: commands/tablecmds.c:17912 #, c-format msgid "The new partition may contain only the columns present in parent." msgstr "Ðова ÑÐµÐºÑ†Ñ–Ñ Ð¼Ð¾Ð¶Ðµ міÑтити лише Ñтовпці, що Ñ” у батьківÑькій таблиці." -#: commands/tablecmds.c:17914 +#: commands/tablecmds.c:17924 #, c-format msgid "trigger \"%s\" prevents table \"%s\" from becoming a partition" msgstr "тригер \"%s\" не дозволÑÑ” зробити таблицю \"%s\" Ñекцією" -#: commands/tablecmds.c:17916 +#: commands/tablecmds.c:17926 #, c-format msgid "ROW triggers with transition tables are not supported on partitions." msgstr "Тригери ROW з перехідними таблицÑми не підтримуютьÑÑ Ð´Ð»Ñ Ñекцій." -#: commands/tablecmds.c:18095 +#: commands/tablecmds.c:18105 #, c-format msgid "cannot attach foreign table \"%s\" as partition of partitioned table \"%s\"" msgstr "не можна підключити зовнішню таблицю \"%s\" в ÑкоÑÑ‚Ñ– Ñекції Ñекціонованої таблиці \"%s\"" -#: commands/tablecmds.c:18098 +#: commands/tablecmds.c:18108 #, c-format msgid "Partitioned table \"%s\" contains unique indexes." msgstr "Секціонована Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s\" міÑтить унікальні індекÑи." -#: commands/tablecmds.c:18413 +#: commands/tablecmds.c:18423 #, c-format msgid "cannot detach partitions concurrently when a default partition exists" msgstr "не можна одночаÑно відключити розділи, коли Ñ–Ñнує розділ за замовчуваннÑм" -#: commands/tablecmds.c:18522 +#: commands/tablecmds.c:18532 #, c-format msgid "partitioned table \"%s\" was removed concurrently" msgstr "Ñекціоновану таблицю \"%s\" було видалено одночаÑно" -#: commands/tablecmds.c:18528 +#: commands/tablecmds.c:18538 #, c-format msgid "partition \"%s\" was removed concurrently" msgstr "розділ \"%s\" було видалено паралельно" -#: commands/tablecmds.c:19043 commands/tablecmds.c:19063 -#: commands/tablecmds.c:19083 commands/tablecmds.c:19102 -#: commands/tablecmds.c:19144 +#: commands/tablecmds.c:19053 commands/tablecmds.c:19073 +#: commands/tablecmds.c:19093 commands/tablecmds.c:19112 +#: commands/tablecmds.c:19154 #, c-format msgid "cannot attach index \"%s\" as a partition of index \"%s\"" msgstr "неможливо підключити Ñ–Ð½Ð´ÐµÐºÑ \"%s\" в ÑкоÑÑ‚Ñ– Ñекції індекÑу \"%s\"" -#: commands/tablecmds.c:19046 +#: commands/tablecmds.c:19056 #, c-format msgid "Index \"%s\" is already attached to another index." msgstr "Ð†Ð½Ð´ÐµÐºÑ \"%s\" вже підключений до іншого індекÑу." -#: commands/tablecmds.c:19066 +#: commands/tablecmds.c:19076 #, c-format msgid "Index \"%s\" is not an index on any partition of table \"%s\"." msgstr "Ð†Ð½Ð´ÐµÐºÑ \"%s\" не Ñ” індекÑом жодної Ñекції таблиці \"%s\"." -#: commands/tablecmds.c:19086 +#: commands/tablecmds.c:19096 #, c-format msgid "The index definitions do not match." msgstr "Ð’Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑів не Ñпівпадають." -#: commands/tablecmds.c:19105 +#: commands/tablecmds.c:19115 #, 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:19147 +#: commands/tablecmds.c:19157 #, c-format msgid "Another index is already attached for partition \"%s\"." msgstr "До Ñекції \"%s\" вже підключений інший індекÑ." -#: commands/tablecmds.c:19384 +#: commands/tablecmds.c:19394 #, c-format msgid "column data type %s does not support compression" msgstr "тип даних ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ %s не підтримує ÑтиÑканнÑ" -#: commands/tablecmds.c:19391 +#: commands/tablecmds.c:19401 #, c-format msgid "invalid compression method \"%s\"" msgstr "неприпуÑтимий метод ÑтиÑÐºÐ°Ð½Ð½Ñ \"%s\"" @@ -11658,7 +11643,7 @@ msgstr "кортеж, Ñкий повинен бути оновленим, вжР#: commands/trigger.c:3424 executor/nodeModifyTable.c:1510 #: executor/nodeModifyTable.c:1584 executor/nodeModifyTable.c:2345 -#: executor/nodeModifyTable.c:2428 executor/nodeModifyTable.c:3059 +#: executor/nodeModifyTable.c:2428 executor/nodeModifyTable.c:3075 #, c-format msgid "Consider using an AFTER trigger instead of a BEFORE trigger to propagate changes to other rows." msgstr "Можливо, Ð´Ð»Ñ Ð¿Ð¾ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ в інші Ñ€Ñдки Ñлід викориÑтати тригер AFTER заміÑÑ‚ÑŒ тригера BEFORE." @@ -11673,7 +11658,7 @@ msgstr "не вдалоÑÑ Ñеріалізувати доÑтуп через Ð #: commands/trigger.c:3473 executor/nodeModifyTable.c:1616 #: executor/nodeModifyTable.c:2445 executor/nodeModifyTable.c:2594 -#: executor/nodeModifyTable.c:2947 +#: executor/nodeModifyTable.c:2963 #, c-format msgid "could not serialize access due to concurrent delete" msgstr "не вдалоÑÑ Ñеріалізувати доÑтуп через паралельне видаленнÑ" @@ -12501,7 +12486,7 @@ msgstr[1] "запущено %d паралельних виконавців очРmsgstr[2] "запущено %d паралельних виконавців очиÑтки Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу (заплановано: %d)" msgstr[3] "запущено %d паралельних виконавців очиÑтки Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñ‰ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑу (заплановано: %d)" -#: commands/variable.c:165 utils/misc/guc.c:12100 utils/misc/guc.c:12178 +#: commands/variable.c:165 utils/misc/guc.c:12108 utils/misc/guc.c:12186 #, c-format msgid "Unrecognized key word: \"%s\"." msgstr "Ðерозпізнане ключове Ñлово: \"%s\"." @@ -12727,7 +12712,7 @@ msgstr "Запит надає Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð¾Ð³Ð¾ ÑÑ‚Ð 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:826 +#: executor/execExpr.c:1098 parser/parse_agg.c:837 #, c-format msgid "window function calls cannot be nested" msgstr "виклики віконних функцій не можуть бути вкладеними" @@ -12807,10 +12792,10 @@ msgstr "не можна об'єднати неÑуміÑні маÑиви" msgid "Array with element type %s cannot be included in ARRAY construct with element type %s." msgstr "МаÑив з типом елементів %s не може бути включений в конÑтрукцію ARRAY з типом елементів %s." -#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:263 -#: utils/adt/arrayfuncs.c:563 utils/adt/arrayfuncs.c:1305 -#: utils/adt/arrayfuncs.c:3373 utils/adt/arrayfuncs.c:5370 -#: utils/adt/arrayfuncs.c:5887 utils/adt/arraysubs.c:150 +#: executor/execExprInterp.c:2779 utils/adt/arrayfuncs.c:264 +#: utils/adt/arrayfuncs.c:564 utils/adt/arrayfuncs.c:1306 +#: utils/adt/arrayfuncs.c:3422 utils/adt/arrayfuncs.c:5419 +#: utils/adt/arrayfuncs.c:5936 utils/adt/arraysubs.c:150 #: utils/adt/arraysubs.c:488 #, c-format msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)" @@ -12822,11 +12807,14 @@ msgid "multidimensional arrays must have array expressions with matching dimensi msgstr "Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð²Ð¸Ð¼Ñ–Ñ€Ð½Ð¸Ñ… маÑивів повинні задаватиÑÑŒ вирази з відповідними вимірами" #: executor/execExprInterp.c:2811 utils/adt/array_expanded.c:274 -#: utils/adt/arrayfuncs.c:936 utils/adt/arrayfuncs.c:1544 -#: utils/adt/arrayfuncs.c:3261 utils/adt/arrayfuncs.c:3403 -#: utils/adt/arrayfuncs.c:5979 utils/adt/arrayfuncs.c:6320 -#: utils/adt/arrayutils.c:94 utils/adt/arrayutils.c:103 -#: utils/adt/arrayutils.c:110 +#: utils/adt/arrayfuncs.c:937 utils/adt/arrayfuncs.c:1545 +#: utils/adt/arrayfuncs.c:2353 utils/adt/arrayfuncs.c:2368 +#: utils/adt/arrayfuncs.c:2630 utils/adt/arrayfuncs.c:2646 +#: utils/adt/arrayfuncs.c:2954 utils/adt/arrayfuncs.c:2969 +#: utils/adt/arrayfuncs.c:3310 utils/adt/arrayfuncs.c:3452 +#: utils/adt/arrayfuncs.c:6028 utils/adt/arrayfuncs.c:6369 +#: utils/adt/arrayutils.c:88 utils/adt/arrayutils.c:97 +#: utils/adt/arrayutils.c:104 #, c-format msgid "array size exceeds the maximum allowed (%d)" msgstr "розмір маÑиву перевищує макÑимальний допуÑтимий розмір (%d)" @@ -13095,8 +13083,8 @@ msgstr "паралельне видаленнÑ, триває повторна Ñ #: executor/execReplication.c:276 parser/parse_cte.c:308 #: parser/parse_oper.c:233 utils/adt/array_userfuncs.c:724 -#: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3653 -#: utils/adt/arrayfuncs.c:4208 utils/adt/arrayfuncs.c:6200 +#: utils/adt/array_userfuncs.c:867 utils/adt/arrayfuncs.c:3702 +#: utils/adt/arrayfuncs.c:4257 utils/adt/arrayfuncs.c:6249 #: utils/adt/rowtypes.c:1203 #, c-format msgid "could not identify an equality operator for type %s" @@ -13291,7 +13279,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:668 parser/parse_agg.c:696 +#: executor/nodeAgg.c:3952 parser/parse_agg.c:679 parser/parse_agg.c:707 #, c-format msgid "aggregate function calls cannot be nested" msgstr "виклики агрегатних функцій не можуть бути вкладеними" @@ -13372,7 +13360,7 @@ msgid "Consider defining the foreign key on table \"%s\"." msgstr "РозглÑньте Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ ключа Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– \"%s\"." #. translator: %s is a SQL command name -#: executor/nodeModifyTable.c:2548 executor/nodeModifyTable.c:2936 +#: executor/nodeModifyTable.c:2548 executor/nodeModifyTable.c:2952 #, c-format msgid "%s command cannot affect row a second time" msgstr "команда %s не може вплинути на Ñ€Ñдок вдруге" @@ -13382,17 +13370,17 @@ msgstr "команда %s не може вплинути на Ñ€Ñдок Ð²Ð´Ñ€Ñ msgid "Ensure that no rows proposed for insertion within the same command have duplicate constrained values." msgstr "ПереконайтеÑÑ, що немає Ñ€Ñдків Ð´Ð»Ñ Ð²Ñтавки з тією ж командою з дуплікованими обмежувальними значеннÑми." -#: executor/nodeModifyTable.c:2938 +#: executor/nodeModifyTable.c:2954 #, c-format msgid "Ensure that not more than one source row matches any one target row." msgstr "ПереконайтеÑÑŒ, що не більше ніж один вихідний Ñ€Ñдок відповідає будь-Ñкому одному цільовому Ñ€Ñдку." -#: executor/nodeModifyTable.c:3019 +#: executor/nodeModifyTable.c:3035 #, c-format msgid "tuple to be deleted was already moved to another partition due to concurrent update" msgstr "кортеж, Ñкий підлÑгає видаленню, вже переміщено в іншу Ñекцію в результаті паралельного оновленнÑ" -#: executor/nodeModifyTable.c:3058 +#: executor/nodeModifyTable.c:3074 #, c-format msgid "tuple to be updated or deleted was already modified by an operation triggered by the current command" msgstr "кортеж, Ñкий підлÑгає оновленню або видаленню, вже змінено операцією, викликаною поточною командою" @@ -13514,7 +13502,7 @@ msgstr "неможливо відкрити запит %s Ñк курÑор" msgid "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE is not supported" msgstr "DECLARE SCROLL CURSOR ... FOR UPDATE/SHARE не підтримуєтьÑÑ" -#: executor/spi.c:1717 parser/analyze.c:2861 +#: executor/spi.c:1717 parser/analyze.c:2899 #, c-format msgid "Scrollable cursors must be READ ONLY." msgstr "КурÑори з прокручуваннÑм повинні бути READ ONLY." @@ -14396,16 +14384,16 @@ 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:204 +#: libpq/be-secure-gssapi.c:201 msgid "GSSAPI wrap error" msgstr "помилка при згортанні GSSAPI" -#: libpq/be-secure-gssapi.c:211 +#: libpq/be-secure-gssapi.c:208 #, c-format msgid "outgoing GSSAPI message would not use confidentiality" msgstr "вихідне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ GSSAPI не буде викориÑтовувати конфіденційніÑÑ‚ÑŒ" -#: libpq/be-secure-gssapi.c:218 libpq/be-secure-gssapi.c:622 +#: libpq/be-secure-gssapi.c:215 libpq/be-secure-gssapi.c:622 #, c-format msgid "server tried to send oversize GSSAPI packet (%zu > %zu)" msgstr "Ñервер намагавÑÑ Ð½Ð°Ð´Ñ–Ñлати переповнений пакет GSSAPI (%zu > %zu)" @@ -14528,112 +14516,112 @@ msgstr "не вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ SSL-підключенРmsgid "could not set SSL socket: %s" msgstr "не вдалоÑÑ Ð²Ñтановити SSL-Ñокет: %s" -#: libpq/be-secure-openssl.c:499 +#: libpq/be-secure-openssl.c:500 #, c-format msgid "could not accept SSL connection: %m" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¸Ð¹Ð½Ñти SSL-підключеннÑ: %m" -#: libpq/be-secure-openssl.c:503 libpq/be-secure-openssl.c:556 +#: libpq/be-secure-openssl.c:504 libpq/be-secure-openssl.c:557 #, c-format msgid "could not accept SSL connection: EOF detected" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¸Ð¹Ð½Ñти SSL-підключеннÑ: виÑвлений EOF" -#: libpq/be-secure-openssl.c:542 +#: libpq/be-secure-openssl.c:543 #, c-format msgid "could not accept SSL connection: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ SSL: %s" -#: libpq/be-secure-openssl.c:545 +#: libpq/be-secure-openssl.c:546 #, c-format msgid "This may indicate that the client does not support any SSL protocol version between %s and %s." msgstr "Це може вказувати, що клієнт не підтримує жодної верÑÑ–Ñ— протоколу SSL між %s Ñ– %s." -#: libpq/be-secure-openssl.c:561 libpq/be-secure-openssl.c:741 -#: libpq/be-secure-openssl.c:805 +#: libpq/be-secure-openssl.c:562 libpq/be-secure-openssl.c:751 +#: libpq/be-secure-openssl.c:821 #, c-format msgid "unrecognized SSL error code: %d" msgstr "нерозпізнаний код помилки SSL: %d" -#: libpq/be-secure-openssl.c:607 +#: libpq/be-secure-openssl.c:608 #, c-format msgid "SSL certificate's common name contains embedded null" msgstr "Спільне ім'Ñ SSL-Ñертифікату міÑтить нульовий байт" -#: libpq/be-secure-openssl.c:647 +#: libpq/be-secure-openssl.c:654 #, c-format msgid "SSL certificate's distinguished name contains embedded null" msgstr "Унікальна назва Ñертифікату SSL міÑтить вбудоване null-значеннÑ" -#: libpq/be-secure-openssl.c:730 libpq/be-secure-openssl.c:789 +#: libpq/be-secure-openssl.c:740 libpq/be-secure-openssl.c:805 #, c-format msgid "SSL error: %s" msgstr "Помилка SSL: %s" -#: libpq/be-secure-openssl.c:971 +#: libpq/be-secure-openssl.c:982 #, c-format msgid "could not open DH parameters file \"%s\": %m" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл параметрів DH \"%s\": %m" -#: libpq/be-secure-openssl.c:983 +#: libpq/be-secure-openssl.c:994 #, c-format msgid "could not load DH parameters file: %s" msgstr "не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ файл параметрів DH: %s" -#: libpq/be-secure-openssl.c:993 +#: libpq/be-secure-openssl.c:1004 #, c-format msgid "invalid DH parameters: %s" msgstr "неприпуÑтимі параметри DH: %s" -#: libpq/be-secure-openssl.c:1002 +#: libpq/be-secure-openssl.c:1013 #, c-format msgid "invalid DH parameters: p is not prime" msgstr "неприпуÑтимі параметри DH: Ñ€ - не штрих" -#: libpq/be-secure-openssl.c:1011 +#: libpq/be-secure-openssl.c:1022 #, c-format msgid "invalid DH parameters: neither suitable generator or safe prime" msgstr "неприпуÑтимі параметри DH: немає придатного генератора або безпечного штриха" -#: libpq/be-secure-openssl.c:1172 +#: libpq/be-secure-openssl.c:1183 #, c-format msgid "DH: could not load DH parameters" msgstr "DH: не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ параметри DH" -#: libpq/be-secure-openssl.c:1180 +#: libpq/be-secure-openssl.c:1191 #, c-format msgid "DH: could not set DH parameters: %s" msgstr "DH: не вдалоÑÑ Ð²Ñтановити параметри DH: %s" -#: libpq/be-secure-openssl.c:1207 +#: libpq/be-secure-openssl.c:1218 #, c-format msgid "ECDH: unrecognized curve name: %s" msgstr "ECDH: нерозпізнане ім'Ñ ÐºÑ€Ð¸Ð²Ð¾Ñ—: %s" -#: libpq/be-secure-openssl.c:1216 +#: libpq/be-secure-openssl.c:1227 #, c-format msgid "ECDH: could not create key" msgstr "ECDH: не вдалоÑÑ Ñтворити ключ" -#: libpq/be-secure-openssl.c:1244 +#: libpq/be-secure-openssl.c:1255 msgid "no SSL error reported" msgstr "немає Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку SSL" -#: libpq/be-secure-openssl.c:1248 +#: libpq/be-secure-openssl.c:1259 #, c-format msgid "SSL error code %lu" msgstr "Код помилки SSL %lu" -#: libpq/be-secure-openssl.c:1407 +#: libpq/be-secure-openssl.c:1418 #, c-format msgid "could not create BIO" msgstr "неможливо Ñтворити BIO" -#: libpq/be-secure-openssl.c:1417 +#: libpq/be-secure-openssl.c:1428 #, c-format msgid "could not get NID for ASN1_OBJECT object" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ NID Ð´Ð»Ñ Ð¾Ð±'єкту ASN1_OBJECT" -#: libpq/be-secure-openssl.c:1425 +#: libpq/be-secure-openssl.c:1436 #, c-format msgid "could not convert NID %d to an ASN1_OBJECT structure" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€Ð¸Ñ‚Ð¸ NID %d в Ñтруктуру ASN1_OBJECT" @@ -15156,9 +15144,9 @@ msgid "could not accept new connection: %m" msgstr "не вдалоÑÑŒ прийнÑти нове підключеннÑ: %m" #: libpq/pqcomm.c:766 libpq/pqcomm.c:775 libpq/pqcomm.c:807 libpq/pqcomm.c:817 -#: libpq/pqcomm.c:1642 libpq/pqcomm.c:1687 libpq/pqcomm.c:1727 -#: libpq/pqcomm.c:1771 libpq/pqcomm.c:1810 libpq/pqcomm.c:1849 -#: libpq/pqcomm.c:1885 libpq/pqcomm.c:1924 +#: libpq/pqcomm.c:1652 libpq/pqcomm.c:1697 libpq/pqcomm.c:1737 +#: libpq/pqcomm.c:1781 libpq/pqcomm.c:1820 libpq/pqcomm.c:1859 +#: libpq/pqcomm.c:1895 libpq/pqcomm.c:1934 #, c-format msgid "%s(%s) failed: %m" msgstr "%s(%s) помилка: %m" @@ -15168,47 +15156,47 @@ msgstr "%s(%s) помилка: %m" msgid "there is no client connection" msgstr "немає клієнтÑького підключеннÑ" -#: libpq/pqcomm.c:972 libpq/pqcomm.c:1068 +#: libpq/pqcomm.c:977 libpq/pqcomm.c:1078 #, c-format msgid "could not receive data from client: %m" msgstr "не вдалоÑÑŒ отримати дані від клієнта: %m" -#: libpq/pqcomm.c:1173 tcop/postgres.c:4373 +#: libpq/pqcomm.c:1183 tcop/postgres.c:4373 #, c-format msgid "terminating connection because protocol synchronization was lost" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€ÐµÐ· втрату Ñинхронізації протоколу" -#: libpq/pqcomm.c:1239 +#: libpq/pqcomm.c:1249 #, c-format msgid "unexpected EOF within message length word" msgstr "неочікуваний EOF в Ñлові довжини повідомленнÑ" -#: libpq/pqcomm.c:1249 +#: libpq/pqcomm.c:1259 #, c-format msgid "invalid message length" msgstr "неприпуÑтима довжина повідомленнÑ" -#: libpq/pqcomm.c:1271 libpq/pqcomm.c:1284 +#: libpq/pqcomm.c:1281 libpq/pqcomm.c:1294 #, c-format msgid "incomplete message from client" msgstr "неповне Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ клієнта" -#: libpq/pqcomm.c:1395 +#: libpq/pqcomm.c:1405 #, c-format msgid "could not send data to client: %m" msgstr "не вдалоÑÑŒ надіÑлати дані клієнту: %m" -#: libpq/pqcomm.c:1610 +#: libpq/pqcomm.c:1620 #, c-format msgid "%s(%s) failed: error code %d" msgstr "%s(%s) помилка: код помилки %d" -#: libpq/pqcomm.c:1699 +#: libpq/pqcomm.c:1709 #, c-format msgid "setting the keepalive idle time is not supported" msgstr "вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу проÑтою keepalive не підтримуєтьÑÑ" -#: libpq/pqcomm.c:1783 libpq/pqcomm.c:1858 libpq/pqcomm.c:1933 +#: libpq/pqcomm.c:1793 libpq/pqcomm.c:1868 libpq/pqcomm.c:1943 #, c-format msgid "%s(%s) not supported" msgstr "%s(%s) не підтримуєтьÑÑ" @@ -15219,7 +15207,7 @@ msgid "no data left in message" msgstr "у Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ залишилоÑÑŒ даних" #: libpq/pqformat.c:517 libpq/pqformat.c:535 libpq/pqformat.c:556 -#: utils/adt/arrayfuncs.c:1482 utils/adt/rowtypes.c:588 +#: utils/adt/arrayfuncs.c:1483 utils/adt/rowtypes.c:588 #, c-format msgid "insufficient data left in message" msgstr "недоÑтатьно даних залишилоÑÑŒ в повідомленні" @@ -15543,44 +15531,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:1714 parser/analyze.c:1970 -#: parser/analyze.c:3152 +#: optimizer/plan/planner.c:1344 parser/analyze.c:1752 parser/analyze.c:2008 +#: parser/analyze.c:3190 #, c-format msgid "%s is not allowed with UNION/INTERSECT/EXCEPT" msgstr "%s неÑуміÑно з UNION/INTERSECT/EXCEPT" -#: optimizer/plan/planner.c:2051 optimizer/plan/planner.c:3707 +#: optimizer/plan/planner.c:2045 optimizer/plan/planner.c:3702 #, c-format msgid "could not implement GROUP BY" msgstr "не вдалоÑÑ Ñ€ÐµÐ°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ GROUP BY" -#: optimizer/plan/planner.c:2052 optimizer/plan/planner.c:3708 -#: optimizer/plan/planner.c:4351 optimizer/prep/prepunion.c:1046 +#: optimizer/plan/planner.c:2046 optimizer/plan/planner.c:3703 +#: optimizer/plan/planner.c:4346 optimizer/prep/prepunion.c:1046 #, c-format msgid "Some of the datatypes only support hashing, while others only support sorting." msgstr "ДеÑкі типи даних підтримують лише хешуваннÑ, в той Ñ‡Ð°Ñ Ñк інші підтримують тільки ÑортуваннÑ." -#: optimizer/plan/planner.c:4350 +#: optimizer/plan/planner.c:4345 #, c-format msgid "could not implement DISTINCT" msgstr "не вдалоÑÑ Ñ€ÐµÐ°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ DISTINCT" -#: optimizer/plan/planner.c:5471 +#: optimizer/plan/planner.c:5466 #, c-format msgid "could not implement window PARTITION BY" msgstr "не вдалоÑÑ Ñ€ÐµÐ°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ PARTITION BY Ð´Ð»Ñ Ð²Ñ–ÐºÐ½Ð°" -#: optimizer/plan/planner.c:5472 +#: optimizer/plan/planner.c:5467 #, c-format msgid "Window partitioning columns must be of sortable datatypes." msgstr "Стовпці, що розділÑÑŽÑ‚ÑŒ вікна, повинні мати типи даних з можливіÑÑ‚ÑŽ ÑортуваннÑ." -#: optimizer/plan/planner.c:5476 +#: optimizer/plan/planner.c:5471 #, c-format msgid "could not implement window ORDER BY" msgstr "не вдалоÑÑ Ñ€ÐµÐ°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ ORDER BY Ð´Ð»Ñ Ð²Ñ–ÐºÐ½Ð°" -#: optimizer/plan/planner.c:5477 +#: optimizer/plan/planner.c:5472 #, c-format msgid "Window ordering columns must be of sortable datatypes." msgstr "Стовпці, що впорÑдковують вікна, повинні мати типи даних з можливіÑÑ‚ÑŽ ÑортуваннÑ." @@ -15601,7 +15589,7 @@ msgstr "УÑÑ– Ñтовпці повинні мати типи даних з мРmsgid "could not implement %s" msgstr "не вдалоÑÑ Ñ€ÐµÐ°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ %s" -#: optimizer/util/clauses.c:4777 +#: optimizer/util/clauses.c:4843 #, c-format msgid "SQL function \"%s\" during inlining" msgstr "Впроваджена в код SQL-Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ \"%s\"" @@ -15636,73 +15624,73 @@ msgstr "ON CONFLICT DO UPDATE не підтримуєтьÑÑ Ð· обмеженРmsgid "there is no unique or exclusion constraint matching the ON CONFLICT specification" msgstr "немає унікального Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ обмеженнÑ-Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ð³Ð¾ Ñпецифікації ON CONFLICT" -#: parser/analyze.c:780 parser/analyze.c:1494 +#: parser/analyze.c:818 parser/analyze.c:1532 #, c-format msgid "VALUES lists must all be the same length" msgstr "СпиÑки VALUES повинні мати однакову довжину" -#: parser/analyze.c:981 +#: parser/analyze.c:1019 #, c-format msgid "INSERT has more expressions than target columns" msgstr "INSERT міÑтить більше виразів, ніж цільових Ñтовпців" -#: parser/analyze.c:999 +#: parser/analyze.c:1037 #, c-format msgid "INSERT has more target columns than expressions" msgstr "INSERT міÑтить більше цільових Ñтовпців, ніж виразів" -#: parser/analyze.c:1003 +#: parser/analyze.c:1041 #, c-format msgid "The insertion source is a row expression containing the same number of columns expected by the INSERT. Did you accidentally use extra parentheses?" msgstr "Джерелом даних Ñ” вираз Ñ€Ñдка, Ñкий міÑтить Ñтільки ж Ñтовпців, Ñкільки потребуєтьÑÑ Ð´Ð»Ñ INSERT. Ви випадково викориÑтовували додаткові дужки?" -#: parser/analyze.c:1302 parser/analyze.c:1687 +#: parser/analyze.c:1340 parser/analyze.c:1725 #, c-format msgid "SELECT ... INTO is not allowed here" msgstr "SELECT ... INTO не дозволÑєтьÑÑ Ñ‚ÑƒÑ‚" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:1617 parser/analyze.c:3363 +#: parser/analyze.c:1655 parser/analyze.c:3401 #, c-format msgid "%s cannot be applied to VALUES" msgstr "%s не можна заÑтоÑовувати до VALUES" -#: parser/analyze.c:1853 +#: parser/analyze.c:1891 #, c-format msgid "invalid UNION/INTERSECT/EXCEPT ORDER BY clause" msgstr "неприпуÑтиме Ñ€ÐµÑ‡ÐµÐ½Ð½Ñ UNION/INTERSECT/EXCEPT ORDER BY" -#: parser/analyze.c:1854 +#: parser/analyze.c:1892 #, c-format msgid "Only result column names can be used, not expressions or functions." msgstr "Дозволено викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ імен Ñтовпців, але не виразів або функцій." -#: parser/analyze.c:1855 +#: parser/analyze.c:1893 #, c-format msgid "Add the expression/function to every SELECT, or move the UNION into a FROM clause." msgstr "Додайте вираз/Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð´Ð¾ кожного SELECT, або переміÑÑ‚Ñ–Ñ‚ÑŒ UNION у Ñ€ÐµÑ‡ÐµÐ½Ð½Ñ FROM." -#: parser/analyze.c:1960 +#: parser/analyze.c:1998 #, c-format msgid "INTO is only allowed on first SELECT of UNION/INTERSECT/EXCEPT" msgstr "INTO дозволÑєтьÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ лише до першого SELECT в UNION/INTERSECT/EXCEPT" -#: parser/analyze.c:2032 +#: parser/analyze.c:2070 #, c-format msgid "UNION/INTERSECT/EXCEPT member statement cannot refer to other relations of same query level" msgstr "УчаÑник інÑтрукції UNION/INTERSECT/EXCEPT не може поÑилатиÑÑŒ на інші відноÑини на тому ж рівні" -#: parser/analyze.c:2119 +#: parser/analyze.c:2157 #, c-format msgid "each %s query must have the same number of columns" msgstr "кожен %s запит повинен мати однакову кількіÑÑ‚ÑŒ Ñтовпців" -#: parser/analyze.c:2523 +#: parser/analyze.c:2561 #, c-format msgid "RETURNING must have at least one column" msgstr "Ð’ RETURNING повинен бути мінімум один Ñтовпець" -#: parser/analyze.c:2626 +#: parser/analyze.c:2664 #, c-format msgid "assignment source returned %d column" msgid_plural "assignment source returned %d columns" @@ -15711,473 +15699,473 @@ msgstr[1] "джерело Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÑƒÐ»Ð¾ %d ÑтовРmsgstr[2] "джерело Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÑƒÐ»Ð¾ %d Ñтовпців" msgstr[3] "джерело Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÑ€Ð½ÑƒÐ»Ð¾ %d Ñтовпців" -#: parser/analyze.c:2687 +#: parser/analyze.c:2725 #, c-format 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:2811 parser/analyze.c:2819 +#: parser/analyze.c:2849 parser/analyze.c:2857 #, c-format msgid "cannot specify both %s and %s" msgstr "не можна вказати Ñк %s, так Ñ– %s" -#: parser/analyze.c:2839 +#: parser/analyze.c:2877 #, 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:2847 +#: parser/analyze.c:2885 #, c-format msgid "DECLARE CURSOR WITH HOLD ... %s is not supported" msgstr "DECLARE CURSOR WITH HOLD ... %s не підтримуєтьÑÑ" -#: parser/analyze.c:2850 +#: parser/analyze.c:2888 #, 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:2858 +#: parser/analyze.c:2896 #, 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:2869 +#: parser/analyze.c:2907 #, c-format msgid "DECLARE INSENSITIVE CURSOR ... %s is not valid" msgstr "DECLARE INSENSITIVE CURSOR ... %s не Ñ” припуÑтимим" -#: parser/analyze.c:2872 +#: parser/analyze.c:2910 #, c-format msgid "Insensitive cursors must be READ ONLY." msgstr "Ðечутливі курÑори повинні бути READ ONLY." -#: parser/analyze.c:2938 +#: parser/analyze.c:2976 #, c-format msgid "materialized views must not use data-modifying statements in WITH" msgstr "в матеріалізованих поданнÑÑ… не повинні викориÑтовуватиÑÑŒ оператори, Ñкі змінюють дані в WITH" -#: parser/analyze.c:2948 +#: parser/analyze.c:2986 #, c-format msgid "materialized views must not use temporary tables or views" msgstr "в матеріалізованих поданнÑÑ… не повинні викориÑтовуватиÑÑŒ тимчаÑові таблиці або поданнÑ" -#: parser/analyze.c:2958 +#: parser/analyze.c:2996 #, c-format msgid "materialized views may not be defined using bound parameters" msgstr "визначати матеріалізовані Ð¿Ð¾Ð´Ð°Ð½Ð½Ñ Ð· зв'Ñзаними параметрами не можна" -#: parser/analyze.c:2970 +#: parser/analyze.c:3008 #, c-format msgid "materialized views cannot be unlogged" msgstr "матеріалізовані Ð¿Ð¾Ð´Ð°Ð½Ð½Ñ Ð½Ðµ можуть бути нежурнальованими" #. translator: %s is a SQL row locking clause such as FOR UPDATE -#: parser/analyze.c:3159 +#: parser/analyze.c:3197 #, 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:3166 +#: parser/analyze.c:3204 #, 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:3173 +#: parser/analyze.c:3211 #, 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:3180 +#: parser/analyze.c:3218 #, 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:3187 +#: parser/analyze.c:3225 #, 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:3194 +#: parser/analyze.c:3232 #, 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:3286 +#: parser/analyze.c:3324 #, 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:3336 +#: parser/analyze.c:3374 #, 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:3345 +#: parser/analyze.c:3383 #, 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:3354 +#: parser/analyze.c:3392 #, 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:3372 +#: parser/analyze.c:3410 #, 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:3381 +#: parser/analyze.c:3419 #, 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:3401 +#: parser/analyze.c:3439 #, c-format msgid "relation \"%s\" in %s clause not found in FROM clause" msgstr "Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s\" в реченні %s не знайдено в реченні FROM" -#: parser/parse_agg.c:220 parser/parse_oper.c:227 +#: parser/parse_agg.c:208 parser/parse_oper.c:227 #, c-format msgid "could not identify an ordering operator for type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ оператора ÑортуваннÑ" -#: parser/parse_agg.c:222 +#: parser/parse_agg.c:210 #, c-format msgid "Aggregates with DISTINCT must be able to sort their inputs." msgstr "Ðгрегатним функціÑм з DISTINCT необхідно Ñортувати Ñ—Ñ… вхідні дані." -#: parser/parse_agg.c:257 +#: parser/parse_agg.c:268 #, c-format msgid "GROUPING must have fewer than 32 arguments" msgstr "GROUPING повинно міÑтити меньше, ніж 32 аргумента" -#: parser/parse_agg.c:360 +#: parser/parse_agg.c:371 msgid "aggregate functions are not allowed in JOIN conditions" msgstr "агрегатні функції не дозволÑÑŽÑ‚ÑŒÑÑ Ð² умовах JOIN" -#: parser/parse_agg.c:362 +#: parser/parse_agg.c:373 msgid "grouping operations are not allowed in JOIN conditions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ дозволÑÑŽÑ‚ÑŒÑÑ Ð² умовах JOIN" -#: parser/parse_agg.c:374 +#: parser/parse_agg.c:385 msgid "aggregate functions are not allowed in FROM clause of their own query level" msgstr "агрегатні функції не можна заÑтоÑовувати в реченні FROM Ñ—Ñ… Ñ€Ñ–Ð²Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ" -#: parser/parse_agg.c:376 +#: parser/parse_agg.c:387 msgid "grouping operations are not allowed in FROM clause of their own query level" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в реченні FROM Ñ—Ñ… Ñ€Ñ–Ð²Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ" -#: parser/parse_agg.c:381 +#: parser/parse_agg.c:392 msgid "aggregate functions are not allowed in functions in FROM" msgstr "агрегатні функції не можна заÑтоÑовувати у функціÑÑ… у FROM" -#: parser/parse_agg.c:383 +#: parser/parse_agg.c:394 msgid "grouping operations are not allowed in functions in FROM" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у функціÑÑ… у FROM" -#: parser/parse_agg.c:391 +#: parser/parse_agg.c:402 msgid "aggregate functions are not allowed in policy expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах політики" -#: parser/parse_agg.c:393 +#: parser/parse_agg.c:404 msgid "grouping operations are not allowed in policy expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах політики" -#: parser/parse_agg.c:410 +#: parser/parse_agg.c:421 msgid "aggregate functions are not allowed in window RANGE" msgstr "агрегатні функції не можна заÑтоÑовувати у вікні RANGE " -#: parser/parse_agg.c:412 +#: parser/parse_agg.c:423 msgid "grouping operations are not allowed in window RANGE" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у вікні RANGE" -#: parser/parse_agg.c:417 +#: parser/parse_agg.c:428 msgid "aggregate functions are not allowed in window ROWS" msgstr "агрегатні функції не можна заÑтоÑовувати у вікні ROWS" -#: parser/parse_agg.c:419 +#: parser/parse_agg.c:430 msgid "grouping operations are not allowed in window ROWS" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у вікні ROWS" -#: parser/parse_agg.c:424 +#: parser/parse_agg.c:435 msgid "aggregate functions are not allowed in window GROUPS" msgstr "агрегатні функції не можна заÑтоÑовувати у вікні GROUPS" -#: parser/parse_agg.c:426 +#: parser/parse_agg.c:437 msgid "grouping operations are not allowed in window GROUPS" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у вікні GROUPS" -#: parser/parse_agg.c:439 +#: parser/parse_agg.c:450 msgid "aggregate functions are not allowed in MERGE WHEN conditions" msgstr "агрегатні функції не можна заÑтоÑовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:441 +#: parser/parse_agg.c:452 msgid "grouping operations are not allowed in MERGE WHEN conditions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:467 +#: parser/parse_agg.c:478 msgid "aggregate functions are not allowed in check constraints" msgstr "агрегатні функції не можна заÑтоÑовувати в перевірці обмежень" -#: parser/parse_agg.c:469 +#: parser/parse_agg.c:480 msgid "grouping operations are not allowed in check constraints" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в перевірці обмежень" -#: parser/parse_agg.c:476 +#: parser/parse_agg.c:487 msgid "aggregate functions are not allowed in DEFAULT expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах DEFAULT" -#: parser/parse_agg.c:478 +#: parser/parse_agg.c:489 msgid "grouping operations are not allowed in DEFAULT expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах DEFAULT" -#: parser/parse_agg.c:483 +#: parser/parse_agg.c:494 msgid "aggregate functions are not allowed in index expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах індекÑів" -#: parser/parse_agg.c:485 +#: parser/parse_agg.c:496 msgid "grouping operations are not allowed in index expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах індекÑів" -#: parser/parse_agg.c:490 +#: parser/parse_agg.c:501 msgid "aggregate functions are not allowed in index predicates" msgstr "агрегатні функції не можна заÑтоÑовувати в предикатах індекÑів" -#: parser/parse_agg.c:492 +#: parser/parse_agg.c:503 msgid "grouping operations are not allowed in index predicates" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в предикатах індекÑів" -#: parser/parse_agg.c:497 +#: parser/parse_agg.c:508 msgid "aggregate functions are not allowed in statistics expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах ÑтатиÑтики" -#: parser/parse_agg.c:499 +#: parser/parse_agg.c:510 msgid "grouping operations are not allowed in statistics expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах ÑтатиÑтики" -#: parser/parse_agg.c:504 +#: parser/parse_agg.c:515 msgid "aggregate functions are not allowed in transform expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах перетворюваннÑ" -#: parser/parse_agg.c:506 +#: parser/parse_agg.c:517 msgid "grouping operations are not allowed in transform expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах перетворюваннÑ" -#: parser/parse_agg.c:511 +#: parser/parse_agg.c:522 msgid "aggregate functions are not allowed in EXECUTE parameters" msgstr "агрегатні функції не можна заÑтоÑовувати в параметрах EXECUTE" -#: parser/parse_agg.c:513 +#: parser/parse_agg.c:524 msgid "grouping operations are not allowed in EXECUTE parameters" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в параметрах EXECUTE" -#: parser/parse_agg.c:518 +#: parser/parse_agg.c:529 msgid "aggregate functions are not allowed in trigger WHEN conditions" msgstr "агрегатні функції не можна заÑтоÑовувати в умовах Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³ÐµÑ€Ñ–Ð² WHEN" -#: parser/parse_agg.c:520 +#: parser/parse_agg.c:531 msgid "grouping operations are not allowed in trigger WHEN conditions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в умовах Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³ÐµÑ€Ñ–Ð² WHEN" -#: parser/parse_agg.c:525 +#: parser/parse_agg.c:536 msgid "aggregate functions are not allowed in partition bound" msgstr "агрегатні функції не можна заÑтоÑовувати в границі Ñекції" -#: parser/parse_agg.c:527 +#: parser/parse_agg.c:538 msgid "grouping operations are not allowed in partition bound" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в границі Ñекції" -#: parser/parse_agg.c:532 +#: parser/parse_agg.c:543 msgid "aggregate functions are not allowed in partition key expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах ключа ÑекціонуваннÑ" -#: parser/parse_agg.c:534 +#: parser/parse_agg.c:545 msgid "grouping operations are not allowed in partition key expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах ключа ÑекціонуваннÑ" -#: parser/parse_agg.c:540 +#: parser/parse_agg.c:551 msgid "aggregate functions are not allowed in column generation expressions" msgstr "агрегатні функції не можна заÑтоÑовувати у виразах генерації Ñтовпців" -#: parser/parse_agg.c:542 +#: parser/parse_agg.c:553 msgid "grouping operations are not allowed in column generation expressions" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати у виразах генерації Ñтовпців" -#: parser/parse_agg.c:548 +#: parser/parse_agg.c:559 msgid "aggregate functions are not allowed in CALL arguments" msgstr "агрегатні функції не можна заÑтоÑовувати в аргументах CALL" -#: parser/parse_agg.c:550 +#: parser/parse_agg.c:561 msgid "grouping operations are not allowed in CALL arguments" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в аргументах CALL" -#: parser/parse_agg.c:556 +#: parser/parse_agg.c:567 msgid "aggregate functions are not allowed in COPY FROM WHERE conditions" msgstr "агрегатні функції не можна заÑтоÑовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:558 +#: parser/parse_agg.c:569 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:585 parser/parse_clause.c:1836 +#: parser/parse_agg.c:596 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:588 +#: parser/parse_agg.c:599 #, c-format msgid "grouping operations are not allowed in %s" msgstr "операції Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можна заÑтоÑовувати в %s" -#: parser/parse_agg.c:689 +#: parser/parse_agg.c:700 #, c-format msgid "outer-level aggregate cannot contain a lower-level variable in its direct arguments" msgstr "агрегат зовнішнього Ñ€Ñ–Ð²Ð½Ñ Ð½Ðµ може міÑтити змінну нижчого Ñ€Ñ–Ð²Ð½Ñ Ñƒ Ñвоїх аргументах" -#: parser/parse_agg.c:767 +#: parser/parse_agg.c:778 #, c-format msgid "aggregate function calls cannot contain set-returning function calls" msgstr "виклики агрегатної функції не можуть міÑтити викликів функції, що повертають множину" -#: parser/parse_agg.c:768 parser/parse_expr.c:1674 parser/parse_expr.c:2156 +#: parser/parse_agg.c:779 parser/parse_expr.c:1674 parser/parse_expr.c:2156 #: 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:773 +#: parser/parse_agg.c:784 #, c-format msgid "aggregate function calls cannot contain window function calls" msgstr "виклики агрегатних функцій не можуть міÑтити виклики віконних функцій" -#: parser/parse_agg.c:852 +#: parser/parse_agg.c:863 msgid "window functions are not allowed in JOIN conditions" msgstr "віконні функції не можна заÑтоÑовувати в умовах JOIN" -#: parser/parse_agg.c:859 +#: parser/parse_agg.c:870 msgid "window functions are not allowed in functions in FROM" msgstr "віконні функції не можна заÑтоÑовувати у функціÑÑ… в FROM" -#: parser/parse_agg.c:865 +#: parser/parse_agg.c:876 msgid "window functions are not allowed in policy expressions" msgstr "віконні функції не можна заÑтоÑовувати у виразах політики" -#: parser/parse_agg.c:878 +#: parser/parse_agg.c:889 msgid "window functions are not allowed in window definitions" msgstr "віконні функції не можна заÑтоÑовувати у визначенні вікна" -#: parser/parse_agg.c:889 +#: parser/parse_agg.c:900 msgid "window functions are not allowed in MERGE WHEN conditions" msgstr "віконні функції не можна заÑтоÑовувати в умовах MERGE WHEN" -#: parser/parse_agg.c:913 +#: parser/parse_agg.c:924 msgid "window functions are not allowed in check constraints" msgstr "віконні функції не можна заÑтоÑовувати в перевірках обмежень" -#: parser/parse_agg.c:917 +#: parser/parse_agg.c:928 msgid "window functions are not allowed in DEFAULT expressions" msgstr "віконні функції не можна заÑтоÑовувати у виразах DEFAULT" -#: parser/parse_agg.c:920 +#: parser/parse_agg.c:931 msgid "window functions are not allowed in index expressions" msgstr "віконні функції не можна заÑтоÑовувати у виразах індекÑів" -#: parser/parse_agg.c:923 +#: parser/parse_agg.c:934 msgid "window functions are not allowed in statistics expressions" msgstr "віконні функції не можна заÑтоÑовувати у виразах ÑтатиÑтики" -#: parser/parse_agg.c:926 +#: parser/parse_agg.c:937 msgid "window functions are not allowed in index predicates" msgstr "віконні функції не можна заÑтоÑовувати в предикатах індекÑів" -#: parser/parse_agg.c:929 +#: parser/parse_agg.c:940 msgid "window functions are not allowed in transform expressions" msgstr "віконні функції не можна заÑтоÑовувати у виразах перетворюваннÑ" -#: parser/parse_agg.c:932 +#: parser/parse_agg.c:943 msgid "window functions are not allowed in EXECUTE parameters" msgstr "віконні функції не можна заÑтоÑовувати в параметрах EXECUTE" -#: parser/parse_agg.c:935 +#: parser/parse_agg.c:946 msgid "window functions are not allowed in trigger WHEN conditions" msgstr "віконні функції не можна заÑтоÑовувати в умовах WHEN Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³ÐµÑ€Ñ–Ð²" -#: parser/parse_agg.c:938 +#: parser/parse_agg.c:949 msgid "window functions are not allowed in partition bound" msgstr "віконні функції не можна заÑтоÑовувати в границі Ñекції" -#: parser/parse_agg.c:941 +#: parser/parse_agg.c:952 msgid "window functions are not allowed in partition key expressions" msgstr "віконні функції не можна заÑтоÑовувати у виразах ключа ÑекціонуваннÑ" -#: parser/parse_agg.c:944 +#: parser/parse_agg.c:955 msgid "window functions are not allowed in CALL arguments" msgstr "віконні функції не можна заÑтоÑовувати в аргументах CALL" -#: parser/parse_agg.c:947 +#: parser/parse_agg.c:958 msgid "window functions are not allowed in COPY FROM WHERE conditions" msgstr "віконні функції не можна заÑтоÑовувати в умовах COPY FROM WHERE" -#: parser/parse_agg.c:950 +#: parser/parse_agg.c:961 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:973 parser/parse_clause.c:1845 +#: parser/parse_agg.c:984 parser/parse_clause.c:1845 #, c-format msgid "window functions are not allowed in %s" msgstr "віконні функції не можна заÑтоÑовувати в %s" -#: parser/parse_agg.c:1007 parser/parse_clause.c:2678 +#: parser/parse_agg.c:1018 parser/parse_clause.c:2678 #, c-format msgid "window \"%s\" does not exist" msgstr "вікно \"%s\" не Ñ–Ñнує" -#: parser/parse_agg.c:1091 +#: parser/parse_agg.c:1102 #, c-format msgid "too many grouping sets present (maximum 4096)" msgstr "забагато наборів Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ (макÑимум 4096)" -#: parser/parse_agg.c:1231 +#: parser/parse_agg.c:1242 #, c-format msgid "aggregate functions are not allowed in a recursive query's recursive term" msgstr "агрегатні функції не дозволені у рекурÑивному терміні рекурÑивного запиту" -#: parser/parse_agg.c:1424 +#: parser/parse_agg.c:1435 #, 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:1427 +#: parser/parse_agg.c:1438 #, c-format msgid "Direct arguments of an ordered-set aggregate must use only grouped columns." msgstr "ПрÑмі аргументи Ñортувального агрегату можуть викориÑтовувати лише згруповані Ñтовпці." -#: parser/parse_agg.c:1432 +#: parser/parse_agg.c:1443 #, c-format msgid "subquery uses ungrouped column \"%s.%s\" from outer query" msgstr "вкладений запит викориÑтовує не згруповані Ñтовпці \"%s.%s\" з зовнішнього запиту" -#: parser/parse_agg.c:1596 +#: parser/parse_agg.c:1607 #, c-format msgid "arguments to GROUPING must be grouping expressions of the associated query level" msgstr "аргументами Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°ÑŽÑ‚ÑŒ бути вирази Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð²'Ñзаного Ñ€Ñ–Ð²Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ" @@ -17679,8 +17667,8 @@ msgstr "неправильне поÑÐ¸Ð»Ð°Ð½Ð½Ñ %%TYPE (занадто багРmsgid "type reference %s converted to %s" msgstr "поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° тип %s перетворене на тип %s" -#: parser/parse_type.c:278 parser/parse_type.c:807 utils/cache/typcache.c:390 -#: utils/cache/typcache.c:445 +#: parser/parse_type.c:278 parser/parse_type.c:807 utils/cache/typcache.c:395 +#: utils/cache/typcache.c:450 #, c-format msgid "type \"%s\" is only a shell" msgstr "тип \"%s\" Ñ” лише оболонкою" @@ -17811,11 +17799,6 @@ msgstr "у CREATE TABLE не можна викориÑтовувати Ñ–ÑÐ½ÑƒÑ msgid "index \"%s\" is already associated with a constraint" msgstr "Ñ–Ð½Ð´ÐµÐºÑ \"%s\" вже пов'Ñзаний з обмеженнÑм" -#: parser/parse_utilcmd.c:2287 -#, c-format -msgid "index \"%s\" is not valid" -msgstr "Ñ–Ð½Ð´ÐµÐºÑ \"%s\" не Ñ” припуÑтимим" - #: parser/parse_utilcmd.c:2293 #, c-format msgid "\"%s\" is not a unique index" @@ -18195,12 +18178,12 @@ msgstr "величезні Ñторінки на цій плтаформі не msgid "huge pages not supported with the current shared_memory_type setting" msgstr "величезні Ñторінки не підтримуютьÑÑ Ð· поточним параметром shared_memory_type" -#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1187 +#: port/pg_shmem.c:770 port/sysv_shmem.c:770 utils/init/miscinit.c:1195 #, c-format msgid "pre-existing shared memory block (key %lu, ID %lu) is still in use" msgstr "раніше виділений блок Ñпільної пам'ÑÑ‚Ñ– (ключ %lu, ідентифікатор %lu) вÑе ще викориÑтовуєтьÑÑ" -#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1189 +#: port/pg_shmem.c:773 port/sysv_shmem.c:773 utils/init/miscinit.c:1197 #, c-format msgid "Terminate any old server processes associated with data directory \"%s\"." msgstr "Припинити будь-Ñкі Ñтарі Ñерверні процеÑи, пов'Ñзані з каталогом даних \"%s\"." @@ -18550,92 +18533,92 @@ msgstr "%s: неприпуÑтимі таблиці маркерів чаÑу, Ð msgid "could not create I/O completion port for child queue" msgstr "не вдалоÑÑ Ñтворити завершений порт вводу-виводу Ð´Ð»Ñ Ñ‡ÐµÑ€Ð³Ð¸ дітей" -#: postmaster/postmaster.c:1178 +#: postmaster/postmaster.c:1189 #, c-format msgid "ending log output to stderr" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу виводу Stderr" -#: postmaster/postmaster.c:1179 +#: postmaster/postmaster.c:1190 #, c-format msgid "Future log output will go to log destination \"%s\"." msgstr "Ð’ майбутньому Ð·Ð°Ð¿Ð¸Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ запиÑуватиÑÑ Ð² Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \"%s\"." -#: postmaster/postmaster.c:1190 +#: postmaster/postmaster.c:1201 #, c-format msgid "starting %s" msgstr "початок %s" -#: postmaster/postmaster.c:1250 +#: postmaster/postmaster.c:1253 #, c-format msgid "could not create listen socket for \"%s\"" msgstr "не вдалоÑÑ Ñтворити Ñокет проÑÐ»ÑƒÑ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ \"%s\"" -#: postmaster/postmaster.c:1256 +#: postmaster/postmaster.c:1259 #, c-format msgid "could not create any TCP/IP sockets" msgstr "не вдалоÑÑ Ñтворити TCP/IP Ñокети" -#: postmaster/postmaster.c:1288 +#: postmaster/postmaster.c:1291 #, c-format msgid "DNSServiceRegister() failed: error code %ld" msgstr "Помилка DNSServiceRegister(): код помилки %ld" -#: postmaster/postmaster.c:1340 +#: postmaster/postmaster.c:1343 #, c-format msgid "could not create Unix-domain socket in directory \"%s\"" msgstr "не вдалоÑÑ Ñтворити Unix-domain Ñокет в каталозі \"%s\"" -#: postmaster/postmaster.c:1346 +#: postmaster/postmaster.c:1349 #, c-format msgid "could not create any Unix-domain sockets" msgstr "не вдалоÑÑ Ñтворити Unix-domain Ñокети" -#: postmaster/postmaster.c:1358 +#: postmaster/postmaster.c:1361 #, c-format msgid "no socket created for listening" msgstr "не Ñтворено жодного Ñокету Ð´Ð»Ñ Ð¿Ñ€Ð¾ÑлуховуваннÑ" -#: postmaster/postmaster.c:1389 +#: postmaster/postmaster.c:1392 #, c-format msgid "%s: could not change permissions of external PID file \"%s\": %s\n" msgstr "%s: не вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ дозволи зовнішнього PID файлу \"%s\": %s\n" -#: postmaster/postmaster.c:1393 +#: postmaster/postmaster.c:1396 #, c-format msgid "%s: could not write external PID file \"%s\": %s\n" msgstr "%s: не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати зовнішній PID файл \"%s\": %s\n" -#: postmaster/postmaster.c:1420 utils/init/postinit.c:220 +#: postmaster/postmaster.c:1423 utils/init/postinit.c:220 #, c-format msgid "could not load pg_hba.conf" msgstr "не вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ pg_hba.conf" -#: postmaster/postmaster.c:1446 +#: postmaster/postmaster.c:1449 #, c-format msgid "postmaster became multithreaded during startup" msgstr "адмініÑтратор поштового Ñервера Ñтав багатопотоковим під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку" -#: postmaster/postmaster.c:1447 +#: postmaster/postmaster.c:1450 #, c-format msgid "Set the LC_ALL environment variable to a valid locale." msgstr "Ð’Ñтановити в змінній Ñередовища LC_ALL дійіÑну локаль." -#: postmaster/postmaster.c:1548 +#: postmaster/postmaster.c:1551 #, c-format msgid "%s: could not locate my own executable path" msgstr "%s: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñвій влаÑний шлÑÑ… Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ" -#: postmaster/postmaster.c:1555 +#: postmaster/postmaster.c:1558 #, c-format msgid "%s: could not locate matching postgres executable" msgstr "%s: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ відповідний postgres файл, що виконуєтьÑÑ" -#: postmaster/postmaster.c:1578 utils/misc/tzparser.c:340 +#: postmaster/postmaster.c:1581 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:1605 +#: postmaster/postmaster.c:1608 #, c-format msgid "%s: could not find the database system\n" "Expected to find it in the directory \"%s\",\n" @@ -18644,477 +18627,477 @@ msgstr "%s: не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ÑиÑтему бази даних\ "ОчікувалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ Ñ—Ñ— у каталозі \"%s\",\n" "але не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл \"%s\": %s\n" -#: postmaster/postmaster.c:1782 +#: postmaster/postmaster.c:1785 #, c-format msgid "select() failed in postmaster: %m" msgstr "помилка вибирати() в адмініÑтраторі поштового Ñервера: %m" -#: postmaster/postmaster.c:1913 +#: postmaster/postmaster.c:1916 #, c-format msgid "issuing SIGKILL to recalcitrant children" msgstr "надÑÐ¸Ð»Ð°Ð½Ð½Ñ SIGKILL непокірливим дітÑм" -#: postmaster/postmaster.c:1934 +#: postmaster/postmaster.c:1937 #, c-format msgid "performing immediate shutdown because data directory lock file is invalid" msgstr "виконуєтьÑÑ Ð½ÐµÐ³Ð°Ð¹Ð½Ðµ Ð¿Ñ€Ð¸Ð¿Ð¸Ð½ÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ через неприпуÑтимий файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ даних" -#: postmaster/postmaster.c:2037 postmaster/postmaster.c:2065 +#: postmaster/postmaster.c:2040 postmaster/postmaster.c:2068 #, c-format msgid "incomplete startup packet" msgstr "неповний Ñтартовий пакет" -#: postmaster/postmaster.c:2049 postmaster/postmaster.c:2082 +#: postmaster/postmaster.c:2052 postmaster/postmaster.c:2085 #, c-format msgid "invalid length of startup packet" msgstr "неприпуÑтима довжина Ñтартового пакету" -#: postmaster/postmaster.c:2111 +#: postmaster/postmaster.c:2114 #, c-format msgid "failed to send SSL negotiation response: %m" msgstr "помилка надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ SSL в процеÑÑ– відповіді зв'ÑзуваннÑ: %m" -#: postmaster/postmaster.c:2129 +#: postmaster/postmaster.c:2132 #, c-format msgid "received unencrypted data after SSL request" msgstr "отримані незашифровані дані піÑÐ»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ SSL" -#: postmaster/postmaster.c:2130 postmaster/postmaster.c:2174 +#: postmaster/postmaster.c:2133 postmaster/postmaster.c:2177 #, 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:2155 +#: postmaster/postmaster.c:2158 #, c-format msgid "failed to send GSSAPI negotiation response: %m" msgstr "помилка надÑÐ¸Ð»Ð°Ð½Ð½Ñ GSSAPI в процеÑÑ– відповіді зв'ÑзуваннÑ: %m" -#: postmaster/postmaster.c:2173 +#: postmaster/postmaster.c:2176 #, c-format msgid "received unencrypted data after GSSAPI encryption request" msgstr "отримані незашифровані дані піÑÐ»Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ ÑˆÐ¸Ñ„Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ GSSAPI" -#: postmaster/postmaster.c:2197 +#: postmaster/postmaster.c:2200 #, 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:2261 utils/misc/guc.c:7400 utils/misc/guc.c:7436 -#: utils/misc/guc.c:7506 utils/misc/guc.c:8937 utils/misc/guc.c:11971 -#: utils/misc/guc.c:12012 +#: postmaster/postmaster.c:2264 utils/misc/guc.c:7400 utils/misc/guc.c:7436 +#: utils/misc/guc.c:7506 utils/misc/guc.c:8937 utils/misc/guc.c:11979 +#: utils/misc/guc.c:12020 #, c-format msgid "invalid value for parameter \"%s\": \"%s\"" msgstr "неприпуÑтиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ \"%s\": \"%s\"" -#: postmaster/postmaster.c:2264 +#: postmaster/postmaster.c:2267 #, c-format msgid "Valid values are: \"false\", 0, \"true\", 1, \"database\"." msgstr "ДійÑні значеннÑ: \"false\", 0, \"true\", 1, \"database\"." -#: postmaster/postmaster.c:2309 +#: postmaster/postmaster.c:2312 #, c-format msgid "invalid startup packet layout: expected terminator as last byte" msgstr "неприпуÑтима Ñтруктура Ñтартового пакету: оÑтаннім байтом очікувавÑÑ Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ð°Ñ‚Ð¾Ñ€" -#: postmaster/postmaster.c:2326 +#: postmaster/postmaster.c:2329 #, c-format msgid "no PostgreSQL user name specified in startup packet" msgstr "не вказано жодного ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача PostgreSQL у Ñтартовому пакеті" -#: postmaster/postmaster.c:2390 +#: postmaster/postmaster.c:2393 #, c-format msgid "the database system is starting up" msgstr "ÑиÑтема бази даних запуÑкаєтьÑÑ" -#: postmaster/postmaster.c:2396 +#: postmaster/postmaster.c:2399 #, c-format msgid "the database system is not yet accepting connections" msgstr "ÑиÑтема бази даних ще не приймає підключеннÑ" -#: postmaster/postmaster.c:2397 +#: postmaster/postmaster.c:2400 #, c-format msgid "Consistent recovery state has not been yet reached." msgstr "Узгодженого Ñтану Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‰Ðµ не доÑÑгнуто." -#: postmaster/postmaster.c:2401 +#: postmaster/postmaster.c:2404 #, c-format msgid "the database system is not accepting connections" msgstr "ÑиÑтема бази даних не приймає підключеннÑ" -#: postmaster/postmaster.c:2402 +#: postmaster/postmaster.c:2405 #, c-format msgid "Hot standby mode is disabled." msgstr "Режим Hot standby вимкнений." -#: postmaster/postmaster.c:2407 +#: postmaster/postmaster.c:2410 #, c-format msgid "the database system is shutting down" msgstr "ÑиÑтема бази даних завершує роботу" -#: postmaster/postmaster.c:2412 +#: postmaster/postmaster.c:2415 #, c-format msgid "the database system is in recovery mode" msgstr "ÑиÑтема бази даних у режимі відновленнÑ" -#: postmaster/postmaster.c:2417 storage/ipc/procarray.c:493 +#: postmaster/postmaster.c:2420 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:2504 +#: postmaster/postmaster.c:2507 #, c-format msgid "wrong key in cancel request for process %d" msgstr "неправильний ключ в запиті ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу %d" -#: postmaster/postmaster.c:2516 +#: postmaster/postmaster.c:2519 #, c-format msgid "PID %d in cancel request did not match any process" msgstr "PID %d в запиті на ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ відповідає жодному процеÑу" -#: postmaster/postmaster.c:2770 +#: postmaster/postmaster.c:2773 #, c-format msgid "received SIGHUP, reloading configuration files" msgstr "отримано SIGHUP, Ð¿Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² конфігурацій" #. translator: %s is a configuration file -#: postmaster/postmaster.c:2794 postmaster/postmaster.c:2798 +#: postmaster/postmaster.c:2797 postmaster/postmaster.c:2801 #, c-format msgid "%s was not reloaded" msgstr "%s не було перезавантажено" -#: postmaster/postmaster.c:2808 +#: postmaster/postmaster.c:2811 #, c-format msgid "SSL configuration was not reloaded" msgstr "ÐšÐ¾Ð½Ñ„Ñ–Ð³ÑƒÑ€Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ñƒ SSL не була перезавантажена" -#: postmaster/postmaster.c:2864 +#: postmaster/postmaster.c:2867 #, c-format msgid "received smart shutdown request" msgstr "отримано smart запит на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸" -#: postmaster/postmaster.c:2905 +#: postmaster/postmaster.c:2908 #, c-format msgid "received fast shutdown request" msgstr "отримано швидкий запит на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸" -#: postmaster/postmaster.c:2923 +#: postmaster/postmaster.c:2926 #, c-format msgid "aborting any active transactions" msgstr "Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑŒ-Ñких активних транзакцій" -#: postmaster/postmaster.c:2947 +#: postmaster/postmaster.c:2950 #, c-format msgid "received immediate shutdown request" msgstr "отримано запит на негайне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸" -#: postmaster/postmaster.c:3024 +#: postmaster/postmaster.c:3027 #, c-format msgid "shutdown at recovery target" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ при відновленні мети" -#: postmaster/postmaster.c:3042 postmaster/postmaster.c:3078 +#: postmaster/postmaster.c:3045 postmaster/postmaster.c:3081 msgid "startup process" msgstr "Ñтартовий процеÑ" -#: postmaster/postmaster.c:3045 +#: postmaster/postmaster.c:3048 #, c-format msgid "aborting startup due to startup process failure" msgstr "Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿ÑƒÑку через помилку в Ñтартовому процеÑÑ–" -#: postmaster/postmaster.c:3118 +#: postmaster/postmaster.c:3121 #, c-format msgid "database system is ready to accept connections" msgstr "ÑиÑтема бази даних готова до Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ" -#: postmaster/postmaster.c:3139 +#: postmaster/postmaster.c:3142 msgid "background writer process" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ„Ð¾Ð½Ð¾Ð²Ð¾Ð³Ð¾ запиÑу" -#: postmaster/postmaster.c:3186 +#: postmaster/postmaster.c:3189 msgid "checkpointer process" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… точок" -#: postmaster/postmaster.c:3202 +#: postmaster/postmaster.c:3205 msgid "WAL writer process" msgstr "ÐŸÑ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿Ð¸Ñу WAL" -#: postmaster/postmaster.c:3217 +#: postmaster/postmaster.c:3220 msgid "WAL receiver process" msgstr "ÐŸÑ€Ð¾Ñ†ÐµÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ WAL" -#: postmaster/postmaster.c:3232 +#: postmaster/postmaster.c:3235 msgid "autovacuum launcher process" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿ÑƒÑку автоочиÑтки" -#: postmaster/postmaster.c:3250 +#: postmaster/postmaster.c:3253 msgid "archiver process" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð°Ñ€Ñ…Ñ–Ð²Ð°Ñ†Ñ–Ñ—" -#: postmaster/postmaster.c:3263 +#: postmaster/postmaster.c:3266 msgid "system logger process" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ ÑиÑтемного журналюваннÑ" -#: postmaster/postmaster.c:3327 +#: postmaster/postmaster.c:3330 #, c-format msgid "background worker \"%s\"" msgstr "фоновий виконавець \"%s\"" -#: postmaster/postmaster.c:3406 postmaster/postmaster.c:3426 -#: postmaster/postmaster.c:3433 postmaster/postmaster.c:3451 +#: postmaster/postmaster.c:3409 postmaster/postmaster.c:3429 +#: postmaster/postmaster.c:3436 postmaster/postmaster.c:3454 msgid "server process" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñервера" -#: postmaster/postmaster.c:3505 +#: postmaster/postmaster.c:3508 #, 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:3742 +#: postmaster/postmaster.c:3745 #, c-format msgid "%s (PID %d) exited with exit code %d" msgstr "%s (PID %d) завершивÑÑ Ð· кодом виходу %d" -#: postmaster/postmaster.c:3744 postmaster/postmaster.c:3756 -#: postmaster/postmaster.c:3766 postmaster/postmaster.c:3777 +#: postmaster/postmaster.c:3747 postmaster/postmaster.c:3759 +#: postmaster/postmaster.c:3769 postmaster/postmaster.c:3780 #, 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:3753 +#: postmaster/postmaster.c:3756 #, c-format msgid "%s (PID %d) was terminated by exception 0x%X" msgstr "%s (PID %d) був перерваний винÑтком 0x%X" -#: postmaster/postmaster.c:3755 postmaster/shell_archive.c:134 +#: postmaster/postmaster.c:3758 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:3763 +#: postmaster/postmaster.c:3766 #, 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:3775 +#: postmaster/postmaster.c:3778 #, c-format msgid "%s (PID %d) exited with unrecognized status %d" msgstr "%s (PID %d) завершивÑÑ Ð· нерозпізнаним ÑтатуÑом %d" -#: postmaster/postmaster.c:3975 +#: postmaster/postmaster.c:3978 #, c-format msgid "abnormal database system shutdown" msgstr "ненормальне Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ ÑиÑтеми бази даних" -#: postmaster/postmaster.c:4001 +#: postmaster/postmaster.c:4004 #, c-format msgid "shutting down due to startup process failure" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ через помилку в Ñтартовому процеÑÑ–" -#: postmaster/postmaster.c:4007 +#: postmaster/postmaster.c:4010 #, c-format msgid "shutting down because restart_after_crash is off" msgstr "Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, тому що restart_after_crash вимкнено" -#: postmaster/postmaster.c:4019 +#: postmaster/postmaster.c:4022 #, c-format msgid "all server processes terminated; reinitializing" msgstr "уÑÑ– Ñерверні процеÑи перервано; повторна ініціалізаціÑ" -#: postmaster/postmaster.c:4191 postmaster/postmaster.c:5519 -#: postmaster/postmaster.c:5917 +#: postmaster/postmaster.c:4194 postmaster/postmaster.c:5522 +#: postmaster/postmaster.c:5920 #, c-format msgid "could not generate random cancel key" msgstr "не вдалоÑÑ Ð·Ð³ÐµÐ½ÐµÑ€ÑƒÐ²Ð°Ñ‚Ð¸ випадковий ключ ÑкаÑуваннÑ" -#: postmaster/postmaster.c:4253 +#: postmaster/postmaster.c:4256 #, c-format msgid "could not fork new process for connection: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ нові процеÑи Ð´Ð»Ñ Ð·'єднаннÑ: %m" -#: postmaster/postmaster.c:4295 +#: postmaster/postmaster.c:4298 msgid "could not fork new process for connection: " msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ нові процеÑи Ð´Ð»Ñ Ð·'єднаннÑ: " -#: postmaster/postmaster.c:4401 +#: postmaster/postmaster.c:4404 #, c-format msgid "connection received: host=%s port=%s" msgstr "з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾: хоÑÑ‚=%s порт=%s" -#: postmaster/postmaster.c:4406 +#: postmaster/postmaster.c:4409 #, c-format msgid "connection received: host=%s" msgstr "з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð¾: хоÑÑ‚=%s" -#: postmaster/postmaster.c:4643 +#: postmaster/postmaster.c:4646 #, c-format msgid "could not execute server process \"%s\": %m" msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ñерверні процеÑи \"%s\":%m" -#: postmaster/postmaster.c:4701 +#: postmaster/postmaster.c:4704 #, c-format msgid "could not create backend parameter file mapping: error code %lu" msgstr "не вдалоÑÑ Ñтворити Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ параметру внутрішнього Ñервера: код помилки %lu" -#: postmaster/postmaster.c:4710 +#: postmaster/postmaster.c:4713 #, c-format msgid "could not map backend parameter memory: error code %lu" msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ‚Ð¸ пам'ÑÑ‚ÑŒ параметру внутрішнього Ñервера: код помилки %lu" -#: postmaster/postmaster.c:4737 +#: postmaster/postmaster.c:4740 #, c-format msgid "subprocess command line too long" msgstr "командний Ñ€Ñдок підпроцеÑу занадто довгий" -#: postmaster/postmaster.c:4755 +#: postmaster/postmaster.c:4758 #, c-format msgid "CreateProcess() call failed: %m (error code %lu)" msgstr "помилка виклику CreateProcess(): %m (код помилки %lu)" -#: postmaster/postmaster.c:4782 +#: postmaster/postmaster.c:4785 #, c-format msgid "could not unmap view of backend parameter file: error code %lu" msgstr "не вдалоÑÑ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ параметру внутрішнього Ñервера: код помилки %lu" -#: postmaster/postmaster.c:4786 +#: postmaster/postmaster.c:4789 #, c-format msgid "could not close handle to backend parameter file: error code %lu" msgstr "не вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ покажчик файлу параметру внутрішнього Ñервера: код помилки %lu" -#: postmaster/postmaster.c:4808 +#: postmaster/postmaster.c:4811 #, c-format msgid "giving up after too many tries to reserve shared memory" msgstr "кількіÑÑ‚ÑŒ повторних Ñпроб Ñ€ÐµÐ·ÐµÑ€Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñпільної пам'ÑÑ‚Ñ– доÑÑгло межі" -#: postmaster/postmaster.c:4809 +#: postmaster/postmaster.c:4812 #, c-format msgid "This might be caused by ASLR or antivirus software." msgstr "Це може бути викликано антивіруÑним програмним забезпеченнÑм або ASLR." -#: postmaster/postmaster.c:4982 +#: postmaster/postmaster.c:4985 #, c-format msgid "SSL configuration could not be loaded in child process" msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ конфігурацію SSL в дочірній процеÑ" -#: postmaster/postmaster.c:5107 +#: postmaster/postmaster.c:5110 #, c-format msgid "Please report this to <%s>." msgstr "Будь-лаÑка повідомте про це <%s>." -#: postmaster/postmaster.c:5179 +#: postmaster/postmaster.c:5182 #, c-format msgid "database system is ready to accept read-only connections" msgstr "ÑиÑтема бази даних готова до Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" -#: postmaster/postmaster.c:5443 +#: postmaster/postmaster.c:5446 #, c-format msgid "could not fork startup process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ Ñтартовий процеÑ: %m" -#: postmaster/postmaster.c:5447 +#: postmaster/postmaster.c:5450 #, c-format msgid "could not fork archiver process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð°Ñ€Ñ…Ñ–Ð²Ð°Ñ‚Ð¾Ñ€Ð°: %m" -#: postmaster/postmaster.c:5451 +#: postmaster/postmaster.c:5454 #, c-format msgid "could not fork background writer process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ фоновий Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿Ð¸Ñу: %m" -#: postmaster/postmaster.c:5455 +#: postmaster/postmaster.c:5458 #, c-format msgid "could not fork checkpointer process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… точок: %m" -#: postmaster/postmaster.c:5459 +#: postmaster/postmaster.c:5462 #, c-format msgid "could not fork WAL writer process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿Ð¸Ñу WAL: %m" -#: postmaster/postmaster.c:5463 +#: postmaster/postmaster.c:5466 #, c-format msgid "could not fork WAL receiver process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ WAL: %m" -#: postmaster/postmaster.c:5467 +#: postmaster/postmaster.c:5470 #, c-format msgid "could not fork process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ процеÑ: %m" -#: postmaster/postmaster.c:5668 postmaster/postmaster.c:5695 +#: postmaster/postmaster.c:5671 postmaster/postmaster.c:5698 #, c-format msgid "database connection requirement not indicated during registration" msgstr "під Ñ‡Ð°Ñ Ñ€ÐµÑ”Ñтрації не вказувалоÑÑ, що вимагаєтьÑÑ Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ бази даних" -#: postmaster/postmaster.c:5679 postmaster/postmaster.c:5706 +#: postmaster/postmaster.c:5682 postmaster/postmaster.c:5709 #, c-format msgid "invalid processing mode in background worker" msgstr "неприпуÑтимий режим обробки у фоновому запиÑÑ–" -#: postmaster/postmaster.c:5791 +#: postmaster/postmaster.c:5794 #, c-format msgid "could not fork worker process: %m" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ€Ð¾Ð´Ð¸Ñ‚Ð¸ Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð¿Ð¸Ñу: %m" -#: postmaster/postmaster.c:5903 +#: postmaster/postmaster.c:5906 #, c-format msgid "no slot available for new worker process" msgstr "немає доÑтупного Ñлоту Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ робочого процеÑу" -#: postmaster/postmaster.c:6234 +#: postmaster/postmaster.c:6237 #, c-format msgid "could not duplicate socket %d for use in backend: error code %d" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ñ‚Ð¸ Ñокет %d Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтаннÑ: код помилки %d" -#: postmaster/postmaster.c:6266 +#: postmaster/postmaster.c:6269 #, c-format msgid "could not create inherited socket: error code %d\n" msgstr "не вдалоÑÑ Ñтворити уÑпадкований Ñокет: код помилки %d\n" -#: postmaster/postmaster.c:6295 +#: postmaster/postmaster.c:6298 #, c-format msgid "could not open backend variables file \"%s\": %s\n" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ внутрішні змінні файли \"%s\": %s\n" -#: postmaster/postmaster.c:6302 +#: postmaster/postmaster.c:6305 #, c-format msgid "could not read from backend variables file \"%s\": %s\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ внутрішні змінні файли \"%s\": %s\n" -#: postmaster/postmaster.c:6311 +#: postmaster/postmaster.c:6314 #, c-format msgid "could not remove file \"%s\": %s\n" msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ файл \"%s\": %s\n" -#: postmaster/postmaster.c:6328 +#: postmaster/postmaster.c:6331 #, c-format msgid "could not map view of backend variables: error code %lu\n" msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð·Ð¸Ñ‚Ð¸ файл Ñерверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6337 +#: postmaster/postmaster.c:6340 #, c-format msgid "could not unmap view of backend variables: error code %lu\n" msgstr "не вдалоÑÑ Ð²Ð¸Ð¼ÐºÐ½ÑƒÑ‚Ð¸ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ñƒ Ñерверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6344 +#: postmaster/postmaster.c:6347 #, c-format msgid "could not close handle to backend parameter variables: error code %lu\n" msgstr "не вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ покажчик файлу Ñерверних змінних: код помилки %lu\n" -#: postmaster/postmaster.c:6503 +#: postmaster/postmaster.c:6506 #, c-format msgid "could not read exit code for process\n" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ код Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу\n" -#: postmaster/postmaster.c:6545 +#: postmaster/postmaster.c:6548 #, c-format msgid "could not post child completion status\n" msgstr "не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати ÑÑ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð½Ð°Ñ‰Ð°Ð´ÐºÐ°\n" @@ -19225,97 +19208,97 @@ msgstr "не вдалоÑÑ Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ñ€Ñдок підключен msgid "could not receive database system identifier and timeline ID from the primary server: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ідентифікатор ÑиÑтеми бази даних та ідентифікатор чаÑової шкали з оÑновного Ñерверу: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:384 -#: replication/libpqwalreceiver/libpqwalreceiver.c:622 +#: replication/libpqwalreceiver/libpqwalreceiver.c:388 +#: replication/libpqwalreceiver/libpqwalreceiver.c:626 #, c-format msgid "invalid response from primary server" msgstr "неприпуÑтима відповідь з оÑновного Ñерверу" -#: replication/libpqwalreceiver/libpqwalreceiver.c:385 +#: replication/libpqwalreceiver/libpqwalreceiver.c:389 #, c-format msgid "Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields." msgstr "Ðе вдалоÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÑƒÐ²Ð°Ñ‚Ð¸ ÑиÑтему: отримано %d Ñ€Ñдків Ñ– %d полів, очікувалоÑÑŒ %d Ñ€Ñдків Ñ– %d або більше полів." -#: replication/libpqwalreceiver/libpqwalreceiver.c:465 -#: replication/libpqwalreceiver/libpqwalreceiver.c:472 -#: replication/libpqwalreceiver/libpqwalreceiver.c:502 +#: replication/libpqwalreceiver/libpqwalreceiver.c:469 +#: replication/libpqwalreceiver/libpqwalreceiver.c:476 +#: replication/libpqwalreceiver/libpqwalreceiver.c:506 #, c-format msgid "could not start WAL streaming: %s" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¸ потокове Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:526 +#: replication/libpqwalreceiver/libpqwalreceiver.c:530 #, c-format msgid "could not send end-of-streaming message to primary: %s" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚Ð¸ оÑновному Ñерверу Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ кінець передваннÑ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:549 +#: replication/libpqwalreceiver/libpqwalreceiver.c:553 #, c-format msgid "unexpected result set after end-of-streaming" msgstr "неочікуваний набір результатів піÑÐ»Ñ ÐºÑ–Ð½Ñ†Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ñ–" -#: replication/libpqwalreceiver/libpqwalreceiver.c:564 +#: replication/libpqwalreceiver/libpqwalreceiver.c:568 #, c-format msgid "error while shutting down streaming COPY: %s" msgstr "помилка при завершенні потокового Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñ \"копіювати\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:574 +#: replication/libpqwalreceiver/libpqwalreceiver.c:578 #, c-format msgid "error reading result of streaming command: %s" msgstr "помилка при читанні результату команди потокового передаваннÑ: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:583 -#: replication/libpqwalreceiver/libpqwalreceiver.c:821 +#: replication/libpqwalreceiver/libpqwalreceiver.c:587 +#: replication/libpqwalreceiver/libpqwalreceiver.c:825 #, c-format msgid "unexpected result after CommandComplete: %s" msgstr "неочікуваний результат CommandComplete: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:610 +#: replication/libpqwalreceiver/libpqwalreceiver.c:614 #, c-format msgid "could not receive timeline history file from the primary server: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ файл Ñ–Ñторії чаÑової шкали з оÑновного Ñервера: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:623 +#: replication/libpqwalreceiver/libpqwalreceiver.c:627 #, c-format msgid "Expected 1 tuple with 2 fields, got %d tuples with %d fields." msgstr "ОчікувалоÑÑ 1 кортеж з 2 поле, отримано %d кортежів з %d полÑми." -#: replication/libpqwalreceiver/libpqwalreceiver.c:784 -#: replication/libpqwalreceiver/libpqwalreceiver.c:837 -#: replication/libpqwalreceiver/libpqwalreceiver.c:844 +#: replication/libpqwalreceiver/libpqwalreceiver.c:788 +#: replication/libpqwalreceiver/libpqwalreceiver.c:841 +#: replication/libpqwalreceiver/libpqwalreceiver.c:848 #, c-format msgid "could not receive data from WAL stream: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані з WAL потоку: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:864 +#: replication/libpqwalreceiver/libpqwalreceiver.c:868 #, c-format msgid "could not send data to WAL stream: %s" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚Ð¸ дані потоку WAL: %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:956 +#: replication/libpqwalreceiver/libpqwalreceiver.c:960 #, c-format msgid "could not create replication slot \"%s\": %s" msgstr "не вдалоÑÑ Ñтворити Ñлот реплікації \"%s\": %s" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1002 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1006 #, c-format msgid "invalid query response" msgstr "неприпуÑтима відповідь на запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1003 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1007 #, c-format msgid "Expected %d fields, got %d fields." msgstr "ОчікувалоÑÑ %d полів, отримано %d полі." -#: replication/libpqwalreceiver/libpqwalreceiver.c:1073 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1077 #, c-format msgid "the query interface requires a database connection" msgstr "Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñ–Ð² вимагає Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ бази даних" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1104 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1108 msgid "empty query" msgstr "пуÑтий запит" -#: replication/libpqwalreceiver/libpqwalreceiver.c:1110 +#: replication/libpqwalreceiver/libpqwalreceiver.c:1114 msgid "unexpected pipeline mode" msgstr "неочікуваний режим конвеєра" @@ -19606,12 +19589,12 @@ msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ файл \"%s\" під Ñ‡Ð°Ñ Ð²Ð¸Ð msgid "could not read from file \"%s\": read %d instead of %d bytes" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ з файлу \"%s\": прочитано %d заміÑÑ‚ÑŒ %d байт" -#: replication/logical/snapbuild.c:634 +#: replication/logical/snapbuild.c:646 #, c-format msgid "initial slot snapshot too large" msgstr "початковий знімок Ñлота занадто великий" -#: replication/logical/snapbuild.c:688 +#: replication/logical/snapbuild.c:700 #, c-format msgid "exported logical decoding snapshot: \"%s\" with %u transaction ID" msgid_plural "exported logical decoding snapshot: \"%s\" with %u transaction IDs" @@ -19620,58 +19603,58 @@ msgstr[1] "екÑпортовано знімок логічного декоду msgstr[2] "екÑпортовано знімок логічного Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" з %u ID транзакціÑми" msgstr[3] "екÑпортовано знімок логічного Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" з %u ID транзакціÑми" -#: replication/logical/snapbuild.c:1367 replication/logical/snapbuild.c:1474 -#: replication/logical/snapbuild.c:2003 +#: replication/logical/snapbuild.c:1379 replication/logical/snapbuild.c:1486 +#: replication/logical/snapbuild.c:2015 #, c-format msgid "logical decoding found consistent point at %X/%X" msgstr "ÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу логічного ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ в точці %X/%X" -#: replication/logical/snapbuild.c:1369 +#: replication/logical/snapbuild.c:1381 #, c-format msgid "There are no running transactions." msgstr "Більше активних транзакцій немає." -#: replication/logical/snapbuild.c:1425 +#: replication/logical/snapbuild.c:1437 #, c-format msgid "logical decoding found initial starting point at %X/%X" msgstr "початкова Ñтартова точка процеÑу логічного Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð° в точці %X/%X" -#: replication/logical/snapbuild.c:1427 replication/logical/snapbuild.c:1451 +#: replication/logical/snapbuild.c:1439 replication/logical/snapbuild.c:1463 #, c-format msgid "Waiting for transactions (approximately %d) older than %u to end." msgstr "ÐžÑ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ð¹ (приблизно %d) Ñтаріше, ніж %u до кінцÑ." -#: replication/logical/snapbuild.c:1449 +#: replication/logical/snapbuild.c:1461 #, c-format msgid "logical decoding found initial consistent point at %X/%X" msgstr "початкова точка ÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу логічного ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ð¹Ð´ÐµÐ½Ð° в точці %X/%X" -#: replication/logical/snapbuild.c:1476 +#: replication/logical/snapbuild.c:1488 #, c-format msgid "There are no old transactions anymore." msgstr "Більше Ñтарих транзакцій немає." -#: replication/logical/snapbuild.c:1871 +#: replication/logical/snapbuild.c:1883 #, c-format msgid "snapbuild state file \"%s\" has wrong magic number: %u instead of %u" msgstr "файл Ñтану snapbuild \"%s\" має неправильне магічне чиÑло: %u заміÑÑ‚ÑŒ %u" -#: replication/logical/snapbuild.c:1877 +#: replication/logical/snapbuild.c:1889 #, c-format msgid "snapbuild state file \"%s\" has unsupported version: %u instead of %u" msgstr "файл Ñтану snapbuild \"%s\" має непідтримуючу верÑÑ–ÑŽ: %u заміÑÑ‚ÑŒ %u" -#: replication/logical/snapbuild.c:1948 +#: replication/logical/snapbuild.c:1960 #, c-format msgid "checksum mismatch for snapbuild state file \"%s\": is %u, should be %u" msgstr "у файлі Ñтану snapbuild \"%s\" невідповідніÑÑ‚ÑŒ контрольної Ñуми: %u, повинно бути %u" -#: replication/logical/snapbuild.c:2005 +#: replication/logical/snapbuild.c:2017 #, c-format msgid "Logical decoding will begin using saved snapshot." msgstr "Логічне Ð´ÐµÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð½ÐµÑ‚ÑŒÑÑ Ð·Ñ– збереженого знімку." -#: replication/logical/snapbuild.c:2077 +#: replication/logical/snapbuild.c:2089 #, c-format msgid "could not parse file name \"%s\"" msgstr "не вдалоÑÑ Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ ім'Ñ Ñ„Ð°Ð¹Ð»Ñƒ \"%s\"" @@ -19686,47 +19669,47 @@ msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñинхронізації таблиці при логіч 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:731 replication/logical/tablesync.c:872 +#: replication/logical/tablesync.c:741 replication/logical/tablesync.c:882 #, c-format msgid "could not fetch table info for table \"%s.%s\" from publisher: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ інформацію про таблицю \"%s.%s\" з Ñерверу публікації: %s" -#: replication/logical/tablesync.c:738 +#: replication/logical/tablesync.c:748 #, c-format msgid "table \"%s.%s\" not found on publisher" msgstr "Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ \"%s.%s\" не знайдена на Ñервері публікації" -#: replication/logical/tablesync.c:795 +#: replication/logical/tablesync.c:805 #, c-format msgid "could not fetch column list info for table \"%s.%s\" from publisher: %s" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ інформацію про ÑпиÑок Ñтовпців Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– \"%s.%s\" з Ñерверу публікації: %s" -#: replication/logical/tablesync.c:974 +#: replication/logical/tablesync.c:984 #, 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:1111 +#: replication/logical/tablesync.c:1129 #, c-format msgid "could not start initial contents copy for table \"%s.%s\": %s" msgstr "не вдалоÑÑ Ð¿Ð¾Ñ‡Ð°Ñ‚Ð¸ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ð³Ð¾ зміÑту таблиці \"%s.%s\": %s" -#: replication/logical/tablesync.c:1323 replication/logical/worker.c:1635 +#: replication/logical/tablesync.c:1341 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:1338 +#: replication/logical/tablesync.c:1356 #, c-format msgid "table copy could not start transaction on publisher: %s" msgstr "копії таблиці не вдалоÑÑ Ð·Ð°Ð¿ÑƒÑтити транзакцію на Ñервері публікації: %s" -#: replication/logical/tablesync.c:1380 +#: replication/logical/tablesync.c:1398 #, c-format msgid "replication origin \"%s\" already exists" msgstr "джерело реплікації \"%s\" вже Ñ–Ñнує" -#: replication/logical/tablesync.c:1393 +#: replication/logical/tablesync.c:1411 #, c-format msgid "table copy could not finish transaction on publisher: %s" msgstr "копії таблиці не вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ транзакцію на Ñервері публікації: %s" @@ -21073,17 +21056,17 @@ msgstr "не вдалоÑÑ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ Ñегмент Ñпільної паРmsgid "could not duplicate handle for \"%s\": %m" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ñ‚Ð¸ маркер Ð´Ð»Ñ \"%s\": %m" -#: storage/ipc/procarray.c:3846 +#: storage/ipc/procarray.c:3845 #, c-format msgid "database \"%s\" is being used by prepared transactions" msgstr "база даних \"%s\" викориÑтовуєтьÑÑ Ð¿Ñ–Ð´Ð³Ð¾Ñ‚Ð¾Ð²Ð»ÐµÐ½Ð¸Ð¼Ð¸ транзакціÑми" -#: storage/ipc/procarray.c:3878 storage/ipc/signalfuncs.c:226 +#: storage/ipc/procarray.c:3877 storage/ipc/signalfuncs.c:231 #, c-format msgid "must be a superuser to terminate superuser process" msgstr "щоб припинити Ð¿Ñ€Ð¾Ñ†ÐµÑ ÑуперкориÑтувача потрібно бути ÑуперкориÑтувачем" -#: storage/ipc/procarray.c:3885 storage/ipc/signalfuncs.c:231 +#: storage/ipc/procarray.c:3884 storage/ipc/signalfuncs.c:236 #, c-format msgid "must be a member of the role whose process is being terminated or member of pg_signal_backend" msgstr "потрібно бути учаÑником ролі, Ð¿Ñ€Ð¾Ñ†ÐµÑ ÐºÐ¾Ñ‚Ñ€Ð¾Ñ— припинÑєтьÑÑ Ð°Ð±Ð¾ учаÑником pg_signal_backend" @@ -21143,28 +21126,28 @@ msgstr "запитаний Ñегмент Ñпільної пам'ÑÑ‚Ñ– не в msgid "PID %d is not a PostgreSQL backend process" msgstr "PID %d не Ñ” внутрішнім процеÑом PostgreSQL" -#: storage/ipc/signalfuncs.c:104 storage/lmgr/proc.c:1434 +#: storage/ipc/signalfuncs.c:109 storage/lmgr/proc.c:1442 #: utils/adt/mcxtfuncs.c:190 #, c-format msgid "could not send signal to process %d: %m" msgstr "не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати Ñигнал процеÑу %d: %m" -#: storage/ipc/signalfuncs.c:124 +#: storage/ipc/signalfuncs.c:129 #, c-format msgid "must be a superuser to cancel superuser query" msgstr "щоб ÑкаÑувати запит ÑуперкориÑтувача потрібно бути ÑуперкориÑтувачем" -#: storage/ipc/signalfuncs.c:129 +#: storage/ipc/signalfuncs.c:134 #, c-format msgid "must be a member of the role whose query is being canceled or member of pg_signal_backend" msgstr "потрібно бути учаÑником ролі, запит котрої ÑкаÑовуєтьÑÑ, або учаÑником pg_signal_backend" -#: storage/ipc/signalfuncs.c:170 +#: storage/ipc/signalfuncs.c:175 #, c-format msgid "could not check the existence of the backend with PID %d: %m" msgstr "не вдалоÑÑ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¸Ñ‚Ð¸ наÑвніÑÑ‚ÑŒ процеÑу з PID %d: %m" -#: storage/ipc/signalfuncs.c:188 +#: storage/ipc/signalfuncs.c:193 #, c-format msgid "backend with PID %d did not terminate within %lld millisecond" msgid_plural "backend with PID %d did not terminate within %lld milliseconds" @@ -21173,23 +21156,23 @@ msgstr[1] "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d не завершивÑÑ Ð¿Ñ€Ð¾Ñ‚Ñгом %ll msgstr[2] "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d не завершивÑÑ Ð¿Ñ€Ð¾Ñ‚Ñгом %lld міліÑекунд" msgstr[3] "Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· PID %d не завершивÑÑ Ð¿Ñ€Ð¾Ñ‚Ñгом %lld міліÑекунд" -#: storage/ipc/signalfuncs.c:219 +#: storage/ipc/signalfuncs.c:224 #, c-format msgid "\"timeout\" must not be negative" msgstr "\"timeout\" повинен не може бути негативним" -#: storage/ipc/signalfuncs.c:271 +#: storage/ipc/signalfuncs.c:276 #, c-format msgid "must be superuser to rotate log files with adminpack 1.0" msgstr "прокручувати файли протоколів викориÑтовуючи adminpack 1.0, може лише ÑуперкориÑтувач" #. translator: %s is a SQL function name -#: storage/ipc/signalfuncs.c:273 utils/adt/genfile.c:250 +#: storage/ipc/signalfuncs.c:278 utils/adt/genfile.c:250 #, c-format msgid "Consider using %s, which is part of core, instead." msgstr "РозглÑньте викориÑÑ‚Ð°Ð½Ð½Ñ %s, що Ñ” чаÑтиною Ñдра." -#: storage/ipc/signalfuncs.c:279 storage/ipc/signalfuncs.c:299 +#: storage/ipc/signalfuncs.c:284 storage/ipc/signalfuncs.c:304 #, c-format msgid "rotation not possible because log collection not active" msgstr "Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ тому, що запиÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÐµÐºÑ†Ñ–Ñ— не активоване" @@ -21473,27 +21456,27 @@ msgstr "Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ Ð¼Ð¾Ð¶Ðµ завершитиÑÑ ÑƒÑпішно, ÑÐ msgid "number of requested standby connections exceeds max_wal_senders (currently %d)" msgstr "кількіÑÑ‚ÑŒ запитаних підключень резервного Ñерверу перевищує max_wal_senders (поточна %d)" -#: storage/lmgr/proc.c:1531 +#: storage/lmgr/proc.c:1539 #, c-format msgid "process %d avoided deadlock for %s on %s by rearranging queue order after %ld.%03d ms" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ %d уникнув взаємного блокуваннÑ, чекаючи в режимі %s Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ %s змінивши порÑдок черги піÑÐ»Ñ %ld.%03d мÑ" -#: storage/lmgr/proc.c:1546 +#: storage/lmgr/proc.c:1554 #, c-format msgid "process %d detected deadlock while waiting for %s on %s after %ld.%03d ms" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ %d виÑвив взаємне блокуваннÑ, чекаючи в режимі %s Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ %s піÑÐ»Ñ %ld.%03d мÑ" -#: storage/lmgr/proc.c:1555 +#: storage/lmgr/proc.c:1563 #, c-format msgid "process %d still waiting for %s on %s after %ld.%03d ms" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ %d вÑе ще чекає в режимі %s Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ %s піÑÐ»Ñ %ld.%03d мÑ" -#: storage/lmgr/proc.c:1562 +#: storage/lmgr/proc.c:1570 #, c-format msgid "process %d acquired %s on %s after %ld.%03d ms" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ %d отримав в режимі %s Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ %s піÑÐ»Ñ %ld.%03d мÑ" -#: storage/lmgr/proc.c:1579 +#: storage/lmgr/proc.c:1587 #, c-format msgid "process %d failed to acquire %s on %s after %ld.%03d ms" msgstr "Ð¿Ñ€Ð¾Ñ†ÐµÑ %d не зміг отримати в режимі %s Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ %s піÑÐ»Ñ %ld.%03d мÑ" @@ -22450,59 +22433,59 @@ msgstr "пошук елементів у багатовимірних маÑив msgid "initial position must not be null" msgstr "початкова Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ð½Ðµ повинна бути null" -#: utils/adt/arrayfuncs.c:271 utils/adt/arrayfuncs.c:285 -#: utils/adt/arrayfuncs.c:296 utils/adt/arrayfuncs.c:318 -#: utils/adt/arrayfuncs.c:333 utils/adt/arrayfuncs.c:347 -#: utils/adt/arrayfuncs.c:353 utils/adt/arrayfuncs.c:360 -#: utils/adt/arrayfuncs.c:493 utils/adt/arrayfuncs.c:509 -#: utils/adt/arrayfuncs.c:520 utils/adt/arrayfuncs.c:535 -#: utils/adt/arrayfuncs.c:556 utils/adt/arrayfuncs.c:586 -#: utils/adt/arrayfuncs.c:593 utils/adt/arrayfuncs.c:601 -#: utils/adt/arrayfuncs.c:635 utils/adt/arrayfuncs.c:658 -#: utils/adt/arrayfuncs.c:678 utils/adt/arrayfuncs.c:790 -#: utils/adt/arrayfuncs.c:799 utils/adt/arrayfuncs.c:829 -#: utils/adt/arrayfuncs.c:844 utils/adt/arrayfuncs.c:897 +#: utils/adt/arrayfuncs.c:272 utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:334 utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:510 +#: utils/adt/arrayfuncs.c:521 utils/adt/arrayfuncs.c:536 +#: utils/adt/arrayfuncs.c:557 utils/adt/arrayfuncs.c:587 +#: utils/adt/arrayfuncs.c:594 utils/adt/arrayfuncs.c:602 +#: utils/adt/arrayfuncs.c:636 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:679 utils/adt/arrayfuncs.c:791 +#: utils/adt/arrayfuncs.c:800 utils/adt/arrayfuncs.c:830 +#: utils/adt/arrayfuncs.c:845 utils/adt/arrayfuncs.c:898 #, c-format msgid "malformed array literal: \"%s\"" msgstr "неправильний літерал маÑиву: \"%s\"" -#: utils/adt/arrayfuncs.c:272 +#: utils/adt/arrayfuncs.c:273 #, c-format msgid "\"[\" must introduce explicitly-specified array dimensions." msgstr "\"[\" повинно предÑтавлÑти Ñвно вказані виміри маÑиву." -#: utils/adt/arrayfuncs.c:286 +#: utils/adt/arrayfuncs.c:287 #, c-format msgid "Missing array dimension value." msgstr "Пропущено Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð¼Ñ–Ñ€Ñƒ маÑиву." -#: utils/adt/arrayfuncs.c:297 utils/adt/arrayfuncs.c:334 +#: utils/adt/arrayfuncs.c:298 utils/adt/arrayfuncs.c:335 #, c-format msgid "Missing \"%s\" after array dimensions." msgstr "Пропущено \"%s\" піÑÐ»Ñ Ð²Ð¸Ð¼Ñ–Ñ€Ñ–Ð² маÑиву." -#: utils/adt/arrayfuncs.c:306 utils/adt/arrayfuncs.c:2909 -#: utils/adt/arrayfuncs.c:2941 utils/adt/arrayfuncs.c:2956 +#: utils/adt/arrayfuncs.c:307 utils/adt/arrayfuncs.c:2945 +#: utils/adt/arrayfuncs.c:2990 utils/adt/arrayfuncs.c:3005 #, c-format msgid "upper bound cannot be less than lower bound" msgstr "Ð²ÐµÑ€Ñ…Ð½Ñ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ñ Ð½Ðµ може бути меньше нижньої границі" -#: utils/adt/arrayfuncs.c:319 +#: utils/adt/arrayfuncs.c:320 #, c-format msgid "Array value must start with \"{\" or dimension information." msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð°Ñиву повинно починатиÑÑŒ з \"{\" або з інформації про вимір." -#: utils/adt/arrayfuncs.c:348 +#: utils/adt/arrayfuncs.c:349 #, c-format msgid "Array contents must start with \"{\"." msgstr "ВміÑÑ‚ маÑиву повинен починатиÑÑŒ з \"{\"." -#: utils/adt/arrayfuncs.c:354 utils/adt/arrayfuncs.c:361 +#: utils/adt/arrayfuncs.c:355 utils/adt/arrayfuncs.c:362 #, c-format msgid "Specified array dimensions do not match array contents." msgstr "Вказані виміри маÑиву не відповідають його вміÑту." -#: utils/adt/arrayfuncs.c:494 utils/adt/arrayfuncs.c:521 +#: utils/adt/arrayfuncs.c:495 utils/adt/arrayfuncs.c:522 #: utils/adt/multirangetypes.c:164 utils/adt/rangetypes.c:2310 #: utils/adt/rangetypes.c:2318 utils/adt/rowtypes.c:211 #: utils/adt/rowtypes.c:219 @@ -22510,74 +22493,74 @@ msgstr "Вказані виміри маÑиву не відповідають Ð msgid "Unexpected end of input." msgstr "Ðеочікуваний кінец введеннÑ." -#: utils/adt/arrayfuncs.c:510 utils/adt/arrayfuncs.c:557 -#: utils/adt/arrayfuncs.c:587 utils/adt/arrayfuncs.c:636 +#: utils/adt/arrayfuncs.c:511 utils/adt/arrayfuncs.c:558 +#: utils/adt/arrayfuncs.c:588 utils/adt/arrayfuncs.c:637 #, c-format msgid "Unexpected \"%c\" character." msgstr "Ðеочікуваний Ñимвол \"%c\"." -#: utils/adt/arrayfuncs.c:536 utils/adt/arrayfuncs.c:659 +#: utils/adt/arrayfuncs.c:537 utils/adt/arrayfuncs.c:660 #, c-format msgid "Unexpected array element." msgstr "Ðеочікуваний елемент маÑиву." -#: utils/adt/arrayfuncs.c:594 +#: utils/adt/arrayfuncs.c:595 #, c-format msgid "Unmatched \"%c\" character." msgstr "Ðевідповідний Ñимвол \"%c\"." -#: utils/adt/arrayfuncs.c:602 utils/adt/jsonfuncs.c:2490 +#: utils/adt/arrayfuncs.c:603 utils/adt/jsonfuncs.c:2490 #, c-format msgid "Multidimensional arrays must have sub-arrays with matching dimensions." msgstr "Багатовимірні маÑиви повинні мати вкладені маÑиви з відповідними вимірами." -#: utils/adt/arrayfuncs.c:679 utils/adt/multirangetypes.c:287 +#: utils/adt/arrayfuncs.c:680 utils/adt/multirangetypes.c:287 #, c-format msgid "Junk after closing right brace." msgstr "Ð¡Ð¼Ñ–Ñ‚Ñ‚Ñ Ð¿Ñ–ÑÐ»Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ— дужки." -#: utils/adt/arrayfuncs.c:1301 utils/adt/arrayfuncs.c:3369 -#: utils/adt/arrayfuncs.c:5883 +#: utils/adt/arrayfuncs.c:1302 utils/adt/arrayfuncs.c:3418 +#: utils/adt/arrayfuncs.c:5932 #, c-format msgid "invalid number of dimensions: %d" msgstr "неприпуÑтима кількіÑÑ‚ÑŒ вимірів: %d" -#: utils/adt/arrayfuncs.c:1312 +#: utils/adt/arrayfuncs.c:1313 #, c-format msgid "invalid array flags" msgstr "неприпуÑтимі позначки маÑиву" -#: utils/adt/arrayfuncs.c:1334 +#: utils/adt/arrayfuncs.c:1335 #, c-format msgid "binary data has array element type %u (%s) instead of expected %u (%s)" msgstr "двійкові дані мають тип елементу маÑиву %u (%s) заміÑÑ‚ÑŒ очікуваного %u (%s)" -#: utils/adt/arrayfuncs.c:1378 utils/adt/multirangetypes.c:445 +#: utils/adt/arrayfuncs.c:1379 utils/adt/multirangetypes.c:445 #: utils/adt/rangetypes.c:333 utils/cache/lsyscache.c:2915 #, c-format msgid "no binary input function available for type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s немає функції Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð²Ñ–Ð¹ÐºÐ¾Ð²Ð¸Ñ… даних" -#: utils/adt/arrayfuncs.c:1518 +#: utils/adt/arrayfuncs.c:1519 #, c-format msgid "improper binary format in array element %d" msgstr "неправильний двійковий формат в елементі маÑиву %d" -#: utils/adt/arrayfuncs.c:1599 utils/adt/multirangetypes.c:450 +#: utils/adt/arrayfuncs.c:1600 utils/adt/multirangetypes.c:450 #: utils/adt/rangetypes.c:338 utils/cache/lsyscache.c:2948 #, c-format msgid "no binary output function available for type %s" msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s немає функції виводу двійкових даних" -#: utils/adt/arrayfuncs.c:2078 +#: utils/adt/arrayfuncs.c:2079 #, c-format msgid "slices of fixed-length arrays not implemented" msgstr "Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð¼Ð°Ñивів поÑтійної довжини не реалізовано" -#: utils/adt/arrayfuncs.c:2256 utils/adt/arrayfuncs.c:2278 -#: utils/adt/arrayfuncs.c:2327 utils/adt/arrayfuncs.c:2565 -#: utils/adt/arrayfuncs.c:2887 utils/adt/arrayfuncs.c:5869 -#: utils/adt/arrayfuncs.c:5895 utils/adt/arrayfuncs.c:5906 +#: utils/adt/arrayfuncs.c:2257 utils/adt/arrayfuncs.c:2279 +#: utils/adt/arrayfuncs.c:2328 utils/adt/arrayfuncs.c:2582 +#: utils/adt/arrayfuncs.c:2920 utils/adt/arrayfuncs.c:5918 +#: utils/adt/arrayfuncs.c:5944 utils/adt/arrayfuncs.c:5955 #: utils/adt/json.c:1141 utils/adt/json.c:1215 utils/adt/jsonb.c:1315 #: utils/adt/jsonb.c:1401 utils/adt/jsonfuncs.c:4326 utils/adt/jsonfuncs.c:4480 #: utils/adt/jsonfuncs.c:4592 utils/adt/jsonfuncs.c:4641 @@ -22585,116 +22568,116 @@ msgstr "Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð¼Ð°Ñивів поÑтійної довжини н msgid "wrong number of array subscripts" msgstr "невірне чиÑло верхніх індекÑів маÑива" -#: utils/adt/arrayfuncs.c:2261 utils/adt/arrayfuncs.c:2369 -#: utils/adt/arrayfuncs.c:2632 utils/adt/arrayfuncs.c:2946 +#: utils/adt/arrayfuncs.c:2262 utils/adt/arrayfuncs.c:2386 +#: utils/adt/arrayfuncs.c:2665 utils/adt/arrayfuncs.c:2995 #, c-format msgid "array subscript out of range" msgstr "верхній Ñ–Ð½Ð´ÐµÐºÑ Ð¼Ð°Ñиву поза діапазоном" -#: utils/adt/arrayfuncs.c:2266 +#: utils/adt/arrayfuncs.c:2267 #, c-format msgid "cannot assign null value to an element of a fixed-length array" msgstr "не можна призначати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ null Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñƒ маÑива поÑтійної довжини" -#: utils/adt/arrayfuncs.c:2834 +#: utils/adt/arrayfuncs.c:2867 #, c-format msgid "updates on slices of fixed-length arrays not implemented" msgstr "Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð² зрізах маÑивів поÑтійної довжини не реалізовані" -#: utils/adt/arrayfuncs.c:2865 +#: utils/adt/arrayfuncs.c:2898 #, c-format msgid "array slice subscript must provide both boundaries" msgstr "у вказівці зрізу маÑива повинні бути задані обидві межі" -#: utils/adt/arrayfuncs.c:2866 +#: utils/adt/arrayfuncs.c:2899 #, c-format msgid "When assigning to a slice of an empty array value, slice boundaries must be fully specified." msgstr "Під Ñ‡Ð°Ñ Ð¿Ñ€Ð¸ÑÐ²Ð¾Ñ”Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ зрізу в пуÑтому маÑиві, межі зрізу повинні вказуватиÑÑ Ð¿Ð¾Ð²Ð½Ñ–ÑÑ‚ÑŽ." -#: utils/adt/arrayfuncs.c:2877 utils/adt/arrayfuncs.c:2973 +#: utils/adt/arrayfuncs.c:2910 utils/adt/arrayfuncs.c:3022 #, c-format msgid "source array too small" msgstr "вихідний маÑив занадто малий" -#: utils/adt/arrayfuncs.c:3527 +#: utils/adt/arrayfuncs.c:3576 #, c-format msgid "null array element not allowed in this context" msgstr "елемент маÑиву null не дозволений в цьому контекÑÑ‚Ñ–" -#: utils/adt/arrayfuncs.c:3629 utils/adt/arrayfuncs.c:3800 -#: utils/adt/arrayfuncs.c:4191 +#: utils/adt/arrayfuncs.c:3678 utils/adt/arrayfuncs.c:3849 +#: utils/adt/arrayfuncs.c:4240 #, c-format msgid "cannot compare arrays of different element types" msgstr "не можна порівнювати маÑиви з елементами різних типів" -#: utils/adt/arrayfuncs.c:3978 utils/adt/multirangetypes.c:2799 +#: utils/adt/arrayfuncs.c:4027 utils/adt/multirangetypes.c:2799 #: utils/adt/multirangetypes.c:2871 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" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ геш-функцію Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s" -#: utils/adt/arrayfuncs.c:4106 utils/adt/rowtypes.c:1979 +#: utils/adt/arrayfuncs.c:4155 utils/adt/rowtypes.c:1979 #, c-format msgid "could not identify an extended hash function for type %s" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ розширену геш-функцію Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s" -#: utils/adt/arrayfuncs.c:5283 +#: utils/adt/arrayfuncs.c:5332 #, c-format msgid "data type %s is not an array type" msgstr "тип даних %s не Ñ” типом маÑиву" -#: utils/adt/arrayfuncs.c:5338 +#: utils/adt/arrayfuncs.c:5387 #, c-format msgid "cannot accumulate null arrays" msgstr "накопичувати null-маÑиви не можна" -#: utils/adt/arrayfuncs.c:5366 +#: utils/adt/arrayfuncs.c:5415 #, c-format msgid "cannot accumulate empty arrays" msgstr "накопичувати пуÑÑ‚Ñ– маÑиви не можна" -#: utils/adt/arrayfuncs.c:5393 utils/adt/arrayfuncs.c:5399 +#: utils/adt/arrayfuncs.c:5442 utils/adt/arrayfuncs.c:5448 #, c-format msgid "cannot accumulate arrays of different dimensionality" msgstr "накопичувати маÑиви різної розмірноÑÑ‚Ñ– не можна" -#: utils/adt/arrayfuncs.c:5767 utils/adt/arrayfuncs.c:5807 +#: utils/adt/arrayfuncs.c:5816 utils/adt/arrayfuncs.c:5856 #, c-format msgid "dimension array or low bound array cannot be null" msgstr "маÑив розмірноÑÑ‚Ñ– або маÑив нижніх границь не може бути null" -#: utils/adt/arrayfuncs.c:5870 utils/adt/arrayfuncs.c:5896 +#: utils/adt/arrayfuncs.c:5919 utils/adt/arrayfuncs.c:5945 #, c-format msgid "Dimension array must be one dimensional." msgstr "МаÑив розмірноÑÑ‚Ñ– повинен бути одновимірним." -#: utils/adt/arrayfuncs.c:5875 utils/adt/arrayfuncs.c:5901 +#: utils/adt/arrayfuncs.c:5924 utils/adt/arrayfuncs.c:5950 #, c-format msgid "dimension values cannot be null" msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ð½Ð¾Ñтей не можуть бути null" -#: utils/adt/arrayfuncs.c:5907 +#: utils/adt/arrayfuncs.c:5956 #, c-format msgid "Low bound array has different size than dimensions array." msgstr "МаÑив нижніх границь відрізнÑєтьÑÑ Ð·Ð° розміром від маÑиву розмірноÑтей." -#: utils/adt/arrayfuncs.c:6185 +#: utils/adt/arrayfuncs.c:6234 #, c-format msgid "removing elements from multidimensional arrays is not supported" msgstr "Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² з багатовимірних маÑивів не підтримуєтьÑÑ" -#: utils/adt/arrayfuncs.c:6462 +#: utils/adt/arrayfuncs.c:6511 #, c-format msgid "thresholds must be one-dimensional array" msgstr "граничне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð¾ вказуватиÑÑŒ одновимірним маÑивом" -#: utils/adt/arrayfuncs.c:6467 +#: utils/adt/arrayfuncs.c:6516 #, c-format msgid "thresholds array must not contain NULLs" msgstr "маÑив границь не повинен міÑтити NULL" -#: utils/adt/arrayfuncs.c:6700 +#: utils/adt/arrayfuncs.c:6749 #, c-format msgid "number of elements to trim must be between 0 and %d" msgstr "кількіÑÑ‚ÑŒ елементів Ð´Ð»Ñ Ð¾Ð±Ñ€Ñ–Ð·ÐºÐ¸ має бути між 0 Ñ– %d" @@ -22709,22 +22692,22 @@ msgstr "Ñ–Ð½Ð´ÐµÐºÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñƒ маÑиву має бути цілим ч msgid "array subscript in assignment must not be null" msgstr "підрÑдковий Ñимвол маÑиву у призначенні не може бути NULL" -#: utils/adt/arrayutils.c:140 +#: utils/adt/arrayutils.c:134 #, c-format msgid "array lower bound is too large: %d" msgstr "Ð½Ð¸Ð¶Ð½Ñ Ð³Ñ€Ð°Ð½Ð¸Ñ†Ñ Ð¼Ð°Ñиву занадто велика: %d" -#: utils/adt/arrayutils.c:240 +#: utils/adt/arrayutils.c:234 #, c-format msgid "typmod array must be type cstring[]" msgstr "маÑив typmod повинен мати тип cstring[]" -#: utils/adt/arrayutils.c:245 +#: utils/adt/arrayutils.c:239 #, c-format msgid "typmod array must be one-dimensional" msgstr "маÑив typmod повинен бути одновимірним" -#: utils/adt/arrayutils.c:250 +#: utils/adt/arrayutils.c:244 #, c-format msgid "typmod array must not contain nulls" msgstr "маÑив typmod не повинен міÑтити елементи nulls" @@ -22774,7 +22757,7 @@ msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \"%s\" поза діапазоном Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s #: utils/adt/int8.c:1165 utils/adt/numeric.c:3093 utils/adt/numeric.c:3116 #: utils/adt/numeric.c:3201 utils/adt/numeric.c:3219 utils/adt/numeric.c:3315 #: utils/adt/numeric.c:8481 utils/adt/numeric.c:8771 utils/adt/numeric.c:9096 -#: utils/adt/numeric.c:10553 utils/adt/timestamp.c:3337 +#: utils/adt/numeric.c:10553 utils/adt/timestamp.c:3342 #, c-format msgid "division by zero" msgstr "Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð½Ð° нуль" @@ -22840,20 +22823,20 @@ msgid "date out of range for timestamp" msgstr "Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐºÐ¸ чаÑу дата поза діапазоном" #: utils/adt/date.c:1115 utils/adt/date.c:1198 utils/adt/date.c:1214 -#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4032 -#: utils/adt/timestamp.c:4225 utils/adt/timestamp.c:4397 -#: utils/adt/timestamp.c:4650 utils/adt/timestamp.c:4851 -#: utils/adt/timestamp.c:4898 utils/adt/timestamp.c:5122 -#: utils/adt/timestamp.c:5169 utils/adt/timestamp.c:5299 +#: utils/adt/date.c:2195 utils/adt/date.c:2973 utils/adt/timestamp.c:4059 +#: utils/adt/timestamp.c:4252 utils/adt/timestamp.c:4424 +#: utils/adt/timestamp.c:4677 utils/adt/timestamp.c:4878 +#: utils/adt/timestamp.c:4925 utils/adt/timestamp.c:5149 +#: utils/adt/timestamp.c:5196 utils/adt/timestamp.c:5326 #, c-format msgid "unit \"%s\" not supported for type %s" msgstr "Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ \"%s\" не підтримуєтьÑÑ Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s" #: utils/adt/date.c:1223 utils/adt/date.c:2211 utils/adt/date.c:2993 -#: utils/adt/timestamp.c:4046 utils/adt/timestamp.c:4242 -#: utils/adt/timestamp.c:4411 utils/adt/timestamp.c:4610 -#: utils/adt/timestamp.c:4907 utils/adt/timestamp.c:5178 -#: utils/adt/timestamp.c:5360 +#: utils/adt/timestamp.c:4073 utils/adt/timestamp.c:4269 +#: utils/adt/timestamp.c:4438 utils/adt/timestamp.c:4637 +#: utils/adt/timestamp.c:4934 utils/adt/timestamp.c:5205 +#: utils/adt/timestamp.c:5387 #, c-format msgid "unit \"%s\" not recognized for type %s" msgstr "нерозпізнана Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ \"%s\" Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s" @@ -22871,16 +22854,16 @@ msgstr "нерозпізнана Ð¾Ð´Ð¸Ð½Ð¸Ñ†Ñ \"%s\" Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s" #: utils/adt/timestamp.c:2967 utils/adt/timestamp.c:3022 #: utils/adt/timestamp.c:3045 utils/adt/timestamp.c:3058 #: utils/adt/timestamp.c:3069 utils/adt/timestamp.c:3077 -#: utils/adt/timestamp.c:3736 utils/adt/timestamp.c:3860 -#: utils/adt/timestamp.c:3950 utils/adt/timestamp.c:4040 -#: utils/adt/timestamp.c:4133 utils/adt/timestamp.c:4236 -#: utils/adt/timestamp.c:4715 utils/adt/timestamp.c:4989 -#: utils/adt/timestamp.c:5439 utils/adt/timestamp.c:5453 -#: utils/adt/timestamp.c:5458 utils/adt/timestamp.c:5472 -#: utils/adt/timestamp.c:5505 utils/adt/timestamp.c:5592 -#: utils/adt/timestamp.c:5633 utils/adt/timestamp.c:5637 -#: utils/adt/timestamp.c:5706 utils/adt/timestamp.c:5710 -#: utils/adt/timestamp.c:5724 utils/adt/timestamp.c:5758 utils/adt/xml.c:2231 +#: utils/adt/timestamp.c:3763 utils/adt/timestamp.c:3887 +#: utils/adt/timestamp.c:3977 utils/adt/timestamp.c:4067 +#: utils/adt/timestamp.c:4160 utils/adt/timestamp.c:4263 +#: utils/adt/timestamp.c:4742 utils/adt/timestamp.c:5016 +#: utils/adt/timestamp.c:5466 utils/adt/timestamp.c:5480 +#: utils/adt/timestamp.c:5485 utils/adt/timestamp.c:5499 +#: utils/adt/timestamp.c:5532 utils/adt/timestamp.c:5619 +#: utils/adt/timestamp.c:5660 utils/adt/timestamp.c:5664 +#: utils/adt/timestamp.c:5733 utils/adt/timestamp.c:5737 +#: utils/adt/timestamp.c:5751 utils/adt/timestamp.c:5785 utils/adt/xml.c:2231 #: utils/adt/xml.c:2238 utils/adt/xml.c:2258 utils/adt/xml.c:2265 #, c-format msgid "timestamp out of range" @@ -22899,8 +22882,8 @@ 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:2497 -#: utils/adt/timestamp.c:3386 utils/adt/timestamp.c:3417 -#: utils/adt/timestamp.c:3448 +#: utils/adt/timestamp.c:3413 utils/adt/timestamp.c:3444 +#: utils/adt/timestamp.c:3475 #, c-format msgid "invalid preceding or following size in window function" msgstr "неприпуÑтимий розмір preceding або following у віконній функції" @@ -22912,13 +22895,13 @@ msgstr "зÑув чаÑового поÑÑу поза діапазоном" #: utils/adt/date.c:3084 utils/adt/datetime.c:1121 utils/adt/datetime.c:2027 #: utils/adt/datetime.c:4898 utils/adt/timestamp.c:516 -#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4319 -#: utils/adt/timestamp.c:5464 utils/adt/timestamp.c:5716 +#: utils/adt/timestamp.c:543 utils/adt/timestamp.c:4346 +#: utils/adt/timestamp.c:5491 utils/adt/timestamp.c:5743 #, c-format msgid "time zone \"%s\" not recognized" msgstr "чаÑовий поÑÑ \"%s\" не розпізнаний" -#: utils/adt/date.c:3116 utils/adt/timestamp.c:5494 utils/adt/timestamp.c:5747 +#: utils/adt/date.c:3117 utils/adt/timestamp.c:5521 utils/adt/timestamp.c:5774 #, c-format msgid "interval time zone \"%s\" must not include months or days" msgstr "інтервал \"%s\", Ñкий задає чаÑовий поÑÑ, не повинен включати міÑÑці або дні" @@ -22948,7 +22931,7 @@ msgstr "Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‡Ð°Ñового поÑÑу, поза діапазонРmsgid "This time zone name appears in the configuration file for time zone abbreviation \"%s\"." msgstr "Це ім'Ñ Ñ‡Ð°Ñового поÑÑу з'ÑвлÑєтьÑÑ Ñƒ файлі конфігурації чаÑового поÑÑу з кодом \"%s\"." -#: utils/adt/datum.c:90 utils/adt/datum.c:102 +#: utils/adt/datum.c:91 utils/adt/datum.c:103 #, c-format msgid "invalid Datum pointer" msgstr "неприпуÑтимий вказівник Datum" @@ -23493,7 +23476,7 @@ msgid "invalid int2vector data" msgstr "неприпуÑтимі дані int2vector" #: utils/adt/int.c:1528 utils/adt/int8.c:1404 utils/adt/numeric.c:1678 -#: utils/adt/timestamp.c:5809 utils/adt/timestamp.c:5889 +#: utils/adt/timestamp.c:5836 utils/adt/timestamp.c:5916 #, c-format msgid "step size cannot equal zero" msgstr "розмір кроку не може дорівнювати нулю" @@ -24517,22 +24500,22 @@ msgstr "віднімати NaN з pg_lsn не можна" msgid "function can only be called when server is in binary upgrade mode" msgstr "функцію можна викликати тільки коли Ñервер знаходитьÑÑ Ð² режимі двійкового оновленнÑ" -#: utils/adt/pgstatfuncs.c:482 +#: utils/adt/pgstatfuncs.c:483 #, c-format msgid "invalid command name: \"%s\"" msgstr "неприпуÑтиме Ñ–Ð¼â€™Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸: \"%s\"" -#: utils/adt/pgstatfuncs.c:2114 +#: utils/adt/pgstatfuncs.c:2115 #, c-format msgid "unrecognized reset target: \"%s\"" msgstr "нерозпізнане Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¼ÐµÑ‚Ð¸: \"%s\"" -#: utils/adt/pgstatfuncs.c:2115 +#: utils/adt/pgstatfuncs.c:2116 #, c-format msgid "Target must be \"archiver\", \"bgwriter\", \"recovery_prefetch\", or \"wal\"." msgstr "Ціль має бути \"archiver\", \"bgwriter\", \"recovery_prefetch\", або \"wal\"." -#: utils/adt/pgstatfuncs.c:2193 +#: utils/adt/pgstatfuncs.c:2198 #, c-format msgid "invalid subscription OID %u" msgstr "некоректний OID підпиÑки %u" @@ -24635,7 +24618,7 @@ 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:11860 utils/misc/guc.c:11894 +#: utils/adt/regexp.c:1857 utils/misc/guc.c:11868 utils/misc/guc.c:11902 #, c-format msgid "invalid value for parameter \"%s\": %d" msgstr "неприпуÑтиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"%s\": %d" @@ -24684,7 +24667,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:10021 utils/adt/ruleutils.c:10190 +#: utils/adt/ruleutils.c:10028 utils/adt/ruleutils.c:10197 #, c-format msgid "too many arguments" msgstr "занадто багато аргументів" @@ -24890,7 +24873,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:12884 +#: utils/adt/timestamp.c:179 utils/adt/timestamp.c:437 utils/misc/guc.c:12892 #, c-format msgid "timestamp out of range: \"%s\"" msgstr "позначка чаÑу поза діапазоном: \"%s\"" @@ -24926,6 +24909,20 @@ msgstr "позначка чаÑу не може бути NaN" msgid "timestamp out of range: \"%g\"" msgstr "позначка чаÑу поза діапазоном: \"%g\"" +#: utils/adt/timestamp.c:938 utils/adt/timestamp.c:1509 +#: utils/adt/timestamp.c:2761 utils/adt/timestamp.c:2778 +#: utils/adt/timestamp.c:2831 utils/adt/timestamp.c:2870 +#: utils/adt/timestamp.c:3115 utils/adt/timestamp.c:3120 +#: utils/adt/timestamp.c:3125 utils/adt/timestamp.c:3175 +#: utils/adt/timestamp.c:3182 utils/adt/timestamp.c:3189 +#: utils/adt/timestamp.c:3209 utils/adt/timestamp.c:3216 +#: utils/adt/timestamp.c:3223 utils/adt/timestamp.c:3310 +#: utils/adt/timestamp.c:3385 utils/adt/timestamp.c:3758 +#: utils/adt/timestamp.c:3882 utils/adt/timestamp.c:4432 +#, c-format +msgid "interval out of range" +msgstr "інтервал поза діапазоном" + #: utils/adt/timestamp.c:1062 utils/adt/timestamp.c:1095 #, c-format msgid "invalid INTERVAL type modifier" @@ -24951,22 +24948,22 @@ msgstr "interval(%d) точніÑÑ‚ÑŒ повинна бути між %d Ñ– %d" msgid "cannot subtract infinite timestamps" msgstr "віднімати безкінечні позначки чаÑу не можна" -#: utils/adt/timestamp.c:3891 utils/adt/timestamp.c:4074 +#: utils/adt/timestamp.c:3918 utils/adt/timestamp.c:4101 #, c-format msgid "origin out of range" msgstr "джерело поза діапазоном" -#: utils/adt/timestamp.c:3896 utils/adt/timestamp.c:4079 +#: utils/adt/timestamp.c:3923 utils/adt/timestamp.c:4106 #, c-format msgid "timestamps cannot be binned into intervals containing months or years" msgstr "позначки чаÑу не можна розділÑти на інтервали, що міÑÑ‚ÑÑ‚ÑŒ міÑÑці або роки" -#: utils/adt/timestamp.c:3903 utils/adt/timestamp.c:4086 +#: utils/adt/timestamp.c:3930 utils/adt/timestamp.c:4113 #, c-format msgid "stride must be greater than zero" msgstr "крок повинен бути більше нулÑ" -#: utils/adt/timestamp.c:4399 +#: utils/adt/timestamp.c:4426 #, c-format msgid "Months usually have fractional weeks." msgstr "У міÑÑців зазвичай Ñ” дробові тижні." @@ -25473,47 +25470,52 @@ msgstr "XML не підтримує безкінченні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² Ð msgid "invalid query" msgstr "неприпуÑтимий запит" -#: utils/adt/xml.c:4015 +#: utils/adt/xml.c:2767 +#, c-format +msgid "portal \"%s\" does not return tuples" +msgstr "portal \"%s\" не повертає кортежі" + +#: utils/adt/xml.c:4019 #, c-format msgid "invalid array for XML namespace mapping" msgstr "неприпуÑтимий маÑив з зіÑтавленнÑм проÑтіру імен XML" -#: utils/adt/xml.c:4016 +#: utils/adt/xml.c:4020 #, c-format msgid "The array must be two-dimensional with length of the second axis equal to 2." msgstr "МаÑив повинен бути двовимірним Ñ– міÑтити 2 елемента по другій віÑÑ–." -#: utils/adt/xml.c:4040 +#: utils/adt/xml.c:4044 #, c-format msgid "empty XPath expression" msgstr "пуÑтий вираз XPath" -#: utils/adt/xml.c:4092 +#: utils/adt/xml.c:4096 #, c-format msgid "neither namespace name nor URI may be null" msgstr "ні ім'Ñ Ð¿Ñ€Ð¾Ñтіру імен ні URI не можуть бути null" -#: utils/adt/xml.c:4099 +#: utils/adt/xml.c:4103 #, c-format msgid "could not register XML namespace with name \"%s\" and URI \"%s\"" msgstr "не вдалоÑÑ Ð·Ð°Ñ€ÐµÑ”Ñтрувати проÑÑ‚Ñ–Ñ€ імен XML з ім'Ñм \"%s\" Ñ– URI \"%s\"" -#: utils/adt/xml.c:4450 +#: utils/adt/xml.c:4454 #, c-format msgid "DEFAULT namespace is not supported" msgstr "ПроÑÑ‚Ñ–Ñ€ імен DEFAULT не підтримуєтьÑÑ" -#: utils/adt/xml.c:4479 +#: utils/adt/xml.c:4483 #, c-format msgid "row path filter must not be empty string" msgstr "шлÑÑ… фільтруючих Ñ€Ñдків не повинен бути пуÑтим" -#: utils/adt/xml.c:4510 +#: utils/adt/xml.c:4514 #, c-format msgid "column path filter must not be empty string" msgstr "шлÑÑ… фільтруючого ÑÑ‚Ð¾Ð²Ð¿Ñ†Ñ Ð½Ðµ повинен бути пуÑтим" -#: utils/adt/xml.c:4654 +#: utils/adt/xml.c:4658 #, c-format msgid "more than one value returned by column XPath expression" msgstr "вираз XPath, Ñкий відбирає Ñтовпець, повернув більше одного значеннÑ" @@ -25544,7 +25546,7 @@ msgstr "Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s немає доÑтупної функції виво msgid "operator class \"%s\" of access method %s is missing support function %d for type %s" msgstr "в клаÑÑ– операторів \"%s\" методу доÑтупу %s пропущено опорну функцію %d Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ %s" -#: utils/cache/plancache.c:722 +#: utils/cache/plancache.c:724 #, c-format msgid "cached plan must not change result type" msgstr "в кешованому плані не повинен змінюватиÑÑŒ тип результату" @@ -25902,123 +25904,123 @@ msgstr "Ð´Ð»Ñ Ñ€Ð¾Ð»Ñ– \"%s\" вхід не дозволений" msgid "too many connections for role \"%s\"" msgstr "занадто багато підключень Ð´Ð»Ñ Ñ€Ð¾Ð»Ñ– \"%s\"" -#: utils/init/miscinit.c:841 +#: utils/init/miscinit.c:849 #, c-format msgid "permission denied to set session authorization" msgstr "немає прав Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ— в ÑеанÑÑ–" -#: utils/init/miscinit.c:924 +#: utils/init/miscinit.c:932 #, c-format msgid "invalid role OID: %u" msgstr "неприпуÑтимий OID ролі: %u" -#: utils/init/miscinit.c:978 +#: utils/init/miscinit.c:986 #, c-format msgid "database system is shut down" msgstr "ÑиÑтема бази даних вимкнена" -#: utils/init/miscinit.c:1065 +#: utils/init/miscinit.c:1073 #, c-format msgid "could not create lock file \"%s\": %m" msgstr "не вдалоÑÑ Ñтворити файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\": %m" -#: utils/init/miscinit.c:1079 +#: utils/init/miscinit.c:1087 #, c-format msgid "could not open lock file \"%s\": %m" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\": %m" -#: utils/init/miscinit.c:1086 +#: utils/init/miscinit.c:1094 #, c-format msgid "could not read lock file \"%s\": %m" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\": %m" -#: utils/init/miscinit.c:1095 +#: utils/init/miscinit.c:1103 #, c-format msgid "lock file \"%s\" is empty" msgstr "файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" пуÑтий" -#: utils/init/miscinit.c:1096 +#: utils/init/miscinit.c:1104 #, c-format msgid "Either another server is starting, or the lock file is the remnant of a previous server startup crash." msgstr "Ðбо зараз запуÑкаєтьÑÑ Ñ–Ð½ÑˆÐ¸Ð¹ Ñервер, або цей файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ¸Ð²ÑÑ Ð² результаті збою під Ñ‡Ð°Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ запуÑку." -#: utils/init/miscinit.c:1140 +#: utils/init/miscinit.c:1148 #, c-format msgid "lock file \"%s\" already exists" msgstr "файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" вже Ñ–Ñнує" -#: utils/init/miscinit.c:1144 +#: utils/init/miscinit.c:1152 #, c-format msgid "Is another postgres (PID %d) running in data directory \"%s\"?" msgstr "Інший postgres (PID %d) працює з каталогом даних \"%s\"?" -#: utils/init/miscinit.c:1146 +#: utils/init/miscinit.c:1154 #, c-format msgid "Is another postmaster (PID %d) running in data directory \"%s\"?" msgstr "Інший postmaster (PID %d) працює з каталогом даних \"%s\"?" -#: utils/init/miscinit.c:1149 +#: utils/init/miscinit.c:1157 #, c-format msgid "Is another postgres (PID %d) using socket file \"%s\"?" msgstr "Інший postgres (PID %d) викориÑтовує файл Ñокету \"%s\"?" -#: utils/init/miscinit.c:1151 +#: utils/init/miscinit.c:1159 #, c-format msgid "Is another postmaster (PID %d) using socket file \"%s\"?" msgstr "Інший postmaster (PID %d) викориÑтовує файл Ñокету \"%s\"?" -#: utils/init/miscinit.c:1202 +#: utils/init/miscinit.c:1210 #, c-format msgid "could not remove old lock file \"%s\": %m" msgstr "не вдалоÑÑ Ð²Ð¸Ð´Ð°Ð»Ð¸Ñ‚Ð¸ Ñтарий файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\": %m" -#: utils/init/miscinit.c:1204 +#: utils/init/miscinit.c:1212 #, c-format msgid "The file seems accidentally left over, but it could not be removed. Please remove the file by hand and try again." msgstr "ЗдаєтьÑÑ, файл залишивÑÑ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¾, але видалити його не вийшло. Будь-лаÑка, видаліть файл вручну або Ñпробуйте знову." -#: utils/init/miscinit.c:1241 utils/init/miscinit.c:1255 -#: utils/init/miscinit.c:1266 +#: utils/init/miscinit.c:1249 utils/init/miscinit.c:1263 +#: utils/init/miscinit.c:1274 #, c-format msgid "could not write lock file \"%s\": %m" msgstr "не вдалоÑÑ Ð·Ð°Ð¿Ð¸Ñати файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\": %m" -#: utils/init/miscinit.c:1377 utils/init/miscinit.c:1519 utils/misc/guc.c:10828 +#: utils/init/miscinit.c:1385 utils/init/miscinit.c:1527 utils/misc/guc.c:10836 #, c-format msgid "could not read from file \"%s\": %m" msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ з файлу \"%s\": %m" -#: utils/init/miscinit.c:1507 +#: utils/init/miscinit.c:1515 #, c-format msgid "could not open file \"%s\": %m; continuing anyway" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл \"%s\": %m; вÑе одно продовжуєтьÑÑ" -#: utils/init/miscinit.c:1532 +#: utils/init/miscinit.c:1540 #, c-format msgid "lock file \"%s\" contains wrong PID: %ld instead of %ld" msgstr "файл Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" міÑтить неправильний PID: %ld заміÑÑ‚ÑŒ %ld" -#: utils/init/miscinit.c:1571 utils/init/miscinit.c:1587 +#: utils/init/miscinit.c:1579 utils/init/miscinit.c:1595 #, c-format msgid "\"%s\" is not a valid data directory" msgstr "\"%s\" не Ñ” припуÑтимим каталогом даних" -#: utils/init/miscinit.c:1573 +#: utils/init/miscinit.c:1581 #, c-format msgid "File \"%s\" is missing." msgstr "Файл \"%s\" пропущено." -#: utils/init/miscinit.c:1589 +#: utils/init/miscinit.c:1597 #, c-format msgid "File \"%s\" does not contain valid data." msgstr "Файл \"%s\" не міÑтить припуÑтимих даних." -#: utils/init/miscinit.c:1591 +#: utils/init/miscinit.c:1599 #, c-format msgid "You might need to initdb." msgstr "Можливо, вам Ñлід виконати initdb." -#: utils/init/miscinit.c:1599 +#: utils/init/miscinit.c:1607 #, c-format msgid "The data directory was initialized by PostgreSQL version %s, which is not compatible with this version %s." msgstr "Каталог даних ініціалізований Ñервером PostgreSQL верÑÑ–Ñ— %s, не ÑуміÑною з цією верÑією %s." @@ -26158,22 +26160,22 @@ msgstr "Ñлоти підключень, Ñкі залишилиÑÑŒ, зарез msgid "must be superuser or replication role to start walsender" msgstr "Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку процеÑу walsender потребуєтьÑÑ Ñ€Ð¾Ð»ÑŒ реплікації або бути ÑуперкориÑтувачем" -#: utils/init/postinit.c:964 -#, c-format -msgid "database %u does not exist" -msgstr "база даних %u не Ñ–Ñнує" - -#: utils/init/postinit.c:1054 +#: utils/init/postinit.c:1012 #, c-format msgid "It seems to have just been dropped or renamed." msgstr "Схоже, вона щойно була видалена або перейменована." -#: utils/init/postinit.c:1061 +#: utils/init/postinit.c:1016 +#, c-format +msgid "database %u does not exist" +msgstr "база даних %u не Ñ–Ñнує" + +#: utils/init/postinit.c:1025 #, c-format msgid "cannot connect to invalid database \"%s\"" msgstr "неможливо під'єднатиÑÑ Ð´Ð¾ невірної бази даних \"%s\"" -#: utils/init/postinit.c:1081 +#: utils/init/postinit.c:1085 #, c-format msgid "The database subdirectory \"%s\" is missing." msgstr "Підкаталог бази даних \"%s\" пропущений." @@ -26200,11 +26202,6 @@ msgstr "неочікуваний ідентифікатор ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ % msgid "conversion between %s and %s is not supported" msgstr "Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ %s Ñ– %s не підтримуєтьÑÑ" -#: utils/mb/mbutils.c:385 -#, c-format -msgid "default conversion function for encoding \"%s\" to \"%s\" does not exist" -msgstr "функції за замовчуваннÑм Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ \"%s\" в \"%s\" не Ñ–Ñнує" - #: utils/mb/mbutils.c:402 utils/mb/mbutils.c:430 utils/mb/mbutils.c:815 #: utils/mb/mbutils.c:842 #, c-format @@ -26547,8 +26544,8 @@ msgid "Forces synchronization of updates to disk." msgstr "ПримуÑова ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ñ–Ð·Ð°Ñ†Ñ–Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½ÑŒ на диÑк." #: utils/misc/guc.c:1287 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." -msgstr "Сервер буде викориÑтовувати ÑиÑтемний виклик fsync() в декількох міÑцÑÑ…, щоб впевнитиÑÑŒ, що Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾ запиÑані на диÑк. Це дозволить привеÑти клаÑтер бази даних в узгоджений Ñтан піÑÐ»Ñ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ операційної ÑиÑтеми або апаратного забезпеченнÑ." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgstr "Сервер буде викориÑтовувати ÑиÑтемний виклик fsync() в декількох міÑцÑÑ…, щоб переконатиÑÑ, що Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾ запиÑані на диÑк. Це гарантує, що клаÑтер баз даних відновитьÑÑ Ð´Ð¾ узгодженого Ñтану піÑÐ»Ñ Ð°Ð²Ð°Ñ€Ñ–Ð¹Ð½Ð¾Ð³Ð¾ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ операційної ÑиÑтеми чи апаратного збою." #: utils/misc/guc.c:1298 msgid "Continues processing after a checksum failure." @@ -28276,7 +28273,7 @@ msgid "parameter \"%s\" cannot be changed now" msgstr "параметр \"%s\" не може бути змінений зараз" #: utils/misc/guc.c:7725 utils/misc/guc.c:7783 utils/misc/guc.c:8896 -#: utils/misc/guc.c:11796 +#: utils/misc/guc.c:11804 #, c-format msgid "permission denied to set parameter \"%s\"" msgstr "немає прав Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ \"%s\"" @@ -28291,7 +28288,7 @@ msgstr "параметр \"%s\" не можна вÑтановити піÑÐ»Ñ msgid "cannot set parameter \"%s\" within security-definer function" msgstr "параметр \"%s\" не можна вÑтановити в межах функції безпеки" -#: utils/misc/guc.c:8475 utils/misc/guc.c:8522 utils/misc/guc.c:10002 +#: utils/misc/guc.c:8475 utils/misc/guc.c:8522 utils/misc/guc.c:10009 #, c-format msgid "must be superuser or have privileges of pg_read_all_settings to examine \"%s\"" msgstr "щоб доÑлідити \"%s\", потрібно бути ÑуперкориÑтувачем або мати права ролі pg_read_all_settings" @@ -28341,92 +28338,92 @@ msgstr "неприпуÑтима назва параметра конфігурРmsgid "\"%s\" is now a reserved prefix." msgstr "\"%s\" тепер Ñ” зарезервованим префікÑом." -#: utils/misc/guc.c:11236 +#: utils/misc/guc.c:11244 #, c-format msgid "while setting parameter \"%s\" to \"%s\"" msgstr "під Ñ‡Ð°Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ \"%s\" на \"%s\"" -#: utils/misc/guc.c:11405 +#: utils/misc/guc.c:11413 #, c-format msgid "parameter \"%s\" could not be set" msgstr "параметр \"%s\" не вдалоÑÑ Ð²Ñтановити" -#: utils/misc/guc.c:11497 +#: utils/misc/guc.c:11505 #, c-format msgid "could not parse setting for parameter \"%s\"" msgstr "не вдалоÑÑ Ð°Ð½Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñƒ \"%s\"" -#: utils/misc/guc.c:11928 +#: utils/misc/guc.c:11936 #, c-format msgid "invalid value for parameter \"%s\": %g" msgstr "неприпуÑтиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \"%s\": %g" -#: utils/misc/guc.c:12241 +#: utils/misc/guc.c:12249 #, 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:12253 +#: utils/misc/guc.c:12261 #, c-format msgid "Bonjour is not supported by this build" msgstr "Bonjour не підтримуєтьÑÑ Ð´Ð°Ð½Ð¾ÑŽ збіркою" -#: utils/misc/guc.c:12266 +#: utils/misc/guc.c:12274 #, c-format msgid "SSL is not supported by this build" msgstr "SSL не підтримуєтьÑÑ Ð´Ð°Ð½Ð¾ÑŽ збіркою" -#: utils/misc/guc.c:12278 +#: utils/misc/guc.c:12286 #, c-format msgid "Cannot enable parameter when \"log_statement_stats\" is true." msgstr "Ðе можна ввімкнути параметр, коли \"log_statement_stats\" дорівнює true." -#: utils/misc/guc.c:12290 +#: utils/misc/guc.c:12298 #, 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:12520 +#: utils/misc/guc.c:12528 #, 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:12533 +#: utils/misc/guc.c:12541 #, 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:12547 +#: utils/misc/guc.c:12555 #, c-format msgid "huge_page_size must be 0 on this platform." msgstr "huge_page_size повинен бути 0 на цій платформі." -#: utils/misc/guc.c:12559 +#: utils/misc/guc.c:12567 #, 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:12671 +#: utils/misc/guc.c:12679 #, c-format msgid "invalid character" msgstr "неприпуÑтимий Ñимвол" -#: utils/misc/guc.c:12731 +#: utils/misc/guc.c:12739 #, c-format msgid "recovery_target_timeline is not a valid number." msgstr "recovery_target_timeline не Ñ” допуÑтимим чиÑлом." -#: utils/misc/guc.c:12771 +#: utils/misc/guc.c:12779 #, c-format msgid "multiple recovery targets specified" msgstr "вказано декілька цілей відновленнÑ" -#: utils/misc/guc.c:12772 +#: utils/misc/guc.c:12780 #, 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:12780 +#: utils/misc/guc.c:12788 #, c-format msgid "The only allowed value is \"immediate\"." msgstr "Єдиним дозволеним значеннÑм Ñ” \"immediate\"." @@ -28436,8 +28433,8 @@ msgstr "Єдиним дозволеним значеннÑм Ñ” \"immediate\"." msgid "internal error: unrecognized run-time parameter type\n" msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: нерозпізнаний тип параметра чаÑу виконаннÑ\n" -#: utils/misc/pg_controldata.c:60 utils/misc/pg_controldata.c:138 -#: utils/misc/pg_controldata.c:241 utils/misc/pg_controldata.c:306 +#: utils/misc/pg_controldata.c:63 utils/misc/pg_controldata.c:143 +#: utils/misc/pg_controldata.c:248 utils/misc/pg_controldata.c:315 #, c-format msgid "calculated CRC checksum does not match value stored in file" msgstr "обчиÑлена контрольна Ñума CRC не відповідає значенню, збереженому у файлі" diff --git a/src/backend/po/zh_CN.po b/src/backend/po/zh_CN.po index ea09bf2..5ff434a 100644 --- a/src/backend/po/zh_CN.po +++ b/src/backend/po/zh_CN.po @@ -24615,7 +24615,7 @@ msgid "Forces synchronization of updates to disk." msgstr "强制和ç£ç›˜åŒæ¥æ›´æ–°" #: utils/misc/guc.c:1127 -msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This insures that a database cluster will recover to a consistent state after an operating system or hardware crash." +msgid "The server will use the fsync() system call in several places to make sure that updates are physically written to disk. This ensures that a database cluster will recover to a consistent state after an operating system or hardware crash." msgstr "æœåŠ¡å™¨å°†åœ¨å¤šä¸ªä½ç½®ä½¿ç”¨ç³»ç»Ÿè°ƒç”¨fsync()æ¥ç¡®å®šæ›´æ–°æ“作已ç»å°†æ•°æ®å†™å…¥ç£ç›˜.这将确ä¿åœ¨æ“作系统或硬件崩溃åŽæ•°æ®åº“集群将æ¢å¤åˆ°ä¸€ä¸ªä¸€è‡´æ€§çŠ¶æ€. " #: utils/misc/guc.c:1138 diff --git a/src/backend/port/win32/socket.c b/src/backend/port/win32/socket.c index 52944a0..3358001 100644 --- a/src/backend/port/win32/socket.c +++ b/src/backend/port/win32/socket.c @@ -303,6 +303,7 @@ pgwin32_socket(int af, int type, int protocol) if (ioctlsocket(s, FIONBIO, &on)) { TranslateSocketError(); + closesocket(s); return INVALID_SOCKET; } errno = 0; diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c index 096a08e..a468420 100644 --- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c +++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c @@ -373,6 +373,10 @@ 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. + */ if (PQnfields(res) < 3 || PQntuples(res) != 1) { int ntuples = PQntuples(res); @@ -383,7 +387,7 @@ libpqrcv_identify_system(WalReceiverConn *conn, TimeLineID *primary_tli) (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("invalid response from primary server"), errdetail("Could not identify system: got %d rows and %d fields, expected %d rows and %d or more fields.", - ntuples, nfields, 3, 1))); + ntuples, nfields, 1, 3))); } primary_sysid = pstrdup(PQgetvalue(res, 0, 0)); *primary_tli = pg_strtoint32(PQgetvalue(res, 0, 1)); diff --git a/src/backend/replication/logical/snapbuild.c b/src/backend/replication/logical/snapbuild.c index 3eaaaac..3981994 100644 --- a/src/backend/replication/logical/snapbuild.c +++ b/src/backend/replication/logical/snapbuild.c @@ -2126,11 +2126,13 @@ SnapBuildXidSetCatalogChanges(SnapBuild *builder, TransactionId xid, int subxcnt TransactionId *subxacts, XLogRecPtr lsn) { /* - * Skip if there is no initial running xacts information or the - * transaction is already marked as containing catalog changes. + * Skip if there is no initial running xacts information. + * + * Even if the transaction has been marked as containing catalog + * changes, it cannot be skipped because its subtransactions that + * modified the catalog may not be marked. */ - if (NInitialRunningXacts == 0 || - ReorderBufferXidHasCatalogChanges(builder->reorder, xid)) + if (NInitialRunningXacts == 0) return; if (bsearch(&xid, InitialRunningXacts, NInitialRunningXacts, diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index b7b933d..c3dd902 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -518,15 +518,25 @@ process_syncing_tables_for_apply(XLogRecPtr current_lsn) /* Now safe to release the LWLock */ LWLockRelease(LogicalRepWorkerLock); + if (started_tx) + { + /* + * We must commit the existing transaction to release + * the existing locks before entering a busy loop. + * This is required to avoid any undetected deadlocks + * due to any existing lock as deadlock detector won't + * be able to detect the waits on the latch. + */ + CommitTransactionCommand(); + pgstat_report_stat(false); + } + /* * Enter busy loop and wait for synchronization worker to * reach expected state (or die trying). */ - if (!started_tx) - { - StartTransactionCommand(); - started_tx = true; - } + StartTransactionCommand(); + started_tx = true; wait_for_relation_state_change(rstate->relid, SUBREL_STATE_SYNCDONE); @@ -1043,22 +1053,30 @@ copy_table(Relation rel) /* Regular table with no row filter */ if (lrel.relkind == RELKIND_RELATION && qual == NIL) { - appendStringInfo(&cmd, "COPY %s (", + appendStringInfo(&cmd, "COPY %s", quote_qualified_identifier(lrel.nspname, lrel.relname)); - /* - * XXX Do we need to list the columns in all cases? Maybe we're - * replicating all columns? - */ - for (int i = 0; i < lrel.natts; i++) + /* If the table has columns, then specify the columns */ + if (lrel.natts) { - if (i > 0) - appendStringInfoString(&cmd, ", "); + appendStringInfoString(&cmd, " ("); - appendStringInfoString(&cmd, quote_identifier(lrel.attnames[i])); + /* + * XXX Do we need to list the columns in all cases? Maybe we're + * replicating all columns? + */ + for (int i = 0; i < lrel.natts; i++) + { + if (i > 0) + appendStringInfoString(&cmd, ", "); + + appendStringInfoString(&cmd, quote_identifier(lrel.attnames[i])); + } + + appendStringInfoString(&cmd, ")"); } - appendStringInfo(&cmd, ") TO STDOUT"); + appendStringInfo(&cmd, " TO STDOUT"); } else { diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c index 63a8442..5fc0def 100644 --- a/src/backend/replication/pgoutput/pgoutput.c +++ b/src/backend/replication/pgoutput/pgoutput.c @@ -1095,8 +1095,8 @@ init_tuple_slot(PGOutputData *data, Relation relation, * Create tuple table slots. Create a copy of the TupleDesc as it needs to * live as long as the cache remains. */ - oldtupdesc = CreateTupleDescCopy(RelationGetDescr(relation)); - newtupdesc = CreateTupleDescCopy(RelationGetDescr(relation)); + oldtupdesc = CreateTupleDescCopyConstr(RelationGetDescr(relation)); + newtupdesc = CreateTupleDescCopyConstr(RelationGetDescr(relation)); entry->old_slot = MakeSingleTupleTableSlot(oldtupdesc, &TTSOpsHeapTuple); entry->new_slot = MakeSingleTupleTableSlot(newtupdesc, &TTSOpsHeapTuple); diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 4655d8c..3c4da3c 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -2220,8 +2220,7 @@ GetSnapshotDataReuse(Snapshot snapshot) * but since PGPROC has only a limited cache area for subxact XIDs, full * information may not be available. If we find any overflowed subxid arrays, * we have to mark the snapshot's subxid data as overflowed, and extra work - * *may* need to be done to determine what's running (see XidInMVCCSnapshot() - * in heapam_visibility.c). + * *may* need to be done to determine what's running (see XidInMVCCSnapshot()). * * We also update the following backend-global variables: * TransactionXmin: the oldest xmin of any snapshot in use in the diff --git a/src/backend/storage/lmgr/lwlock.c b/src/backend/storage/lmgr/lwlock.c index 3bb4486..ea34ee7 100644 --- a/src/backend/storage/lmgr/lwlock.c +++ b/src/backend/storage/lmgr/lwlock.c @@ -988,6 +988,15 @@ LWLockWakeup(LWLock *lock) } /* + * Signal that the process isn't on the wait list anymore. This allows + * LWLockDequeueSelf() to remove itself of the waitlist with a + * proclist_delete(), rather than having to check if it has been + * removed from the list. + */ + Assert(waiter->lwWaiting == LW_WS_WAITING); + waiter->lwWaiting = LW_WS_PENDING_WAKEUP; + + /* * Once we've woken up an exclusive lock, there's no point in waking * up anybody else. */ @@ -1044,7 +1053,7 @@ LWLockWakeup(LWLock *lock) * another lock. */ pg_write_barrier(); - waiter->lwWaiting = false; + waiter->lwWaiting = LW_WS_NOT_WAITING; PGSemaphoreUnlock(waiter->sem); } } @@ -1065,7 +1074,7 @@ LWLockQueueSelf(LWLock *lock, LWLockMode mode) if (MyProc == NULL) elog(PANIC, "cannot wait without a PGPROC structure"); - if (MyProc->lwWaiting) + if (MyProc->lwWaiting != LW_WS_NOT_WAITING) elog(PANIC, "queueing for lock while waiting on another one"); LWLockWaitListLock(lock); @@ -1073,7 +1082,7 @@ LWLockQueueSelf(LWLock *lock, LWLockMode mode) /* setting the flag is protected by the spinlock */ pg_atomic_fetch_or_u32(&lock->state, LW_FLAG_HAS_WAITERS); - MyProc->lwWaiting = true; + MyProc->lwWaiting = LW_WS_WAITING; MyProc->lwWaitMode = mode; /* LW_WAIT_UNTIL_FREE waiters are always at the front of the queue */ @@ -1100,8 +1109,7 @@ LWLockQueueSelf(LWLock *lock, LWLockMode mode) static void LWLockDequeueSelf(LWLock *lock) { - bool found = false; - proclist_mutable_iter iter; + bool on_waitlist; #ifdef LWLOCK_STATS lwlock_stats *lwstats; @@ -1114,18 +1122,13 @@ LWLockDequeueSelf(LWLock *lock) LWLockWaitListLock(lock); /* - * Can't just remove ourselves from the list, but we need to iterate over - * all entries as somebody else could have dequeued us. + * Remove ourselves from the waitlist, unless we've already been + * removed. The removal happens with the wait list lock held, so there's + * no race in this check. */ - proclist_foreach_modify(iter, &lock->waiters, lwWaitLink) - { - if (iter.cur == MyProc->pgprocno) - { - found = true; - proclist_delete(&lock->waiters, iter.cur, lwWaitLink); - break; - } - } + on_waitlist = MyProc->lwWaiting == LW_WS_WAITING; + if (on_waitlist) + proclist_delete(&lock->waiters, MyProc->pgprocno, lwWaitLink); if (proclist_is_empty(&lock->waiters) && (pg_atomic_read_u32(&lock->state) & LW_FLAG_HAS_WAITERS) != 0) @@ -1137,8 +1140,8 @@ LWLockDequeueSelf(LWLock *lock) LWLockWaitListUnlock(lock); /* clear waiting state again, nice for debugging */ - if (found) - MyProc->lwWaiting = false; + if (on_waitlist) + MyProc->lwWaiting = LW_WS_NOT_WAITING; else { int extraWaits = 0; @@ -1162,7 +1165,7 @@ LWLockDequeueSelf(LWLock *lock) for (;;) { PGSemaphoreLock(MyProc->sem); - if (!MyProc->lwWaiting) + if (MyProc->lwWaiting == LW_WS_NOT_WAITING) break; extraWaits++; } @@ -1313,7 +1316,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode) for (;;) { PGSemaphoreLock(proc->sem); - if (!proc->lwWaiting) + if (proc->lwWaiting == LW_WS_NOT_WAITING) break; extraWaits++; } @@ -1478,7 +1481,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode) for (;;) { PGSemaphoreLock(proc->sem); - if (!proc->lwWaiting) + if (proc->lwWaiting == LW_WS_NOT_WAITING) break; extraWaits++; } @@ -1694,7 +1697,7 @@ LWLockWaitForVar(LWLock *lock, uint64 *valptr, uint64 oldval, uint64 *newval) for (;;) { PGSemaphoreLock(proc->sem); - if (!proc->lwWaiting) + if (proc->lwWaiting == LW_WS_NOT_WAITING) break; extraWaits++; } @@ -1772,6 +1775,10 @@ LWLockUpdateVar(LWLock *lock, uint64 *valptr, uint64 val) proclist_delete(&lock->waiters, iter.cur, lwWaitLink); proclist_push_tail(&wakeup, iter.cur, lwWaitLink); + + /* see LWLockWakeup() */ + Assert(waiter->lwWaiting == LW_WS_WAITING); + waiter->lwWaiting = LW_WS_PENDING_WAKEUP; } /* We are done updating shared state of the lock itself. */ @@ -1787,7 +1794,7 @@ LWLockUpdateVar(LWLock *lock, uint64 *valptr, uint64 val) proclist_delete(&wakeup, iter.cur, lwWaitLink); /* check comment in LWLockWakeup() about this barrier */ pg_write_barrier(); - waiter->lwWaiting = false; + waiter->lwWaiting = LW_WS_NOT_WAITING; PGSemaphoreUnlock(waiter->sem); } } diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index 1b514f4..c60707b 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -397,7 +397,7 @@ InitProcess(void) /* NB -- autovac launcher intentionally does not set IS_AUTOVACUUM */ if (IsAutoVacuumWorkerProcess()) MyProc->statusFlags |= PROC_IS_AUTOVACUUM; - MyProc->lwWaiting = false; + MyProc->lwWaiting = LW_WS_NOT_WAITING; MyProc->lwWaitMode = 0; MyProc->waitLock = NULL; MyProc->waitProcLock = NULL; @@ -579,7 +579,7 @@ InitAuxiliaryProcess(void) MyProc->isBackgroundWorker = IsBackgroundWorker; MyProc->delayChkptFlags = 0; MyProc->statusFlags = 0; - MyProc->lwWaiting = false; + MyProc->lwWaiting = LW_WS_NOT_WAITING; MyProc->lwWaitMode = 0; MyProc->waitLock = NULL; MyProc->waitProcLock = NULL; diff --git a/src/backend/utils/activity/backend_status.c b/src/backend/utils/activity/backend_status.c index 3ecb15d..73f23bc 100644 --- a/src/backend/utils/activity/backend_status.c +++ b/src/backend/utils/activity/backend_status.c @@ -263,9 +263,9 @@ pgstat_beinit(void) * Assign the MyBEEntry for an auxiliary process. Since it doesn't * have a BackendId, the slot is statically allocated based on the * auxiliary process type (MyAuxProcType). Backends use slots indexed - * in the range from 1 to MaxBackends (inclusive), so we use - * MaxBackends + AuxBackendType + 1 as the index of the slot for an - * auxiliary process. + * in the range from 0 to MaxBackends (exclusive), so we use + * MaxBackends + AuxProcType as the index of the slot for an auxiliary + * process. */ MyBEEntry = &BackendStatusArray[MaxBackends + MyAuxProcType]; } diff --git a/src/backend/utils/activity/pgstat.c b/src/backend/utils/activity/pgstat.c index 84d65a7..142e26a 100644 --- a/src/backend/utils/activity/pgstat.c +++ b/src/backend/utils/activity/pgstat.c @@ -918,6 +918,9 @@ pgstat_snapshot_fixed(PgStat_Kind kind) AssertArg(pgstat_is_kind_valid(kind)); AssertArg(pgstat_get_kind_info(kind)->fixed_amount); + if (force_stats_snapshot_clear) + pgstat_clear_snapshot(); + if (pgstat_fetch_consistency == PGSTAT_FETCH_CONSISTENCY_SNAPSHOT) pgstat_build_snapshot(); else diff --git a/src/backend/utils/activity/wait_event.c b/src/backend/utils/activity/wait_event.c index 87c15b9..7875257 100644 --- a/src/backend/utils/activity/wait_event.c +++ b/src/backend/utils/activity/wait_event.c @@ -702,6 +702,9 @@ pgstat_get_wait_io(WaitEventIO w) case WAIT_EVENT_TWOPHASE_FILE_WRITE: event_name = "TwophaseFileWrite"; break; + case WAIT_EVENT_VERSION_FILE_SYNC: + event_name = "VersionFileSync"; + break; case WAIT_EVENT_VERSION_FILE_WRITE: event_name = "VersionFileWrite"; break; diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c index f70f829..27073cb 100644 --- a/src/backend/utils/adt/timestamp.c +++ b/src/backend/utils/adt/timestamp.c @@ -2949,8 +2949,16 @@ timestamp_pl_interval(PG_FUNCTION_ARGS) (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("timestamp out of range"))); - /* Add days by converting to and from Julian */ - julian = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) + span->day; + /* + * Add days by converting to and from Julian. We need an overflow + * check here since j2date expects a non-negative integer input. + */ + julian = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday); + if (pg_add_s32_overflow(julian, span->day, &julian) || + julian < 0) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); j2date(julian, &tm->tm_year, &tm->tm_mon, &tm->tm_mday); if (tm2timestamp(tm, fsec, NULL, ×tamp) != 0) @@ -3057,8 +3065,19 @@ timestamptz_pl_interval(PG_FUNCTION_ARGS) (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), errmsg("timestamp out of range"))); - /* Add days by converting to and from Julian */ - julian = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday) + span->day; + /* + * Add days by converting to and from Julian. We need an overflow + * check here since j2date expects a non-negative integer input. + * In practice though, it will give correct answers for small + * negative Julian dates; we should allow -1 to avoid + * timezone-dependent failures, as discussed in timestamp.h. + */ + julian = date2j(tm->tm_year, tm->tm_mon, tm->tm_mday); + if (pg_add_s32_overflow(julian, span->day, &julian) || + julian < -1) + ereport(ERROR, + (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("timestamp out of range"))); j2date(julian, &tm->tm_year, &tm->tm_mon, &tm->tm_mday); tz = DetermineTimeZoneOffset(tm, session_timezone); @@ -3246,19 +3265,13 @@ interval_mul(PG_FUNCTION_ARGS) result = (Interval *) palloc(sizeof(Interval)); result_double = span->month * factor; - if (isnan(result_double) || - result_double > INT_MAX || result_double < INT_MIN) - ereport(ERROR, - (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), - errmsg("interval out of range"))); + if (isnan(result_double) || !FLOAT8_FITS_IN_INT32(result_double)) + goto out_of_range; result->month = (int32) result_double; result_double = span->day * factor; - if (isnan(result_double) || - result_double > INT_MAX || result_double < INT_MIN) - ereport(ERROR, - (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), - errmsg("interval out of range"))); + if (isnan(result_double) || !FLOAT8_FITS_IN_INT32(result_double)) + goto out_of_range; result->day = (int32) result_double; /* @@ -3292,20 +3305,30 @@ interval_mul(PG_FUNCTION_ARGS) */ if (Abs(sec_remainder) >= SECS_PER_DAY) { - result->day += (int) (sec_remainder / SECS_PER_DAY); + if (pg_add_s32_overflow(result->day, + (int) (sec_remainder / SECS_PER_DAY), + &result->day)) + goto out_of_range; sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY; } /* cascade units down */ - result->day += (int32) month_remainder_days; + if (pg_add_s32_overflow(result->day, (int32) month_remainder_days, + &result->day)) + goto out_of_range; result_double = rint(span->time * factor + sec_remainder * USECS_PER_SEC); if (isnan(result_double) || !FLOAT8_FITS_IN_INT64(result_double)) - ereport(ERROR, - (errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), - errmsg("interval out of range"))); + goto out_of_range; result->time = (int64) result_double; PG_RETURN_INTERVAL_P(result); + +out_of_range: + ereport(ERROR, + errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("interval out of range")); + + PG_RETURN_NULL(); /* keep compiler quiet */ } Datum @@ -3324,7 +3347,8 @@ interval_div(PG_FUNCTION_ARGS) Interval *span = PG_GETARG_INTERVAL_P(0); float8 factor = PG_GETARG_FLOAT8(1); double month_remainder_days, - sec_remainder; + sec_remainder, + result_double; int32 orig_month = span->month, orig_day = span->day; Interval *result; @@ -3336,8 +3360,15 @@ interval_div(PG_FUNCTION_ARGS) (errcode(ERRCODE_DIVISION_BY_ZERO), errmsg("division by zero"))); - result->month = (int32) (span->month / factor); - result->day = (int32) (span->day / factor); + result_double = span->month / factor; + if (isnan(result_double) || !FLOAT8_FITS_IN_INT32(result_double)) + goto out_of_range; + result->month = (int32) result_double; + + result_double = span->day / factor; + if (isnan(result_double) || !FLOAT8_FITS_IN_INT32(result_double)) + goto out_of_range; + result->day = (int32) result_double; /* * Fractional months full days into days. See comment in interval_mul(). @@ -3349,15 +3380,30 @@ interval_div(PG_FUNCTION_ARGS) sec_remainder = TSROUND(sec_remainder); if (Abs(sec_remainder) >= SECS_PER_DAY) { - result->day += (int) (sec_remainder / SECS_PER_DAY); + if (pg_add_s32_overflow(result->day, + (int) (sec_remainder / SECS_PER_DAY), + &result->day)) + goto out_of_range; sec_remainder -= (int) (sec_remainder / SECS_PER_DAY) * SECS_PER_DAY; } /* cascade units down */ - result->day += (int32) month_remainder_days; - result->time = rint(span->time / factor + sec_remainder * USECS_PER_SEC); + if (pg_add_s32_overflow(result->day, (int32) month_remainder_days, + &result->day)) + goto out_of_range; + result_double = rint(span->time / factor + sec_remainder * USECS_PER_SEC); + if (isnan(result_double) || !FLOAT8_FITS_IN_INT64(result_double)) + goto out_of_range; + result->time = (int64) result_double; PG_RETURN_INTERVAL_P(result); + +out_of_range: + ereport(ERROR, + errcode(ERRCODE_DATETIME_VALUE_OUT_OF_RANGE), + errmsg("interval out of range")); + + PG_RETURN_NULL(); /* keep compiler quiet */ } diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c index 6411f56..aae0692 100644 --- a/src/backend/utils/adt/xml.c +++ b/src/backend/utils/adt/xml.c @@ -65,6 +65,16 @@ #if LIBXML_VERSION >= 20704 #define HAVE_XMLSTRUCTUREDERRORCONTEXT 1 #endif + +/* + * libxml2 2.12 decided to insert "const" into the error handler API. + */ +#if LIBXML_VERSION >= 21200 +#define PgXmlErrorPtr const xmlError * +#else +#define PgXmlErrorPtr xmlErrorPtr +#endif + #endif /* USE_LIBXML */ #include "access/htup_details.h" @@ -119,7 +129,7 @@ struct PgXmlErrorContext static xmlParserInputPtr xmlPgEntityLoader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt); -static void xml_errorHandler(void *data, xmlErrorPtr error); +static void xml_errorHandler(void *data, PgXmlErrorPtr error); static void xml_ereport_by_code(int level, int sqlcode, const char *msg, int errcode); static void chopStringInfoNewlines(StringInfo str); @@ -1749,7 +1759,7 @@ xml_ereport(PgXmlErrorContext *errcxt, int level, int sqlcode, const char *msg) * Error handler for libxml errors and warnings */ static void -xml_errorHandler(void *data, xmlErrorPtr error) +xml_errorHandler(void *data, PgXmlErrorPtr error) { PgXmlErrorContext *xmlerrcxt = (PgXmlErrorContext *) data; xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) error->ctxt; diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 38e943f..d22bc07 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -25,6 +25,7 @@ #include "catalog/pg_operator.h" #include "catalog/pg_type.h" #include "common/hashfn.h" +#include "common/pg_prng.h" #include "miscadmin.h" #include "port/pg_bitutils.h" #ifdef CATCACHE_STATS @@ -90,10 +91,10 @@ static void CatCachePrintStats(int code, Datum arg); static void CatCacheRemoveCTup(CatCache *cache, CatCTup *ct); static void CatCacheRemoveCList(CatCache *cache, CatCList *cl); static void CatalogCacheInitializeCache(CatCache *cache); -static CatCTup *CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, +static CatCTup *CatalogCacheCreateEntry(CatCache *cache, + HeapTuple ntp, SysScanDesc scandesc, Datum *arguments, - uint32 hashValue, Index hashIndex, - bool negative); + uint32 hashValue, Index hashIndex); static void CatCacheFreeKeys(TupleDesc tupdesc, int nkeys, int *attnos, Datum *keys); @@ -1318,6 +1319,7 @@ SearchCatCacheMiss(CatCache *cache, SysScanDesc scandesc; HeapTuple ntp; CatCTup *ct; + bool stale; Datum arguments[CATCACHE_MAXKEYS]; /* Initialize local parameter array */ @@ -1327,16 +1329,6 @@ SearchCatCacheMiss(CatCache *cache, arguments[3] = v4; /* - * Ok, need to make a lookup in the relation, copy the scankey and fill - * out any per-call fields. - */ - memcpy(cur_skey, cache->cc_skey, sizeof(ScanKeyData) * nkeys); - cur_skey[0].sk_argument = v1; - cur_skey[1].sk_argument = v2; - cur_skey[2].sk_argument = v3; - cur_skey[3].sk_argument = v4; - - /* * Tuple was not found in cache, so we have to try to retrieve it directly * from the relation. If found, we will add it to the cache; if not * found, we will add a negative cache entry instead. @@ -1350,31 +1342,57 @@ SearchCatCacheMiss(CatCache *cache, * will eventually age out of the cache, so there's no functional problem. * This case is rare enough that it's not worth expending extra cycles to * detect. + * + * Another case, which we *must* handle, is that the tuple could become + * outdated during CatalogCacheCreateEntry's attempt to detoast it (since + * AcceptInvalidationMessages can run during TOAST table access). We do + * not want to return already-stale catcache entries, so we loop around + * and do the table scan again if that happens. */ relation = table_open(cache->cc_reloid, AccessShareLock); - scandesc = systable_beginscan(relation, - cache->cc_indexoid, - IndexScanOK(cache, cur_skey), - NULL, - nkeys, - cur_skey); + do + { + /* + * Ok, need to make a lookup in the relation, copy the scankey and + * fill out any per-call fields. (We must re-do this when retrying, + * because systable_beginscan scribbles on the scankey.) + */ + memcpy(cur_skey, cache->cc_skey, sizeof(ScanKeyData) * nkeys); + cur_skey[0].sk_argument = v1; + cur_skey[1].sk_argument = v2; + cur_skey[2].sk_argument = v3; + cur_skey[3].sk_argument = v4; + + scandesc = systable_beginscan(relation, + cache->cc_indexoid, + IndexScanOK(cache, cur_skey), + NULL, + nkeys, + cur_skey); - ct = NULL; + ct = NULL; + stale = false; - while (HeapTupleIsValid(ntp = systable_getnext(scandesc))) - { - ct = CatalogCacheCreateEntry(cache, ntp, arguments, - hashValue, hashIndex, - false); - /* immediately set the refcount to 1 */ - ResourceOwnerEnlargeCatCacheRefs(CurrentResourceOwner); - ct->refcount++; - ResourceOwnerRememberCatCacheRef(CurrentResourceOwner, &ct->tuple); - break; /* assume only one match */ - } + while (HeapTupleIsValid(ntp = systable_getnext(scandesc))) + { + ct = CatalogCacheCreateEntry(cache, ntp, scandesc, NULL, + hashValue, hashIndex); + /* upon failure, we must start the scan over */ + if (ct == NULL) + { + stale = true; + break; + } + /* immediately set the refcount to 1 */ + ResourceOwnerEnlargeCatCacheRefs(CurrentResourceOwner); + ct->refcount++; + ResourceOwnerRememberCatCacheRef(CurrentResourceOwner, &ct->tuple); + break; /* assume only one match */ + } - systable_endscan(scandesc); + systable_endscan(scandesc); + } while (stale); table_close(relation, AccessShareLock); @@ -1393,9 +1411,11 @@ SearchCatCacheMiss(CatCache *cache, if (IsBootstrapProcessingMode()) return NULL; - ct = CatalogCacheCreateEntry(cache, NULL, arguments, - hashValue, hashIndex, - true); + ct = CatalogCacheCreateEntry(cache, NULL, NULL, arguments, + hashValue, hashIndex); + + /* Creating a negative cache entry shouldn't fail */ + Assert(ct != NULL); CACHE_elog(DEBUG2, "SearchCatCache(%s): Contains %d/%d tuples", cache->cc_relname, cache->cc_ntup, CacheHdr->ch_ntup); @@ -1602,7 +1622,8 @@ SearchCatCacheList(CatCache *cache, * We have to bump the member refcounts temporarily to ensure they won't * get dropped from the cache while loading other members. We use a PG_TRY * block to ensure we can undo those refcounts if we get an error before - * we finish constructing the CatCList. + * we finish constructing the CatCList. ctlist must be valid throughout + * the PG_TRY block. */ ResourceOwnerEnlargeCatCacheListRefs(CurrentResourceOwner); @@ -1613,83 +1634,113 @@ SearchCatCacheList(CatCache *cache, ScanKeyData cur_skey[CATCACHE_MAXKEYS]; Relation relation; SysScanDesc scandesc; - - /* - * Ok, need to make a lookup in the relation, copy the scankey and - * fill out any per-call fields. - */ - memcpy(cur_skey, cache->cc_skey, sizeof(ScanKeyData) * cache->cc_nkeys); - cur_skey[0].sk_argument = v1; - cur_skey[1].sk_argument = v2; - cur_skey[2].sk_argument = v3; - cur_skey[3].sk_argument = v4; + bool stale; relation = table_open(cache->cc_reloid, AccessShareLock); - scandesc = systable_beginscan(relation, - cache->cc_indexoid, - IndexScanOK(cache, cur_skey), - NULL, - nkeys, - cur_skey); - - /* The list will be ordered iff we are doing an index scan */ - ordered = (scandesc->irel != NULL); - - while (HeapTupleIsValid(ntp = systable_getnext(scandesc))) + do { - uint32 hashValue; - Index hashIndex; - bool found = false; - dlist_head *bucket; - /* - * See if there's an entry for this tuple already. + * Ok, need to make a lookup in the relation, copy the scankey and + * fill out any per-call fields. (We must re-do this when + * retrying, because systable_beginscan scribbles on the scankey.) */ - ct = NULL; - hashValue = CatalogCacheComputeTupleHashValue(cache, cache->cc_nkeys, ntp); - hashIndex = HASH_INDEX(hashValue, cache->cc_nbuckets); + memcpy(cur_skey, cache->cc_skey, sizeof(ScanKeyData) * cache->cc_nkeys); + cur_skey[0].sk_argument = v1; + cur_skey[1].sk_argument = v2; + cur_skey[2].sk_argument = v3; + cur_skey[3].sk_argument = v4; - bucket = &cache->cc_bucket[hashIndex]; - dlist_foreach(iter, bucket) - { - ct = dlist_container(CatCTup, cache_elem, iter.cur); + scandesc = systable_beginscan(relation, + cache->cc_indexoid, + IndexScanOK(cache, cur_skey), + NULL, + nkeys, + cur_skey); - if (ct->dead || ct->negative) - continue; /* ignore dead and negative entries */ + /* The list will be ordered iff we are doing an index scan */ + ordered = (scandesc->irel != NULL); - if (ct->hash_value != hashValue) - continue; /* quickly skip entry if wrong hash val */ + stale = false; - if (!ItemPointerEquals(&(ct->tuple.t_self), &(ntp->t_self))) - continue; /* not same tuple */ + while (HeapTupleIsValid(ntp = systable_getnext(scandesc))) + { + uint32 hashValue; + Index hashIndex; + bool found = false; + dlist_head *bucket; /* - * Found a match, but can't use it if it belongs to another - * list already + * See if there's an entry for this tuple already. */ - if (ct->c_list) - continue; - - found = true; - break; /* A-OK */ - } - - if (!found) - { - /* We didn't find a usable entry, so make a new one */ - ct = CatalogCacheCreateEntry(cache, ntp, arguments, - hashValue, hashIndex, - false); + ct = NULL; + hashValue = CatalogCacheComputeTupleHashValue(cache, cache->cc_nkeys, ntp); + hashIndex = HASH_INDEX(hashValue, cache->cc_nbuckets); + + bucket = &cache->cc_bucket[hashIndex]; + dlist_foreach(iter, bucket) + { + ct = dlist_container(CatCTup, cache_elem, iter.cur); + + if (ct->dead || ct->negative) + continue; /* ignore dead and negative entries */ + + if (ct->hash_value != hashValue) + continue; /* quickly skip entry if wrong hash val */ + + if (!ItemPointerEquals(&(ct->tuple.t_self), &(ntp->t_self))) + continue; /* not same tuple */ + + /* + * Found a match, but can't use it if it belongs to + * another list already + */ + if (ct->c_list) + continue; + + found = true; + break; /* A-OK */ + } + + if (!found) + { + /* We didn't find a usable entry, so make a new one */ + ct = CatalogCacheCreateEntry(cache, ntp, scandesc, NULL, + hashValue, hashIndex); + /* upon failure, we must start the scan over */ + if (ct == NULL) + { + /* + * Release refcounts on any items we already had. We + * dare not try to free them if they're now + * unreferenced, since an error while doing that would + * result in the PG_CATCH below doing extra refcount + * decrements. Besides, we'll likely re-adopt those + * items in the next iteration, so it's not worth + * complicating matters to try to get rid of them. + */ + foreach(ctlist_item, ctlist) + { + ct = (CatCTup *) lfirst(ctlist_item); + Assert(ct->c_list == NULL); + Assert(ct->refcount > 0); + ct->refcount--; + } + /* Reset ctlist in preparation for new try */ + ctlist = NIL; + stale = true; + break; + } + } + + /* Careful here: add entry to ctlist, then bump its refcount */ + /* This way leaves state correct if lappend runs out of memory */ + ctlist = lappend(ctlist, ct); + ct->refcount++; } - /* Careful here: add entry to ctlist, then bump its refcount */ - /* This way leaves state correct if lappend runs out of memory */ - ctlist = lappend(ctlist, ct); - ct->refcount++; - } - - systable_endscan(scandesc); + systable_endscan(scandesc); + } while (stale); table_close(relation, AccessShareLock); @@ -1796,22 +1847,42 @@ ReleaseCatCacheList(CatCList *list) * CatalogCacheCreateEntry * Create a new CatCTup entry, copying the given HeapTuple and other * supplied data into it. The new entry initially has refcount 0. + * + * To create a normal cache entry, ntp must be the HeapTuple just fetched + * from scandesc, and "arguments" is not used. To create a negative cache + * entry, pass NULL for ntp and scandesc; then "arguments" is the cache + * keys to use. In either case, hashValue/hashIndex are the hash values + * computed from the cache keys. + * + * Returns NULL if we attempt to detoast the tuple and observe that it + * became stale. (This cannot happen for a negative entry.) Caller must + * retry the tuple lookup in that case. */ static CatCTup * -CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, Datum *arguments, - uint32 hashValue, Index hashIndex, - bool negative) +CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, SysScanDesc scandesc, + Datum *arguments, + uint32 hashValue, Index hashIndex) { CatCTup *ct; HeapTuple dtp; MemoryContext oldcxt; - /* negative entries have no tuple associated */ if (ntp) { int i; - Assert(!negative); + /* + * The visibility recheck below essentially never fails during our + * regression tests, and there's no easy way to force it to fail for + * testing purposes. To ensure we have test coverage for the retry + * paths in our callers, make debug builds randomly fail about 0.1% of + * the times through this code path, even when there's no toasted + * fields. + */ +#ifdef USE_ASSERT_CHECKING + if (pg_prng_uint32(&pg_global_prng_state) <= (PG_UINT32_MAX / 1000)) + return NULL; +#endif /* * If there are any out-of-line toasted fields in the tuple, expand @@ -1821,7 +1892,20 @@ CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, Datum *arguments, * something using a slightly stale catcache entry. */ if (HeapTupleHasExternal(ntp)) + { dtp = toast_flatten_tuple(ntp, cache->cc_tupdesc); + + /* + * The tuple could become stale while we are doing toast table + * access (since AcceptInvalidationMessages can run then), so we + * must recheck its visibility afterwards. + */ + if (!systable_recheck_tuple(scandesc, ntp)) + { + heap_freetuple(dtp); + return NULL; + } + } else dtp = ntp; @@ -1860,7 +1944,7 @@ CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, Datum *arguments, } else { - Assert(negative); + /* Set up keys for a negative cache entry */ oldcxt = MemoryContextSwitchTo(CacheMemoryContext); ct = (CatCTup *) palloc(sizeof(CatCTup)); @@ -1882,7 +1966,7 @@ CatalogCacheCreateEntry(CatCache *cache, HeapTuple ntp, Datum *arguments, ct->c_list = NULL; ct->refcount = 0; /* for the moment */ ct->dead = false; - ct->negative = negative; + ct->negative = (ntp == NULL); ct->hash_value = hashValue; dlist_push_head(&cache->cc_bucket[hashIndex], &ct->cache_elem); diff --git a/src/backend/utils/cache/relmapper.c b/src/backend/utils/cache/relmapper.c index 2a330cf..4c50044 100644 --- a/src/backend/utils/cache/relmapper.c +++ b/src/backend/utils/cache/relmapper.c @@ -298,14 +298,15 @@ RelationMapCopy(Oid dbid, Oid tsid, char *srcdbpath, char *dstdbpath) * Write the same data into the destination database's relmap file. * * No sinval is needed because no one can be connected to the destination - * database yet. For the same reason, there is no need to acquire - * RelationMappingLock. + * database yet. * * There's no point in trying to preserve files here. The new database * isn't usable yet anyway, and won't ever be if we can't install a relmap * file. */ + LWLockAcquire(RelationMappingLock, LW_EXCLUSIVE); write_relmap_file(&map, true, false, false, dbid, tsid, dstdbpath); + LWLockRelease(RelationMappingLock); } /* @@ -627,10 +628,12 @@ RelationMapFinishBootstrap(void) Assert(pending_local_updates.num_mappings == 0); /* Write the files; no WAL or sinval needed */ + LWLockAcquire(RelationMappingLock, LW_EXCLUSIVE); write_relmap_file(&shared_map, false, false, false, InvalidOid, GLOBALTABLESPACE_OID, "global"); write_relmap_file(&local_map, false, false, false, MyDatabaseId, MyDatabaseTableSpace, DatabasePath); + LWLockRelease(RelationMappingLock); } /* @@ -877,6 +880,15 @@ write_relmap_file(RelMapFile *newmap, bool write_wal, bool send_sinval, char mapfilename[MAXPGPATH]; /* + * Even without concurrent use of this map, CheckPointRelationMap() relies + * on this locking. Without it, a restore of a base backup taken after + * this function's XLogInsert() and before its durable_rename() would not + * have the changes. wal_level=minimal doesn't need the lock, but this + * isn't performance-critical enough for such a micro-optimization. + */ + Assert(LWLockHeldByMeInMode(RelationMappingLock, LW_EXCLUSIVE)); + + /* * Fill in the overhead fields and update CRC. */ newmap->magic = RELMAPPER_FILEMAGIC; diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 6fa4f2c..0106683 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -755,6 +755,10 @@ errcode_for_file_access(void) edata->sqlerrcode = ERRCODE_DISK_FULL; break; + case ENOMEM: /* Out of memory */ + edata->sqlerrcode = ERRCODE_OUT_OF_MEMORY; + break; + case ENFILE: /* File table overflow */ case EMFILE: /* Too many open files */ edata->sqlerrcode = ERRCODE_INSUFFICIENT_RESOURCES; diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 0b5b77b..07d6538 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1285,7 +1285,7 @@ static struct config_bool ConfigureNamesBool[] = {"fsync", PGC_SIGHUP, WAL_SETTINGS, gettext_noop("Forces synchronization of updates to disk."), gettext_noop("The server will use the fsync() system call in several places to make " - "sure that updates are physically written to disk. This insures " + "sure that updates are physically written to disk. This ensures " "that a database cluster will recover to a consistent state after " "an operating system or hardware crash.") }, @@ -7643,9 +7643,12 @@ set_config_option_ext(const char *name, const char *value, * Other changes might need to affect other workers, so forbid them. */ if (IsInParallelMode() && changeVal && action != GUC_ACTION_SAVE) + { ereport(elevel, (errcode(ERRCODE_INVALID_TRANSACTION_STATE), errmsg("cannot set parameters during a parallel operation"))); + return -1; + } record = find_option(name, true, false, elevel); if (record == NULL) @@ -7740,6 +7743,10 @@ set_config_option_ext(const char *name, const char *value, * backends. This is a tad klugy, but necessary because we * don't re-read the config file during backend start. * + * However, if changeVal is false then plow ahead anyway since + * we are trying to find out if the value is potentially good, + * not actually use it. + * * In EXEC_BACKEND builds, this works differently: we load all * non-default settings from the CONFIG_EXEC_PARAMS file * during backend start. In that case we must accept @@ -7750,7 +7757,7 @@ set_config_option_ext(const char *name, const char *value, * started it. is_reload will be true when either situation * applies. */ - if (IsUnderPostmaster && !is_reload) + if (IsUnderPostmaster && changeVal && !is_reload) return -1; } else if (context != PGC_POSTMASTER && diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c index dd78e5b..f58320b 100644 --- a/src/bin/pg_ctl/pg_ctl.c +++ b/src/bin/pg_ctl/pg_ctl.c @@ -559,11 +559,11 @@ start_postmaster(void) else close(fd); - cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"", + cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" >> \"%s\" 2>&1\"", comspec, exec_path, pgdata_opt, post_opts, DEVNULL, log_file); } else - cmd = psprintf("\"%s\" /C \"\"%s\" %s%s < \"%s\" 2>&1\"", + cmd = psprintf("\"%s\" /D /C \"\"%s\" %s%s < \"%s\" 2>&1\"", comspec, exec_path, pgdata_opt, post_opts, DEVNULL); if (!CreateRestrictedProcess(cmd, &pi, false)) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 5e7317b..cf34bfd 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -1576,13 +1576,10 @@ checkExtensionMembership(DumpableObject *dobj, Archive *fout) addObjectDependency(dobj, ext->dobj.dumpId); /* - * In 9.6 and above, mark the member object to have any non-initial ACL, - * policies, and security labels dumped. - * - * Note that any initial ACLs (see pg_init_privs) will be removed when we - * extract the information about the object. We don't provide support for - * initial policies and security labels and it seems unlikely for those to - * ever exist, but we may have to revisit this later. + * In 9.6 and above, mark the member object to have any non-initial ACLs + * dumped. (Any initial ACLs will be removed later, using data from + * pg_init_privs, so that we'll dump only the delta from the extension's + * initial setup.) * * Prior to 9.6, we do not include any extension member components. * @@ -1590,6 +1587,13 @@ checkExtensionMembership(DumpableObject *dobj, Archive *fout) * individually, since the idea is to exactly reproduce the database * contents rather than replace the extension contents with something * different. + * + * Note: it might be interesting someday to implement storage and delta + * dumping of extension members' RLS policies and/or security labels. + * However there is a pitfall for RLS policies: trying to dump them + * requires getting a lock on their tables, and the calling user might not + * have privileges for that. We need no lock to examine a table's ACLs, + * so the current feature doesn't have a problem of that sort. */ if (fout->dopt->binary_upgrade) dobj->dump = ext->dobj.dump; @@ -1598,9 +1602,7 @@ checkExtensionMembership(DumpableObject *dobj, Archive *fout) if (fout->remoteVersion < 90600) dobj->dump = DUMP_COMPONENT_NONE; else - dobj->dump = ext->dobj.dump_contains & (DUMP_COMPONENT_ACL | - DUMP_COMPONENT_SECLABEL | - DUMP_COMPONENT_POLICY); + dobj->dump = ext->dobj.dump_contains & (DUMP_COMPONENT_ACL); } return true; @@ -1932,6 +1934,26 @@ selectDumpablePublicationObject(DumpableObject *dobj, Archive *fout) } /* + * selectDumpableStatisticsObject: policy-setting subroutine + * Mark an extended statistics object as to be dumped or not + * + * We dump an extended statistics object if the schema it's in and the table + * it's for are being dumped. (This'll need more thought if statistics + * objects ever support cross-table stats.) + */ +static void +selectDumpableStatisticsObject(StatsExtInfo *sobj, Archive *fout) +{ + if (checkExtensionMembership(&sobj->dobj, fout)) + return; /* extension membership overrides all else */ + + sobj->dobj.dump = sobj->dobj.namespace->dobj.dump_contains; + if (sobj->stattable == NULL || + !(sobj->stattable->dobj.dump & DUMP_COMPONENT_DEFINITION)) + sobj->dobj.dump = DUMP_COMPONENT_NONE; +} + +/* * selectDumpableObject: policy-setting subroutine * Mark a generic dumpable object as to be dumped or not * @@ -7094,6 +7116,7 @@ getExtendedStatistics(Archive *fout) int i_stxname; int i_stxnamespace; int i_stxowner; + int i_stxrelid; int i_stattarget; int i; @@ -7105,11 +7128,11 @@ getExtendedStatistics(Archive *fout) if (fout->remoteVersion < 130000) appendPQExpBuffer(query, "SELECT tableoid, oid, stxname, " - "stxnamespace, stxowner, (-1) AS stxstattarget " + "stxnamespace, stxowner, stxrelid, (-1) AS stxstattarget " "FROM pg_catalog.pg_statistic_ext"); else appendPQExpBuffer(query, "SELECT tableoid, oid, stxname, " - "stxnamespace, stxowner, stxstattarget " + "stxnamespace, stxowner, stxrelid, stxstattarget " "FROM pg_catalog.pg_statistic_ext"); res = ExecuteSqlQuery(fout, query->data, PGRES_TUPLES_OK); @@ -7121,6 +7144,7 @@ getExtendedStatistics(Archive *fout) i_stxname = PQfnumber(res, "stxname"); i_stxnamespace = PQfnumber(res, "stxnamespace"); i_stxowner = PQfnumber(res, "stxowner"); + i_stxrelid = PQfnumber(res, "stxrelid"); i_stattarget = PQfnumber(res, "stxstattarget"); statsextinfo = (StatsExtInfo *) pg_malloc(ntups * sizeof(StatsExtInfo)); @@ -7135,10 +7159,12 @@ getExtendedStatistics(Archive *fout) statsextinfo[i].dobj.namespace = findNamespace(atooid(PQgetvalue(res, i, i_stxnamespace))); statsextinfo[i].rolname = getRoleName(PQgetvalue(res, i, i_stxowner)); + statsextinfo[i].stattable = + findTableByOid(atooid(PQgetvalue(res, i, i_stxrelid))); statsextinfo[i].stattarget = atoi(PQgetvalue(res, i, i_stattarget)); /* Decide whether we want to dump it */ - selectDumpableObject(&(statsextinfo[i].dobj), fout); + selectDumpableStatisticsObject(&(statsextinfo[i]), fout); } PQclear(res); diff --git a/src/bin/pg_dump/pg_dump.h b/src/bin/pg_dump/pg_dump.h index 0cdcc01..18c9517 100644 --- a/src/bin/pg_dump/pg_dump.h +++ b/src/bin/pg_dump/pg_dump.h @@ -418,7 +418,8 @@ typedef struct _indexAttachInfo typedef struct _statsExtInfo { DumpableObject dobj; - const char *rolname; + const char *rolname; /* owner */ + TableInfo *stattable; /* link to table the stats are for */ int stattarget; /* statistics target */ } StatsExtInfo; diff --git a/src/bin/pg_dump/po/ru.po b/src/bin/pg_dump/po/ru.po index 0738e01..c0dd159 100644 --- a/src/bin/pg_dump/po/ru.po +++ b/src/bin/pg_dump/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_dump (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:09+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2023-08-30 14:18+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -629,7 +629,7 @@ msgstr "воÑÑтановление большого объекта Ñ OID %u" msgid "could not create large object %u: %s" msgstr "не удалоÑÑŒ Ñоздать большой объект %u: %s" -#: pg_backup_archiver.c:1375 pg_dump.c:3607 +#: pg_backup_archiver.c:1375 pg_dump.c:3629 #, c-format msgid "could not open large object %u: %s" msgstr "не удалоÑÑŒ открыть большой объект %u: %s" @@ -1113,7 +1113,7 @@ msgstr "ошибка в PQputCopyEnd: %s" msgid "COPY failed for table \"%s\": %s" msgstr "Ñбой команды COPY Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\": %s" -#: pg_backup_db.c:522 pg_dump.c:2106 +#: pg_backup_db.c:522 pg_dump.c:2128 #, c-format msgid "unexpected extra results during COPY of table \"%s\"" msgstr "неожиданные лишние результаты получены при COPY Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\"" @@ -1918,115 +1918,115 @@ msgstr "Ð’ данный момент вы не подключены к базе msgid "cross-database references are not implemented: %s" msgstr "ÑÑылки между базами не реализованы: %s" -#: pg_dump.c:1981 +#: pg_dump.c:2003 #, c-format msgid "dumping contents of table \"%s.%s\"" msgstr "выгрузка Ñодержимого таблицы \"%s.%s\"" -#: pg_dump.c:2087 +#: pg_dump.c:2109 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetCopyData() failed." msgstr "Ошибка выгрузки таблицы \"%s\": Ñбой в PQgetCopyData()." -#: pg_dump.c:2088 pg_dump.c:2098 +#: pg_dump.c:2110 pg_dump.c:2120 #, c-format msgid "Error message from server: %s" msgstr "Сообщение об ошибке Ñ Ñервера: %s" # skip-rule: language-mix -#: pg_dump.c:2089 pg_dump.c:2099 +#: pg_dump.c:2111 pg_dump.c:2121 #, c-format msgid "Command was: %s" msgstr "ВыполнÑлаÑÑŒ команда: %s" -#: pg_dump.c:2097 +#: pg_dump.c:2119 #, c-format msgid "Dumping the contents of table \"%s\" failed: PQgetResult() failed." msgstr "Ошибка выгрузки таблицы \"%s\": Ñбой в PQgetResult()." -#: pg_dump.c:2179 +#: pg_dump.c:2201 #, c-format msgid "wrong number of fields retrieved from table \"%s\"" msgstr "из таблицы \"%s\" получено неверное количеÑтво полей" -#: pg_dump.c:2875 +#: pg_dump.c:2897 #, c-format msgid "saving database definition" msgstr "Ñохранение Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных" -#: pg_dump.c:2971 +#: pg_dump.c:2993 #, c-format msgid "unrecognized locale provider: %s" msgstr "нераÑпознанный провайдер локали: %s" -#: pg_dump.c:3317 +#: pg_dump.c:3339 #, c-format msgid "saving encoding = %s" msgstr "Ñохранение кодировки (%s)" -#: pg_dump.c:3342 +#: pg_dump.c:3364 #, c-format msgid "saving standard_conforming_strings = %s" msgstr "Ñохранение standard_conforming_strings (%s)" -#: pg_dump.c:3381 +#: pg_dump.c:3403 #, c-format msgid "could not parse result of current_schemas()" msgstr "не удалоÑÑŒ разобрать результат current_schemas()" -#: pg_dump.c:3400 +#: pg_dump.c:3422 #, c-format msgid "saving search_path = %s" msgstr "Ñохранение search_path = %s" -#: pg_dump.c:3438 +#: pg_dump.c:3460 #, c-format msgid "reading large objects" msgstr "чтение больших объектов" -#: pg_dump.c:3576 +#: pg_dump.c:3598 #, c-format msgid "saving large objects" msgstr "Ñохранение больших объектов" -#: pg_dump.c:3617 +#: pg_dump.c:3639 #, c-format msgid "error reading large object %u: %s" msgstr "ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¾Ð³Ð¾ объекта %u: %s" -#: pg_dump.c:3723 +#: pg_dump.c:3745 #, c-format msgid "reading row-level security policies" msgstr "чтение политик защиты на уровне Ñтрок" -#: pg_dump.c:3864 +#: pg_dump.c:3886 #, c-format msgid "unexpected policy command type: %c" msgstr "нераÑпознанный тип команды в политике: %c" -#: pg_dump.c:4314 pg_dump.c:4632 pg_dump.c:11835 pg_dump.c:17724 -#: pg_dump.c:17726 pg_dump.c:18347 +#: pg_dump.c:4336 pg_dump.c:4654 pg_dump.c:11861 pg_dump.c:17750 +#: pg_dump.c:17752 pg_dump.c:18373 #, c-format msgid "could not parse %s array" msgstr "не удалоÑÑŒ разобрать маÑÑив %s" -#: pg_dump.c:4500 +#: pg_dump.c:4522 #, c-format msgid "subscriptions not dumped because current user is not a superuser" msgstr "" "подпиÑки не выгружены, так как текущий пользователь не Ñуперпользователь" -#: pg_dump.c:5014 +#: pg_dump.c:5036 #, c-format msgid "could not find parent extension for %s %s" msgstr "не удалоÑÑŒ найти родительÑкое раÑширение Ð´Ð»Ñ %s %s" -#: pg_dump.c:5159 +#: pg_dump.c:5181 #, c-format msgid "schema with OID %u does not exist" msgstr "Ñхема Ñ OID %u не ÑущеÑтвует" -#: pg_dump.c:6615 pg_dump.c:16988 +#: pg_dump.c:6637 pg_dump.c:17014 #, c-format msgid "" "failed sanity check, parent table with OID %u of sequence with OID %u not " @@ -2035,7 +2035,7 @@ msgstr "" "нарушение целоÑтноÑти: по OID %u не удалоÑÑŒ найти родительÑкую таблицу " "поÑледовательноÑти Ñ OID %u" -#: pg_dump.c:6758 +#: pg_dump.c:6780 #, c-format msgid "" "failed sanity check, table OID %u appearing in pg_partitioned_table not found" @@ -2043,18 +2043,18 @@ msgstr "" "нарушение целоÑтноÑти: таблица Ñ OID %u, фигурирующим в " "pg_partitioned_table, не найдена" -#: pg_dump.c:6989 pg_dump.c:7256 pg_dump.c:7727 pg_dump.c:8394 pg_dump.c:8515 -#: pg_dump.c:8669 +#: pg_dump.c:7011 pg_dump.c:7282 pg_dump.c:7753 pg_dump.c:8420 pg_dump.c:8541 +#: pg_dump.c:8695 #, c-format msgid "unrecognized table OID %u" msgstr "нераÑпознанный OID таблицы %u" -#: pg_dump.c:6993 +#: pg_dump.c:7015 #, c-format msgid "unexpected index data for table \"%s\"" msgstr "неожиданно получены данные индекÑа Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\"" -#: pg_dump.c:7488 +#: pg_dump.c:7514 #, c-format msgid "" "failed sanity check, parent table with OID %u of pg_rewrite entry with OID " @@ -2063,7 +2063,7 @@ msgstr "" "нарушение целоÑтноÑти: по OID %u не удалоÑÑŒ найти родительÑкую таблицу Ð´Ð»Ñ " "запиÑи pg_rewrite Ñ OID %u" -#: pg_dump.c:7779 +#: pg_dump.c:7805 #, c-format msgid "" "query produced null referenced table name for foreign key trigger \"%s\" on " @@ -2072,32 +2072,32 @@ msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð²Ñ‹Ð´Ð°Ð» NULL вмеÑто имени целевой таблицы Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³Ð³ÐµÑ€Ð° внешнего ключа " "\"%s\" в таблице \"%s\" (OID целевой таблицы: %u)" -#: pg_dump.c:8398 +#: pg_dump.c:8424 #, c-format msgid "unexpected column data for table \"%s\"" msgstr "неожиданно получены данные Ñтолбцов Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\"" -#: pg_dump.c:8428 +#: pg_dump.c:8454 #, c-format msgid "invalid column numbering in table \"%s\"" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð½ÑƒÐ¼ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтолбцов в таблице \"%s\"" -#: pg_dump.c:8477 +#: pg_dump.c:8503 #, c-format msgid "finding table default expressions" msgstr "поиÑк выражений по умолчанию Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†" -#: pg_dump.c:8519 +#: pg_dump.c:8545 #, c-format msgid "invalid adnum value %d for table \"%s\"" msgstr "неверное значение adnum (%d) в таблице \"%s\"" -#: pg_dump.c:8619 +#: pg_dump.c:8645 #, c-format msgid "finding table check constraints" msgstr "поиÑк ограничений-проверок Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†" -#: pg_dump.c:8673 +#: pg_dump.c:8699 #, c-format msgid "expected %d check constraint on table \"%s\" but found %d" msgid_plural "expected %d check constraints on table \"%s\" but found %d" @@ -2108,54 +2108,54 @@ msgstr[1] "" msgstr[2] "" "ожидалоÑÑŒ %d ограничений-проверок Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\", но найдено: %d" -#: pg_dump.c:8677 +#: pg_dump.c:8703 #, c-format msgid "The system catalogs might be corrupted." msgstr "Возможно, повреждены ÑиÑтемные каталоги." -#: pg_dump.c:9367 +#: pg_dump.c:9393 #, c-format msgid "role with OID %u does not exist" msgstr "роль Ñ OID %u не ÑущеÑтвует" -#: pg_dump.c:9479 pg_dump.c:9508 +#: pg_dump.c:9505 pg_dump.c:9534 #, c-format msgid "unsupported pg_init_privs entry: %u %u %d" msgstr "Ð½ÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в pg_init_privs: %u %u %d" -#: pg_dump.c:10329 +#: pg_dump.c:10355 #, c-format msgid "typtype of data type \"%s\" appears to be invalid" msgstr "у типа данных \"%s\" по-видимому неправильный тип типа" # TO REVEIW -#: pg_dump.c:11904 +#: pg_dump.c:11930 #, c-format msgid "unrecognized provolatile value for function \"%s\"" msgstr "недопуÑтимое значение provolatile Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ \"%s\"" # TO REVEIW -#: pg_dump.c:11954 pg_dump.c:13817 +#: pg_dump.c:11980 pg_dump.c:13843 #, c-format msgid "unrecognized proparallel value for function \"%s\"" msgstr "недопуÑтимое значение proparallel Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ \"%s\"" -#: pg_dump.c:12086 pg_dump.c:12192 pg_dump.c:12199 +#: pg_dump.c:12112 pg_dump.c:12218 pg_dump.c:12225 #, c-format msgid "could not find function definition for function with OID %u" msgstr "не удалоÑÑŒ найти определение функции Ð´Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸ Ñ OID %u" -#: pg_dump.c:12125 +#: pg_dump.c:12151 #, c-format msgid "bogus value in pg_cast.castfunc or pg_cast.castmethod field" msgstr "неприемлемое значение в поле pg_cast.castfunc или pg_cast.castmethod" -#: pg_dump.c:12128 +#: pg_dump.c:12154 #, c-format msgid "bogus value in pg_cast.castmethod field" msgstr "неприемлемое значение в поле pg_cast.castmethod" -#: pg_dump.c:12218 +#: pg_dump.c:12244 #, c-format msgid "" "bogus transform definition, at least one of trffromsql and trftosql should " @@ -2164,62 +2164,62 @@ msgstr "" "неприемлемое определение Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ (trffromsql или trftosql должно быть " "ненулевым)" -#: pg_dump.c:12235 +#: pg_dump.c:12261 #, c-format msgid "bogus value in pg_transform.trffromsql field" msgstr "неприемлемое значение в поле pg_transform.trffromsql" -#: pg_dump.c:12256 +#: pg_dump.c:12282 #, c-format msgid "bogus value in pg_transform.trftosql field" msgstr "неприемлемое значение в поле pg_transform.trftosql" -#: pg_dump.c:12401 +#: pg_dump.c:12427 #, c-format msgid "postfix operators are not supported anymore (operator \"%s\")" msgstr "поÑтфикÑные операторы больше не поддерживаютÑÑ (оператор \"%s\")" -#: pg_dump.c:12571 +#: pg_dump.c:12597 #, c-format msgid "could not find operator with OID %s" msgstr "оператор Ñ OID %s не найден" -#: pg_dump.c:12639 +#: pg_dump.c:12665 #, c-format msgid "invalid type \"%c\" of access method \"%s\"" msgstr "неверный тип \"%c\" метода доÑтупа \"%s\"" -#: pg_dump.c:13293 pg_dump.c:13346 +#: pg_dump.c:13319 pg_dump.c:13372 #, c-format msgid "unrecognized collation provider: %s" msgstr "нераÑпознанный провайдер правил Ñортировки: %s" -#: pg_dump.c:13302 pg_dump.c:13311 pg_dump.c:13321 pg_dump.c:13330 +#: pg_dump.c:13328 pg_dump.c:13337 pg_dump.c:13347 pg_dump.c:13356 #, c-format msgid "invalid collation \"%s\"" msgstr "неверное правило Ñортировки \"%s\"" -#: pg_dump.c:13736 +#: pg_dump.c:13762 #, c-format msgid "unrecognized aggfinalmodify value for aggregate \"%s\"" msgstr "нераÑпознанное значение aggfinalmodify Ð´Ð»Ñ Ð°Ð³Ñ€ÐµÐ³Ð°Ñ‚Ð° \"%s\"" -#: pg_dump.c:13792 +#: pg_dump.c:13818 #, c-format msgid "unrecognized aggmfinalmodify value for aggregate \"%s\"" msgstr "нераÑпознанное значение aggmfinalmodify Ð´Ð»Ñ Ð°Ð³Ñ€ÐµÐ³Ð°Ñ‚Ð° \"%s\"" -#: pg_dump.c:14510 +#: pg_dump.c:14536 #, c-format msgid "unrecognized object type in default privileges: %d" msgstr "нераÑпознанный тип объекта в определении прав по умолчанию: %d" -#: pg_dump.c:14526 +#: pg_dump.c:14552 #, c-format msgid "could not parse default ACL list (%s)" msgstr "не удалоÑÑŒ разобрать ÑпиÑок прав по умолчанию (%s)" -#: pg_dump.c:14608 +#: pg_dump.c:14634 #, c-format msgid "" "could not parse initial ACL list (%s) or default (%s) for object \"%s\" (%s)" @@ -2227,20 +2227,20 @@ msgstr "" "не удалоÑÑŒ разобрать изначальный ÑпиÑок ACL (%s) или ACL по умолчанию (%s) " "Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° \"%s\" (%s)" -#: pg_dump.c:14633 +#: pg_dump.c:14659 #, c-format msgid "could not parse ACL list (%s) or default (%s) for object \"%s\" (%s)" msgstr "" "не удалоÑÑŒ разобрать ÑпиÑок ACL (%s) или ACL по умолчанию (%s) Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° " "\"%s\" (%s)" -#: pg_dump.c:15171 +#: pg_dump.c:15197 #, c-format msgid "query to obtain definition of view \"%s\" returned no data" msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° получение Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\" не возвратил данные" -#: pg_dump.c:15174 +#: pg_dump.c:15200 #, c-format msgid "" "query to obtain definition of view \"%s\" returned more than one definition" @@ -2248,49 +2248,49 @@ msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° получение Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\" возвратил неÑколько " "определений" -#: pg_dump.c:15181 +#: pg_dump.c:15207 #, c-format msgid "definition of view \"%s\" appears to be empty (length zero)" msgstr "определение предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ \"%s\" пуÑтое (длина равна нулю)" -#: pg_dump.c:15265 +#: pg_dump.c:15291 #, c-format msgid "WITH OIDS is not supported anymore (table \"%s\")" msgstr "ÑвойÑтво WITH OIDS больше не поддерживаетÑÑ (таблица \"%s\")" -#: pg_dump.c:16194 +#: pg_dump.c:16220 #, c-format msgid "invalid column number %d for table \"%s\"" msgstr "неверный номер Ñтолбца %d Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\"" -#: pg_dump.c:16272 +#: pg_dump.c:16298 #, c-format msgid "could not parse index statistic columns" msgstr "не удалоÑÑŒ разобрать Ñтолбцы ÑтатиÑтики в индекÑе" -#: pg_dump.c:16274 +#: pg_dump.c:16300 #, c-format msgid "could not parse index statistic values" msgstr "не удалоÑÑŒ разобрать Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ ÑтатиÑтики в индекÑе" -#: pg_dump.c:16276 +#: pg_dump.c:16302 #, c-format msgid "mismatched number of columns and values for index statistics" msgstr "" "Ñтолбцы, задающие ÑтатиÑтику индекÑа, не ÑоответÑтвуют значениÑм по " "количеÑтву" -#: pg_dump.c:16494 +#: pg_dump.c:16520 #, c-format msgid "missing index for constraint \"%s\"" msgstr "отÑутÑтвует Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð»Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ \"%s\"" -#: pg_dump.c:16722 +#: pg_dump.c:16748 #, c-format msgid "unrecognized constraint type: %c" msgstr "нераÑпознанный тип ограничениÑ: %c" -#: pg_dump.c:16823 pg_dump.c:17052 +#: pg_dump.c:16849 pg_dump.c:17078 #, c-format msgid "query to get data of sequence \"%s\" returned %d row (expected 1)" msgid_plural "" @@ -2305,22 +2305,22 @@ msgstr[2] "" "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° получение данных поÑледовательноÑти \"%s\" вернул %d Ñтрок " "(ожидалаÑÑŒ 1)" -#: pg_dump.c:16855 +#: pg_dump.c:16881 #, c-format msgid "unrecognized sequence type: %s" msgstr "нераÑпознанный тип поÑледовательноÑти: %s" -#: pg_dump.c:17144 +#: pg_dump.c:17170 #, c-format msgid "unexpected tgtype value: %d" msgstr "неожиданное значение tgtype: %d" -#: pg_dump.c:17216 +#: pg_dump.c:17242 #, c-format msgid "invalid argument string (%s) for trigger \"%s\" on table \"%s\"" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ñтрока аргументов (%s) Ð´Ð»Ñ Ñ‚Ñ€Ð¸Ð³Ð³ÐµÑ€Ð° \"%s\" таблицы \"%s\"" -#: pg_dump.c:17485 +#: pg_dump.c:17511 #, c-format msgid "" "query to get rule \"%s\" for table \"%s\" failed: wrong number of rows " @@ -2329,27 +2329,27 @@ msgstr "" "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° получение правила \"%s\" Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ \"%s\" возвратил неверное " "чиÑло Ñтрок" -#: pg_dump.c:17638 +#: pg_dump.c:17664 #, c-format msgid "could not find referenced extension %u" msgstr "не удалоÑÑŒ найти упомÑнутое раÑширение %u" -#: pg_dump.c:17728 +#: pg_dump.c:17754 #, c-format msgid "mismatched number of configurations and conditions for extension" msgstr "конфигурации раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð½Ðµ ÑоответÑтвуют уÑловиÑм по количеÑтву" -#: pg_dump.c:17860 +#: pg_dump.c:17886 #, c-format msgid "reading dependency data" msgstr "чтение информации о завиÑимоÑÑ‚ÑÑ…" -#: pg_dump.c:17946 +#: pg_dump.c:17972 #, c-format msgid "no referencing object %u %u" msgstr "нет подчинённого объекта %u %u" -#: pg_dump.c:17957 +#: pg_dump.c:17983 #, c-format msgid "no referenced object %u %u" msgstr "нет вышеÑтоÑщего объекта %u %u" diff --git a/src/bin/pg_dump/t/002_pg_dump.pl b/src/bin/pg_dump/t/002_pg_dump.pl index 6006276..d012b74 100644 --- a/src/bin/pg_dump/t/002_pg_dump.pl +++ b/src/bin/pg_dump/t/002_pg_dump.pl @@ -3136,13 +3136,13 @@ my %tests = ( 'CREATE STATISTICS extended_stats_no_options' => { create_order => 97, create_sql => 'CREATE STATISTICS dump_test.test_ext_stats_no_options - ON col1, col2 FROM dump_test.test_fifth_table', + ON col1, col2 FROM dump_test.test_table', regexp => qr/^ - \QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM dump_test.test_fifth_table;\E + \QCREATE STATISTICS dump_test.test_ext_stats_no_options ON col1, col2 FROM dump_test.test_table;\E /xms, like => { %full_runs, %dump_test_schema_runs, section_post_data => 1, }, - unlike => { exclude_dump_test_schema => 1, }, + unlike => { exclude_dump_test_schema => 1, exclude_test_table => 1, }, }, 'CREATE STATISTICS extended_stats_options' => { diff --git a/src/bin/pg_rewind/po/ru.po b/src/bin/pg_rewind/po/ru.po index f41d400..4c95c7c 100644 --- a/src/bin/pg_rewind/po/ru.po +++ b/src/bin/pg_rewind/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_rewind (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:09+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2023-08-30 15:22+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -904,59 +904,59 @@ msgid "Timeline IDs must be less than child timeline's ID." msgstr "" "Идентификаторы линий времени должны быть меньше идентификатора линии-потомка." -#: xlogreader.c:592 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "неверное Ñмещение запиÑи в позиции %X/%X" -#: xlogreader.c:600 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "в позиции %X/%X запрошено продолжение запиÑи" -#: xlogreader.c:641 xlogreader.c:1106 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи в позиции %X/%X: ожидалоÑÑŒ %u, получено %u" -#: xlogreader.c:730 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: xlogreader.c:743 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° contrecord: %u (ожидалаÑÑŒ %lld) в позиции %X/%X" -#: xlogreader.c:1114 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера реÑурÑов %u в позиции %X/%X" -#: xlogreader.c:1127 xlogreader.c:1143 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запиÑÑŒ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð¹ ÑÑылкой назад %X/%X в позиции %X/%X" -#: xlogreader.c:1181 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма данных менеджера реÑурÑов в запиÑи в позиции " "%X/%X" -#: xlogreader.c:1218 +#: xlogreader.c:1246 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "неверное магичеÑкое чиÑло %04X в Ñегменте журнала %s, Ñмещение %u" -#: xlogreader.c:1232 xlogreader.c:1273 +#: xlogreader.c:1260 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "неверные информационные биты %04X в Ñегменте журнала %s, Ñмещение %u" -#: xlogreader.c:1247 +#: xlogreader.c:1275 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -965,7 +965,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: в нём указан идентификатор ÑиÑтемы БД " "%llu, а идентификатор ÑиÑтемы pg_control: %llu" -#: xlogreader.c:1255 +#: xlogreader.c:1283 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -974,7 +974,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный размер Ñегмента в заголовке " "Ñтраницы" -#: xlogreader.c:1261 +#: xlogreader.c:1289 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -983,35 +983,35 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "Ñтраницы" -#: xlogreader.c:1292 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неожиданный pageaddr %X/%X в Ñегменте журнала %s, Ñмещение %u" -#: xlogreader.c:1317 +#: xlogreader.c:1345 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "" "нарушение поÑледовательноÑти ID линии времени %u (поÑле %u) в Ñегменте " "журнала %s, Ñмещение %u" -#: xlogreader.c:1722 +#: xlogreader.c:1750 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порÑдку в позиции %X/%X" -#: xlogreader.c:1746 +#: xlogreader.c:1774 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA уÑтановлен, но данных в позиции %X/%X нет" -#: xlogreader.c:1753 +#: xlogreader.c:1781 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "" "BKPBLOCK_HAS_DATA не уÑтановлен, но длина данных равна %u в позиции %X/%X" -#: xlogreader.c:1789 +#: xlogreader.c:1817 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -1020,21 +1020,21 @@ msgstr "" "BKPIMAGE_HAS_HOLE уÑтановлен, но Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка заданы Ñмещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: xlogreader.c:1805 +#: xlogreader.c:1833 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "" "BKPIMAGE_HAS_HOLE не уÑтановлен, но Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка заданы Ñмещение %u и длина " "%u в позиции %X/%X" -#: xlogreader.c:1819 +#: xlogreader.c:1847 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED уÑтановлен, но длина образа блока равна %u в позиции %X/" "%X" -#: xlogreader.c:1834 +#: xlogreader.c:1862 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -1043,41 +1043,41 @@ msgstr "" "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не уÑтановлены, но длина образа " "блока равна %u в позиции %X/%X" -#: xlogreader.c:1850 +#: xlogreader.c:1878 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL уÑтановлен, но предыдущее значение не задано в позиции %X/" "%X" -#: xlogreader.c:1862 +#: xlogreader.c:1890 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: xlogreader.c:1929 +#: xlogreader.c:1957 #, c-format msgid "record with invalid length at %X/%X" msgstr "запиÑÑŒ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð¹ длиной в позиции %X/%X" -#: xlogreader.c:1954 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не удалоÑÑŒ найти копию блока Ñ ID %d в запиÑи журнала WAL" -#: xlogreader.c:2038 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ неверным блоком %d" -#: xlogreader.c:2045 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ ÑоÑтоÑнием, блок %d" -#: xlogreader.c:2072 xlogreader.c:2089 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -1086,7 +1086,7 @@ msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X, Ñжатый методом %s, который не " "поддерживаетÑÑ Ñтой Ñборкой, блок %d" -#: xlogreader.c:2098 +#: xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" @@ -1094,7 +1094,7 @@ msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X, Ñжатый неизвеÑтным методом, " "блок %d" -#: xlogreader.c:2106 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не удалоÑÑŒ развернуть образ в позиции %X/%X, блок %d" diff --git a/src/bin/pg_rewind/t/003_extrafiles.pl b/src/bin/pg_rewind/t/003_extrafiles.pl index b1c47ea..100c212 100644 --- a/src/bin/pg_rewind/t/003_extrafiles.pl +++ b/src/bin/pg_rewind/t/003_extrafiles.pl @@ -78,6 +78,19 @@ sub run_test }, $test_primary_datadir); @paths = sort @paths; + + # File::Find converts backslashes to slashes in the newer Perl + # versions. To support all Perl versions, do the same conversion + # for Windows before comparing the paths. + if ($windows_os) + { + for my $filename (@paths) + { + $filename =~ s{\\}{/}g; + } + $test_primary_datadir =~ s{\\}{/}g; + } + is_deeply( \@paths, [ diff --git a/src/bin/pg_upgrade/po/ru.po b/src/bin/pg_upgrade/po/ru.po index 4eeef71..cd50ed2 100644 --- a/src/bin/pg_upgrade/po/ru.po +++ b/src/bin/pg_upgrade/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_upgrade (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:09+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2023-11-03 09:24+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -273,8 +273,8 @@ msgstr "" "pg_database.datallowconn должно быть false\n" #: check.c:785 check.c:910 check.c:1012 check.c:1138 check.c:1219 check.c:1278 -#: check.c:1339 check.c:1404 check.c:1523 function.c:187 version.c:192 -#: version.c:232 version.c:378 +#: check.c:1339 check.c:1373 check.c:1404 check.c:1523 function.c:187 +#: version.c:192 version.c:232 version.c:378 #, c-format msgid "fatal\n" msgstr "Ñбой\n" @@ -472,11 +472,6 @@ msgstr "" msgid "Checking for removed \"%s\" data type in user tables" msgstr "Проверка удалённого типа данных \"%s\" в пользовательÑких таблицах" -#: check.c:1373 -#, c-format -msgid "fatal" -msgstr "Ñбой" - #: check.c:1374 #, c-format msgid "" @@ -2100,6 +2095,10 @@ msgstr "" "Ñти раÑширениÑ.\n" "\n" +#, c-format +#~ msgid "fatal" +#~ msgstr "Ñбой" + #~ msgid "" #~ "When checking a pre-PG 9.1 live old server, you must specify the old " #~ "server's port number.\n" diff --git a/src/bin/pg_upgrade/po/uk.po b/src/bin/pg_upgrade/po/uk.po index 8710602..eefdc2f 100644 --- a/src/bin/pg_upgrade/po/uk.po +++ b/src/bin/pg_upgrade/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:49+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2023-12-17 22:33+0000\n" +"PO-Revision-Date: 2023-12-18 17:41\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -17,28 +17,28 @@ msgstr "" "X-Crowdin-File: /REL_15_STABLE/pg_upgrade.pot\n" "X-Crowdin-File-ID: 916\n" -#: check.c:72 +#: check.c:75 #, c-format msgid "Performing Consistency Checks on Old Live Server\n" "------------------------------------------------\n" msgstr "Перевірка ціліÑтноÑÑ‚Ñ– на Ñтарому працюючому Ñервері\n" "------------------------------------------------\n" -#: check.c:78 +#: check.c:81 #, c-format msgid "Performing Consistency Checks\n" "-----------------------------\n" msgstr "ÐŸÑ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€Ð¾Ðº ціліÑтноÑÑ‚Ñ–\n" "-----------------------------\n" -#: check.c:218 +#: check.c:231 #, c-format msgid "\n" "*Clusters are compatible*\n" msgstr "\n" "*КлаÑтери ÑуміÑні*\n" -#: check.c:226 +#: check.c:239 #, c-format msgid "\n" "If pg_upgrade fails after this point, you must re-initdb the\n" @@ -47,7 +47,7 @@ msgstr "\n" "Якщо робота pg_upgrade піÑÐ»Ñ Ñ†Ñ–Ñ”Ñ— точки перерветьÑÑ, вам потрібно буде заново виконати initdb \n" "Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ клаÑтера, перед продовженнÑм.\n" -#: check.c:267 +#: check.c:280 #, c-format msgid "Optimizer statistics are not transferred by pg_upgrade.\n" "Once you start the new server, consider running:\n" @@ -56,14 +56,14 @@ msgstr "СтатиÑтика оптимізатора не передаєтьÑÑ "ПіÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку нового Ñерверу, розглÑньте можливіÑÑ‚ÑŒ запуÑку:\n" " %s/vacuumdb %s--all --analyze-in-stages\n\n" -#: check.c:273 +#: check.c:286 #, c-format msgid "Running this script will delete the old cluster's data files:\n" " %s\n" msgstr "При запуÑку цього Ñкрипту файли даних Ñтарого клаÑтера будуть видалені:\n" " %s\n" -#: check.c:278 +#: check.c:291 #, c-format msgid "Could not create a script to delete the old cluster's data files\n" "because user-defined tablespaces or the new cluster's data directory\n" @@ -74,150 +74,150 @@ msgstr "Ðе вдалоÑÑ Ñтворити Ñкрипт Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð "проÑтори або каталог даних нового клаÑтера. ВміÑÑ‚ Ñтарого клаÑтера\n" "треба буде видалити вручну.\n" -#: check.c:290 +#: check.c:303 #, c-format msgid "Checking cluster versions" msgstr "Перевірка верÑій клаÑтерів" -#: check.c:302 +#: check.c:315 #, c-format msgid "This utility can only upgrade from PostgreSQL version %s and later.\n" msgstr "Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° може виконувати Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ з верÑÑ–Ñ— PostgreSQL %s Ñ– новіше.\n" -#: check.c:307 +#: check.c:320 #, c-format msgid "This utility can only upgrade to PostgreSQL version %s.\n" msgstr "Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° може тільки підвищувати верÑÑ–ÑŽ PostgreSQL до %s.\n" -#: check.c:316 +#: check.c:329 #, c-format msgid "This utility cannot be used to downgrade to older major PostgreSQL versions.\n" msgstr "Ð¦Ñ ÑƒÑ‚Ð¸Ð»Ñ–Ñ‚Ð° не може не може викориÑтовуватиÑÑŒ щоб понижувати верÑÑ–ÑŽ до більш Ñтарих оÑновних верÑій PostgreSQL.\n" -#: check.c:321 +#: check.c:334 #, c-format msgid "Old cluster data and binary directories are from different major versions.\n" msgstr "Каталог даних Ñ– двійковий каталог Ñтарого клаÑтера з різних оÑновних верÑій.\n" -#: check.c:324 +#: check.c:337 #, c-format msgid "New cluster data and binary directories are from different major versions.\n" msgstr "Каталог даних Ñ– двійковий каталог нового клаÑтера з різних оÑновних верÑій.\n" -#: check.c:339 +#: check.c:352 #, c-format msgid "When checking a live server, the old and new port numbers must be different.\n" msgstr "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ñ–Ñ€ÐºÐ¸ працюючого Ñервера, Ñтарий Ñ– новий номер порта повинні бути різними.\n" -#: check.c:354 +#: check.c:367 #, c-format msgid "encodings for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних \"%s\" не збігаютьÑÑ: Ñтаре \"%s\", нове \"%s\"\n" -#: check.c:359 +#: check.c:372 #, c-format msgid "lc_collate values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ lc_collate Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних \"%s\" не збігаютьÑÑ: Ñтаре \"%s\", нове \"%s\"\n" -#: check.c:362 +#: check.c:375 #, c-format msgid "lc_ctype values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ lc_ctype Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних \"%s\" не збігаютьÑÑ: Ñтаре \"%s\", нове \"%s\"\n" -#: check.c:365 +#: check.c:378 #, c-format msgid "locale providers for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "поÑтачальники локалей Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних \"%s\" не збігаютьÑÑ: Ñтарий \"%s\", новий \"%s\"\n" -#: check.c:372 +#: check.c:385 #, c-format msgid "ICU locale values for database \"%s\" do not match: old \"%s\", new \"%s\"\n" msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð»Ð¾ÐºÐ°Ð»Ñ– ICU Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних \"%s\" не збігаютьÑÑ: Ñтарий \"%s\", новий \"%s\n" -#: check.c:447 +#: check.c:460 #, c-format msgid "New cluster database \"%s\" is not empty: found relation \"%s.%s\"\n" msgstr "Ðовий клаÑтер бази даних \"%s\" не порожній: знайдено Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ \"%s.%s\"\n" -#: check.c:499 +#: check.c:512 #, c-format msgid "Checking for new cluster tablespace directories" msgstr "Перевірка каталогів табличних проÑторів клаÑтера" -#: check.c:510 +#: check.c:523 #, c-format msgid "new cluster tablespace directory already exists: \"%s\"\n" msgstr "каталог нового клаÑтерного табличного проÑтору вже Ñ–Ñнує: \"%s\"\n" -#: check.c:543 +#: check.c:556 #, c-format msgid "\n" "WARNING: new data directory should not be inside the old data directory, i.e. %s\n" msgstr "\n" "ПОПЕРЕДЖЕÐÐЯ: новий каталог даних не повинен бути вÑередині Ñтарого каталогу даних, наприклад %s\n" -#: check.c:567 +#: check.c:580 #, c-format msgid "\n" "WARNING: user-defined tablespace locations should not be inside the data directory, i.e. %s\n" msgstr "\n" "ПОПЕРЕДЖЕÐÐЯ: кориÑтувацькі Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ‡Ð½Ð¸Ñ… проÑторів не повинні бути вÑередині каталогу даних, наприклад %s\n" -#: check.c:577 +#: check.c:590 #, c-format msgid "Creating script to delete old cluster" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñкрипту Ð´Ð»Ñ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ñтарого клаÑтеру" -#: check.c:580 check.c:755 check.c:875 check.c:974 check.c:1105 check.c:1184 -#: check.c:1447 file.c:338 function.c:165 option.c:465 version.c:116 -#: version.c:288 version.c:423 +#: check.c:593 check.c:768 check.c:888 check.c:987 check.c:1118 check.c:1197 +#: check.c:1500 file.c:338 function.c:165 option.c:465 version.c:116 +#: version.c:292 version.c:429 #, c-format msgid "could not open file \"%s\": %s\n" msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ файл \"%s\": %s\n" -#: check.c:631 +#: check.c:644 #, c-format msgid "could not add execute permission to file \"%s\": %s\n" msgstr "не вдалоÑÑ Ð´Ð¾Ð´Ð°Ñ‚Ð¸ право Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñƒ \"%s\": %s\n" -#: check.c:651 +#: check.c:664 #, c-format msgid "Checking database user is the install user" msgstr "Перевірка, чи Ñ” кориÑтувач бази даних Ñтартовим кориÑтувачем" -#: check.c:667 +#: check.c:680 #, c-format msgid "database user \"%s\" is not the install user\n" msgstr "кориÑтувач бази даних \"%s\" не Ñ” Ñтартовим кориÑтувачем\n" -#: check.c:678 +#: check.c:691 #, c-format msgid "could not determine the number of users\n" msgstr "не вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ кількіÑÑ‚ÑŒ кориÑтувачів\n" -#: check.c:686 +#: check.c:699 #, c-format msgid "Only the install user can be defined in the new cluster.\n" msgstr "Ð’ новому клаÑтері може бути визначеним тільки Ñтартовий кориÑтувач.\n" -#: check.c:716 +#: check.c:729 #, c-format msgid "Checking database connection settings" msgstr "Перевірка параметрів Ð¿Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð´Ð¾ бази даних" -#: check.c:742 +#: check.c:755 #, c-format msgid "template0 must not allow connections, i.e. its pg_database.datallowconn must be false\n" msgstr "template0 не повинна дозволÑти підключеннÑ, тобто pg_database.datallowconn повинно бути false\n" -#: check.c:772 check.c:897 check.c:999 check.c:1125 check.c:1206 check.c:1263 -#: check.c:1322 check.c:1351 check.c:1470 function.c:187 version.c:190 -#: version.c:228 version.c:372 +#: check.c:785 check.c:910 check.c:1012 check.c:1138 check.c:1219 check.c:1278 +#: check.c:1339 check.c:1373 check.c:1404 check.c:1523 function.c:187 +#: version.c:192 version.c:232 version.c:378 #, c-format msgid "fatal\n" msgstr "збій\n" -#: check.c:773 +#: check.c:786 #, c-format msgid "All non-template0 databases must allow connections, i.e. their\n" "pg_database.datallowconn must be true. Your installation contains\n" @@ -234,27 +234,27 @@ msgstr "Ð’ÑÑ– бази даних, окрім template0, повинні дозР"СпиÑок баз даних з проблемою знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:798 +#: check.c:811 #, c-format msgid "Checking for prepared transactions" msgstr "Перевірка підготовлених транзакцій" -#: check.c:807 +#: check.c:820 #, c-format msgid "The source cluster contains prepared transactions\n" msgstr "Початковий клаÑтер міÑтить підготовлені транзакції\n" -#: check.c:809 +#: check.c:822 #, c-format msgid "The target cluster contains prepared transactions\n" msgstr "Цільовий клаÑтер міÑтить підготовлені транзакції\n" -#: check.c:835 +#: check.c:848 #, c-format msgid "Checking for contrib/isn with bigint-passing mismatch" msgstr "Перевірка невідповідноÑÑ‚Ñ– при передаванні bigint в contrib/isn" -#: check.c:898 +#: check.c:911 #, c-format msgid "Your installation contains \"contrib/isn\" functions which rely on the\n" "bigint data type. Your old and new clusters pass bigint values\n" @@ -266,12 +266,12 @@ msgid "Your installation contains \"contrib/isn\" functions which rely on the\n" msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить функції \"contrib/isn\", що викориÑтовують тип даних bigint. Старі та нові клаÑтери передають Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ bigint по-різному, тому цей клаÑтер наразі неможливо оновити. Ви можете вручну вивантажити бази даних зі Ñтарого клаÑтеру, що викориÑтовує заÑоби \"contrib/isn\", видалити Ñ—Ñ…, виконати оновленнÑ, а потім відновити Ñ—Ñ…. СпиÑок проблемних функцій подано у файлі:\n" " %s\n\n" -#: check.c:921 +#: check.c:934 #, c-format msgid "Checking for user-defined postfix operators" msgstr "Перевірка поÑтфікÑних операторів визначених кориÑтувачем" -#: check.c:1000 +#: check.c:1013 #, c-format msgid "Your installation contains user-defined postfix operators, which are not\n" "supported anymore. Consider dropping the postfix operators and replacing\n" @@ -283,12 +283,12 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить кориÑтувацькі "СпиÑок кориÑтувацьких поÑтфікÑних операторів знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:1024 +#: check.c:1037 #, c-format msgid "Checking for incompatible polymorphic functions" msgstr "Перевірка неÑуміÑних поліморфних функцій" -#: check.c:1126 +#: check.c:1139 #, c-format msgid "Your installation contains user-defined objects that refer to internal\n" "polymorphic functions with arguments of type \"anyarray\" or \"anyelement\".\n" @@ -305,12 +305,12 @@ msgstr "У вашій інÑталÑції міÑÑ‚ÑÑ‚ÑŒÑÑ ÐºÐ¾Ñ€Ð¸Ñтува "СпиÑок проблемних об'єктів знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:1151 +#: check.c:1164 #, c-format msgid "Checking for tables WITH OIDS" msgstr "Перевірка таблиць WITH OIDS" -#: check.c:1207 +#: check.c:1220 #, c-format msgid "Your installation contains tables declared WITH OIDS, which is not\n" "supported anymore. Consider removing the oid column using\n" @@ -322,12 +322,12 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить таблиці, ÑтворР"СпиÑок проблемних таблиць подано у файлі:\n" " %s\n\n" -#: check.c:1235 +#: check.c:1248 #, c-format msgid "Checking for system-defined composite types in user tables" msgstr "Перевірка Ñкладених типів визначених ÑиÑтемою у таблицÑÑ… кориÑтувача" -#: check.c:1264 +#: check.c:1279 #, c-format msgid "Your installation contains system-defined composite type(s) in user tables.\n" "These type OIDs are not stable across PostgreSQL versions,\n" @@ -341,12 +341,12 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить Ñкладені типи Ð "СпиÑок проблемних Ñтовпців знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:1292 +#: check.c:1307 #, c-format msgid "Checking for reg* data types in user tables" msgstr "Перевірка типів даних reg* в кориÑтувацьких таблицÑÑ…" -#: check.c:1323 +#: check.c:1340 #, c-format msgid "Your installation contains one of the reg* data types in user tables.\n" "These data types reference system OIDs that are not preserved by\n" @@ -360,12 +360,32 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить один з типів да "СпиÑок проблемних Ñтовпців знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:1345 +#: check.c:1364 +#, c-format +msgid "Checking for removed \"%s\" data type in user tables" +msgstr "Перевірка видаленого типу даних \"%s\" в кориÑтувацьких таблицÑÑ…" + +#: check.c:1374 +#, c-format +msgid "Your installation contains the \"%s\" data type in user tables.\n" +"The \"%s\" type has been removed in PostgreSQL version %s,\n" +"so this cluster cannot currently be upgraded. You can drop the\n" +"problem columns, or change them to another data type, and restart\n" +"the upgrade. A list of the problem columns is in the file:\n" +" %s\n\n" +msgstr "КориÑтувацькі таблиці у вашій інÑталÑції міÑÑ‚ÑÑ‚ÑŒ тип даних \"%s\".\n" +"Тип \"%s\" був видалений з верÑÑ–Ñ— PostgreSQL %s, тому цей клаÑтер \n" +"наразі не може бути оновлений. Ви можете видалите проблемні \n" +"Ñтовпці або змінити Ñ—Ñ… на інший тип даних, Ñ– перезапуÑтити\n" +"оновленнÑ. СпиÑок проблемних Ñтовпців Ñ” у файлі:\n" +" %s\n\n" + +#: check.c:1396 #, c-format msgid "Checking for incompatible \"jsonb\" data type" msgstr "Перевірка неÑуміÑного типу даних \"jsonb\"" -#: check.c:1352 +#: check.c:1405 #, c-format msgid "Your installation contains the \"jsonb\" data type in user tables.\n" "The internal format of \"jsonb\" changed during 9.4 beta so this\n" @@ -380,27 +400,27 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить тип даних \"jsonb\" "СпиÑок проблемних Ñтовпців знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:1374 +#: check.c:1427 #, c-format msgid "Checking for roles starting with \"pg_\"" msgstr "Перевірка ролей, Ñкі починаютьÑÑ Ð· \"pg_\"" -#: check.c:1384 +#: check.c:1437 #, c-format msgid "The source cluster contains roles starting with \"pg_\"\n" msgstr "Початковий клаÑтер міÑтить ролі, Ñкі починаютьÑÑ Ð· \"pg_\"\n" -#: check.c:1386 +#: check.c:1439 #, c-format msgid "The target cluster contains roles starting with \"pg_\"\n" msgstr "Цільовий клаÑтер міÑтить ролі, Ñкі починаютьÑÑ Ð· \"pg_\"\n" -#: check.c:1407 +#: check.c:1460 #, c-format msgid "Checking for user-defined encoding conversions" msgstr "Перевірка кориÑтувацьких Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½ÑŒ" -#: check.c:1471 +#: check.c:1524 #, c-format msgid "Your installation contains user-defined encoding conversions.\n" "The conversion function parameters changed in PostgreSQL version 14\n" @@ -415,17 +435,17 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить кориÑтувацькі "СпиÑок перетворень кодувань знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: check.c:1498 +#: check.c:1551 #, c-format msgid "failed to get the current locale\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ поточну локаль\n" -#: check.c:1507 +#: check.c:1560 #, c-format msgid "failed to get system locale name for \"%s\"\n" msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑиÑтемне ім'Ñ Ð»Ð¾ÐºÐ°Ð»Ñ– Ð´Ð»Ñ \"%s\"\n" -#: check.c:1513 +#: check.c:1566 #, c-format msgid "failed to restore old locale \"%s\"\n" msgstr "не вдалоÑÑ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð¸Ñ‚Ð¸ Ñтару локаль \"%s\"\n" @@ -492,194 +512,194 @@ msgstr "%d: проблема pg_resetwal\n" msgid "%d: controldata retrieval problem\n" msgstr "%d: проблема з отриманнÑм контрольних даних\n" -#: controldata.c:572 +#: controldata.c:571 #, c-format msgid "The source cluster lacks some required control information:\n" msgstr "У початковому клаÑтері відÑÑƒÑ‚Ð½Ñ Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð° контрольна інформаціÑ:\n" -#: controldata.c:575 +#: controldata.c:574 #, c-format msgid "The target cluster lacks some required control information:\n" msgstr "У цільовому клаÑтері відÑÑƒÑ‚Ð½Ñ Ð½ÐµÐ¾Ð±Ñ…Ñ–Ð´Ð½Ð° контрольна інформаціÑ:\n" -#: controldata.c:578 +#: controldata.c:577 #, c-format msgid " checkpoint next XID\n" msgstr " наÑтупний XID контрольної точки\n" -#: controldata.c:581 +#: controldata.c:580 #, c-format msgid " latest checkpoint next OID\n" msgstr " наÑтупний OID оÑтанньої контрольної точки\n" -#: controldata.c:584 +#: controldata.c:583 #, c-format msgid " latest checkpoint next MultiXactId\n" msgstr " наÑтупний MultiXactId оÑтанньої контрольної точки\n" -#: controldata.c:588 +#: controldata.c:587 #, c-format msgid " latest checkpoint oldest MultiXactId\n" msgstr " найÑтарший MultiXactId оÑтанньої контрольної точки\n" -#: controldata.c:591 +#: controldata.c:590 #, c-format msgid " latest checkpoint oldestXID\n" msgstr " найÑтарший oldestXID оÑтанньої контрольної точки\n" -#: controldata.c:594 +#: controldata.c:593 #, c-format msgid " latest checkpoint next MultiXactOffset\n" msgstr " наÑтупний MultiXactOffset оÑтанньої контрольної точки\n" -#: controldata.c:597 +#: controldata.c:596 #, c-format msgid " first WAL segment after reset\n" msgstr " перший Ñегмет WAL піÑÐ»Ñ ÑкиданнÑ\n" -#: controldata.c:600 +#: controldata.c:599 #, c-format msgid " float8 argument passing method\n" msgstr " метод передачі аргументу float8\n" -#: controldata.c:603 +#: controldata.c:602 #, c-format msgid " maximum alignment\n" msgstr " макÑимальне вирівнюваннÑ\n" -#: controldata.c:606 +#: controldata.c:605 #, c-format msgid " block size\n" msgstr " розмір блоку\n" -#: controldata.c:609 +#: controldata.c:608 #, c-format msgid " large relation segment size\n" msgstr " розмір Ñегменту великого відношеннÑ\n" -#: controldata.c:612 +#: controldata.c:611 #, c-format msgid " WAL block size\n" msgstr " розмір блоку WAL\n" -#: controldata.c:615 +#: controldata.c:614 #, c-format msgid " WAL segment size\n" msgstr " розмір Ñегменту WAL\n" -#: controldata.c:618 +#: controldata.c:617 #, c-format msgid " maximum identifier length\n" msgstr " макÑимальна довжина ідентифікатора\n" -#: controldata.c:621 +#: controldata.c:620 #, c-format msgid " maximum number of indexed columns\n" msgstr " макÑимальна кількіÑÑ‚ÑŒ індекÑованих Ñтовпців\n" -#: controldata.c:624 +#: controldata.c:623 #, c-format msgid " maximum TOAST chunk size\n" msgstr " макÑимальний розмір порції TOAST\n" -#: controldata.c:628 +#: controldata.c:627 #, c-format msgid " large-object chunk size\n" msgstr " розмір порції великого об'єкту\n" -#: controldata.c:631 +#: controldata.c:630 #, c-format msgid " dates/times are integers?\n" msgstr " дата/Ñ‡Ð°Ñ Ð¿Ñ€ÐµÐ´Ñтавлені цілими чиÑлами?\n" -#: controldata.c:635 +#: controldata.c:634 #, c-format msgid " data checksum version\n" msgstr " верÑÑ–Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… Ñум даних\n" -#: controldata.c:637 +#: controldata.c:636 #, c-format msgid "Cannot continue without required control information, terminating\n" msgstr "Ðе можна продовжити без необхідної контрольної інформації, завершеннÑ\n" -#: controldata.c:652 +#: controldata.c:651 #, c-format msgid "old and new pg_controldata alignments are invalid or do not match\n" "Likely one cluster is a 32-bit install, the other 64-bit\n" msgstr "Ñтаре Ñ– нове Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð² pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" "Ймовірно, один клаÑтер вÑтановлений у 32-бітній ÑиÑтемі, а інший - у 64-бітній\n" -#: controldata.c:656 +#: controldata.c:655 #, c-format msgid "old and new pg_controldata block sizes are invalid or do not match\n" msgstr "Ñтарий Ñ– новий розмір блоків в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:659 +#: controldata.c:658 #, c-format msgid "old and new pg_controldata maximum relation segment sizes are invalid or do not match\n" msgstr "Ñтарий Ñ– новий макÑимальний розмір Ñегментів відношень в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:662 +#: controldata.c:661 #, c-format msgid "old and new pg_controldata WAL block sizes are invalid or do not match\n" msgstr "Ñтарий Ñ– новий розмір блоків WAL в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:665 +#: controldata.c:664 #, c-format msgid "old and new pg_controldata WAL segment sizes are invalid or do not match\n" msgstr "Ñтарий Ñ– новий розмір Ñегментів WAL в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:668 +#: controldata.c:667 #, c-format msgid "old and new pg_controldata maximum identifier lengths are invalid or do not match\n" msgstr "Ñтара Ñ– нова макÑимальна довжина ідентифікаторів в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:671 +#: controldata.c:670 #, c-format msgid "old and new pg_controldata maximum indexed columns are invalid or do not match\n" msgstr "Ñтара Ñ– нова макÑимальна кількіÑÑ‚ÑŒ індекÑованих Ñтовпців в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:674 +#: controldata.c:673 #, c-format msgid "old and new pg_controldata maximum TOAST chunk sizes are invalid or do not match\n" msgstr "Ñтарий Ñ– новий макÑимальний розмір порції TOAST в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:679 +#: controldata.c:678 #, c-format msgid "old and new pg_controldata large-object chunk sizes are invalid or do not match\n" msgstr "Ñтарий Ñ– новий розмір порції великого об'єкту в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:682 +#: controldata.c:681 #, c-format msgid "old and new pg_controldata date/time storage types do not match\n" msgstr "Ñтарий Ñ– новий тип Ñховища дати/чаÑу в pg_controldata неприпуÑтимі або не збігаютьÑÑ\n" -#: controldata.c:695 +#: controldata.c:694 #, c-format msgid "old cluster does not use data checksums but the new one does\n" msgstr "Ñтарий клаÑтер не викориÑтовує контрольні Ñуми даних, але новий викориÑтовує\n" -#: controldata.c:698 +#: controldata.c:697 #, c-format msgid "old cluster uses data checksums but the new one does not\n" msgstr "Ñтарий клаÑтер викориÑтовує контрольні Ñуми даних, але новий не викориÑтовує\n" -#: controldata.c:700 +#: controldata.c:699 #, c-format msgid "old and new cluster pg_controldata checksum versions do not match\n" msgstr "Ñтара Ñ– нова верÑÑ–Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¸Ñ… Ñум клаÑтера в pg_controldata не збігаютьÑÑ\n" -#: controldata.c:711 +#: controldata.c:710 #, c-format msgid "Adding \".old\" suffix to old global/pg_control" msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑуфікÑа \".old\" до Ñтарого файла global/pg_control" -#: controldata.c:716 +#: controldata.c:715 #, c-format msgid "Unable to rename %s to %s.\n" msgstr "Ðе вдалоÑÑ Ð¿ÐµÑ€ÐµÐ¹Ð¼ÐµÐ½ÑƒÐ²Ð°Ñ‚Ð¸ %s на %s.\n" -#: controldata.c:719 +#: controldata.c:718 #, c-format msgid "\n" "If you want to start the old cluster, you will need to remove\n" @@ -957,17 +977,17 @@ msgid "\n" msgstr "\n" "цільові бази даних:\n" -#: info.c:605 +#: info.c:604 #, c-format msgid "Database: %s\n" msgstr "База даних: %s\n" -#: info.c:607 +#: info.c:606 #, c-format msgid "\n\n" msgstr "\n\n" -#: info.c:618 +#: info.c:617 #, c-format msgid "relname: %s.%s: reloid: %u reltblspace: %s\n" msgstr "ім'Ñ_відношеннÑ: %s.%s: oid_відношеннÑ: %u табл_проÑÑ‚Ñ–Ñ€: %s\n" @@ -1578,7 +1598,7 @@ msgstr "ok" msgid "Checking for incompatible \"line\" data type" msgstr "Перевірка неÑуміÑного типу даних \"line\"" -#: version.c:191 +#: version.c:193 #, c-format msgid "Your installation contains the \"line\" data type in user tables.\n" "This data type changed its internal and input/output format\n" @@ -1594,12 +1614,12 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить тип даних \"line\" "СпиÑок проблемних Ñтовпців знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: version.c:222 +#: version.c:224 #, c-format msgid "Checking for invalid \"unknown\" user columns" msgstr "Перевірка неприпуÑтимих кориÑтувацьких Ñтовпців \"unknown\"" -#: version.c:229 +#: version.c:233 #, c-format msgid "Your installation contains the \"unknown\" data type in user tables.\n" "This data type is no longer allowed in tables, so this\n" @@ -1614,17 +1634,17 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить \"unknown\" тип дани "СпиÑок проблемних Ñтовпців знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: version.c:253 +#: version.c:257 #, c-format msgid "Checking for hash indexes" msgstr "Перевірка геш-індекÑів" -#: version.c:331 +#: version.c:335 #, c-format msgid "warning" msgstr "попередженнÑ" -#: version.c:333 +#: version.c:337 #, c-format msgid "\n" "Your installation contains hash indexes. These indexes have different\n" @@ -1636,7 +1656,7 @@ msgstr "\n" "формати в Ñтарому Ñ– новому клаÑтерах, тож Ñ—Ñ… потрібно повторно індекÑувати\n" "за допомогою команди REINDEX. ПіÑÐ»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¼ буде надано інÑтрукції REINDEX.\n\n" -#: version.c:339 +#: version.c:343 #, c-format msgid "\n" "Your installation contains hash indexes. These indexes have different\n" @@ -1653,12 +1673,12 @@ msgstr "\n" "піÑÐ»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÑуперкориÑтувачем бази даних в psql, повторно Ñтворить\n" "вÑÑ– неприпуÑтимі індекÑи; до цього ніÑкі геш-індекÑи не будуть викориÑтовуватиÑÑŒ.\n\n" -#: version.c:365 +#: version.c:369 #, c-format msgid "Checking for invalid \"sql_identifier\" user columns" msgstr "Перевірка неприпуÑтимих кориÑтувацьких Ñтовпців \"sql_identifier\"" -#: version.c:373 +#: version.c:379 #, c-format msgid "Your installation contains the \"sql_identifier\" data type in user tables.\n" "The on-disk format for this data type has changed, so this\n" @@ -1673,17 +1693,17 @@ msgstr "Ваша інÑталÑÑ†Ñ–Ñ Ð¼Ñ–Ñтить \"sql_identifier\" тип Ð "СпиÑок проблемних Ñтовпців знаходитьÑÑ Ñƒ файлі:\n" " %s\n\n" -#: version.c:397 +#: version.c:403 #, c-format msgid "Checking for extension updates" msgstr "Перевірка оновлень розширеннÑ" -#: version.c:449 +#: version.c:455 #, c-format msgid "notice" msgstr "повідомленнÑ" -#: version.c:450 +#: version.c:456 #, c-format msgid "\n" "Your installation contains extensions that should be updated\n" diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 6b0f42c..ceca3ac 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -221,7 +221,7 @@ if (defined($ENV{oldinstall})) my $dump_data = slurp_file($dump1_file); - my $newregresssrc = "$srcdir/src/test/regress"; + my $newregresssrc = dirname($ENV{REGRESS_SHLIB}); foreach (@libpaths) { my $libpath = $_; @@ -364,15 +364,9 @@ push(@dump_command, '--extra-float-digits', '0') if ($oldnode->pg_version < 12); $newnode->command_ok(\@dump_command, 'dump after running pg_upgrade'); -# No need to apply filters on the dumps if working on the same version -# for the old and new nodes. -my $dump1_filtered = $dump1_file; -my $dump2_filtered = $dump2_file; -if ($oldnode->pg_version != $newnode->pg_version) -{ - $dump1_filtered = filter_dump(1, $oldnode->pg_version, $dump1_file); - $dump2_filtered = filter_dump(0, $oldnode->pg_version, $dump2_file); -} +# Filter the contents of the dumps. +my $dump1_filtered = filter_dump(1, $oldnode->pg_version, $dump1_file); +my $dump2_filtered = filter_dump(0, $oldnode->pg_version, $dump2_file); # Compare the two dumps, there should be no differences. my $compare_res = compare($dump1_filtered, $dump2_filtered); diff --git a/src/bin/pg_waldump/po/de.po b/src/bin/pg_waldump/po/de.po index 7e3e141..4b73d64 100644 --- a/src/bin/pg_waldump/po/de.po +++ b/src/bin/pg_waldump/po/de.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 15\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2022-09-26 04:48+0000\n" -"PO-Revision-Date: 2022-05-20 10:51+0200\n" +"PO-Revision-Date: 2023-11-08 21:52+0100\n" "Last-Translator: Peter Eisentraut <peter@eisentraut.org>\n" "Language-Team: German <pgsql-translators@postgresql.org>\n" "Language: de\n" @@ -265,12 +265,12 @@ msgstr "ungültiger Wert »%s« für Option %s" #: pg_waldump.c:858 #, c-format msgid "custom resource manager \"%s\" does not exist" -msgstr "Custom-Resouce-Manager »%s« existiert nicht" +msgstr "Custom-Resource-Manager »%s« existiert nicht" #: pg_waldump.c:879 #, c-format msgid "resource manager \"%s\" does not exist" -msgstr "Resouce-Manager »%s« existiert nicht" +msgstr "Resource-Manager »%s« existiert nicht" #: pg_waldump.c:894 #, c-format diff --git a/src/bin/pg_waldump/po/ru.po b/src/bin/pg_waldump/po/ru.po index 6d05882..7a0e293 100644 --- a/src/bin/pg_waldump/po/ru.po +++ b/src/bin/pg_waldump/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: pg_waldump (PostgreSQL) 10\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:09+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2023-08-30 15:41+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -409,59 +409,59 @@ msgstr "ошибка в запиÑи WAL в позиции %X/%X: %s" msgid "Try \"%s --help\" for more information." msgstr "Ð”Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации попробуйте \"%s --help\"." -#: xlogreader.c:592 +#: xlogreader.c:620 #, c-format msgid "invalid record offset at %X/%X" msgstr "неверное Ñмещение запиÑи в позиции %X/%X" -#: xlogreader.c:600 +#: xlogreader.c:628 #, c-format msgid "contrecord is requested by %X/%X" msgstr "в позиции %X/%X запрошено продолжение запиÑи" -#: xlogreader.c:641 xlogreader.c:1106 +#: xlogreader.c:669 xlogreader.c:1134 #, c-format msgid "invalid record length at %X/%X: wanted %u, got %u" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° запиÑи в позиции %X/%X: ожидалоÑÑŒ %u, получено %u" -#: xlogreader.c:730 +#: xlogreader.c:758 #, c-format msgid "there is no contrecord flag at %X/%X" msgstr "нет флага contrecord в позиции %X/%X" -#: xlogreader.c:743 +#: xlogreader.c:771 #, c-format msgid "invalid contrecord length %u (expected %lld) at %X/%X" msgstr "Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° contrecord: %u (ожидалаÑÑŒ %lld) в позиции %X/%X" -#: xlogreader.c:1114 +#: xlogreader.c:1142 #, c-format msgid "invalid resource manager ID %u at %X/%X" msgstr "неверный ID менеджера реÑурÑов %u в позиции %X/%X" -#: xlogreader.c:1127 xlogreader.c:1143 +#: xlogreader.c:1155 xlogreader.c:1171 #, c-format msgid "record with incorrect prev-link %X/%X at %X/%X" msgstr "запиÑÑŒ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð¹ ÑÑылкой назад %X/%X в позиции %X/%X" -#: xlogreader.c:1181 +#: xlogreader.c:1209 #, c-format msgid "incorrect resource manager data checksum in record at %X/%X" msgstr "" "Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма данных менеджера реÑурÑов в запиÑи в позиции " "%X/%X" -#: xlogreader.c:1218 +#: xlogreader.c:1246 #, c-format msgid "invalid magic number %04X in log segment %s, offset %u" msgstr "неверное магичеÑкое чиÑло %04X в Ñегменте журнала %s, Ñмещение %u" -#: xlogreader.c:1232 xlogreader.c:1273 +#: xlogreader.c:1260 xlogreader.c:1301 #, c-format msgid "invalid info bits %04X in log segment %s, offset %u" msgstr "неверные информационные биты %04X в Ñегменте журнала %s, Ñмещение %u" -#: xlogreader.c:1247 +#: xlogreader.c:1275 #, c-format msgid "" "WAL file is from different database system: WAL file database system " @@ -470,7 +470,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: в нём указан идентификатор ÑиÑтемы БД " "%llu, а идентификатор ÑиÑтемы pg_control: %llu" -#: xlogreader.c:1255 +#: xlogreader.c:1283 #, c-format msgid "" "WAL file is from different database system: incorrect segment size in page " @@ -479,7 +479,7 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный размер Ñегмента в заголовке " "Ñтраницы" -#: xlogreader.c:1261 +#: xlogreader.c:1289 #, c-format msgid "" "WAL file is from different database system: incorrect XLOG_BLCKSZ in page " @@ -488,35 +488,35 @@ msgstr "" "файл WAL принадлежит другой СУБД: некорректный XLOG_BLCKSZ в заголовке " "Ñтраницы" -#: xlogreader.c:1292 +#: xlogreader.c:1320 #, c-format msgid "unexpected pageaddr %X/%X in log segment %s, offset %u" msgstr "неожиданный pageaddr %X/%X в Ñегменте журнала %s, Ñмещение %u" -#: xlogreader.c:1317 +#: xlogreader.c:1345 #, c-format msgid "out-of-sequence timeline ID %u (after %u) in log segment %s, offset %u" msgstr "" "нарушение поÑледовательноÑти ID линии времени %u (поÑле %u) в Ñегменте " "журнала %s, Ñмещение %u" -#: xlogreader.c:1722 +#: xlogreader.c:1750 #, c-format msgid "out-of-order block_id %u at %X/%X" msgstr "идентификатор блока %u идёт не по порÑдку в позиции %X/%X" -#: xlogreader.c:1746 +#: xlogreader.c:1774 #, c-format msgid "BKPBLOCK_HAS_DATA set, but no data included at %X/%X" msgstr "BKPBLOCK_HAS_DATA уÑтановлен, но данных в позиции %X/%X нет" -#: xlogreader.c:1753 +#: xlogreader.c:1781 #, c-format msgid "BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X" msgstr "" "BKPBLOCK_HAS_DATA не уÑтановлен, но длина данных равна %u в позиции %X/%X" -#: xlogreader.c:1789 +#: xlogreader.c:1817 #, c-format msgid "" "BKPIMAGE_HAS_HOLE set, but hole offset %u length %u block image length %u at " @@ -525,21 +525,21 @@ msgstr "" "BKPIMAGE_HAS_HOLE уÑтановлен, но Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка заданы Ñмещение %u и длина %u " "при длине образа блока %u в позиции %X/%X" -#: xlogreader.c:1805 +#: xlogreader.c:1833 #, c-format msgid "BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X" msgstr "" "BKPIMAGE_HAS_HOLE не уÑтановлен, но Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑка заданы Ñмещение %u и длина " "%u в позиции %X/%X" -#: xlogreader.c:1819 +#: xlogreader.c:1847 #, c-format msgid "BKPIMAGE_COMPRESSED set, but block image length %u at %X/%X" msgstr "" "BKPIMAGE_COMPRESSED уÑтановлен, но длина образа блока равна %u в позиции %X/" "%X" -#: xlogreader.c:1834 +#: xlogreader.c:1862 #, c-format msgid "" "neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_COMPRESSED set, but block image " @@ -548,41 +548,41 @@ msgstr "" "ни BKPIMAGE_HAS_HOLE, ни BKPIMAGE_COMPRESSED не уÑтановлены, но длина образа " "блока равна %u в позиции %X/%X" -#: xlogreader.c:1850 +#: xlogreader.c:1878 #, c-format msgid "BKPBLOCK_SAME_REL set but no previous rel at %X/%X" msgstr "" "BKPBLOCK_SAME_REL уÑтановлен, но предыдущее значение не задано в позиции %X/" "%X" -#: xlogreader.c:1862 +#: xlogreader.c:1890 #, c-format msgid "invalid block_id %u at %X/%X" msgstr "неверный идентификатор блока %u в позиции %X/%X" -#: xlogreader.c:1929 +#: xlogreader.c:1957 #, c-format msgid "record with invalid length at %X/%X" msgstr "запиÑÑŒ Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ð¾Ð¹ длиной в позиции %X/%X" -#: xlogreader.c:1954 +#: xlogreader.c:1982 #, c-format msgid "could not locate backup block with ID %d in WAL record" msgstr "не удалоÑÑŒ найти копию блока Ñ ID %d в запиÑи журнала WAL" -#: xlogreader.c:2038 +#: xlogreader.c:2066 #, c-format msgid "could not restore image at %X/%X with invalid block %d specified" msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ неверным блоком %d" -#: xlogreader.c:2045 +#: xlogreader.c:2073 #, c-format msgid "could not restore image at %X/%X with invalid state, block %d" msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X Ñ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ ÑоÑтоÑнием, блок %d" -#: xlogreader.c:2072 xlogreader.c:2089 +#: xlogreader.c:2100 xlogreader.c:2117 #, c-format msgid "" "could not restore image at %X/%X compressed with %s not supported by build, " @@ -591,7 +591,7 @@ msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X, Ñжатый методом %s, который не " "поддерживаетÑÑ Ñтой Ñборкой, блок %d" -#: xlogreader.c:2098 +#: xlogreader.c:2126 #, c-format msgid "" "could not restore image at %X/%X compressed with unknown method, block %d" @@ -599,7 +599,7 @@ msgstr "" "не удалоÑÑŒ воÑÑтановить образ в позиции %X/%X, Ñжатый неизвеÑтным методом, " "блок %d" -#: xlogreader.c:2106 +#: xlogreader.c:2134 #, c-format msgid "could not decompress image at %X/%X, block %d" msgstr "не удалоÑÑŒ развернуть образ в позиции %X/%X, блок %d" diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index 895afcb..e5ee1a0 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -3778,10 +3778,21 @@ advanceConnectionState(TState *thread, CState *st, StatsData *agg) case CSTATE_START_COMMAND: command = sql_script[st->use_file].commands[st->command]; - /* Transition to script end processing if done */ + /* + * Transition to script end processing if done, but close up + * shop if a pipeline is open at this point. + */ if (command == NULL) { - st->state = CSTATE_END_TX; + if (PQpipelineStatus(st->con) == PQ_PIPELINE_OFF) + st->state = CSTATE_END_TX; + else + { + pg_log_error("client %d aborted: end of script reached with pipeline open", + st->id); + st->state = CSTATE_ABORTED; + } + break; } diff --git a/src/bin/pgbench/t/001_pgbench_with_server.pl b/src/bin/pgbench/t/001_pgbench_with_server.pl index 027c513..85eb5bc 100644 --- a/src/bin/pgbench/t/001_pgbench_with_server.pl +++ b/src/bin/pgbench/t/001_pgbench_with_server.pl @@ -841,9 +841,37 @@ select 1 \gset f } }); +# Try \startpipeline without \endpipeline in a single transaction +$node->pgbench( + '-t 1 -n -M extended', + 2, + [], + [qr{end of script reached with pipeline open}], + 'error: call \startpipeline without \endpipeline in a single transaction', + { + '001_pgbench_pipeline_5' => q{ +-- startpipeline only with single transaction +\startpipeline +} + }); + +# Try \startpipeline without \endpipeline +$node->pgbench( + '-t 2 -n -M extended', + 2, + [], + [qr{end of script reached with pipeline open}], + 'error: call \startpipeline without \endpipeline', + { + '001_pgbench_pipeline_6' => q{ +-- startpipeline only +\startpipeline +} + }); + # Working \startpipeline in prepared query mode with serializable $node->pgbench( - '-c4 -j2 -t 10 -n -M prepared', + '-c4 -t 10 -n -M prepared', 0, [ qr{type: .*/001_pgbench_pipeline_serializable}, diff --git a/src/bin/psql/po/ja.po b/src/bin/psql/po/ja.po index b707ff5..b07e77d 100644 --- a/src/bin/psql/po/ja.po +++ b/src/bin/psql/po/ja.po @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: psql (PostgreSQL 15)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" "POT-Creation-Date: 2023-02-06 15:59+0900\n" -"PO-Revision-Date: 2023-02-06 17:39+0900\n" +"PO-Revision-Date: 2023-11-22 10:50+0900\n" "Last-Translator: Kyotaro Horiguchi <horikyota.ntt@gmail.com>\n" "Language-Team: Japan PostgreSQL Users Group <jpug-doc@ml.postgresql.jp>\n" "Language: ja\n" @@ -161,7 +161,7 @@ msgstr "割り込ã¿\n" #: ../../fe_utils/print.c:3173 #, c-format msgid "Cannot add header to table content: column count of %d exceeded.\n" -msgstr "テーブルã®å†…容ã«ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’è¿½åŠ ã§ãã¾ã›ã‚“: 列数 %d ãŒåˆ¶é™å€¤ã‚’超ãˆã¦ã„ã¾ã™ã€‚\n" +msgstr "テーブルã®å†…容ã«ãƒ˜ãƒƒãƒ€ãƒ¼ã‚’è¿½åŠ ã§ãã¾ã›ã‚“: 列数ã®ä¸Šé™å€¤%dを超ãˆã¦ã„ã¾ã™ã€‚\n" #: ../../fe_utils/print.c:3213 #, c-format diff --git a/src/bin/psql/po/ru.po b/src/bin/psql/po/ru.po index 3026961..b8153a8 100644 --- a/src/bin/psql/po/ru.po +++ b/src/bin/psql/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: psql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-11-03 09:09+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2023-02-03 15:12+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -288,7 +288,7 @@ msgstr "" #: command.c:1317 command.c:2120 command.c:3306 command.c:3505 command.c:5603 #: common.c:181 common.c:230 common.c:399 common.c:1082 common.c:1100 #: common.c:1174 common.c:1281 common.c:1319 common.c:1407 common.c:1443 -#: copy.c:488 copy.c:722 help.c:66 large_obj.c:157 large_obj.c:192 +#: copy.c:488 copy.c:723 help.c:66 large_obj.c:157 large_obj.c:192 #: large_obj.c:254 startup.c:304 #, c-format msgid "%s" @@ -1019,11 +1019,11 @@ msgstr "" "Вводите данные Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, разделÑÑ Ñтроки переводом Ñтроки.\n" "Закончите ввод Ñтрокой '\\.' или Ñигналом EOF." -#: copy.c:684 +#: copy.c:685 msgid "aborted because of read failure" msgstr "прерывание из-за ошибки чтениÑ" -#: copy.c:718 +#: copy.c:719 msgid "trying to exit copy mode" msgstr "попытка выйти из режима копированиÑ" diff --git a/src/bin/scripts/po/uk.po b/src/bin/scripts/po/uk.po index 59346f8..b8c10b9 100644 --- a/src/bin/scripts/po/uk.po +++ b/src/bin/scripts/po/uk.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: postgresql\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2022-08-12 10:50+0000\n" -"PO-Revision-Date: 2022-09-13 11:52\n" +"POT-Creation-Date: 2023-12-17 22:34+0000\n" +"PO-Revision-Date: 2023-12-18 17:41\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -94,12 +94,22 @@ msgstr "неприпуÑтиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \"%s\" Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ msgid "%s must be in range %d..%d" msgstr "%s має бути в діапазоні %d..%d" -#: ../../fe_utils/parallel_slot.c:301 +#: ../../fe_utils/parallel_slot.c:319 #, c-format -msgid "too many jobs for this platform" -msgstr "занадто багато завдань Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— платформи" +msgid "too many jobs for this platform: %d" +msgstr "занадто багато завдань Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— платформи: %d" -#: ../../fe_utils/parallel_slot.c:519 +#: ../../fe_utils/parallel_slot.c:328 +#, c-format +msgid "socket file descriptor out of range for select(): %d" +msgstr "деÑкриптор файлу Ñокету поза діапазоном Ð´Ð»Ñ select(): %d" + +#: ../../fe_utils/parallel_slot.c:330 +#, c-format +msgid "Try fewer jobs." +msgstr "Спробуйте менше робочих завдань." + +#: ../../fe_utils/parallel_slot.c:552 #, c-format msgid "processing of database \"%s\" failed: %s" msgstr "обробка бази даних \"%s\" не вдалаÑÑŒ: %s" @@ -177,130 +187,130 @@ msgstr "клаÑтеризувати таблицю \"%s\" у базі Ð´Ð°Ð½Ð¸Ñ msgid "clustering of database \"%s\" failed: %s" msgstr "клаÑтеризувати базу даних \"%s\" не вдалоÑÑ: %s" -#: clusterdb.c:246 +#: clusterdb.c:248 #, c-format msgid "%s: clustering database \"%s\"\n" msgstr "%s: клаÑÑ‚ÐµÑ€Ð¸Ð·Ð°Ñ†Ñ–Ñ Ð±Ð°Ð·Ð¸ даних \"%s\"\n" -#: clusterdb.c:262 +#: clusterdb.c:264 #, c-format msgid "%s clusters all previously clustered tables in a database.\n\n" msgstr "%s клаÑÑ‚ÐµÑ€Ð¸Ð·Ð°Ñ†Ñ–Ñ ÑƒÑÑ–Ñ… попередньо клаÑтеризованих таблиць в базі даних.\n\n" -#: clusterdb.c:263 createdb.c:283 createuser.c:346 dropdb.c:172 dropuser.c:170 -#: pg_isready.c:226 reindexdb.c:760 vacuumdb.c:964 +#: clusterdb.c:265 createdb.c:281 createuser.c:346 dropdb.c:172 dropuser.c:170 +#: pg_isready.c:226 reindexdb.c:762 vacuumdb.c:964 #, c-format msgid "Usage:\n" msgstr "ВикориÑтаннÑ:\n" -#: clusterdb.c:264 reindexdb.c:761 vacuumdb.c:965 +#: clusterdb.c:266 reindexdb.c:763 vacuumdb.c:965 #, c-format msgid " %s [OPTION]... [DBNAME]\n" msgstr " %s [OPTION]... [DBNAME]\n" -#: clusterdb.c:265 createdb.c:285 createuser.c:348 dropdb.c:174 dropuser.c:172 -#: pg_isready.c:229 reindexdb.c:762 vacuumdb.c:966 +#: clusterdb.c:267 createdb.c:283 createuser.c:348 dropdb.c:174 dropuser.c:172 +#: pg_isready.c:229 reindexdb.c:764 vacuumdb.c:966 #, c-format msgid "\n" "Options:\n" msgstr "\n" "Параметри:\n" -#: clusterdb.c:266 +#: clusterdb.c:268 #, c-format msgid " -a, --all cluster all databases\n" msgstr " -a, --all клаÑÑ‚ÐµÑ€Ð¸Ð·Ð°Ñ†Ñ–Ñ ÑƒÑÑ–Ñ… баз даних\n" -#: clusterdb.c:267 +#: clusterdb.c:269 #, c-format msgid " -d, --dbname=DBNAME database to cluster\n" msgstr " -d, --dbname=ІМ'Я_БД база даних Ð´Ð»Ñ ÐºÐ»Ð°Ñтеризації\n" -#: clusterdb.c:268 createuser.c:352 dropdb.c:175 dropuser.c:173 +#: clusterdb.c:270 createuser.c:352 dropdb.c:175 dropuser.c:173 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo показати команди, надіÑлані Ñерверу\n" -#: clusterdb.c:269 +#: clusterdb.c:271 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не виводити жодних повідомлень\n" -#: clusterdb.c:270 +#: clusterdb.c:272 #, c-format msgid " -t, --table=TABLE cluster specific table(s) only\n" msgstr " -t, --table=ТÐБЛИЦЯ клаÑтеризувати тільки вказані таблиці\n" -#: clusterdb.c:271 +#: clusterdb.c:273 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose виводити багато інформації\n" -#: clusterdb.c:272 createuser.c:364 dropdb.c:178 dropuser.c:176 +#: clusterdb.c:274 createuser.c:364 dropdb.c:178 dropuser.c:176 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивеÑти інформацію про верÑÑ–ÑŽ Ñ– вийти\n" -#: clusterdb.c:273 createuser.c:369 dropdb.c:180 dropuser.c:178 +#: clusterdb.c:275 createuser.c:369 dropdb.c:180 dropuser.c:178 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: clusterdb.c:274 createdb.c:300 createuser.c:370 dropdb.c:181 dropuser.c:179 -#: pg_isready.c:235 reindexdb.c:777 vacuumdb.c:991 +#: clusterdb.c:276 createdb.c:298 createuser.c:370 dropdb.c:181 dropuser.c:179 +#: pg_isready.c:235 reindexdb.c:779 vacuumdb.c:991 #, c-format msgid "\n" "Connection options:\n" msgstr "\n" "ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·'єднаннÑ:\n" -#: clusterdb.c:275 createuser.c:371 dropdb.c:182 dropuser.c:180 vacuumdb.c:992 +#: clusterdb.c:277 createuser.c:371 dropdb.c:182 dropuser.c:180 vacuumdb.c:992 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=HOSTNAME хоÑÑ‚ Ñервера бази даних або каталог Ñокетів\n" -#: clusterdb.c:276 createuser.c:372 dropdb.c:183 dropuser.c:181 vacuumdb.c:993 +#: clusterdb.c:278 createuser.c:372 dropdb.c:183 dropuser.c:181 vacuumdb.c:993 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=PORT порт Ñервера бази даних\n" -#: clusterdb.c:277 dropdb.c:184 vacuumdb.c:994 +#: clusterdb.c:279 dropdb.c:184 vacuumdb.c:994 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ІМ'Я_КОРИСТУВÐЧРім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Ð´Ð»Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñервером\n" -#: clusterdb.c:278 createuser.c:374 dropdb.c:185 dropuser.c:183 vacuumdb.c:995 +#: clusterdb.c:280 createuser.c:374 dropdb.c:185 dropuser.c:183 vacuumdb.c:995 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: clusterdb.c:279 createuser.c:375 dropdb.c:186 dropuser.c:184 vacuumdb.c:996 +#: clusterdb.c:281 createuser.c:375 dropdb.c:186 dropuser.c:184 vacuumdb.c:996 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запроÑити пароль\n" -#: clusterdb.c:280 dropdb.c:187 vacuumdb.c:997 +#: clusterdb.c:282 dropdb.c:187 vacuumdb.c:997 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME альтернативна бази даних Ð´Ð»Ñ Ð¾Ð±ÑлуговуваннÑ\n" -#: clusterdb.c:281 +#: clusterdb.c:283 #, c-format msgid "\n" "Read the description of the SQL command CLUSTER for details.\n" msgstr "\n" "Ð”Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹ читайте Ð¾Ð¿Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ SQL CLUSTER.\n" -#: clusterdb.c:282 createdb.c:308 createuser.c:376 dropdb.c:188 dropuser.c:185 -#: pg_isready.c:240 reindexdb.c:785 vacuumdb.c:999 +#: clusterdb.c:284 createdb.c:306 createuser.c:376 dropdb.c:188 dropuser.c:185 +#: pg_isready.c:240 reindexdb.c:787 vacuumdb.c:999 #, c-format msgid "\n" "Report bugs to <%s>.\n" msgstr "\n" "ПовідомлÑти про помилки на <%s>.\n" -#: clusterdb.c:283 createdb.c:309 createuser.c:377 dropdb.c:189 dropuser.c:186 -#: pg_isready.c:241 reindexdb.c:786 vacuumdb.c:1000 +#: clusterdb.c:285 createdb.c:307 createuser.c:377 dropdb.c:189 dropuser.c:186 +#: pg_isready.c:241 reindexdb.c:788 vacuumdb.c:1000 #, c-format msgid "%s home page: <%s>\n" msgstr "Ð”Ð¾Ð¼Ð°ÑˆÐ½Ñ Ñторінка %s: <%s>\n" @@ -336,139 +346,129 @@ msgstr "%s (%s/%s) " msgid "Please answer \"%s\" or \"%s\".\n" msgstr "Відповідь має бути \"%s\" або \"%s\".\n" -#: createdb.c:165 -#, c-format -msgid "only one of --locale and --lc-ctype can be specified" -msgstr "тільки --locale або --lc-ctype може бути вказаний" - -#: createdb.c:167 -#, c-format -msgid "only one of --locale and --lc-collate can be specified" -msgstr "можна вказати лише одне: або --locale, або --lc-collate" - -#: createdb.c:175 +#: createdb.c:173 #, c-format msgid "\"%s\" is not a valid encoding name" msgstr "\"%s\" не Ñ” невірним ім'Ñм кодуваннÑ" -#: createdb.c:245 +#: createdb.c:243 #, c-format msgid "database creation failed: %s" msgstr "Ñтворити базу даних не вдалоÑÑ: %s" -#: createdb.c:264 +#: createdb.c:262 #, c-format msgid "comment creation failed (database was created): %s" msgstr "не вдалоÑÑ Ñтворити коментарі (база даних була Ñтворена): %s" -#: createdb.c:282 +#: createdb.c:280 #, c-format msgid "%s creates a PostgreSQL database.\n\n" msgstr "%s Ñтворює базу даних PostgreSQL.\n\n" -#: createdb.c:284 +#: createdb.c:282 #, c-format msgid " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" msgstr " %s [OPTION]... [DBNAME] [DESCRIPTION]\n" -#: createdb.c:286 +#: createdb.c:284 #, c-format msgid " -D, --tablespace=TABLESPACE default tablespace for the database\n" msgstr " -D, --tablespace=ТÐБЛИЧÐИЙ_ПРОСТІРтабличний проÑÑ‚Ñ–Ñ€ Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних за замовчуваннÑм\n" -#: createdb.c:287 reindexdb.c:766 +#: createdb.c:285 reindexdb.c:768 #, c-format msgid " -e, --echo show the commands being sent to the server\n" msgstr " -e, --echo показати команди, надіÑлані Ñерверу\n" -#: createdb.c:288 +#: createdb.c:286 #, c-format msgid " -E, --encoding=ENCODING encoding for the database\n" msgstr " -E, --encoding=КОДУВÐÐÐЯ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних\n" -#: createdb.c:289 +#: createdb.c:287 #, c-format msgid " -l, --locale=LOCALE locale settings for the database\n" msgstr " -l, --locale=ЛОКÐЛЬ параметри локалі бази даних\n" -#: createdb.c:290 +#: createdb.c:288 #, c-format msgid " --lc-collate=LOCALE LC_COLLATE setting for the database\n" msgstr " --lc-collate=ЛОКÐЛЬ параметр LC_COLLATE Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних\n" -#: createdb.c:291 +#: createdb.c:289 #, c-format msgid " --lc-ctype=LOCALE LC_CTYPE setting for the database\n" msgstr " --lc-ctype=ЛОКÐЛЬ параметр LC_CTYPE Ð´Ð»Ñ Ð±Ð°Ð·Ð¸ даних\n" -#: createdb.c:292 +#: createdb.c:290 #, c-format msgid " --icu-locale=LOCALE ICU locale setting for the database\n" msgstr " --icu-locale=LOCALE параметр локалі ICU бази даних\n" -#: createdb.c:293 +#: createdb.c:291 #, c-format msgid " --locale-provider={libc|icu}\n" " locale provider for the database's default collation\n" msgstr " --locale-provider={libc|icu}\n" " провайдер локалі Ð´Ð»Ñ ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних за замовчуваннÑм\n" -#: createdb.c:295 +#: createdb.c:293 #, c-format msgid " -O, --owner=OWNER database user to own the new database\n" msgstr " -O, --влаÑник=ВЛÐСÐИК кориÑтувач-влаÑник нової бази даних\n" -#: createdb.c:296 +#: createdb.c:294 #, c-format msgid " -S, --strategy=STRATEGY database creation strategy wal_log or file_copy\n" msgstr " -S, --strategy=STRATEGY ÑÑ‚Ñ€Ð°Ñ‚ÐµÐ³Ñ–Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±Ð°Ð·Ð¸ даних Ð´Ð»Ñ wal_log або file_copy\n" -#: createdb.c:297 +#: createdb.c:295 #, c-format msgid " -T, --template=TEMPLATE template database to copy\n" msgstr " -T, --шаблон=ШÐБЛОРшаблонна база даних Ð´Ð»Ñ ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ\n" -#: createdb.c:298 reindexdb.c:775 +#: createdb.c:296 reindexdb.c:777 #, c-format msgid " -V, --version output version information, then exit\n" msgstr " -V, --version вивеÑти інформацію про верÑÑ–ÑŽ, потім вийти\n" -#: createdb.c:299 reindexdb.c:776 +#: createdb.c:297 reindexdb.c:778 #, c-format msgid " -?, --help show this help, then exit\n" msgstr " -?, --help показати цю довідку, потім вийти\n" -#: createdb.c:301 reindexdb.c:778 +#: createdb.c:299 reindexdb.c:780 #, c-format msgid " -h, --host=HOSTNAME database server host or socket directory\n" msgstr " -h, --host=ІМ'Я_ХОСТРхоÑÑ‚ Ñервера бази даних або каталог Ñокетів\n" -#: createdb.c:302 reindexdb.c:779 +#: createdb.c:300 reindexdb.c:781 #, c-format msgid " -p, --port=PORT database server port\n" msgstr " -p, --port=ПОРТ порт Ñервера бази даних\n" -#: createdb.c:303 reindexdb.c:780 +#: createdb.c:301 reindexdb.c:782 #, c-format msgid " -U, --username=USERNAME user name to connect as\n" msgstr " -U, --username=ІМ'Я_КОРИСТУВÐЧРім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Ð´Ð»Ñ Ð·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· Ñервером\n" -#: createdb.c:304 reindexdb.c:781 +#: createdb.c:302 reindexdb.c:783 #, c-format msgid " -w, --no-password never prompt for password\n" msgstr " -w, --no-password ніколи не запитувати пароль\n" -#: createdb.c:305 reindexdb.c:782 +#: createdb.c:303 reindexdb.c:784 #, c-format msgid " -W, --password force password prompt\n" msgstr " -W, --password запроÑити пароль\n" -#: createdb.c:306 reindexdb.c:783 +#: createdb.c:304 reindexdb.c:785 #, c-format msgid " --maintenance-db=DBNAME alternate maintenance database\n" msgstr " --maintenance-db=DBNAME альтернативна бази даних Ð´Ð»Ñ Ð¾Ð±ÑлуговуваннÑ\n" -#: createdb.c:307 +#: createdb.c:305 #, c-format msgid "\n" "By default, a database with the same name as the current user is created.\n" @@ -864,72 +864,72 @@ msgstr "переіндекÑÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемних каталогів Ð msgid "reindexing of table \"%s\" in database \"%s\" failed: %s" msgstr "переіндекÑувати таблиці \"%s\" в базі даних \"%s\" не вдалоÑÑ: %s" -#: reindexdb.c:742 +#: reindexdb.c:744 #, c-format msgid "%s: reindexing database \"%s\"\n" msgstr "%s: переіндекÑÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð°Ð·Ð¸ даних \"%s\"\n" -#: reindexdb.c:759 +#: reindexdb.c:761 #, c-format msgid "%s reindexes a PostgreSQL database.\n\n" msgstr "%s переіндекÑовує базу даних PostgreSQL.\n\n" -#: reindexdb.c:763 +#: reindexdb.c:765 #, c-format msgid " -a, --all reindex all databases\n" msgstr " -a, --all переіндекÑувати вÑÑ– бази даних\n" -#: reindexdb.c:764 +#: reindexdb.c:766 #, c-format msgid " --concurrently reindex concurrently\n" msgstr " --concurrently переіндекÑувати одночаÑно\n" -#: reindexdb.c:765 +#: reindexdb.c:767 #, c-format msgid " -d, --dbname=DBNAME database to reindex\n" msgstr " -d, --dbname=DBNAME база даних Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ–Ð½Ð´ÐµÐºÑуваннÑ\n" -#: reindexdb.c:767 +#: reindexdb.c:769 #, c-format msgid " -i, --index=INDEX recreate specific index(es) only\n" msgstr " -i, --index=INDEX повторно Ñтворити лише вказані індекÑи\n" -#: reindexdb.c:768 +#: reindexdb.c:770 #, c-format msgid " -j, --jobs=NUM use this many concurrent connections to reindex\n" msgstr " -j, --jobs=NUM викориÑтати цю кількіÑÑ‚ÑŒ паралельних підключень Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ–Ð½Ð´ÐµÐºÑуваннÑ\n" -#: reindexdb.c:769 +#: reindexdb.c:771 #, c-format msgid " -q, --quiet don't write any messages\n" msgstr " -q, --quiet не пиÑати жодних повідомлень\n" -#: reindexdb.c:770 +#: reindexdb.c:772 #, c-format msgid " -s, --system reindex system catalogs only\n" msgstr " -s, --system переіндекÑувати тільки ÑиÑтемні каталоги\n" -#: reindexdb.c:771 +#: reindexdb.c:773 #, c-format msgid " -S, --schema=SCHEMA reindex specific schema(s) only\n" msgstr " -S, --schema=SCHEMA переіндекÑувати лише вказані Ñхеми\n" -#: reindexdb.c:772 +#: reindexdb.c:774 #, c-format msgid " -t, --table=TABLE reindex specific table(s) only\n" msgstr " -t, --table=TABLE переіндекÑувати лише вказані таблиці\n" -#: reindexdb.c:773 +#: reindexdb.c:775 #, c-format msgid " --tablespace=TABLESPACE tablespace where indexes are rebuilt\n" msgstr " --tablespace=TABLESPACE табличний проÑÑ‚Ñ–Ñ€ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ… індекÑів\n" -#: reindexdb.c:774 +#: reindexdb.c:776 #, c-format msgid " -v, --verbose write a lot of output\n" msgstr " -v, --verbose виводити багато повідомлень\n" -#: reindexdb.c:784 +#: reindexdb.c:786 #, c-format msgid "\n" "Read the description of the SQL command REINDEX for details.\n" diff --git a/src/common/wchar.c b/src/common/wchar.c index 1e6e198..ea46192 100644 --- a/src/common/wchar.c +++ b/src/common/wchar.c @@ -13,6 +13,7 @@ #include "c.h" #include "mb/pg_wchar.h" +#include "utils/ascii.h" /* diff --git a/src/include/access/genam.h b/src/include/access/genam.h index 134b20f..f6ad7c3 100644 --- a/src/include/access/genam.h +++ b/src/include/access/genam.h @@ -138,6 +138,7 @@ typedef struct IndexOrderByDistance #define IndexScanIsValid(scan) PointerIsValid(scan) extern Relation index_open(Oid relationId, LOCKMODE lockmode); +extern Relation try_index_open(Oid relationId, LOCKMODE lockmode); extern void index_close(Relation relation, LOCKMODE lockmode); extern bool index_insert(Relation indexRelation, diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h index fe869c6..5d0431a 100644 --- a/src/include/access/tableam.h +++ b/src/include/access/tableam.h @@ -1455,8 +1455,8 @@ table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots, * TM_BeingModified (the last only possible if wait == false). * * In the failure cases, the routine fills *tmfd with the tuple's t_ctid, - * t_xmax, and, if possible, and, if possible, t_cmax. See comments for - * struct TM_FailureData for additional info. + * t_xmax, and, if possible, t_cmax. See comments for struct + * TM_FailureData for additional info. */ static inline TM_Result table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid, diff --git a/src/include/common/int.h b/src/include/common/int.h index 12a269d..e2617fb 100644 --- a/src/include/common/int.h +++ b/src/include/common/int.h @@ -200,8 +200,12 @@ pg_sub_s64_overflow(int64 a, int64 b, int64 *result) *result = (int64) res; return false; #else + /* + * Note: overflow is also possible when a == 0 and b < 0 (specifically, + * when b == PG_INT64_MIN). + */ if ((a < 0 && b > 0 && a < PG_INT64_MIN + b) || - (a > 0 && b < 0 && a > PG_INT64_MAX + b)) + (a >= 0 && b < 0 && a > PG_INT64_MAX + b)) { *result = 0x5EED; /* to avoid spurious warnings */ return true; diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h index fe769e0..08fac9e 100644 --- a/src/include/jit/llvmjit.h +++ b/src/include/jit/llvmjit.h @@ -42,6 +42,13 @@ typedef struct LLVMJitContext /* number of modules created */ size_t module_generation; + /* + * The LLVM Context used by this JIT context. An LLVM context is reused + * across many compilations, but occasionally reset to prevent it using + * too much memory due to more and more types accumulating. + */ + LLVMContextRef llvm_context; + /* current, "open for write", module */ LLVMModuleRef module; @@ -107,6 +114,7 @@ extern LLVMValueRef llvm_function_reference(LLVMJitContext *context, LLVMModuleRef mod, FunctionCallInfo fcinfo); +extern void llvm_inline_reset_caches(void); extern void llvm_inline(LLVMModuleRef mod); /* diff --git a/src/include/jit/llvmjit_emit.h b/src/include/jit/llvmjit_emit.h index 27a080b..0a0f876 100644 --- a/src/include/jit/llvmjit_emit.h +++ b/src/include/jit/llvmjit_emit.h @@ -45,36 +45,36 @@ l_ptr(LLVMTypeRef t) * Emit constant integer. */ static inline LLVMValueRef -l_int8_const(int8 i) +l_int8_const(LLVMContextRef lc, int8 i) { - return LLVMConstInt(LLVMInt8Type(), i, false); + return LLVMConstInt(LLVMInt8TypeInContext(lc), i, false); } /* * Emit constant integer. */ static inline LLVMValueRef -l_int16_const(int16 i) +l_int16_const(LLVMContextRef lc, int16 i) { - return LLVMConstInt(LLVMInt16Type(), i, false); + return LLVMConstInt(LLVMInt16TypeInContext(lc), i, false); } /* * Emit constant integer. */ static inline LLVMValueRef -l_int32_const(int32 i) +l_int32_const(LLVMContextRef lc, int32 i) { - return LLVMConstInt(LLVMInt32Type(), i, false); + return LLVMConstInt(LLVMInt32TypeInContext(lc), i, false); } /* * Emit constant integer. */ static inline LLVMValueRef -l_int64_const(int64 i) +l_int64_const(LLVMContextRef lc, int64 i) { - return LLVMConstInt(LLVMInt64Type(), i, false); + return LLVMConstInt(LLVMInt64TypeInContext(lc), i, false); } /* @@ -177,12 +177,15 @@ l_bb_before_v(LLVMBasicBlockRef r, const char *fmt,...) { char buf[512]; va_list args; + LLVMContextRef lc; va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - return LLVMInsertBasicBlock(r, buf); + lc = LLVMGetTypeContext(LLVMTypeOf(LLVMGetBasicBlockParent(r))); + + return LLVMInsertBasicBlockInContext(lc, r, buf); } /* separate, because pg_attribute_printf(2, 3) can't appear in definition */ @@ -197,12 +200,15 @@ l_bb_append_v(LLVMValueRef f, const char *fmt,...) { char buf[512]; va_list args; + LLVMContextRef lc; va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - return LLVMAppendBasicBlock(f, buf); + lc = LLVMGetTypeContext(LLVMTypeOf(f)); + + return LLVMAppendBasicBlockInContext(lc, f, buf); } /* @@ -214,7 +220,7 @@ l_callsite_ro(LLVMValueRef f) const char argname[] = "readonly"; LLVMAttributeRef ref; - ref = LLVMCreateStringAttribute(LLVMGetGlobalContext(), + ref = LLVMCreateStringAttribute(LLVMGetTypeContext(LLVMTypeOf(f)), argname, sizeof(argname) - 1, NULL, 0); @@ -234,7 +240,7 @@ l_callsite_alwaysinline(LLVMValueRef f) id = LLVMGetEnumAttributeKindForName(argname, sizeof(argname) - 1); - attr = LLVMCreateEnumAttribute(LLVMGetGlobalContext(), id, 0); + attr = LLVMCreateEnumAttribute(LLVMGetTypeContext(LLVMTypeOf(f)), id, 0); LLVMAddCallSiteAttribute(f, LLVMAttributeFunctionIndex, attr); } diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index 31f5b39..4a0e6bf 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -699,57 +699,4 @@ extern int mic2latin_with_table(const unsigned char *mic, unsigned char *p, extern WCHAR *pgwin32_message_to_UTF16(const char *str, int len, int *utf16len); #endif - -/* - * Verify a chunk of bytes for valid ASCII. - * - * Returns false if the input contains any zero bytes or bytes with the - * high-bit set. Input len must be a multiple of 8. - */ -static inline bool -is_valid_ascii(const unsigned char *s, int len) -{ - uint64 chunk, - highbit_cum = UINT64CONST(0), - zero_cum = UINT64CONST(0x8080808080808080); - - Assert(len % sizeof(chunk) == 0); - - while (len > 0) - { - memcpy(&chunk, s, sizeof(chunk)); - - /* - * Capture any zero bytes in this chunk. - * - * First, add 0x7f to each byte. This sets the high bit in each byte, - * unless it was a zero. If any resulting high bits are zero, the - * corresponding high bits in the zero accumulator will be cleared. - * - * If none of the bytes in the chunk had the high bit set, the max - * value each byte can have after the addition is 0x7f + 0x7f = 0xfe, - * and we don't need to worry about carrying over to the next byte. If - * any input bytes did have the high bit set, it doesn't matter - * because we check for those separately. - */ - zero_cum &= (chunk + UINT64CONST(0x7f7f7f7f7f7f7f7f)); - - /* Capture any set bits in this chunk. */ - highbit_cum |= chunk; - - s += sizeof(chunk); - len -= sizeof(chunk); - } - - /* Check if any high bits in the high bit accumulator got set. */ - if (highbit_cum & UINT64CONST(0x8080808080808080)) - return false; - - /* Check if any high bits in the zero accumulator got cleared. */ - if (zero_cum != UINT64CONST(0x8080808080808080)) - return false; - - return true; -} - #endif /* PG_WCHAR_H */ diff --git a/src/include/optimizer/optimizer.h b/src/include/optimizer/optimizer.h index 409005b..7b2a0e0 100644 --- a/src/include/optimizer/optimizer.h +++ b/src/include/optimizer/optimizer.h @@ -138,7 +138,9 @@ extern Expr *canonicalize_qual(Expr *qual, bool is_check); /* in util/clauses.c: */ extern bool contain_mutable_functions(Node *clause); +extern bool contain_mutable_functions_after_planning(Expr *expr); extern bool contain_volatile_functions(Node *clause); +extern bool contain_volatile_functions_after_planning(Expr *expr); extern bool contain_volatile_functions_not_nextval(Node *clause); extern Node *eval_const_expressions(PlannerInfo *root, Node *node); diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index d09e9f9..768e3d7 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -77,9 +77,6 @@ /* Define to 1 if you have the `backtrace_symbols' function. */ #undef HAVE_BACKTRACE_SYMBOLS -/* Define to 1 if you have the `BIO_get_data' function. */ -#undef HAVE_BIO_GET_DATA - /* Define to 1 if you have the `BIO_meth_new' function. */ #undef HAVE_BIO_METH_NEW diff --git a/src/include/port/atomics/generic.h b/src/include/port/atomics/generic.h index a1f2456..d62428a 100644 --- a/src/include/port/atomics/generic.h +++ b/src/include/port/atomics/generic.h @@ -83,7 +83,7 @@ pg_atomic_init_flag_impl(volatile pg_atomic_flag *ptr) static inline bool pg_atomic_test_set_flag_impl(volatile pg_atomic_flag *ptr) { - return pg_atomic_exchange_u32_impl(ptr, &value, 1) == 0; + return pg_atomic_exchange_u32_impl(ptr, 1) == 0; } #define PG_HAVE_ATOMIC_UNLOCKED_TEST_FLAG diff --git a/src/include/storage/buf_internals.h b/src/include/storage/buf_internals.h index a17e7b2..dbb0aef 100644 --- a/src/include/storage/buf_internals.h +++ b/src/include/storage/buf_internals.h @@ -150,7 +150,7 @@ typedef struct buftag * is held. Thus buffer header lock holder can do complex updates of the * state variable in single write, simultaneously with lock release (cleaning * BM_LOCKED flag). On the other hand, updating of state without holding - * buffer header lock is restricted to CAS, which insure that BM_LOCKED flag + * buffer header lock is restricted to CAS, which ensures that BM_LOCKED flag * is not set. Atomic increment/decrement, OR/AND etc. are not allowed. * * An exception is that if we have the buffer pinned, its tag can't change diff --git a/src/include/storage/lwlock.h b/src/include/storage/lwlock.h index e03d317..d88fa4b 100644 --- a/src/include/storage/lwlock.h +++ b/src/include/storage/lwlock.h @@ -23,6 +23,14 @@ struct PGPROC; +/* what state of the wait process is a backend in */ +typedef enum LWLockWaitState +{ + LW_WS_NOT_WAITING, /* not currently waiting / woken up */ + LW_WS_WAITING, /* currently waiting */ + LW_WS_PENDING_WAKEUP /* removed from waitlist, but not yet signalled */ +} LWLockWaitState; + /* * Code outside of lwlock.c should not manipulate the contents of this * structure directly, but we have to declare it here to allow LWLocks to be diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index 2579e61..2ea7730 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -211,7 +211,7 @@ struct PGPROC bool recoveryConflictPending; /* Info about LWLock the process is currently waiting for, if any. */ - bool lwWaiting; /* true if waiting for an LW lock */ + uint8 lwWaiting; /* see LWLockWaitState */ uint8 lwWaitMode; /* lwlock mode being waited for */ proclist_node lwWaitLink; /* position in LW lock wait list */ diff --git a/src/include/utils/ascii.h b/src/include/utils/ascii.h index aed8019..4e3a1d4 100644 --- a/src/include/utils/ascii.h +++ b/src/include/utils/ascii.h @@ -13,4 +13,56 @@ extern void ascii_safe_strlcpy(char *dest, const char *src, size_t destsiz); +/* + * Verify a chunk of bytes for valid ASCII. + * + * Returns false if the input contains any zero bytes or bytes with the + * high-bit set. Input len must be a multiple of 8. + */ +static inline bool +is_valid_ascii(const unsigned char *s, int len) +{ + uint64 chunk, + highbit_cum = UINT64CONST(0), + zero_cum = UINT64CONST(0x8080808080808080); + + Assert(len % sizeof(chunk) == 0); + + while (len > 0) + { + memcpy(&chunk, s, sizeof(chunk)); + + /* + * Capture any zero bytes in this chunk. + * + * First, add 0x7f to each byte. This sets the high bit in each byte, + * unless it was a zero. If any resulting high bits are zero, the + * corresponding high bits in the zero accumulator will be cleared. + * + * If none of the bytes in the chunk had the high bit set, the max + * value each byte can have after the addition is 0x7f + 0x7f = 0xfe, + * and we don't need to worry about carrying over to the next byte. If + * any input bytes did have the high bit set, it doesn't matter + * because we check for those separately. + */ + zero_cum &= (chunk + UINT64CONST(0x7f7f7f7f7f7f7f7f)); + + /* Capture any set bits in this chunk. */ + highbit_cum |= chunk; + + s += sizeof(chunk); + len -= sizeof(chunk); + } + + /* Check if any high bits in the high bit accumulator got set. */ + if (highbit_cum & UINT64CONST(0x8080808080808080)) + return false; + + /* Check if any high bits in the zero accumulator got cleared. */ + if (zero_cum != UINT64CONST(0x8080808080808080)) + return false; + + return true; +} + #endif /* _ASCII_H_ */ diff --git a/src/include/utils/wait_event.h b/src/include/utils/wait_event.h index b578e2e..c814918 100644 --- a/src/include/utils/wait_event.h +++ b/src/include/utils/wait_event.h @@ -229,7 +229,8 @@ typedef enum WAIT_EVENT_WAL_READ, WAIT_EVENT_WAL_SYNC, WAIT_EVENT_WAL_SYNC_METHOD_ASSIGN, - WAIT_EVENT_WAL_WRITE + WAIT_EVENT_WAL_WRITE, + WAIT_EVENT_VERSION_FILE_SYNC } WaitEventIO; diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 8989f71..c9450ec 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -846,6 +846,8 @@ pqSaveWriteError(PGconn *conn) * using whatever is in conn->errorMessage. In any case, clear the async * result storage, and update our notion of how much error text has been * returned to the application. + * + * Note that in no case (not even OOM) do we return NULL. */ PGresult * pqPrepareAsyncResult(PGconn *conn) @@ -2119,29 +2121,21 @@ PQgetResult(PGconn *conn) /* * We're about to return the NULL that terminates the round of - * results from the current query; prepare to send the results - * of the next query, if any, when we're called next. If there's - * no next element in the command queue, this gets us in IDLE - * state. + * results from the current query; prepare to send the results of + * the next query, if any, when we're called next. If there's no + * next element in the command queue, this gets us in IDLE state. */ pqPipelineProcessQueue(conn); res = NULL; /* query is complete */ break; case PGASYNC_READY: - - /* - * For any query type other than simple query protocol, we advance - * the command queue here. This is because for simple query - * protocol we can get the READY state multiple times before the - * command is actually complete, since the command string can - * contain many queries. In simple query protocol, the queue - * advance is done by fe-protocol3 when it receives ReadyForQuery. - */ - if (conn->cmd_queue_head && - conn->cmd_queue_head->queryclass != PGQUERY_SIMPLE) - pqCommandQueueAdvance(conn); res = pqPrepareAsyncResult(conn); + + /* Advance the queue as appropriate */ + pqCommandQueueAdvance(conn, false, + res->resultStatus == PGRES_PIPELINE_SYNC); + if (conn->pipelineStatus != PQ_PIPELINE_OFF) { /* @@ -2161,7 +2155,7 @@ PQgetResult(PGconn *conn) * (In other words: we don't return a NULL after a pipeline * sync.) */ - if (res && res->resultStatus == PGRES_PIPELINE_SYNC) + if (res->resultStatus == PGRES_PIPELINE_SYNC) pqPipelineProcessQueue(conn); } else @@ -3040,18 +3034,44 @@ PQexitPipelineMode(PGconn *conn) /* * pqCommandQueueAdvance - * Remove one query from the command queue, when we receive - * all results from the server that pertain to it. + * Remove one query from the command queue, if appropriate. + * + * If we have received all results corresponding to the head element + * in the command queue, remove it. + * + * In simple query protocol we must not advance the command queue until the + * ReadyForQuery message has been received. This is because in simple mode a + * command can have multiple queries, and we must process result for all of + * them before moving on to the next command. + * + * Another consideration is synchronization during error processing in + * extended query protocol: we refuse to advance the queue past a SYNC queue + * element, unless the result we've received is also a SYNC. In particular + * this protects us from advancing when an error is received at an + * inappropriate moment. */ void -pqCommandQueueAdvance(PGconn *conn) +pqCommandQueueAdvance(PGconn *conn, bool isReadyForQuery, bool gotSync) { PGcmdQueueEntry *prevquery; if (conn->cmd_queue_head == NULL) return; - /* delink from queue */ + /* + * If processing a query of simple query protocol, we only advance the + * queue when we receive the ReadyForQuery message for it. + */ + if (conn->cmd_queue_head->queryclass == PGQUERY_SIMPLE && !isReadyForQuery) + return; + + /* + * If we're waiting for a SYNC, don't advance the queue until we get one. + */ + if (conn->cmd_queue_head->queryclass == PGQUERY_SYNC && !gotSync) + return; + + /* delink element from queue */ prevquery = conn->cmd_queue_head; conn->cmd_queue_head = conn->cmd_queue_head->next; @@ -3059,7 +3079,7 @@ pqCommandQueueAdvance(PGconn *conn) if (conn->cmd_queue_head == NULL) conn->cmd_queue_tail = NULL; - /* and make it recyclable */ + /* and make the queue element recyclable */ prevquery->next = NULL; pqRecycleCmdQueueEntry(conn, prevquery); } @@ -3083,6 +3103,7 @@ pqPipelineProcessQueue(PGconn *conn) return; case PGASYNC_IDLE: + /* * If we're in IDLE mode and there's some command in the queue, * get us into PIPELINE_IDLE mode and process normally. Otherwise @@ -3271,6 +3292,14 @@ PQsendFlushRequest(PGconn *conn) return 0; } + /* + * Give the data a push (in pipeline mode, only if we're past the size + * threshold). In nonblock mode, don't complain if we're unable to send + * it all; PQgetResult() will do any additional flushing needed. + */ + if (pqPipelineFlush(conn) < 0) + return 0; + return 1; } diff --git a/src/interfaces/libpq/fe-protocol3.c b/src/interfaces/libpq/fe-protocol3.c index 0d60e8c..3870d52 100644 --- a/src/interfaces/libpq/fe-protocol3.c +++ b/src/interfaces/libpq/fe-protocol3.c @@ -240,13 +240,8 @@ pqParseInput3(PGconn *conn) } else { - /* - * In simple query protocol, advance the command queue - * (see PQgetResult). - */ - if (conn->cmd_queue_head && - conn->cmd_queue_head->queryclass == PGQUERY_SIMPLE) - pqCommandQueueAdvance(conn); + /* Advance the command queue and set us idle */ + pqCommandQueueAdvance(conn, true, false); conn->asyncStatus = PGASYNC_IDLE; } break; diff --git a/src/interfaces/libpq/fe-secure-gssapi.c b/src/interfaces/libpq/fe-secure-gssapi.c index 5f9104b..a3768cd 100644 --- a/src/interfaces/libpq/fe-secure-gssapi.c +++ b/src/interfaces/libpq/fe-secure-gssapi.c @@ -79,8 +79,8 @@ * On success, returns the number of data bytes consumed (possibly less than * len). On failure, returns -1 with errno set appropriately. If the errno * indicates a non-retryable error, a message is added to conn->errorMessage. - * For retryable errors, caller should call again (passing the same data) - * once the socket is ready. + * For retryable errors, caller should call again (passing the same or more + * data) once the socket is ready. */ ssize_t pg_GSS_write(PGconn *conn, const void *ptr, size_t len) @@ -90,19 +90,25 @@ pg_GSS_write(PGconn *conn, const void *ptr, size_t len) gss_buffer_desc input, output = GSS_C_EMPTY_BUFFER; ssize_t ret = -1; - size_t bytes_sent = 0; size_t bytes_to_encrypt; size_t bytes_encrypted; gss_ctx_id_t gctx = conn->gctx; /* - * When we get a failure, we must not tell the caller we have successfully - * transmitted everything, else it won't retry. Hence a "success" - * (positive) return value must only count source bytes corresponding to - * fully-transmitted encrypted packets. The amount of source data - * corresponding to the current partly-transmitted packet is remembered in + * When we get a retryable failure, we must not tell the caller we have + * successfully transmitted everything, else it won't retry. For + * simplicity, we claim we haven't transmitted anything until we have + * successfully transmitted all "len" bytes. Between calls, the amount of + * the current input data that's already been encrypted and placed into + * PqGSSSendBuffer (and perhaps transmitted) is remembered in * PqGSSSendConsumed. On a retry, the caller *must* be sending that data * again, so if it offers a len less than that, something is wrong. + * + * Note: it may seem attractive to report partial write completion once + * we've successfully sent any encrypted packets. However, that can cause + * problems for callers; notably, pqPutMsgEnd's heuristic to send only + * full 8K blocks interacts badly with such a hack. We won't save much, + * typically, by letting callers discard data early, so don't risk it. */ if (len < PqGSSSendConsumed) { @@ -135,38 +141,25 @@ pg_GSS_write(PGconn *conn, const void *ptr, size_t len) */ if (PqGSSSendLength) { - ssize_t ret; + ssize_t retval; ssize_t amount = PqGSSSendLength - PqGSSSendNext; - ret = pqsecure_raw_write(conn, PqGSSSendBuffer + PqGSSSendNext, amount); - if (ret <= 0) - { - /* - * Report any previously-sent data; if there was none, reflect - * the pqsecure_raw_write result up to our caller. When there - * was some, we're effectively assuming that any interesting - * failure condition will recur on the next try. - */ - if (bytes_sent) - return bytes_sent; - return ret; - } + retval = pqsecure_raw_write(conn, PqGSSSendBuffer + PqGSSSendNext, amount); + if (retval <= 0) + return retval; /* * Check if this was a partial write, and if so, move forward that * far in our buffer and try again. */ - if (ret != amount) + if (retval < amount) { - PqGSSSendNext += ret; + PqGSSSendNext += retval; continue; } - /* We've successfully sent whatever data was in that packet. */ - bytes_sent += PqGSSSendConsumed; - - /* All encrypted data was sent, our buffer is empty now. */ - PqGSSSendLength = PqGSSSendNext = PqGSSSendConsumed = 0; + /* We've successfully sent whatever data was in the buffer. */ + PqGSSSendLength = PqGSSSendNext = 0; } /* @@ -192,7 +185,7 @@ pg_GSS_write(PGconn *conn, const void *ptr, size_t len) /* * Create the next encrypted packet. Any failure here is considered a - * hard failure, so we return -1 even if bytes_sent > 0. + * hard failure, so we return -1 even if some data has been sent. */ major = gss_wrap(&minor, gctx, 1, GSS_C_QOP_DEFAULT, &input, &conf_state, &output); @@ -238,10 +231,13 @@ pg_GSS_write(PGconn *conn, const void *ptr, size_t len) } /* If we get here, our counters should all match up. */ - Assert(bytes_sent == len); - Assert(bytes_sent == bytes_encrypted); + Assert(len == PqGSSSendConsumed); + Assert(len == bytes_encrypted); + + /* We're reporting all the data as sent, so reset PqGSSSendConsumed. */ + PqGSSSendConsumed = 0; - ret = bytes_sent; + ret = bytes_encrypted; cleanup: /* Release GSSAPI buffer storage, if we didn't already */ diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c index af59ff4..61f3767 100644 --- a/src/interfaces/libpq/fe-secure-openssl.c +++ b/src/interfaces/libpq/fe-secure-openssl.c @@ -209,7 +209,7 @@ rloop: */ goto rloop; case SSL_ERROR_SYSCALL: - if (n < 0) + if (n < 0 && SOCK_ERRNO != 0) { result_errno = SOCK_ERRNO; if (result_errno == EPIPE || @@ -317,7 +317,13 @@ pgtls_write(PGconn *conn, const void *ptr, size_t len) n = 0; break; case SSL_ERROR_SYSCALL: - if (n < 0) + + /* + * If errno is still zero then assume it's a read EOF situation, + * and report EOF. (This seems possible because SSL_write can + * also do reads.) + */ + if (n < 0 && SOCK_ERRNO != 0) { result_errno = SOCK_ERRNO; if (result_errno == EPIPE || result_errno == ECONNRESET) @@ -1479,10 +1485,12 @@ open_client_SSL(PGconn *conn) { int r; + SOCK_ERRNO_SET(0); ERR_clear_error(); r = SSL_connect(conn->ssl); if (r <= 0) { + int save_errno = SOCK_ERRNO; int err = SSL_get_error(conn->ssl, r); unsigned long ecode; @@ -1499,10 +1507,10 @@ open_client_SSL(PGconn *conn) { char sebuf[PG_STRERROR_R_BUFLEN]; - if (r == -1) + if (r == -1 && save_errno != 0) appendPQExpBuffer(&conn->errorMessage, libpq_gettext("SSL SYSCALL error: %s\n"), - SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf))); + SOCK_STRERROR(save_errno, sebuf, sizeof(sebuf))); else appendPQExpBufferStr(&conn->errorMessage, libpq_gettext("SSL SYSCALL error: EOF detected\n")); @@ -1800,11 +1808,7 @@ PQsslAttribute(PGconn *conn, const char *attribute_name) * to retry; do we need to adopt their logic for that? */ -#ifndef HAVE_BIO_GET_DATA -#define BIO_get_data(bio) (bio->ptr) -#define BIO_set_data(bio, data) (bio->ptr = data) -#endif - +/* protected by ssl_config_mutex */ static BIO_METHOD *my_bio_methods; static int @@ -1812,7 +1816,7 @@ my_sock_read(BIO *h, char *buf, int size) { int res; - res = pqsecure_raw_read((PGconn *) BIO_get_data(h), buf, size); + res = pqsecure_raw_read((PGconn *) BIO_get_app_data(h), buf, size); BIO_clear_retry_flags(h); if (res < 0) { @@ -1842,7 +1846,7 @@ my_sock_write(BIO *h, const char *buf, int size) { int res; - res = pqsecure_raw_write((PGconn *) BIO_get_data(h), buf, size); + res = pqsecure_raw_write((PGconn *) BIO_get_app_data(h), buf, size); BIO_clear_retry_flags(h); if (res < 0) { @@ -1870,6 +1874,15 @@ my_sock_write(BIO *h, const char *buf, int size) static BIO_METHOD * my_BIO_s_socket(void) { + BIO_METHOD *res; + +#ifdef ENABLE_THREAD_SAFETY + if (pthread_mutex_lock(&ssl_config_mutex)) + return NULL; +#endif + + res = my_bio_methods; + if (!my_bio_methods) { BIO_METHOD *biom = (BIO_METHOD *) BIO_s_socket(); @@ -1878,39 +1891,58 @@ my_BIO_s_socket(void) my_bio_index = BIO_get_new_index(); if (my_bio_index == -1) - return NULL; + goto err; my_bio_index |= (BIO_TYPE_DESCRIPTOR | BIO_TYPE_SOURCE_SINK); - my_bio_methods = BIO_meth_new(my_bio_index, "libpq socket"); - if (!my_bio_methods) - return NULL; + res = BIO_meth_new(my_bio_index, "libpq socket"); + if (!res) + goto err; /* * As of this writing, these functions never fail. But check anyway, * like OpenSSL's own examples do. */ - if (!BIO_meth_set_write(my_bio_methods, my_sock_write) || - !BIO_meth_set_read(my_bio_methods, my_sock_read) || - !BIO_meth_set_gets(my_bio_methods, BIO_meth_get_gets(biom)) || - !BIO_meth_set_puts(my_bio_methods, BIO_meth_get_puts(biom)) || - !BIO_meth_set_ctrl(my_bio_methods, BIO_meth_get_ctrl(biom)) || - !BIO_meth_set_create(my_bio_methods, BIO_meth_get_create(biom)) || - !BIO_meth_set_destroy(my_bio_methods, BIO_meth_get_destroy(biom)) || - !BIO_meth_set_callback_ctrl(my_bio_methods, BIO_meth_get_callback_ctrl(biom))) + if (!BIO_meth_set_write(res, my_sock_write) || + !BIO_meth_set_read(res, my_sock_read) || + !BIO_meth_set_gets(res, BIO_meth_get_gets(biom)) || + !BIO_meth_set_puts(res, BIO_meth_get_puts(biom)) || + !BIO_meth_set_ctrl(res, BIO_meth_get_ctrl(biom)) || + !BIO_meth_set_create(res, BIO_meth_get_create(biom)) || + !BIO_meth_set_destroy(res, BIO_meth_get_destroy(biom)) || + !BIO_meth_set_callback_ctrl(res, BIO_meth_get_callback_ctrl(biom))) { - BIO_meth_free(my_bio_methods); - my_bio_methods = NULL; - return NULL; + goto err; } #else - my_bio_methods = malloc(sizeof(BIO_METHOD)); - if (!my_bio_methods) - return NULL; - memcpy(my_bio_methods, biom, sizeof(BIO_METHOD)); - my_bio_methods->bread = my_sock_read; - my_bio_methods->bwrite = my_sock_write; + res = malloc(sizeof(BIO_METHOD)); + if (!res) + goto err; + memcpy(res, biom, sizeof(BIO_METHOD)); + res->bread = my_sock_read; + res->bwrite = my_sock_write; #endif } - return my_bio_methods; + + my_bio_methods = res; + +#ifdef ENABLE_THREAD_SAFETY + pthread_mutex_unlock(&ssl_config_mutex); +#endif + + return res; + +err: +#ifdef HAVE_BIO_METH_NEW + if (res) + BIO_meth_free(res); +#else + if (res) + free(res); +#endif + +#ifdef ENABLE_THREAD_SAFETY + pthread_mutex_unlock(&ssl_config_mutex); +#endif + return NULL; } /* This should exactly match OpenSSL's SSL_set_fd except for using my BIO */ @@ -1933,7 +1965,7 @@ my_SSL_set_fd(PGconn *conn, int fd) SSLerr(SSL_F_SSL_SET_FD, ERR_R_BUF_LIB); goto err; } - BIO_set_data(bio, conn); + BIO_set_app_data(bio, conn); SSL_set_bio(conn->ssl, bio, bio); BIO_set_fd(bio, fd, BIO_NOCLOSE); diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index a1dc7b7..4c85b72 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -235,6 +235,8 @@ pqsecure_raw_read(PGconn *conn, void *ptr, size_t len) int result_errno = 0; char sebuf[PG_STRERROR_R_BUFLEN]; + SOCK_ERRNO_SET(0); + n = recv(conn->sock, ptr, len, 0); if (n < 0) @@ -262,6 +264,11 @@ pqsecure_raw_read(PGconn *conn, void *ptr, size_t len) "\tbefore or while processing the request.\n")); break; + case 0: + /* If errno didn't get set, treat it as regular EOF */ + n = 0; + break; + default: appendPQExpBuffer(&conn->errorMessage, libpq_gettext("could not receive data from server: %s\n"), diff --git a/src/interfaces/libpq/libpq-int.h b/src/interfaces/libpq/libpq-int.h index ac9042f..0731855 100644 --- a/src/interfaces/libpq/libpq-int.h +++ b/src/interfaces/libpq/libpq-int.h @@ -553,8 +553,8 @@ struct pg_conn int gss_SendLength; /* End of data available in gss_SendBuffer */ int gss_SendNext; /* Next index to send a byte from * gss_SendBuffer */ - int gss_SendConsumed; /* Number of *unencrypted* bytes consumed - * for current contents of gss_SendBuffer */ + int gss_SendConsumed; /* Number of source bytes encrypted but + * not yet reported as sent */ char *gss_RecvBuffer; /* Received, encrypted data */ int gss_RecvLength; /* End of data available in gss_RecvBuffer */ char *gss_ResultBuffer; /* Decryption of data in gss_RecvBuffer */ @@ -673,7 +673,8 @@ extern void pqSaveMessageField(PGresult *res, char code, extern void pqSaveParameterStatus(PGconn *conn, const char *name, const char *value); extern int pqRowProcessor(PGconn *conn, const char **errmsgp); -extern void pqCommandQueueAdvance(PGconn *conn); +extern void pqCommandQueueAdvance(PGconn *conn, bool isReadyForQuery, + bool gotSync); extern int PQsendQueryContinue(PGconn *conn, const char *query); /* === in fe-protocol3.c === */ diff --git a/src/interfaces/libpq/po/ru.po b/src/interfaces/libpq/po/ru.po index 320d4b4..78affba 100644 --- a/src/interfaces/libpq/po/ru.po +++ b/src/interfaces/libpq/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: libpq (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-03 05:56+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2023-08-30 15:09+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -77,11 +77,11 @@ msgstr "не удалоÑÑŒ Ñгенерировать разовый код\n" #: fe-connect.c:5542 fe-connect.c:5641 fe-connect.c:5897 fe-connect.c:5926 #: fe-connect.c:5998 fe-connect.c:6022 fe-connect.c:6040 fe-connect.c:6141 #: fe-connect.c:6150 fe-connect.c:6508 fe-connect.c:6658 fe-connect.c:6924 -#: fe-exec.c:710 fe-exec.c:976 fe-exec.c:1324 fe-exec.c:3144 fe-exec.c:3328 -#: fe-exec.c:4110 fe-exec.c:4275 fe-gssapi-common.c:111 fe-lobj.c:884 -#: fe-protocol3.c:973 fe-protocol3.c:988 fe-protocol3.c:1021 -#: fe-protocol3.c:1729 fe-protocol3.c:2132 fe-secure-common.c:112 -#: fe-secure-gssapi.c:504 fe-secure-openssl.c:454 fe-secure-openssl.c:1266 +#: fe-exec.c:710 fe-exec.c:978 fe-exec.c:1326 fe-exec.c:3165 fe-exec.c:3357 +#: fe-exec.c:4139 fe-exec.c:4304 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:460 fe-secure-openssl.c:1272 msgid "out of memory\n" msgstr "нехватка памÑти\n" @@ -130,7 +130,7 @@ 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:261 fe-protocol3.c:279 fe-protocol3.c:360 fe-protocol3.c:733 +#: fe-protocol3.c:256 fe-protocol3.c:274 fe-protocol3.c:355 fe-protocol3.c:728 msgid "out of memory" msgstr "нехватка памÑти" @@ -702,12 +702,12 @@ msgstr "" msgid "password retrieved from file \"%s\"\n" msgstr "пароль получен из файла \"%s\"\n" -#: fe-exec.c:466 fe-exec.c:3402 +#: fe-exec.c:466 fe-exec.c:3431 #, c-format msgid "row number %d is out of range 0..%d" msgstr "номер запиÑи %d вне диапазона 0..%d" -#: fe-exec.c:528 fe-protocol3.c:1937 +#: fe-exec.c:528 fe-protocol3.c:1932 #, c-format msgid "%s" msgstr "%s" @@ -716,127 +716,127 @@ msgstr "%s" msgid "write to server failed\n" msgstr "ошибка при передаче данных Ñерверу\n" -#: fe-exec.c:875 +#: fe-exec.c:877 msgid "no error text available\n" msgstr "текÑÑ‚ ошибки отÑутÑтвует\n" -#: fe-exec.c:964 +#: fe-exec.c:966 msgid "NOTICE" msgstr "ЗÐМЕЧÐÐИЕ" -#: fe-exec.c:1022 +#: fe-exec.c:1024 msgid "PGresult cannot support more than INT_MAX tuples" msgstr "PGresult не может вмеÑтить больше чем INT_MAX кортежей" -#: fe-exec.c:1034 +#: fe-exec.c:1036 msgid "size_t overflow" msgstr "переполнение size_t" -#: fe-exec.c:1448 fe-exec.c:1519 fe-exec.c:1568 +#: fe-exec.c:1450 fe-exec.c:1521 fe-exec.c:1570 msgid "command string is a null pointer\n" msgstr "указатель на командную Ñтроку нулевой\n" -#: fe-exec.c:1455 fe-exec.c:2914 +#: fe-exec.c:1457 fe-exec.c:2908 #, c-format msgid "%s not allowed in pipeline mode\n" msgstr "%s не допуÑкаетÑÑ Ð² конвейерном режиме\n" -#: fe-exec.c:1525 fe-exec.c:1574 fe-exec.c:1670 +#: fe-exec.c:1527 fe-exec.c:1576 fe-exec.c:1672 #, c-format msgid "number of parameters must be between 0 and %d\n" msgstr "чиÑло параметров должно быть от 0 до %d\n" -#: fe-exec.c:1562 fe-exec.c:1664 +#: fe-exec.c:1564 fe-exec.c:1666 msgid "statement name is a null pointer\n" msgstr "указатель на Ð¸Ð¼Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° нулевой\n" -#: fe-exec.c:1708 fe-exec.c:3255 +#: fe-exec.c:1710 fe-exec.c:3276 msgid "no connection to the server\n" msgstr "нет ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером\n" -#: fe-exec.c:1717 fe-exec.c:3264 +#: fe-exec.c:1719 fe-exec.c:3285 msgid "another command is already in progress\n" msgstr "уже выполнÑетÑÑ Ð´Ñ€ÑƒÐ³Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°\n" -#: fe-exec.c:1748 +#: fe-exec.c:1750 msgid "cannot queue commands during COPY\n" msgstr "во Ð²Ñ€ÐµÐ¼Ñ COPY Ð½ÐµÐ»ÑŒÐ·Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑ‚ÑŒ команды в очередь\n" -#: fe-exec.c:1866 +#: fe-exec.c:1868 msgid "length must be given for binary parameter\n" msgstr "Ð´Ð»Ñ Ð´Ð²Ð¾Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ параметра должна быть указана длина\n" -#: fe-exec.c:2189 +#: fe-exec.c:2183 #, c-format msgid "unexpected asyncStatus: %d\n" msgstr "неожиданный asyncStatus: %d\n" -#: fe-exec.c:2347 +#: fe-exec.c:2341 msgid "" "synchronous command execution functions are not allowed in pipeline mode\n" msgstr "" "функции Ñинхронного Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ не допуÑкаютÑÑ Ð² конвейерном режиме\n" -#: fe-exec.c:2364 +#: fe-exec.c:2358 msgid "COPY terminated by new PQexec" msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ COPY прервана вызовом PQexec" -#: fe-exec.c:2381 +#: fe-exec.c:2375 msgid "PQexec not allowed during COPY BOTH\n" msgstr "вызов PQexec не допуÑкаетÑÑ Ð² процеÑÑе COPY BOTH\n" -#: fe-exec.c:2609 fe-exec.c:2665 fe-exec.c:2734 fe-protocol3.c:1868 +#: fe-exec.c:2603 fe-exec.c:2659 fe-exec.c:2728 fe-protocol3.c:1863 msgid "no COPY in progress\n" msgstr "Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ COPY не выполнÑетÑÑ\n" -#: fe-exec.c:2923 +#: fe-exec.c:2917 msgid "connection in wrong state\n" msgstr "Ñоединение в неправильном ÑоÑтоÑнии\n" -#: fe-exec.c:2967 +#: fe-exec.c:2961 msgid "cannot enter pipeline mode, connection not idle\n" msgstr "перейти в конвейерный режиме нельзÑ, Ñоединение не проÑтаивает\n" -#: fe-exec.c:3004 fe-exec.c:3028 +#: fe-exec.c:2998 fe-exec.c:3022 msgid "cannot exit pipeline mode with uncollected results\n" msgstr "выйти из конвейерного режима нельзÑ, не Ñобрав вÑе результаты\n" -#: fe-exec.c:3009 +#: fe-exec.c:3003 msgid "cannot exit pipeline mode while busy\n" msgstr "выйти из конвейерного режима в занÑтом ÑоÑтоÑнии нельзÑ\n" -#: fe-exec.c:3021 +#: fe-exec.c:3015 msgid "cannot exit pipeline mode while in COPY\n" msgstr "выйти из конвейерного режима во Ð²Ñ€ÐµÐ¼Ñ COPY нельзÑ\n" -#: fe-exec.c:3188 +#: fe-exec.c:3209 msgid "cannot send pipeline when not in pipeline mode\n" msgstr "отправить конвейер, не Ð¿ÐµÑ€ÐµÐ¹Ð´Ñ Ð² конвейерный режим, нельзÑ\n" -#: fe-exec.c:3291 +#: fe-exec.c:3320 msgid "invalid ExecStatusType code" msgstr "неверный код ExecStatusType" -#: fe-exec.c:3318 +#: fe-exec.c:3347 msgid "PGresult is not an error result\n" msgstr "Ð’ PGresult не передан результат ошибки\n" -#: fe-exec.c:3386 fe-exec.c:3409 +#: fe-exec.c:3415 fe-exec.c:3438 #, c-format msgid "column number %d is out of range 0..%d" msgstr "номер Ñтолбца %d вне диапазона 0..%d" -#: fe-exec.c:3424 +#: fe-exec.c:3453 #, c-format msgid "parameter number %d is out of range 0..%d" msgstr "номер параметра %d вне диапазона 0..%d" -#: fe-exec.c:3735 +#: fe-exec.c:3764 #, c-format msgid "could not interpret result from server: %s" msgstr "не удалоÑÑŒ интерпретировать ответ Ñервера: %s" -#: fe-exec.c:4001 fe-exec.c:4092 +#: fe-exec.c:4030 fe-exec.c:4121 msgid "incomplete multibyte character\n" msgstr "неполный многобайтный Ñимвол\n" @@ -896,8 +896,8 @@ msgstr "Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ pqPutInt не поддерживает integer разме msgid "connection not open\n" msgstr "Ñоединение не открыто\n" -#: fe-misc.c:755 fe-secure-openssl.c:218 fe-secure-openssl.c:325 -#: fe-secure.c:260 fe-secure.c:423 +#: fe-misc.c:755 fe-secure-openssl.c:218 fe-secure-openssl.c:331 +#: fe-secure.c:262 fe-secure.c:430 #, c-format msgid "" "server closed the connection unexpectedly\n" @@ -926,7 +926,7 @@ msgstr "ошибка в %s(): %s\n" msgid "message type 0x%02x arrived from server while idle" msgstr "от Ñервера во Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾ÑÑ‚Ð¾Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¾ Ñообщение типа 0x%02x" -#: fe-protocol3.c:393 +#: fe-protocol3.c:388 msgid "" "server sent data (\"D\" message) without prior row description (\"T\" " "message)\n" @@ -934,125 +934,125 @@ msgstr "" "Ñервер отправил данные (Ñообщение \"D\") без предварительного опиÑÐ°Ð½Ð¸Ñ " "Ñтроки (Ñообщение \"T\")\n" -#: fe-protocol3.c:436 +#: fe-protocol3.c:431 #, c-format msgid "unexpected response from server; first received character was \"%c\"\n" msgstr "неожиданный ответ Ñервера; первый полученный Ñимвол: \"%c\"\n" -#: fe-protocol3.c:461 +#: fe-protocol3.c:456 #, c-format msgid "message contents do not agree with length in message type \"%c\"\n" msgstr "Ñодержимое не ÑоответÑтвует длине в Ñообщении типа \"%c\"\n" -#: fe-protocol3.c:481 +#: fe-protocol3.c:476 #, c-format msgid "lost synchronization with server: got message type \"%c\", length %d\n" msgstr "" "потерÑна ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ñервером: получено Ñообщение типа \"%c\", длина %d\n" -#: fe-protocol3.c:533 fe-protocol3.c:573 +#: fe-protocol3.c:528 fe-protocol3.c:568 msgid "insufficient data in \"T\" message" msgstr "недоÑтаточно данных в Ñообщении \"T\"" -#: fe-protocol3.c:644 fe-protocol3.c:850 +#: fe-protocol3.c:639 fe-protocol3.c:845 msgid "out of memory for query result" msgstr "недоÑтаточно памÑти Ð´Ð»Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð° запроÑа" -#: fe-protocol3.c:713 +#: fe-protocol3.c:708 msgid "insufficient data in \"t\" message" msgstr "недоÑтаточно данных в Ñообщении \"t\"" -#: fe-protocol3.c:772 fe-protocol3.c:804 fe-protocol3.c:822 +#: fe-protocol3.c:767 fe-protocol3.c:799 fe-protocol3.c:817 msgid "insufficient data in \"D\" message" msgstr "недоÑтаточно данных в Ñообщении \"D\"" -#: fe-protocol3.c:778 +#: fe-protocol3.c:773 msgid "unexpected field count in \"D\" message" msgstr "неверное чиÑло полей в Ñообщении \"D\"" -#: fe-protocol3.c:1034 +#: fe-protocol3.c:1029 msgid "no error message available\n" msgstr "нет ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибке\n" #. translator: %s represents a digit string -#: fe-protocol3.c:1082 fe-protocol3.c:1101 +#: fe-protocol3.c:1077 fe-protocol3.c:1096 #, c-format msgid " at character %s" msgstr " Ñимвол %s" -#: fe-protocol3.c:1114 +#: fe-protocol3.c:1109 #, c-format msgid "DETAIL: %s\n" msgstr "ПОДРОБÐОСТИ: %s\n" -#: fe-protocol3.c:1117 +#: fe-protocol3.c:1112 #, c-format msgid "HINT: %s\n" msgstr "ПОДСКÐЗКÐ: %s\n" -#: fe-protocol3.c:1120 +#: fe-protocol3.c:1115 #, c-format msgid "QUERY: %s\n" msgstr "ЗÐПРОС: %s\n" -#: fe-protocol3.c:1127 +#: fe-protocol3.c:1122 #, c-format msgid "CONTEXT: %s\n" msgstr "КОÐТЕКСТ: %s\n" -#: fe-protocol3.c:1136 +#: fe-protocol3.c:1131 #, c-format msgid "SCHEMA NAME: %s\n" msgstr "СХЕМÐ: %s\n" -#: fe-protocol3.c:1140 +#: fe-protocol3.c:1135 #, c-format msgid "TABLE NAME: %s\n" msgstr "ТÐБЛИЦÐ: %s\n" -#: fe-protocol3.c:1144 +#: fe-protocol3.c:1139 #, c-format msgid "COLUMN NAME: %s\n" msgstr "СТОЛБЕЦ: %s\n" -#: fe-protocol3.c:1148 +#: fe-protocol3.c:1143 #, c-format msgid "DATATYPE NAME: %s\n" msgstr "ТИП ДÐÐÐЫХ: %s\n" -#: fe-protocol3.c:1152 +#: fe-protocol3.c:1147 #, c-format msgid "CONSTRAINT NAME: %s\n" msgstr "ОГРÐÐИЧЕÐИЕ: %s\n" -#: fe-protocol3.c:1164 +#: fe-protocol3.c:1159 msgid "LOCATION: " msgstr "ПОЛОЖЕÐИЕ: " -#: fe-protocol3.c:1166 +#: fe-protocol3.c:1161 #, c-format msgid "%s, " msgstr "%s, " -#: fe-protocol3.c:1168 +#: fe-protocol3.c:1163 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: fe-protocol3.c:1363 +#: fe-protocol3.c:1358 #, c-format msgid "LINE %d: " msgstr "СТРОКР%d: " -#: fe-protocol3.c:1762 +#: fe-protocol3.c:1757 msgid "PQgetline: not doing text COPY OUT\n" msgstr "PQgetline можно вызывать только во Ð²Ñ€ÐµÐ¼Ñ COPY OUT Ñ Ñ‚ÐµÐºÑтом\n" -#: fe-protocol3.c:2139 +#: fe-protocol3.c:2134 msgid "protocol error: no function result\n" msgstr "ошибка протокола: нет результата функции\n" -#: fe-protocol3.c:2151 +#: fe-protocol3.c:2146 #, c-format msgid "protocol error: id=0x%x\n" msgstr "ошибка протокола: id=0x%x\n" @@ -1085,119 +1085,119 @@ msgstr "" msgid "could not get server's host name from server certificate\n" msgstr "не удалоÑÑŒ получить Ð¸Ð¼Ñ Ñервера из Ñерверного Ñертификата\n" -#: fe-secure-gssapi.c:201 +#: fe-secure-gssapi.c:194 msgid "GSSAPI wrap error" msgstr "ошибка Ð¾Ð±Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² GSSAPI" -#: fe-secure-gssapi.c:209 +#: fe-secure-gssapi.c:202 msgid "outgoing GSSAPI message would not use confidentiality\n" msgstr "иÑходÑщее Ñообщение GSSAPI не будет защищено\n" -#: fe-secure-gssapi.c:217 +#: fe-secure-gssapi.c:210 #, c-format msgid "client tried to send oversize GSSAPI packet (%zu > %zu)\n" msgstr "клиент попыталÑÑ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‚ÑŒ чрезмерно большой пакет GSSAPI (%zu > %zu)\n" -#: fe-secure-gssapi.c:354 fe-secure-gssapi.c:598 +#: fe-secure-gssapi.c:350 fe-secure-gssapi.c:594 #, c-format msgid "oversize GSSAPI packet sent by the server (%zu > %zu)\n" msgstr "Ñервер передал чрезмерно большой пакет GSSAPI (%zu > %zu)\n" -#: fe-secure-gssapi.c:393 +#: fe-secure-gssapi.c:389 msgid "GSSAPI unwrap error" msgstr "ошибка Ñ€Ð°Ð·Ð²Ñ‘Ñ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² GSSAPI" -#: fe-secure-gssapi.c:403 +#: fe-secure-gssapi.c:399 msgid "incoming GSSAPI message did not use confidentiality\n" msgstr "входÑщее Ñообщение GSSAPI не защищено\n" -#: fe-secure-gssapi.c:644 +#: fe-secure-gssapi.c:640 msgid "could not initiate GSSAPI security context" msgstr "не удалоÑÑŒ инициализировать контекÑÑ‚ безопаÑноÑти GSSAPI" -#: fe-secure-gssapi.c:672 +#: fe-secure-gssapi.c:668 msgid "GSSAPI size check error" msgstr "ошибка проверки размера в GSSAPI" -#: fe-secure-gssapi.c:683 +#: fe-secure-gssapi.c:679 msgid "GSSAPI context establishment error" msgstr "ошибка уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½Ñ‚ÐµÐºÑта в GSSAPI" -#: fe-secure-openssl.c:223 fe-secure-openssl.c:330 fe-secure-openssl.c:1504 +#: fe-secure-openssl.c:223 fe-secure-openssl.c:336 fe-secure-openssl.c:1512 #, c-format msgid "SSL SYSCALL error: %s\n" msgstr "ошибка SSL SYSCALL: %s\n" -#: fe-secure-openssl.c:230 fe-secure-openssl.c:337 fe-secure-openssl.c:1508 +#: fe-secure-openssl.c:230 fe-secure-openssl.c:343 fe-secure-openssl.c:1516 msgid "SSL SYSCALL error: EOF detected\n" msgstr "ошибка SSL SYSCALL: конец файла (EOF)\n" -#: fe-secure-openssl.c:241 fe-secure-openssl.c:348 fe-secure-openssl.c:1517 +#: fe-secure-openssl.c:241 fe-secure-openssl.c:354 fe-secure-openssl.c:1525 #, c-format msgid "SSL error: %s\n" msgstr "ошибка SSL: %s\n" -#: fe-secure-openssl.c:256 fe-secure-openssl.c:363 +#: fe-secure-openssl.c:256 fe-secure-openssl.c:369 msgid "SSL connection has been closed unexpectedly\n" msgstr "SSL-Ñоединение было неожиданно закрыто\n" -#: fe-secure-openssl.c:262 fe-secure-openssl.c:369 fe-secure-openssl.c:1567 +#: fe-secure-openssl.c:262 fe-secure-openssl.c:375 fe-secure-openssl.c:1575 #, c-format msgid "unrecognized SSL error code: %d\n" msgstr "нераÑпознанный код ошибки SSL: %d\n" -#: fe-secure-openssl.c:414 +#: fe-secure-openssl.c:420 msgid "could not determine server certificate signature algorithm\n" msgstr "не удалоÑÑŒ определить алгоритм подпиÑи Ñертификата Ñервера\n" -#: fe-secure-openssl.c:435 +#: fe-secure-openssl.c:441 #, c-format msgid "could not find digest for NID %s\n" msgstr "не удалоÑÑŒ найти алгоритм Ñ…ÐµÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ NID %s\n" -#: fe-secure-openssl.c:445 +#: fe-secure-openssl.c:451 msgid "could not generate peer certificate hash\n" msgstr "не удалоÑÑŒ Ñгенерировать хеш Ñертификата Ñервера\n" -#: fe-secure-openssl.c:502 +#: fe-secure-openssl.c:508 msgid "SSL certificate's name entry is missing\n" msgstr "в SSL-Ñертификате отÑутÑтвует запиÑÑŒ имени\n" -#: fe-secure-openssl.c:537 +#: fe-secure-openssl.c:543 msgid "SSL certificate's address entry is missing\n" msgstr "в SSL-Ñертификате отÑутÑтвует запиÑÑŒ адреÑа\n" -#: fe-secure-openssl.c:955 +#: fe-secure-openssl.c:961 #, c-format msgid "could not create SSL context: %s\n" msgstr "не удалоÑÑŒ Ñоздать контекÑÑ‚ SSL: %s\n" -#: fe-secure-openssl.c:994 +#: fe-secure-openssl.c:1000 #, c-format msgid "invalid value \"%s\" for minimum SSL protocol version\n" msgstr "неверное значение \"%s\" Ð´Ð»Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð¹ верÑии протокола SSL\n" -#: fe-secure-openssl.c:1005 +#: fe-secure-openssl.c:1011 #, c-format msgid "could not set minimum SSL protocol version: %s\n" msgstr "не удалоÑÑŒ задать минимальную верÑию протокола SSL: %s\n" -#: fe-secure-openssl.c:1023 +#: fe-secure-openssl.c:1029 #, c-format msgid "invalid value \"%s\" for maximum SSL protocol version\n" msgstr "неверное значение \"%s\" Ð´Ð»Ñ Ð¼Ð°ÐºÑимальной верÑии протокола SSL\n" -#: fe-secure-openssl.c:1034 +#: fe-secure-openssl.c:1040 #, c-format msgid "could not set maximum SSL protocol version: %s\n" msgstr "не удалоÑÑŒ задать макÑимальную верÑию протокола SSL: %s\n" -#: fe-secure-openssl.c:1070 +#: fe-secure-openssl.c:1076 #, c-format msgid "could not read root certificate file \"%s\": %s\n" msgstr "не удалоÑÑŒ прочитать файл корневых Ñертификатов \"%s\": %s\n" -#: fe-secure-openssl.c:1123 +#: fe-secure-openssl.c:1129 msgid "" "could not get home directory to locate root certificate file\n" "Either provide the file or change sslmode to disable server certificate " @@ -1207,7 +1207,7 @@ msgstr "" "Укажите полный путь к файлу или отключите проверку Ñертификата Ñервера, " "изменив sslmode.\n" -#: fe-secure-openssl.c:1127 +#: fe-secure-openssl.c:1133 #, c-format msgid "" "root certificate file \"%s\" does not exist\n" @@ -1218,63 +1218,63 @@ msgstr "" "Укажите полный путь к файлу или отключите проверку Ñертификата Ñервера, " "изменив sslmode.\n" -#: fe-secure-openssl.c:1158 +#: fe-secure-openssl.c:1164 #, c-format msgid "could not open certificate file \"%s\": %s\n" msgstr "не удалоÑÑŒ открыть файл Ñертификата \"%s\": %s\n" -#: fe-secure-openssl.c:1177 +#: fe-secure-openssl.c:1183 #, c-format msgid "could not read certificate file \"%s\": %s\n" msgstr "не удалоÑÑŒ прочитать файл Ñертификата \"%s\": %s\n" -#: fe-secure-openssl.c:1202 +#: fe-secure-openssl.c:1208 #, c-format msgid "could not establish SSL connection: %s\n" msgstr "не удалоÑÑŒ уÑтановить SSL-Ñоединение: %s\n" -#: fe-secure-openssl.c:1236 +#: fe-secure-openssl.c:1242 #, c-format msgid "could not set SSL Server Name Indication (SNI): %s\n" msgstr "" "не удалоÑÑŒ задать SNI (Server Name Indication) Ð´Ð»Ñ SSL-подключениÑ: %s\n" -#: fe-secure-openssl.c:1282 +#: fe-secure-openssl.c:1288 #, c-format msgid "could not load SSL engine \"%s\": %s\n" msgstr "не удалоÑÑŒ загрузить модуль SSL ENGINE \"%s\": %s\n" -#: fe-secure-openssl.c:1294 +#: fe-secure-openssl.c:1300 #, c-format msgid "could not initialize SSL engine \"%s\": %s\n" msgstr "не удалоÑÑŒ инициализировать модуль SSL ENGINE \"%s\": %s\n" -#: fe-secure-openssl.c:1310 +#: fe-secure-openssl.c:1316 #, c-format msgid "could not read private SSL key \"%s\" from engine \"%s\": %s\n" msgstr "не удалоÑÑŒ прочитать закрытый ключ SSL \"%s\" из Ð¼Ð¾Ð´ÑƒÐ»Ñ \"%s\": %s\n" -#: fe-secure-openssl.c:1324 +#: fe-secure-openssl.c:1330 #, c-format msgid "could not load private SSL key \"%s\" from engine \"%s\": %s\n" msgstr "не удалоÑÑŒ загрузить закрытый ключ SSL \"%s\" из Ð¼Ð¾Ð´ÑƒÐ»Ñ \"%s\": %s\n" -#: fe-secure-openssl.c:1362 +#: fe-secure-openssl.c:1368 #, c-format msgid "certificate present, but not private key file \"%s\"\n" msgstr "при наличии Ñертификата отÑутÑтвует файл закрытого ключа \"%s\"\n" -#: fe-secure-openssl.c:1366 +#: fe-secure-openssl.c:1372 #, c-format msgid "could not stat private key file \"%s\": %m\n" msgstr "не удалоÑÑŒ получить информацию о файле закрытого ключа \"%s\": %m\n" -#: fe-secure-openssl.c:1375 +#: fe-secure-openssl.c:1381 #, c-format msgid "private key file \"%s\" is not a regular file\n" msgstr "файл закрытого ключа \"%s\" - не обычный файл\n" -#: fe-secure-openssl.c:1408 +#: fe-secure-openssl.c:1414 #, c-format msgid "" "private key file \"%s\" has group or world access; file must have " @@ -1286,17 +1286,17 @@ msgstr "" "текущему пользователю, либо u=rw,g=r (0640) или более Ñтрогие, еÑли он " "принадлежит root\n" -#: fe-secure-openssl.c:1433 +#: fe-secure-openssl.c:1439 #, c-format msgid "could not load private key file \"%s\": %s\n" msgstr "не удалоÑÑŒ загрузить файл закрытого ключа \"%s\": %s\n" -#: fe-secure-openssl.c:1450 +#: fe-secure-openssl.c:1456 #, c-format msgid "certificate does not match private key file \"%s\": %s\n" msgstr "Ñертификат не ÑоответÑтвует файлу закрытого ключа \"%s\": %s\n" -#: fe-secure-openssl.c:1550 +#: fe-secure-openssl.c:1558 #, c-format msgid "" "This may indicate that the server does not support any SSL protocol version " @@ -1305,32 +1305,32 @@ msgstr "" "Ðто может указывать на то, что Ñервер не поддерживает ни одну верÑию " "протокола SSL между %s и %s.\n" -#: fe-secure-openssl.c:1586 +#: fe-secure-openssl.c:1594 #, c-format msgid "certificate could not be obtained: %s\n" msgstr "не удалоÑÑŒ получить Ñертификат: %s\n" -#: fe-secure-openssl.c:1692 +#: fe-secure-openssl.c:1700 #, c-format msgid "no SSL error reported" msgstr "нет ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибке SSL" -#: fe-secure-openssl.c:1701 +#: fe-secure-openssl.c:1709 #, c-format msgid "SSL error code %lu" msgstr "код ошибки SSL: %lu" -#: fe-secure-openssl.c:1956 +#: fe-secure-openssl.c:1988 #, c-format msgid "WARNING: sslpassword truncated\n" msgstr "ПРЕДУПРЕЖДЕÐИЕ: значение sslpassword уÑечено\n" -#: fe-secure.c:267 +#: fe-secure.c:274 #, c-format msgid "could not receive data from server: %s\n" msgstr "не удалоÑÑŒ получить данные Ñ Ñервера: %s\n" -#: fe-secure.c:436 +#: fe-secure.c:443 #, c-format msgid "could not send data to server: %s\n" msgstr "не удалоÑÑŒ передать данные Ñерверу: %s\n" diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile index a2e6410..3a6954c 100644 --- a/src/pl/plperl/GNUmakefile +++ b/src/pl/plperl/GNUmakefile @@ -103,11 +103,11 @@ uninstall: uninstall-lib uninstall-data install-data: installdirs $(INSTALL_DATA) $(addprefix $(srcdir)/, $(DATA)) '$(DESTDIR)$(datadir)/extension/' - $(INSTALL_DATA) $(srcdir)/plperl.h $(srcdir)/ppport.h $(srcdir)/plperl_helpers.h '$(DESTDIR)$(includedir_server)' + $(INSTALL_DATA) $(srcdir)/plperl.h $(srcdir)/plperl_system.h $(srcdir)/ppport.h $(srcdir)/plperl_helpers.h '$(DESTDIR)$(includedir_server)' uninstall-data: rm -f $(addprefix '$(DESTDIR)$(datadir)/extension'/, $(notdir $(DATA))) - rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/, plperl.h ppport.h) + rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/, plperl.h plperl_system.h ppport.h) .PHONY: install-data uninstall-data diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h index ebca895..c0dd8cb 100644 --- a/src/pl/plperl/plperl.h +++ b/src/pl/plperl/plperl.h @@ -14,200 +14,11 @@ #ifndef PL_PERL_H #define PL_PERL_H -/* stop perl headers from hijacking stdio and other stuff on Windows */ -#ifdef WIN32 -#define WIN32IO_IS_STDIO -#endif /* WIN32 */ - -/* - * Supply a value of PERL_UNUSED_DECL that will satisfy gcc - the one - * perl itself supplies doesn't seem to. - */ -#define PERL_UNUSED_DECL pg_attribute_unused() - -/* - * Sometimes perl carefully scribbles on our *printf macros. - * So we undefine them here and redefine them after it's done its dirty deed. - */ -#undef vsnprintf -#undef snprintf -#undef vsprintf -#undef sprintf -#undef vfprintf -#undef fprintf -#undef vprintf -#undef printf - -/* - * Perl scribbles on the "_" macro too. - */ -#undef _ - -/* - * ActivePerl 5.18 and later are MinGW-built, and their headers use GCC's - * __inline__. Translate to something MSVC recognizes. Also, perl.h sometimes - * defines isnan, so undefine it here and put back the definition later if - * perl.h doesn't. - */ -#ifdef _MSC_VER -#define __inline__ inline -#ifdef isnan -#undef isnan -#endif -/* Work around for using MSVC and Strawberry Perl >= 5.30. */ -#define __builtin_expect(expr, val) (expr) -#endif - -/* - * Regarding bool, both PostgreSQL and Perl might use stdbool.h or not, - * depending on configuration. If both agree, things are relatively harmless. - * If not, things get tricky. If PostgreSQL does but Perl does not, define - * HAS_BOOL here so that Perl does not redefine bool; this avoids compiler - * warnings. If PostgreSQL does not but Perl does, we need to undefine bool - * after we include the Perl headers; see below. - */ -#ifdef PG_USE_STDBOOL -#define HAS_BOOL 1 -#endif - -/* - * Newer versions of the perl headers trigger a lot of warnings with our - * compiler flags (at least -Wdeclaration-after-statement, - * -Wshadow=compatible-local are known to be problematic). The system_header - * pragma hides warnings from within the rest of this file, if supported. - */ -#ifdef HAVE_PRAGMA_GCC_SYSTEM_HEADER -#pragma GCC system_header -#endif - /* - * Get the basic Perl API. We use PERL_NO_GET_CONTEXT mode so that our code - * can compile against MULTIPLICITY Perl builds without including XSUB.h. + * Pull in Perl headers via a wrapper header, to control the scope of + * the system_header pragma therein. */ -#define PERL_NO_GET_CONTEXT -#include "EXTERN.h" -#include "perl.h" - -/* - * We want to include XSUB.h only within .xs files, because on some platforms - * it undesirably redefines a lot of libc functions. But it must appear - * before ppport.h, so use a #define flag to control inclusion here. - */ -#ifdef PG_NEED_PERL_XSUB_H -/* - * On Windows, win32_port.h defines macros for a lot of these same functions. - * To avoid compiler warnings when XSUB.h redefines them, #undef our versions. - */ -#ifdef WIN32 -#undef accept -#undef bind -#undef connect -#undef fopen -#undef fstat -#undef kill -#undef listen -#undef lstat -#undef mkdir -#undef open -#undef putenv -#undef recv -#undef rename -#undef select -#undef send -#undef socket -#undef stat -#undef unlink -#endif - -#include "XSUB.h" -#endif - -/* put back our *printf macros ... this must match src/include/port.h */ -#ifdef vsnprintf -#undef vsnprintf -#endif -#ifdef snprintf -#undef snprintf -#endif -#ifdef vsprintf -#undef vsprintf -#endif -#ifdef sprintf -#undef sprintf -#endif -#ifdef vfprintf -#undef vfprintf -#endif -#ifdef fprintf -#undef fprintf -#endif -#ifdef vprintf -#undef vprintf -#endif -#ifdef printf -#undef printf -#endif - -#define vsnprintf pg_vsnprintf -#define snprintf pg_snprintf -#define vsprintf pg_vsprintf -#define sprintf pg_sprintf -#define vfprintf pg_vfprintf -#define fprintf pg_fprintf -#define vprintf pg_vprintf -#define printf(...) pg_printf(__VA_ARGS__) - -/* - * Put back "_" too; but rather than making it just gettext() as the core - * code does, make it dgettext() so that the right things will happen in - * loadable modules (if they've set up TEXTDOMAIN correctly). Note that - * we can't just set TEXTDOMAIN here, because this file is used by more - * extensions than just PL/Perl itself. - */ -#undef _ -#define _(x) dgettext(TEXTDOMAIN, x) - -/* put back the definition of isnan if needed */ -#ifdef _MSC_VER -#ifndef isnan -#define isnan(x) _isnan(x) -#endif -#endif - -/* perl version and platform portability */ -#include "ppport.h" - -/* - * perl might have included stdbool.h. If we also did that earlier (see c.h), - * then that's fine. If not, we probably rejected it for some reason. In - * that case, undef bool and proceed with our own bool. (Note that stdbool.h - * makes bool a macro, but our own replacement is a typedef, so the undef - * makes ours visible again). - */ -#ifndef PG_USE_STDBOOL -#ifdef bool -#undef bool -#endif -#endif - -/* supply HeUTF8 if it's missing - ppport.h doesn't supply it, unfortunately */ -#ifndef HeUTF8 -#define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ - SvUTF8(HeKEY_sv(he)) : \ - (U32)HeKUTF8(he)) -#endif - -/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */ -#ifndef GvCV_set -#define GvCV_set(gv, cv) (GvCV(gv) = cv) -#endif - -/* Perl 5.19.4 changed array indices from I32 to SSize_t */ -#if PERL_BCDVERSION >= 0x5019004 -#define AV_SIZE_MAX SSize_t_MAX -#else -#define AV_SIZE_MAX I32_MAX -#endif +#include "plperl_system.h" /* declare routines from plperl.c for access by .xs files */ HV *plperl_spi_exec(char *, int); diff --git a/src/pl/plperl/plperl_system.h b/src/pl/plperl/plperl_system.h new file mode 100644 index 0000000..61550db --- /dev/null +++ b/src/pl/plperl/plperl_system.h @@ -0,0 +1,215 @@ +/*------------------------------------------------------------------------- + * + * plperl_system.h + * Pull in Perl's system header files. + * + * We break this out as a separate header file to precisely control + * the scope of the "system_header" pragma. No Postgres-specific + * declarations should be put here. However, we do include some stuff + * that is meant to prevent conflicts between our code and Perl. + * + * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group + * Portions Copyright (c) 1995, Regents of the University of California + * + * src/pl/plperl/plperl_system.h + */ + +#ifndef PL_PERL_SYSTEM_H +#define PL_PERL_SYSTEM_H + +/* + * Newer versions of the perl headers trigger a lot of warnings with our + * preferred compiler flags (at least -Wdeclaration-after-statement, + * -Wshadow=compatible-local are known to be problematic). The system_header + * pragma hides warnings from within the rest of this file, if supported. + */ +#ifdef HAVE_PRAGMA_GCC_SYSTEM_HEADER +#pragma GCC system_header +#endif + +/* stop perl headers from hijacking stdio and other stuff on Windows */ +#ifdef WIN32 +#define WIN32IO_IS_STDIO +#endif /* WIN32 */ + +/* + * Supply a value of PERL_UNUSED_DECL that will satisfy gcc - the one + * perl itself supplies doesn't seem to. + */ +#define PERL_UNUSED_DECL pg_attribute_unused() + +/* + * Sometimes perl carefully scribbles on our *printf macros. + * So we undefine them here and redefine them after it's done its dirty deed. + */ +#undef vsnprintf +#undef snprintf +#undef vsprintf +#undef sprintf +#undef vfprintf +#undef fprintf +#undef vprintf +#undef printf + +/* + * Perl scribbles on the "_" macro too. + */ +#undef _ + +/* + * ActivePerl 5.18 and later are MinGW-built, and their headers use GCC's + * __inline__. Translate to something MSVC recognizes. Also, perl.h sometimes + * defines isnan, so undefine it here and put back the definition later if + * perl.h doesn't. + */ +#ifdef _MSC_VER +#define __inline__ inline +#ifdef isnan +#undef isnan +#endif +/* Work around for using MSVC and Strawberry Perl >= 5.30. */ +#define __builtin_expect(expr, val) (expr) +#endif + +/* + * Regarding bool, both PostgreSQL and Perl might use stdbool.h or not, + * depending on configuration. If both agree, things are relatively harmless. + * If not, things get tricky. If PostgreSQL does but Perl does not, define + * HAS_BOOL here so that Perl does not redefine bool; this avoids compiler + * warnings. If PostgreSQL does not but Perl does, we need to undefine bool + * after we include the Perl headers; see below. + */ +#ifdef PG_USE_STDBOOL +#define HAS_BOOL 1 +#endif + +/* + * Get the basic Perl API. We use PERL_NO_GET_CONTEXT mode so that our code + * can compile against MULTIPLICITY Perl builds without including XSUB.h. + */ +#define PERL_NO_GET_CONTEXT +#include "EXTERN.h" +#include "perl.h" + +/* + * We want to include XSUB.h only within .xs files, because on some platforms + * it undesirably redefines a lot of libc functions. But it must appear + * before ppport.h, so use a #define flag to control inclusion here. + */ +#ifdef PG_NEED_PERL_XSUB_H +/* + * On Windows, win32_port.h defines macros for a lot of these same functions. + * To avoid compiler warnings when XSUB.h redefines them, #undef our versions. + */ +#ifdef WIN32 +#undef accept +#undef bind +#undef connect +#undef fopen +#undef fstat +#undef kill +#undef listen +#undef lstat +#undef mkdir +#undef open +#undef putenv +#undef recv +#undef rename +#undef select +#undef send +#undef socket +#undef stat +#undef unlink +#endif + +#include "XSUB.h" +#endif + +/* put back our *printf macros ... this must match src/include/port.h */ +#ifdef vsnprintf +#undef vsnprintf +#endif +#ifdef snprintf +#undef snprintf +#endif +#ifdef vsprintf +#undef vsprintf +#endif +#ifdef sprintf +#undef sprintf +#endif +#ifdef vfprintf +#undef vfprintf +#endif +#ifdef fprintf +#undef fprintf +#endif +#ifdef vprintf +#undef vprintf +#endif +#ifdef printf +#undef printf +#endif + +#define vsnprintf pg_vsnprintf +#define snprintf pg_snprintf +#define vsprintf pg_vsprintf +#define sprintf pg_sprintf +#define vfprintf pg_vfprintf +#define fprintf pg_fprintf +#define vprintf pg_vprintf +#define printf(...) pg_printf(__VA_ARGS__) + +/* + * Put back "_" too; but rather than making it just gettext() as the core + * code does, make it dgettext() so that the right things will happen in + * loadable modules (if they've set up TEXTDOMAIN correctly). Note that + * we can't just set TEXTDOMAIN here, because this file is used by more + * extensions than just PL/Perl itself. + */ +#undef _ +#define _(x) dgettext(TEXTDOMAIN, x) + +/* put back the definition of isnan if needed */ +#ifdef _MSC_VER +#ifndef isnan +#define isnan(x) _isnan(x) +#endif +#endif + +/* perl version and platform portability */ +#include "ppport.h" + +/* + * perl might have included stdbool.h. If we also did that earlier (see c.h), + * then that's fine. If not, we probably rejected it for some reason. In + * that case, undef bool and proceed with our own bool. (Note that stdbool.h + * makes bool a macro, but our own replacement is a typedef, so the undef + * makes ours visible again). + */ +#ifndef PG_USE_STDBOOL +#ifdef bool +#undef bool +#endif +#endif + +/* supply HeUTF8 if it's missing - ppport.h doesn't supply it, unfortunately */ +#ifndef HeUTF8 +#define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ + SvUTF8(HeKEY_sv(he)) : \ + (U32)HeKUTF8(he)) +#endif + +/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */ +#ifndef GvCV_set +#define GvCV_set(gv, cv) (GvCV(gv) = cv) +#endif + +/* Perl 5.19.4 changed array indices from I32 to SSize_t */ +#if PERL_BCDVERSION >= 0x5019004 +#define AV_SIZE_MAX SSize_t_MAX +#else +#define AV_SIZE_MAX I32_MAX +#endif + +#endif /* PL_PERL_SYSTEM_H */ diff --git a/src/pl/plpgsql/src/Makefile b/src/pl/plpgsql/src/Makefile index f7eb42d..7cd8900 100644 --- a/src/pl/plpgsql/src/Makefile +++ b/src/pl/plpgsql/src/Makefile @@ -32,8 +32,9 @@ DATA = plpgsql.control plpgsql--1.0.sql REGRESS_OPTS = --dbname=$(PL_TESTDB) -REGRESS = plpgsql_array plpgsql_call plpgsql_control plpgsql_copy plpgsql_domain \ - plpgsql_record plpgsql_cache plpgsql_simple plpgsql_transaction \ +REGRESS = plpgsql_array plpgsql_cache plpgsql_call plpgsql_control \ + plpgsql_copy plpgsql_domain plpgsql_misc \ + plpgsql_record plpgsql_simple plpgsql_transaction \ plpgsql_trap plpgsql_trigger plpgsql_varprops # where to find gen_keywordlist.pl and subsidiary files diff --git a/src/pl/plpgsql/src/expected/plpgsql_misc.out b/src/pl/plpgsql/src/expected/plpgsql_misc.out new file mode 100644 index 0000000..faddba2 --- /dev/null +++ b/src/pl/plpgsql/src/expected/plpgsql_misc.out @@ -0,0 +1,31 @@ +-- +-- Miscellaneous topics +-- +-- Verify that we can parse new-style CREATE FUNCTION/PROCEDURE +do +$$ + declare procedure int; -- check we still recognize non-keywords as vars + begin + create function test1() returns int + begin atomic + select 2 + 2; + end; + create or replace procedure test2(x int) + begin atomic + select x + 2; + end; + end +$$; +\sf test1 +CREATE OR REPLACE FUNCTION public.test1() + RETURNS integer + LANGUAGE sql +BEGIN ATOMIC + SELECT (2 + 2); +END +\sf test2 +CREATE OR REPLACE PROCEDURE public.test2(IN x integer) + LANGUAGE sql +BEGIN ATOMIC + SELECT (x + 2); +END diff --git a/src/pl/plpgsql/src/pl_gram.c b/src/pl/plpgsql/src/pl_gram.c index 2d3e1c2..5d1cd56 100644 --- a/src/pl/plpgsql/src/pl_gram.c +++ b/src/pl/plpgsql/src/pl_gram.c @@ -157,7 +157,8 @@ static PLpgSQL_expr *read_sql_expression2(int until, int until2, int *endtoken); static PLpgSQL_expr *read_sql_stmt(void); static PLpgSQL_type *read_datatype(int tok); -static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location); +static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location, + PLword *word); static PLpgSQL_stmt_fetch *read_fetch_direction(void); static void complete_direction(PLpgSQL_stmt_fetch *fetch, bool *check_FROM); @@ -189,7 +190,7 @@ static List *read_raise_options(void); static void check_raise_parameters(PLpgSQL_stmt_raise *stmt); -#line 193 "pl_gram.c" +#line 194 "pl_gram.c" # ifndef YY_CAST # ifdef __cplusplus @@ -835,32 +836,32 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 361, 361, 367, 368, 371, 375, 384, 388, 392, - 398, 402, 407, 408, 411, 434, 442, 449, 458, 470, - 471, 474, 475, 479, 492, 530, 536, 535, 589, 592, - 596, 603, 609, 612, 643, 647, 653, 661, 662, 664, - 679, 694, 722, 750, 781, 782, 787, 798, 799, 804, - 809, 816, 817, 821, 823, 829, 830, 838, 839, 843, - 844, 854, 856, 858, 860, 862, 864, 866, 868, 870, - 872, 874, 876, 878, 880, 882, 884, 886, 888, 890, - 892, 894, 896, 898, 900, 904, 940, 958, 979, 1018, - 1081, 1084, 1088, 1094, 1098, 1104, 1117, 1161, 1179, 1184, - 1191, 1209, 1212, 1226, 1229, 1235, 1242, 1256, 1260, 1266, - 1278, 1281, 1296, 1314, 1333, 1367, 1626, 1652, 1666, 1673, - 1712, 1715, 1721, 1774, 1778, 1784, 1810, 1955, 1979, 1997, - 2001, 2005, 2009, 2020, 2033, 2097, 2175, 2205, 2218, 2223, - 2237, 2244, 2258, 2273, 2274, 2275, 2279, 2301, 2306, 2314, - 2316, 2315, 2357, 2361, 2367, 2380, 2389, 2395, 2432, 2436, - 2440, 2444, 2448, 2456, 2460, 2468, 2471, 2478, 2480, 2487, - 2491, 2495, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, - 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, - 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, - 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, - 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, - 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, - 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, - 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, - 2582, 2583, 2584 + 0, 362, 362, 368, 369, 372, 376, 385, 389, 393, + 399, 403, 408, 409, 412, 435, 443, 450, 459, 471, + 472, 475, 476, 480, 493, 531, 537, 536, 590, 593, + 597, 604, 610, 613, 644, 648, 654, 662, 663, 665, + 680, 695, 723, 751, 782, 783, 788, 799, 800, 805, + 810, 817, 818, 822, 824, 830, 831, 839, 840, 844, + 845, 855, 857, 859, 861, 863, 865, 867, 869, 871, + 873, 875, 877, 879, 881, 883, 885, 887, 889, 891, + 893, 895, 897, 899, 901, 905, 941, 959, 980, 1019, + 1082, 1085, 1089, 1095, 1099, 1105, 1118, 1162, 1180, 1185, + 1192, 1210, 1213, 1227, 1230, 1236, 1243, 1257, 1261, 1267, + 1279, 1282, 1297, 1315, 1334, 1368, 1627, 1653, 1667, 1674, + 1713, 1716, 1722, 1775, 1779, 1785, 1811, 1956, 1980, 1998, + 2002, 2006, 2010, 2021, 2034, 2098, 2176, 2206, 2219, 2224, + 2238, 2245, 2259, 2274, 2275, 2276, 2280, 2302, 2307, 2315, + 2317, 2316, 2358, 2362, 2368, 2381, 2390, 2396, 2433, 2437, + 2441, 2445, 2449, 2457, 2461, 2469, 2472, 2479, 2481, 2488, + 2492, 2496, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, + 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, + 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, + 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, + 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, + 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, + 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, + 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, + 2583, 2584, 2585 }; #endif @@ -2024,23 +2025,23 @@ yyreduce: switch (yyn) { case 2: /* pl_function: comp_options pl_block opt_semi */ -#line 362 "pl_gram.y" +#line 363 "pl_gram.y" { plpgsql_parse_result = (PLpgSQL_stmt_block *) (yyvsp[-1].stmt); } -#line 2032 "pl_gram.c" +#line 2033 "pl_gram.c" break; case 5: /* comp_option: '#' K_OPTION K_DUMP */ -#line 372 "pl_gram.y" +#line 373 "pl_gram.y" { plpgsql_DumpExecTree = true; } -#line 2040 "pl_gram.c" +#line 2041 "pl_gram.c" break; case 6: /* comp_option: '#' K_PRINT_STRICT_PARAMS option_value */ -#line 376 "pl_gram.y" +#line 377 "pl_gram.y" { if (strcmp((yyvsp[0].str), "on") == 0) plpgsql_curr_compile->print_strict_params = true; @@ -2049,51 +2050,51 @@ yyreduce: else elog(ERROR, "unrecognized print_strict_params option %s", (yyvsp[0].str)); } -#line 2053 "pl_gram.c" +#line 2054 "pl_gram.c" break; case 7: /* comp_option: '#' K_VARIABLE_CONFLICT K_ERROR */ -#line 385 "pl_gram.y" +#line 386 "pl_gram.y" { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_ERROR; } -#line 2061 "pl_gram.c" +#line 2062 "pl_gram.c" break; case 8: /* comp_option: '#' K_VARIABLE_CONFLICT K_USE_VARIABLE */ -#line 389 "pl_gram.y" +#line 390 "pl_gram.y" { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_VARIABLE; } -#line 2069 "pl_gram.c" +#line 2070 "pl_gram.c" break; case 9: /* comp_option: '#' K_VARIABLE_CONFLICT K_USE_COLUMN */ -#line 393 "pl_gram.y" +#line 394 "pl_gram.y" { plpgsql_curr_compile->resolve_option = PLPGSQL_RESOLVE_COLUMN; } -#line 2077 "pl_gram.c" +#line 2078 "pl_gram.c" break; case 10: /* option_value: T_WORD */ -#line 399 "pl_gram.y" +#line 400 "pl_gram.y" { (yyval.str) = (yyvsp[0].word).ident; } -#line 2085 "pl_gram.c" +#line 2086 "pl_gram.c" break; case 11: /* option_value: unreserved_keyword */ -#line 403 "pl_gram.y" +#line 404 "pl_gram.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 2093 "pl_gram.c" +#line 2094 "pl_gram.c" break; case 14: /* pl_block: decl_sect K_BEGIN proc_sect exception_sect K_END opt_label */ -#line 412 "pl_gram.y" +#line 413 "pl_gram.y" { PLpgSQL_stmt_block *new; @@ -2113,11 +2114,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2117 "pl_gram.c" +#line 2118 "pl_gram.c" break; case 15: /* decl_sect: opt_block_label */ -#line 435 "pl_gram.y" +#line 436 "pl_gram.y" { /* done with decls, so resume identifier lookup */ plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; @@ -2125,33 +2126,33 @@ yyreduce: (yyval.declhdr).n_initvars = 0; (yyval.declhdr).initvarnos = NULL; } -#line 2129 "pl_gram.c" +#line 2130 "pl_gram.c" break; case 16: /* decl_sect: opt_block_label decl_start */ -#line 443 "pl_gram.y" +#line 444 "pl_gram.y" { plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[-1].str); (yyval.declhdr).n_initvars = 0; (yyval.declhdr).initvarnos = NULL; } -#line 2140 "pl_gram.c" +#line 2141 "pl_gram.c" break; case 17: /* decl_sect: opt_block_label decl_start decl_stmts */ -#line 450 "pl_gram.y" +#line 451 "pl_gram.y" { plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_NORMAL; (yyval.declhdr).label = (yyvsp[-2].str); /* Remember variables declared in decl_stmts */ (yyval.declhdr).n_initvars = plpgsql_add_initdatums(&((yyval.declhdr).initvarnos)); } -#line 2151 "pl_gram.c" +#line 2152 "pl_gram.c" break; case 18: /* decl_start: K_DECLARE */ -#line 459 "pl_gram.y" +#line 460 "pl_gram.y" { /* Forget any variables created before block */ plpgsql_add_initdatums(NULL); @@ -2161,19 +2162,19 @@ yyreduce: */ plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_DECLARE; } -#line 2165 "pl_gram.c" +#line 2166 "pl_gram.c" break; case 22: /* decl_stmt: K_DECLARE */ -#line 476 "pl_gram.y" +#line 477 "pl_gram.y" { /* We allow useless extra DECLAREs */ } -#line 2173 "pl_gram.c" +#line 2174 "pl_gram.c" break; case 23: /* decl_stmt: LESS_LESS any_identifier GREATER_GREATER */ -#line 480 "pl_gram.y" +#line 481 "pl_gram.y" { /* * Throw a helpful error if user tries to put block @@ -2184,11 +2185,11 @@ yyreduce: errmsg("block label must be placed before DECLARE, not after"), parser_errposition((yylsp[-2])))); } -#line 2188 "pl_gram.c" +#line 2189 "pl_gram.c" break; case 24: /* decl_statement: decl_varname decl_const decl_datatype decl_collate decl_notnull decl_defval */ -#line 493 "pl_gram.y" +#line 494 "pl_gram.y" { PLpgSQL_variable *var; @@ -2226,26 +2227,26 @@ yyreduce: var->refname), parser_errposition((yylsp[-1])))); } -#line 2230 "pl_gram.c" +#line 2231 "pl_gram.c" break; case 25: /* decl_statement: decl_varname K_ALIAS K_FOR decl_aliasitem ';' */ -#line 531 "pl_gram.y" +#line 532 "pl_gram.y" { plpgsql_ns_additem((yyvsp[-1].nsitem)->itemtype, (yyvsp[-1].nsitem)->itemno, (yyvsp[-4].varname).name); } -#line 2239 "pl_gram.c" +#line 2240 "pl_gram.c" break; case 26: /* $@1: %empty */ -#line 536 "pl_gram.y" +#line 537 "pl_gram.y" { plpgsql_ns_push((yyvsp[-2].varname).name, PLPGSQL_LABEL_OTHER); } -#line 2245 "pl_gram.c" +#line 2246 "pl_gram.c" break; case 27: /* decl_statement: decl_varname opt_scrollable K_CURSOR $@1 decl_cursor_args decl_is_for decl_cursor_query */ -#line 538 "pl_gram.y" +#line 539 "pl_gram.y" { PLpgSQL_var *new; PLpgSQL_expr *curname_def; @@ -2294,51 +2295,51 @@ yyreduce: new->cursor_explicit_argrow = (yyvsp[-2].datum)->dno; new->cursor_options = CURSOR_OPT_FAST_PLAN | (yyvsp[-5].ival); } -#line 2298 "pl_gram.c" +#line 2299 "pl_gram.c" break; case 28: /* opt_scrollable: %empty */ -#line 589 "pl_gram.y" +#line 590 "pl_gram.y" { (yyval.ival) = 0; } -#line 2306 "pl_gram.c" +#line 2307 "pl_gram.c" break; case 29: /* opt_scrollable: K_NO K_SCROLL */ -#line 593 "pl_gram.y" +#line 594 "pl_gram.y" { (yyval.ival) = CURSOR_OPT_NO_SCROLL; } -#line 2314 "pl_gram.c" +#line 2315 "pl_gram.c" break; case 30: /* opt_scrollable: K_SCROLL */ -#line 597 "pl_gram.y" +#line 598 "pl_gram.y" { (yyval.ival) = CURSOR_OPT_SCROLL; } -#line 2322 "pl_gram.c" +#line 2323 "pl_gram.c" break; case 31: /* decl_cursor_query: %empty */ -#line 603 "pl_gram.y" +#line 604 "pl_gram.y" { (yyval.expr) = read_sql_stmt(); } -#line 2330 "pl_gram.c" +#line 2331 "pl_gram.c" break; case 32: /* decl_cursor_args: %empty */ -#line 609 "pl_gram.y" +#line 610 "pl_gram.y" { (yyval.datum) = NULL; } -#line 2338 "pl_gram.c" +#line 2339 "pl_gram.c" break; case 33: /* decl_cursor_args: '(' decl_cursor_arglist ')' */ -#line 613 "pl_gram.y" +#line 614 "pl_gram.y" { PLpgSQL_row *new; int i; @@ -2367,37 +2368,37 @@ yyreduce: plpgsql_adddatum((PLpgSQL_datum *) new); (yyval.datum) = (PLpgSQL_datum *) new; } -#line 2371 "pl_gram.c" +#line 2372 "pl_gram.c" break; case 34: /* decl_cursor_arglist: decl_cursor_arg */ -#line 644 "pl_gram.y" +#line 645 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].datum)); } -#line 2379 "pl_gram.c" +#line 2380 "pl_gram.c" break; case 35: /* decl_cursor_arglist: decl_cursor_arglist ',' decl_cursor_arg */ -#line 648 "pl_gram.y" +#line 649 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].datum)); } -#line 2387 "pl_gram.c" +#line 2388 "pl_gram.c" break; case 36: /* decl_cursor_arg: decl_varname decl_datatype */ -#line 654 "pl_gram.y" +#line 655 "pl_gram.y" { (yyval.datum) = (PLpgSQL_datum *) plpgsql_build_variable((yyvsp[-1].varname).name, (yyvsp[-1].varname).lineno, (yyvsp[0].dtype), true); } -#line 2397 "pl_gram.c" +#line 2398 "pl_gram.c" break; case 39: /* decl_aliasitem: T_WORD */ -#line 665 "pl_gram.y" +#line 666 "pl_gram.y" { PLpgSQL_nsitem *nsi; @@ -2412,11 +2413,11 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2416 "pl_gram.c" +#line 2417 "pl_gram.c" break; case 40: /* decl_aliasitem: unreserved_keyword */ -#line 680 "pl_gram.y" +#line 681 "pl_gram.y" { PLpgSQL_nsitem *nsi; @@ -2431,11 +2432,11 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2435 "pl_gram.c" +#line 2436 "pl_gram.c" break; case 41: /* decl_aliasitem: T_CWORD */ -#line 695 "pl_gram.y" +#line 696 "pl_gram.y" { PLpgSQL_nsitem *nsi; @@ -2461,11 +2462,11 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.nsitem) = nsi; } -#line 2465 "pl_gram.c" +#line 2466 "pl_gram.c" break; case 42: /* decl_varname: T_WORD */ -#line 723 "pl_gram.y" +#line 724 "pl_gram.y" { (yyval.varname).name = (yyvsp[0].word).ident; (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[0])); @@ -2493,11 +2494,11 @@ yyreduce: } } -#line 2497 "pl_gram.c" +#line 2498 "pl_gram.c" break; case 43: /* decl_varname: unreserved_keyword */ -#line 751 "pl_gram.y" +#line 752 "pl_gram.y" { (yyval.varname).name = pstrdup((yyvsp[0].keyword)); (yyval.varname).lineno = plpgsql_location_to_lineno((yylsp[0])); @@ -2525,23 +2526,23 @@ yyreduce: } } -#line 2529 "pl_gram.c" +#line 2530 "pl_gram.c" break; case 44: /* decl_const: %empty */ -#line 781 "pl_gram.y" +#line 782 "pl_gram.y" { (yyval.boolean) = false; } -#line 2535 "pl_gram.c" +#line 2536 "pl_gram.c" break; case 45: /* decl_const: K_CONSTANT */ -#line 783 "pl_gram.y" +#line 784 "pl_gram.y" { (yyval.boolean) = true; } -#line 2541 "pl_gram.c" +#line 2542 "pl_gram.c" break; case 46: /* decl_datatype: %empty */ -#line 787 "pl_gram.y" +#line 788 "pl_gram.y" { /* * If there's a lookahead token, read_datatype @@ -2550,75 +2551,75 @@ yyreduce: (yyval.dtype) = read_datatype(yychar); yyclearin; } -#line 2554 "pl_gram.c" +#line 2555 "pl_gram.c" break; case 47: /* decl_collate: %empty */ -#line 798 "pl_gram.y" +#line 799 "pl_gram.y" { (yyval.oid) = InvalidOid; } -#line 2560 "pl_gram.c" +#line 2561 "pl_gram.c" break; case 48: /* decl_collate: K_COLLATE T_WORD */ -#line 800 "pl_gram.y" +#line 801 "pl_gram.y" { (yyval.oid) = get_collation_oid(list_make1(makeString((yyvsp[0].word).ident)), false); } -#line 2569 "pl_gram.c" +#line 2570 "pl_gram.c" break; case 49: /* decl_collate: K_COLLATE unreserved_keyword */ -#line 805 "pl_gram.y" +#line 806 "pl_gram.y" { (yyval.oid) = get_collation_oid(list_make1(makeString(pstrdup((yyvsp[0].keyword)))), false); } -#line 2578 "pl_gram.c" +#line 2579 "pl_gram.c" break; case 50: /* decl_collate: K_COLLATE T_CWORD */ -#line 810 "pl_gram.y" +#line 811 "pl_gram.y" { (yyval.oid) = get_collation_oid((yyvsp[0].cword).idents, false); } -#line 2586 "pl_gram.c" +#line 2587 "pl_gram.c" break; case 51: /* decl_notnull: %empty */ -#line 816 "pl_gram.y" +#line 817 "pl_gram.y" { (yyval.boolean) = false; } -#line 2592 "pl_gram.c" +#line 2593 "pl_gram.c" break; case 52: /* decl_notnull: K_NOT K_NULL */ -#line 818 "pl_gram.y" +#line 819 "pl_gram.y" { (yyval.boolean) = true; } -#line 2598 "pl_gram.c" +#line 2599 "pl_gram.c" break; case 53: /* decl_defval: ';' */ -#line 822 "pl_gram.y" +#line 823 "pl_gram.y" { (yyval.expr) = NULL; } -#line 2604 "pl_gram.c" +#line 2605 "pl_gram.c" break; case 54: /* decl_defval: decl_defkey */ -#line 824 "pl_gram.y" +#line 825 "pl_gram.y" { (yyval.expr) = read_sql_expression(';', ";"); } -#line 2612 "pl_gram.c" +#line 2613 "pl_gram.c" break; case 59: /* proc_sect: %empty */ -#line 843 "pl_gram.y" +#line 844 "pl_gram.y" { (yyval.list) = NIL; } -#line 2618 "pl_gram.c" +#line 2619 "pl_gram.c" break; case 60: /* proc_sect: proc_sect proc_stmt */ -#line 845 "pl_gram.y" +#line 846 "pl_gram.y" { /* don't bother linking null statements into list */ if ((yyvsp[0].stmt) == NULL) @@ -2626,155 +2627,155 @@ yyreduce: else (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].stmt)); } -#line 2630 "pl_gram.c" +#line 2631 "pl_gram.c" break; case 61: /* proc_stmt: pl_block ';' */ -#line 855 "pl_gram.y" +#line 856 "pl_gram.y" { (yyval.stmt) = (yyvsp[-1].stmt); } -#line 2636 "pl_gram.c" +#line 2637 "pl_gram.c" break; case 62: /* proc_stmt: stmt_assign */ -#line 857 "pl_gram.y" +#line 858 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2642 "pl_gram.c" +#line 2643 "pl_gram.c" break; case 63: /* proc_stmt: stmt_if */ -#line 859 "pl_gram.y" +#line 860 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2648 "pl_gram.c" +#line 2649 "pl_gram.c" break; case 64: /* proc_stmt: stmt_case */ -#line 861 "pl_gram.y" +#line 862 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2654 "pl_gram.c" +#line 2655 "pl_gram.c" break; case 65: /* proc_stmt: stmt_loop */ -#line 863 "pl_gram.y" +#line 864 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2660 "pl_gram.c" +#line 2661 "pl_gram.c" break; case 66: /* proc_stmt: stmt_while */ -#line 865 "pl_gram.y" +#line 866 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2666 "pl_gram.c" +#line 2667 "pl_gram.c" break; case 67: /* proc_stmt: stmt_for */ -#line 867 "pl_gram.y" +#line 868 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2672 "pl_gram.c" +#line 2673 "pl_gram.c" break; case 68: /* proc_stmt: stmt_foreach_a */ -#line 869 "pl_gram.y" +#line 870 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2678 "pl_gram.c" +#line 2679 "pl_gram.c" break; case 69: /* proc_stmt: stmt_exit */ -#line 871 "pl_gram.y" +#line 872 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2684 "pl_gram.c" +#line 2685 "pl_gram.c" break; case 70: /* proc_stmt: stmt_return */ -#line 873 "pl_gram.y" +#line 874 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2690 "pl_gram.c" +#line 2691 "pl_gram.c" break; case 71: /* proc_stmt: stmt_raise */ -#line 875 "pl_gram.y" +#line 876 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2696 "pl_gram.c" +#line 2697 "pl_gram.c" break; case 72: /* proc_stmt: stmt_assert */ -#line 877 "pl_gram.y" +#line 878 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2702 "pl_gram.c" +#line 2703 "pl_gram.c" break; case 73: /* proc_stmt: stmt_execsql */ -#line 879 "pl_gram.y" +#line 880 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2708 "pl_gram.c" +#line 2709 "pl_gram.c" break; case 74: /* proc_stmt: stmt_dynexecute */ -#line 881 "pl_gram.y" +#line 882 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2714 "pl_gram.c" +#line 2715 "pl_gram.c" break; case 75: /* proc_stmt: stmt_perform */ -#line 883 "pl_gram.y" +#line 884 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2720 "pl_gram.c" +#line 2721 "pl_gram.c" break; case 76: /* proc_stmt: stmt_call */ -#line 885 "pl_gram.y" +#line 886 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2726 "pl_gram.c" +#line 2727 "pl_gram.c" break; case 77: /* proc_stmt: stmt_getdiag */ -#line 887 "pl_gram.y" +#line 888 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2732 "pl_gram.c" +#line 2733 "pl_gram.c" break; case 78: /* proc_stmt: stmt_open */ -#line 889 "pl_gram.y" +#line 890 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2738 "pl_gram.c" +#line 2739 "pl_gram.c" break; case 79: /* proc_stmt: stmt_fetch */ -#line 891 "pl_gram.y" +#line 892 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2744 "pl_gram.c" +#line 2745 "pl_gram.c" break; case 80: /* proc_stmt: stmt_move */ -#line 893 "pl_gram.y" +#line 894 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2750 "pl_gram.c" +#line 2751 "pl_gram.c" break; case 81: /* proc_stmt: stmt_close */ -#line 895 "pl_gram.y" +#line 896 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2756 "pl_gram.c" +#line 2757 "pl_gram.c" break; case 82: /* proc_stmt: stmt_null */ -#line 897 "pl_gram.y" +#line 898 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2762 "pl_gram.c" +#line 2763 "pl_gram.c" break; case 83: /* proc_stmt: stmt_commit */ -#line 899 "pl_gram.y" +#line 900 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2768 "pl_gram.c" +#line 2769 "pl_gram.c" break; case 84: /* proc_stmt: stmt_rollback */ -#line 901 "pl_gram.y" +#line 902 "pl_gram.y" { (yyval.stmt) = (yyvsp[0].stmt); } -#line 2774 "pl_gram.c" +#line 2775 "pl_gram.c" break; case 85: /* stmt_perform: K_PERFORM */ -#line 905 "pl_gram.y" +#line 906 "pl_gram.y" { PLpgSQL_stmt_perform *new; int startloc; @@ -2808,11 +2809,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2812 "pl_gram.c" +#line 2813 "pl_gram.c" break; case 86: /* stmt_call: K_CALL */ -#line 941 "pl_gram.y" +#line 942 "pl_gram.y" { PLpgSQL_stmt_call *new; @@ -2830,11 +2831,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2834 "pl_gram.c" +#line 2835 "pl_gram.c" break; case 87: /* stmt_call: K_DO */ -#line 959 "pl_gram.y" +#line 960 "pl_gram.y" { /* use the same structures as for CALL, for simplicity */ PLpgSQL_stmt_call *new; @@ -2853,11 +2854,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2857 "pl_gram.c" +#line 2858 "pl_gram.c" break; case 88: /* stmt_assign: T_DATUM */ -#line 980 "pl_gram.y" +#line 981 "pl_gram.y" { PLpgSQL_stmt_assign *new; RawParseMode pmode; @@ -2894,11 +2895,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2898 "pl_gram.c" +#line 2899 "pl_gram.c" break; case 89: /* stmt_getdiag: K_GET getdiag_area_opt K_DIAGNOSTICS getdiag_list ';' */ -#line 1019 "pl_gram.y" +#line 1020 "pl_gram.y" { PLpgSQL_stmt_getdiag *new; ListCell *lc; @@ -2958,51 +2959,51 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 2962 "pl_gram.c" +#line 2963 "pl_gram.c" break; case 90: /* getdiag_area_opt: %empty */ -#line 1081 "pl_gram.y" +#line 1082 "pl_gram.y" { (yyval.boolean) = false; } -#line 2970 "pl_gram.c" +#line 2971 "pl_gram.c" break; case 91: /* getdiag_area_opt: K_CURRENT */ -#line 1085 "pl_gram.y" +#line 1086 "pl_gram.y" { (yyval.boolean) = false; } -#line 2978 "pl_gram.c" +#line 2979 "pl_gram.c" break; case 92: /* getdiag_area_opt: K_STACKED */ -#line 1089 "pl_gram.y" +#line 1090 "pl_gram.y" { (yyval.boolean) = true; } -#line 2986 "pl_gram.c" +#line 2987 "pl_gram.c" break; case 93: /* getdiag_list: getdiag_list ',' getdiag_list_item */ -#line 1095 "pl_gram.y" +#line 1096 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].diagitem)); } -#line 2994 "pl_gram.c" +#line 2995 "pl_gram.c" break; case 94: /* getdiag_list: getdiag_list_item */ -#line 1099 "pl_gram.y" +#line 1100 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].diagitem)); } -#line 3002 "pl_gram.c" +#line 3003 "pl_gram.c" break; case 95: /* getdiag_list_item: getdiag_target assign_operator getdiag_item */ -#line 1105 "pl_gram.y" +#line 1106 "pl_gram.y" { PLpgSQL_diag_item *new; @@ -3012,11 +3013,11 @@ yyreduce: (yyval.diagitem) = new; } -#line 3016 "pl_gram.c" +#line 3017 "pl_gram.c" break; case 96: /* getdiag_item: %empty */ -#line 1117 "pl_gram.y" +#line 1118 "pl_gram.y" { int tok = yylex(); @@ -3059,11 +3060,11 @@ yyreduce: else yyerror("unrecognized GET DIAGNOSTICS item"); } -#line 3063 "pl_gram.c" +#line 3064 "pl_gram.c" break; case 97: /* getdiag_target: T_DATUM */ -#line 1162 "pl_gram.y" +#line 1163 "pl_gram.y" { /* * In principle we should support a getdiag_target @@ -3081,29 +3082,29 @@ yyreduce: check_assignable((yyvsp[0].wdatum).datum, (yylsp[0])); (yyval.datum) = (yyvsp[0].wdatum).datum; } -#line 3085 "pl_gram.c" +#line 3086 "pl_gram.c" break; case 98: /* getdiag_target: T_WORD */ -#line 1180 "pl_gram.y" +#line 1181 "pl_gram.y" { /* just to give a better message than "syntax error" */ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 3094 "pl_gram.c" +#line 3095 "pl_gram.c" break; case 99: /* getdiag_target: T_CWORD */ -#line 1185 "pl_gram.y" +#line 1186 "pl_gram.y" { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 3103 "pl_gram.c" +#line 3104 "pl_gram.c" break; case 100: /* stmt_if: K_IF expr_until_then proc_sect stmt_elsifs stmt_else K_END K_IF ';' */ -#line 1192 "pl_gram.y" +#line 1193 "pl_gram.y" { PLpgSQL_stmt_if *new; @@ -3118,19 +3119,19 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3122 "pl_gram.c" +#line 3123 "pl_gram.c" break; case 101: /* stmt_elsifs: %empty */ -#line 1209 "pl_gram.y" +#line 1210 "pl_gram.y" { (yyval.list) = NIL; } -#line 3130 "pl_gram.c" +#line 3131 "pl_gram.c" break; case 102: /* stmt_elsifs: stmt_elsifs K_ELSIF expr_until_then proc_sect */ -#line 1213 "pl_gram.y" +#line 1214 "pl_gram.y" { PLpgSQL_if_elsif *new; @@ -3141,35 +3142,35 @@ yyreduce: (yyval.list) = lappend((yyvsp[-3].list), new); } -#line 3145 "pl_gram.c" +#line 3146 "pl_gram.c" break; case 103: /* stmt_else: %empty */ -#line 1226 "pl_gram.y" +#line 1227 "pl_gram.y" { (yyval.list) = NIL; } -#line 3153 "pl_gram.c" +#line 3154 "pl_gram.c" break; case 104: /* stmt_else: K_ELSE proc_sect */ -#line 1230 "pl_gram.y" +#line 1231 "pl_gram.y" { (yyval.list) = (yyvsp[0].list); } -#line 3161 "pl_gram.c" +#line 3162 "pl_gram.c" break; case 105: /* stmt_case: K_CASE opt_expr_until_when case_when_list opt_case_else K_END K_CASE ';' */ -#line 1236 "pl_gram.y" +#line 1237 "pl_gram.y" { (yyval.stmt) = make_case((yylsp[-6]), (yyvsp[-5].expr), (yyvsp[-4].list), (yyvsp[-3].list)); } -#line 3169 "pl_gram.c" +#line 3170 "pl_gram.c" break; case 106: /* opt_expr_until_when: %empty */ -#line 1242 "pl_gram.y" +#line 1243 "pl_gram.y" { PLpgSQL_expr *expr = NULL; int tok = yylex(); @@ -3182,27 +3183,27 @@ yyreduce: plpgsql_push_back_token(K_WHEN); (yyval.expr) = expr; } -#line 3186 "pl_gram.c" +#line 3187 "pl_gram.c" break; case 107: /* case_when_list: case_when_list case_when */ -#line 1257 "pl_gram.y" +#line 1258 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].casewhen)); } -#line 3194 "pl_gram.c" +#line 3195 "pl_gram.c" break; case 108: /* case_when_list: case_when */ -#line 1261 "pl_gram.y" +#line 1262 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].casewhen)); } -#line 3202 "pl_gram.c" +#line 3203 "pl_gram.c" break; case 109: /* case_when: K_WHEN expr_until_then proc_sect */ -#line 1267 "pl_gram.y" +#line 1268 "pl_gram.y" { PLpgSQL_case_when *new = palloc(sizeof(PLpgSQL_case_when)); @@ -3211,19 +3212,19 @@ yyreduce: new->stmts = (yyvsp[0].list); (yyval.casewhen) = new; } -#line 3215 "pl_gram.c" +#line 3216 "pl_gram.c" break; case 110: /* opt_case_else: %empty */ -#line 1278 "pl_gram.y" +#line 1279 "pl_gram.y" { (yyval.list) = NIL; } -#line 3223 "pl_gram.c" +#line 3224 "pl_gram.c" break; case 111: /* opt_case_else: K_ELSE proc_sect */ -#line 1282 "pl_gram.y" +#line 1283 "pl_gram.y" { /* * proc_sect could return an empty list, but we @@ -3236,11 +3237,11 @@ yyreduce: else (yyval.list) = list_make1(NULL); } -#line 3240 "pl_gram.c" +#line 3241 "pl_gram.c" break; case 112: /* stmt_loop: opt_loop_label K_LOOP loop_body */ -#line 1297 "pl_gram.y" +#line 1298 "pl_gram.y" { PLpgSQL_stmt_loop *new; @@ -3256,11 +3257,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3260 "pl_gram.c" +#line 3261 "pl_gram.c" break; case 113: /* stmt_while: opt_loop_label K_WHILE expr_until_loop loop_body */ -#line 1315 "pl_gram.y" +#line 1316 "pl_gram.y" { PLpgSQL_stmt_while *new; @@ -3277,11 +3278,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3281 "pl_gram.c" +#line 3282 "pl_gram.c" break; case 114: /* stmt_for: opt_loop_label K_FOR for_control loop_body */ -#line 1334 "pl_gram.y" +#line 1335 "pl_gram.y" { /* This runs after we've scanned the loop body */ if ((yyvsp[-1].stmt)->cmd_type == PLPGSQL_STMT_FORI) @@ -3313,11 +3314,11 @@ yyreduce: /* close namespace started in opt_loop_label */ plpgsql_ns_pop(); } -#line 3317 "pl_gram.c" +#line 3318 "pl_gram.c" break; case 115: /* for_control: for_variable K_IN */ -#line 1368 "pl_gram.y" +#line 1369 "pl_gram.y" { int tok = yylex(); int tokloc = yylloc; @@ -3556,11 +3557,11 @@ yyreduce: } } } -#line 3560 "pl_gram.c" +#line 3561 "pl_gram.c" break; case 116: /* for_variable: T_DATUM */ -#line 1627 "pl_gram.y" +#line 1628 "pl_gram.y" { (yyval.forvariable).name = NameOfDatum(&((yyvsp[0].wdatum))); (yyval.forvariable).lineno = plpgsql_location_to_lineno((yylsp[0])); @@ -3586,11 +3587,11 @@ yyreduce: (yylsp[0])); } } -#line 3590 "pl_gram.c" +#line 3591 "pl_gram.c" break; case 117: /* for_variable: T_WORD */ -#line 1653 "pl_gram.y" +#line 1654 "pl_gram.y" { int tok; @@ -3604,20 +3605,20 @@ yyreduce: if (tok == ',') word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 3608 "pl_gram.c" +#line 3609 "pl_gram.c" break; case 118: /* for_variable: T_CWORD */ -#line 1667 "pl_gram.y" +#line 1668 "pl_gram.y" { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 3617 "pl_gram.c" +#line 3618 "pl_gram.c" break; case 119: /* stmt_foreach_a: opt_loop_label K_FOREACH for_variable foreach_slice K_IN K_ARRAY expr_until_loop loop_body */ -#line 1674 "pl_gram.y" +#line 1675 "pl_gram.y" { PLpgSQL_stmt_foreach_a *new; @@ -3653,27 +3654,27 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3657 "pl_gram.c" +#line 3658 "pl_gram.c" break; case 120: /* foreach_slice: %empty */ -#line 1712 "pl_gram.y" +#line 1713 "pl_gram.y" { (yyval.ival) = 0; } -#line 3665 "pl_gram.c" +#line 3666 "pl_gram.c" break; case 121: /* foreach_slice: K_SLICE ICONST */ -#line 1716 "pl_gram.y" +#line 1717 "pl_gram.y" { (yyval.ival) = (yyvsp[0].ival); } -#line 3673 "pl_gram.c" +#line 3674 "pl_gram.c" break; case 122: /* stmt_exit: exit_type opt_label opt_exitcond */ -#line 1722 "pl_gram.y" +#line 1723 "pl_gram.y" { PLpgSQL_stmt_exit *new; @@ -3724,27 +3725,27 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3728 "pl_gram.c" +#line 3729 "pl_gram.c" break; case 123: /* exit_type: K_EXIT */ -#line 1775 "pl_gram.y" +#line 1776 "pl_gram.y" { (yyval.boolean) = true; } -#line 3736 "pl_gram.c" +#line 3737 "pl_gram.c" break; case 124: /* exit_type: K_CONTINUE */ -#line 1779 "pl_gram.y" +#line 1780 "pl_gram.y" { (yyval.boolean) = false; } -#line 3744 "pl_gram.c" +#line 3745 "pl_gram.c" break; case 125: /* stmt_return: K_RETURN */ -#line 1785 "pl_gram.y" +#line 1786 "pl_gram.y" { int tok; @@ -3768,11 +3769,11 @@ yyreduce: (yyval.stmt) = make_return_stmt((yylsp[0])); } } -#line 3772 "pl_gram.c" +#line 3773 "pl_gram.c" break; case 126: /* stmt_raise: K_RAISE */ -#line 1811 "pl_gram.y" +#line 1812 "pl_gram.y" { PLpgSQL_stmt_raise *new; int tok; @@ -3915,11 +3916,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3919 "pl_gram.c" +#line 3920 "pl_gram.c" break; case 127: /* stmt_assert: K_ASSERT */ -#line 1956 "pl_gram.y" +#line 1957 "pl_gram.y" { PLpgSQL_stmt_assert *new; int tok; @@ -3941,45 +3942,45 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 3945 "pl_gram.c" +#line 3946 "pl_gram.c" break; case 128: /* loop_body: proc_sect K_END K_LOOP opt_label ';' */ -#line 1980 "pl_gram.y" +#line 1981 "pl_gram.y" { (yyval.loop_body).stmts = (yyvsp[-4].list); (yyval.loop_body).end_label = (yyvsp[-1].str); (yyval.loop_body).end_label_location = (yylsp[-1]); } -#line 3955 "pl_gram.c" +#line 3956 "pl_gram.c" break; case 129: /* stmt_execsql: K_IMPORT */ -#line 1998 "pl_gram.y" +#line 1999 "pl_gram.y" { - (yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[0])); + (yyval.stmt) = make_execsql_stmt(K_IMPORT, (yylsp[0]), NULL); } -#line 3963 "pl_gram.c" +#line 3964 "pl_gram.c" break; case 130: /* stmt_execsql: K_INSERT */ -#line 2002 "pl_gram.y" +#line 2003 "pl_gram.y" { - (yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[0])); + (yyval.stmt) = make_execsql_stmt(K_INSERT, (yylsp[0]), NULL); } -#line 3971 "pl_gram.c" +#line 3972 "pl_gram.c" break; case 131: /* stmt_execsql: K_MERGE */ -#line 2006 "pl_gram.y" +#line 2007 "pl_gram.y" { - (yyval.stmt) = make_execsql_stmt(K_MERGE, (yylsp[0])); + (yyval.stmt) = make_execsql_stmt(K_MERGE, (yylsp[0]), NULL); } -#line 3979 "pl_gram.c" +#line 3980 "pl_gram.c" break; case 132: /* stmt_execsql: T_WORD */ -#line 2010 "pl_gram.y" +#line 2011 "pl_gram.y" { int tok; @@ -3988,13 +3989,13 @@ yyreduce: if (tok == '=' || tok == COLON_EQUALS || tok == '[' || tok == '.') word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); - (yyval.stmt) = make_execsql_stmt(T_WORD, (yylsp[0])); + (yyval.stmt) = make_execsql_stmt(T_WORD, (yylsp[0]), &((yyvsp[0].word))); } -#line 3994 "pl_gram.c" +#line 3995 "pl_gram.c" break; case 133: /* stmt_execsql: T_CWORD */ -#line 2021 "pl_gram.y" +#line 2022 "pl_gram.y" { int tok; @@ -4003,13 +4004,13 @@ yyreduce: if (tok == '=' || tok == COLON_EQUALS || tok == '[' || tok == '.') cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); - (yyval.stmt) = make_execsql_stmt(T_CWORD, (yylsp[0])); + (yyval.stmt) = make_execsql_stmt(T_CWORD, (yylsp[0]), NULL); } -#line 4009 "pl_gram.c" +#line 4010 "pl_gram.c" break; case 134: /* stmt_dynexecute: K_EXECUTE */ -#line 2034 "pl_gram.y" +#line 2035 "pl_gram.y" { PLpgSQL_stmt_dynexecute *new; PLpgSQL_expr *expr; @@ -4070,11 +4071,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4074 "pl_gram.c" +#line 4075 "pl_gram.c" break; case 135: /* stmt_open: K_OPEN cursor_variable */ -#line 2098 "pl_gram.y" +#line 2099 "pl_gram.y" { PLpgSQL_stmt_open *new; int tok; @@ -4150,11 +4151,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4154 "pl_gram.c" +#line 4155 "pl_gram.c" break; case 136: /* stmt_fetch: K_FETCH opt_fetch_direction cursor_variable K_INTO */ -#line 2176 "pl_gram.y" +#line 2177 "pl_gram.y" { PLpgSQL_stmt_fetch *fetch = (yyvsp[-2].fetch); PLpgSQL_variable *target; @@ -4182,11 +4183,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) fetch; } -#line 4186 "pl_gram.c" +#line 4187 "pl_gram.c" break; case 137: /* stmt_move: K_MOVE opt_fetch_direction cursor_variable ';' */ -#line 2206 "pl_gram.y" +#line 2207 "pl_gram.y" { PLpgSQL_stmt_fetch *fetch = (yyvsp[-2].fetch); @@ -4196,19 +4197,19 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) fetch; } -#line 4200 "pl_gram.c" +#line 4201 "pl_gram.c" break; case 138: /* opt_fetch_direction: %empty */ -#line 2218 "pl_gram.y" +#line 2219 "pl_gram.y" { (yyval.fetch) = read_fetch_direction(); } -#line 4208 "pl_gram.c" +#line 4209 "pl_gram.c" break; case 139: /* stmt_close: K_CLOSE cursor_variable ';' */ -#line 2224 "pl_gram.y" +#line 2225 "pl_gram.y" { PLpgSQL_stmt_close *new; @@ -4220,20 +4221,20 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4224 "pl_gram.c" +#line 4225 "pl_gram.c" break; case 140: /* stmt_null: K_NULL ';' */ -#line 2238 "pl_gram.y" +#line 2239 "pl_gram.y" { /* We do not bother building a node for NULL */ (yyval.stmt) = NULL; } -#line 4233 "pl_gram.c" +#line 4234 "pl_gram.c" break; case 141: /* stmt_commit: K_COMMIT opt_transaction_chain ';' */ -#line 2245 "pl_gram.y" +#line 2246 "pl_gram.y" { PLpgSQL_stmt_commit *new; @@ -4245,11 +4246,11 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4249 "pl_gram.c" +#line 4250 "pl_gram.c" break; case 142: /* stmt_rollback: K_ROLLBACK opt_transaction_chain ';' */ -#line 2259 "pl_gram.y" +#line 2260 "pl_gram.y" { PLpgSQL_stmt_rollback *new; @@ -4261,29 +4262,29 @@ yyreduce: (yyval.stmt) = (PLpgSQL_stmt *) new; } -#line 4265 "pl_gram.c" +#line 4266 "pl_gram.c" break; case 143: /* opt_transaction_chain: K_AND K_CHAIN */ -#line 2273 "pl_gram.y" +#line 2274 "pl_gram.y" { (yyval.ival) = true; } -#line 4271 "pl_gram.c" +#line 4272 "pl_gram.c" break; case 144: /* opt_transaction_chain: K_AND K_NO K_CHAIN */ -#line 2274 "pl_gram.y" +#line 2275 "pl_gram.y" { (yyval.ival) = false; } -#line 4277 "pl_gram.c" +#line 4278 "pl_gram.c" break; case 145: /* opt_transaction_chain: %empty */ -#line 2275 "pl_gram.y" +#line 2276 "pl_gram.y" { (yyval.ival) = false; } -#line 4283 "pl_gram.c" +#line 4284 "pl_gram.c" break; case 146: /* cursor_variable: T_DATUM */ -#line 2280 "pl_gram.y" +#line 2281 "pl_gram.y" { /* * In principle we should support a cursor_variable @@ -4305,35 +4306,35 @@ yyreduce: parser_errposition((yylsp[0])))); (yyval.var) = (PLpgSQL_var *) (yyvsp[0].wdatum).datum; } -#line 4309 "pl_gram.c" +#line 4310 "pl_gram.c" break; case 147: /* cursor_variable: T_WORD */ -#line 2302 "pl_gram.y" +#line 2303 "pl_gram.y" { /* just to give a better message than "syntax error" */ word_is_not_variable(&((yyvsp[0].word)), (yylsp[0])); } -#line 4318 "pl_gram.c" +#line 4319 "pl_gram.c" break; case 148: /* cursor_variable: T_CWORD */ -#line 2307 "pl_gram.y" +#line 2308 "pl_gram.y" { /* just to give a better message than "syntax error" */ cword_is_not_variable(&((yyvsp[0].cword)), (yylsp[0])); } -#line 4327 "pl_gram.c" +#line 4328 "pl_gram.c" break; case 149: /* exception_sect: %empty */ -#line 2314 "pl_gram.y" +#line 2315 "pl_gram.y" { (yyval.exception_block) = NULL; } -#line 4333 "pl_gram.c" +#line 4334 "pl_gram.c" break; case 150: /* @2: %empty */ -#line 2316 "pl_gram.y" +#line 2317 "pl_gram.y" { /* * We use a mid-rule action to add these @@ -4366,38 +4367,38 @@ yyreduce: (yyval.exception_block) = new; } -#line 4370 "pl_gram.c" +#line 4371 "pl_gram.c" break; case 151: /* exception_sect: K_EXCEPTION @2 proc_exceptions */ -#line 2349 "pl_gram.y" +#line 2350 "pl_gram.y" { PLpgSQL_exception_block *new = (yyvsp[-1].exception_block); new->exc_list = (yyvsp[0].list); (yyval.exception_block) = new; } -#line 4381 "pl_gram.c" +#line 4382 "pl_gram.c" break; case 152: /* proc_exceptions: proc_exceptions proc_exception */ -#line 2358 "pl_gram.y" +#line 2359 "pl_gram.y" { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].exception)); } -#line 4389 "pl_gram.c" +#line 4390 "pl_gram.c" break; case 153: /* proc_exceptions: proc_exception */ -#line 2362 "pl_gram.y" +#line 2363 "pl_gram.y" { (yyval.list) = list_make1((yyvsp[0].exception)); } -#line 4397 "pl_gram.c" +#line 4398 "pl_gram.c" break; case 154: /* proc_exception: K_WHEN proc_conditions K_THEN proc_sect */ -#line 2368 "pl_gram.y" +#line 2369 "pl_gram.y" { PLpgSQL_exception *new; @@ -4408,11 +4409,11 @@ yyreduce: (yyval.exception) = new; } -#line 4412 "pl_gram.c" +#line 4413 "pl_gram.c" break; case 155: /* proc_conditions: proc_conditions K_OR proc_condition */ -#line 2381 "pl_gram.y" +#line 2382 "pl_gram.y" { PLpgSQL_condition *old; @@ -4421,19 +4422,19 @@ yyreduce: old->next = (yyvsp[0].condition); (yyval.condition) = (yyvsp[-2].condition); } -#line 4425 "pl_gram.c" +#line 4426 "pl_gram.c" break; case 156: /* proc_conditions: proc_condition */ -#line 2390 "pl_gram.y" +#line 2391 "pl_gram.y" { (yyval.condition) = (yyvsp[0].condition); } -#line 4433 "pl_gram.c" +#line 4434 "pl_gram.c" break; case 157: /* proc_condition: any_identifier */ -#line 2396 "pl_gram.y" +#line 2397 "pl_gram.y" { if (strcmp((yyvsp[0].str), "sqlstate") != 0) { @@ -4467,120 +4468,120 @@ yyreduce: (yyval.condition) = new; } } -#line 4471 "pl_gram.c" +#line 4472 "pl_gram.c" break; case 158: /* expr_until_semi: %empty */ -#line 2432 "pl_gram.y" +#line 2433 "pl_gram.y" { (yyval.expr) = read_sql_expression(';', ";"); } -#line 4477 "pl_gram.c" +#line 4478 "pl_gram.c" break; case 159: /* expr_until_then: %empty */ -#line 2436 "pl_gram.y" +#line 2437 "pl_gram.y" { (yyval.expr) = read_sql_expression(K_THEN, "THEN"); } -#line 4483 "pl_gram.c" +#line 4484 "pl_gram.c" break; case 160: /* expr_until_loop: %empty */ -#line 2440 "pl_gram.y" +#line 2441 "pl_gram.y" { (yyval.expr) = read_sql_expression(K_LOOP, "LOOP"); } -#line 4489 "pl_gram.c" +#line 4490 "pl_gram.c" break; case 161: /* opt_block_label: %empty */ -#line 2444 "pl_gram.y" +#line 2445 "pl_gram.y" { plpgsql_ns_push(NULL, PLPGSQL_LABEL_BLOCK); (yyval.str) = NULL; } -#line 4498 "pl_gram.c" +#line 4499 "pl_gram.c" break; case 162: /* opt_block_label: LESS_LESS any_identifier GREATER_GREATER */ -#line 2449 "pl_gram.y" +#line 2450 "pl_gram.y" { plpgsql_ns_push((yyvsp[-1].str), PLPGSQL_LABEL_BLOCK); (yyval.str) = (yyvsp[-1].str); } -#line 4507 "pl_gram.c" +#line 4508 "pl_gram.c" break; case 163: /* opt_loop_label: %empty */ -#line 2456 "pl_gram.y" +#line 2457 "pl_gram.y" { plpgsql_ns_push(NULL, PLPGSQL_LABEL_LOOP); (yyval.str) = NULL; } -#line 4516 "pl_gram.c" +#line 4517 "pl_gram.c" break; case 164: /* opt_loop_label: LESS_LESS any_identifier GREATER_GREATER */ -#line 2461 "pl_gram.y" +#line 2462 "pl_gram.y" { plpgsql_ns_push((yyvsp[-1].str), PLPGSQL_LABEL_LOOP); (yyval.str) = (yyvsp[-1].str); } -#line 4525 "pl_gram.c" +#line 4526 "pl_gram.c" break; case 165: /* opt_label: %empty */ -#line 2468 "pl_gram.y" +#line 2469 "pl_gram.y" { (yyval.str) = NULL; } -#line 4533 "pl_gram.c" +#line 4534 "pl_gram.c" break; case 166: /* opt_label: any_identifier */ -#line 2472 "pl_gram.y" +#line 2473 "pl_gram.y" { /* label validity will be checked by outer production */ (yyval.str) = (yyvsp[0].str); } -#line 4542 "pl_gram.c" +#line 4543 "pl_gram.c" break; case 167: /* opt_exitcond: ';' */ -#line 2479 "pl_gram.y" +#line 2480 "pl_gram.y" { (yyval.expr) = NULL; } -#line 4548 "pl_gram.c" +#line 4549 "pl_gram.c" break; case 168: /* opt_exitcond: K_WHEN expr_until_semi */ -#line 2481 "pl_gram.y" +#line 2482 "pl_gram.y" { (yyval.expr) = (yyvsp[0].expr); } -#line 4554 "pl_gram.c" +#line 4555 "pl_gram.c" break; case 169: /* any_identifier: T_WORD */ -#line 2488 "pl_gram.y" +#line 2489 "pl_gram.y" { (yyval.str) = (yyvsp[0].word).ident; } -#line 4562 "pl_gram.c" +#line 4563 "pl_gram.c" break; case 170: /* any_identifier: unreserved_keyword */ -#line 2492 "pl_gram.y" +#line 2493 "pl_gram.y" { (yyval.str) = pstrdup((yyvsp[0].keyword)); } -#line 4570 "pl_gram.c" +#line 4571 "pl_gram.c" break; case 171: /* any_identifier: T_DATUM */ -#line 2496 "pl_gram.y" +#line 2497 "pl_gram.y" { if ((yyvsp[0].wdatum).ident == NULL) /* composite name not OK */ yyerror("syntax error"); (yyval.str) = (yyvsp[0].wdatum).ident; } -#line 4580 "pl_gram.c" +#line 4581 "pl_gram.c" break; -#line 4584 "pl_gram.c" +#line 4585 "pl_gram.c" default: break; } @@ -4779,7 +4780,7 @@ yyreturn: return yyresult; } -#line 2587 "pl_gram.y" +#line 2588 "pl_gram.y" /* @@ -5139,8 +5140,13 @@ read_datatype(int tok) return result; } +/* + * Read a generic SQL statement. We have already read its first token; + * firsttoken is that token's code and location its starting location. + * If firsttoken == T_WORD, pass its yylval value as "word", else pass NULL. + */ static PLpgSQL_stmt * -make_execsql_stmt(int firsttoken, int location) +make_execsql_stmt(int firsttoken, int location, PLword *word) { StringInfoData ds; IdentifierLookup save_IdentifierLookup; @@ -5153,9 +5159,16 @@ make_execsql_stmt(int firsttoken, int location) bool have_strict = false; int into_start_loc = -1; int into_end_loc = -1; + int paren_depth = 0; + int begin_depth = 0; + bool in_routine_definition = false; + int token_count = 0; + char tokens[4]; /* records the first few tokens */ initStringInfo(&ds); + memset(tokens, 0, sizeof(tokens)); + /* special lookup mode for identifiers within the SQL text */ save_IdentifierLookup = plpgsql_IdentifierLookup; plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; @@ -5164,6 +5177,12 @@ make_execsql_stmt(int firsttoken, int location) * Scan to the end of the SQL command. Identify any INTO-variables * clause lurking within it, and parse that via read_into_target(). * + * The end of the statement is defined by a semicolon ... except that + * semicolons within parentheses or BEGIN/END blocks don't terminate a + * statement. We follow psql's lead in not recognizing BEGIN/END except + * after CREATE [OR REPLACE] {FUNCTION|PROCEDURE}. END can also appear + * within a CASE construct, so we treat CASE/END like BEGIN/END. + * * Because INTO is sometimes used in the main SQL grammar, we have to be * careful not to take any such usage of INTO as a PL/pgSQL INTO clause. * There are currently three such cases: @@ -5189,13 +5208,50 @@ make_execsql_stmt(int firsttoken, int location) * break this logic again ... beware! */ tok = firsttoken; + if (tok == T_WORD && strcmp(word->ident, "create") == 0) + tokens[token_count] = 'c'; + token_count++; + for (;;) { prev_tok = tok; tok = yylex(); if (have_into && into_end_loc < 0) into_end_loc = yylloc; /* token after the INTO part */ - if (tok == ';') + /* Detect CREATE [OR REPLACE] {FUNCTION|PROCEDURE} */ + if (tokens[0] == 'c' && token_count < sizeof(tokens)) + { + if (tok == K_OR) + tokens[token_count] = 'o'; + else if (tok == T_WORD && + strcmp(yylval.word.ident, "replace") == 0) + tokens[token_count] = 'r'; + else if (tok == T_WORD && + strcmp(yylval.word.ident, "function") == 0) + tokens[token_count] = 'f'; + else if (tok == T_WORD && + strcmp(yylval.word.ident, "procedure") == 0) + tokens[token_count] = 'f'; /* treat same as "function" */ + if (tokens[1] == 'f' || + (tokens[1] == 'o' && tokens[2] == 'r' && tokens[3] == 'f')) + in_routine_definition = true; + token_count++; + } + /* Track paren nesting (needed for CREATE RULE syntax) */ + if (tok == '(') + paren_depth++; + else if (tok == ')' && paren_depth > 0) + paren_depth--; + /* We need track BEGIN/END nesting only in a routine definition */ + if (in_routine_definition && paren_depth == 0) + { + if (tok == K_BEGIN || tok == K_CASE) + begin_depth++; + else if (tok == K_END && begin_depth > 0) + begin_depth--; + } + /* Command-ending semicolon? */ + if (tok == ';' && paren_depth == 0 && begin_depth == 0) break; if (tok == 0) yyerror("unexpected end of function definition"); diff --git a/src/pl/plpgsql/src/pl_gram.h b/src/pl/plpgsql/src/pl_gram.h index 9fd14bd..e22b1c0 100644 --- a/src/pl/plpgsql/src/pl_gram.h +++ b/src/pl/plpgsql/src/pl_gram.h @@ -189,7 +189,7 @@ extern int plpgsql_yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 120 "pl_gram.y" +#line 121 "pl_gram.y" core_YYSTYPE core_yystype; /* these fields must match core_YYSTYPE: */ diff --git a/src/pl/plpgsql/src/pl_gram.y b/src/pl/plpgsql/src/pl_gram.y index 0b8aea9..debbafe 100644 --- a/src/pl/plpgsql/src/pl_gram.y +++ b/src/pl/plpgsql/src/pl_gram.y @@ -79,7 +79,8 @@ static PLpgSQL_expr *read_sql_expression2(int until, int until2, int *endtoken); static PLpgSQL_expr *read_sql_stmt(void); static PLpgSQL_type *read_datatype(int tok); -static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location); +static PLpgSQL_stmt *make_execsql_stmt(int firsttoken, int location, + PLword *word); static PLpgSQL_stmt_fetch *read_fetch_direction(void); static void complete_direction(PLpgSQL_stmt_fetch *fetch, bool *check_FROM); @@ -1996,15 +1997,15 @@ loop_body : proc_sect K_END K_LOOP opt_label ';' */ stmt_execsql : K_IMPORT { - $$ = make_execsql_stmt(K_IMPORT, @1); + $$ = make_execsql_stmt(K_IMPORT, @1, NULL); } | K_INSERT { - $$ = make_execsql_stmt(K_INSERT, @1); + $$ = make_execsql_stmt(K_INSERT, @1, NULL); } | K_MERGE { - $$ = make_execsql_stmt(K_MERGE, @1); + $$ = make_execsql_stmt(K_MERGE, @1, NULL); } | T_WORD { @@ -2015,7 +2016,7 @@ stmt_execsql : K_IMPORT if (tok == '=' || tok == COLON_EQUALS || tok == '[' || tok == '.') word_is_not_variable(&($1), @1); - $$ = make_execsql_stmt(T_WORD, @1); + $$ = make_execsql_stmt(T_WORD, @1, &($1)); } | T_CWORD { @@ -2026,7 +2027,7 @@ stmt_execsql : K_IMPORT if (tok == '=' || tok == COLON_EQUALS || tok == '[' || tok == '.') cword_is_not_variable(&($1), @1); - $$ = make_execsql_stmt(T_CWORD, @1); + $$ = make_execsql_stmt(T_CWORD, @1, NULL); } ; @@ -2943,8 +2944,13 @@ read_datatype(int tok) return result; } +/* + * Read a generic SQL statement. We have already read its first token; + * firsttoken is that token's code and location its starting location. + * If firsttoken == T_WORD, pass its yylval value as "word", else pass NULL. + */ static PLpgSQL_stmt * -make_execsql_stmt(int firsttoken, int location) +make_execsql_stmt(int firsttoken, int location, PLword *word) { StringInfoData ds; IdentifierLookup save_IdentifierLookup; @@ -2957,9 +2963,16 @@ make_execsql_stmt(int firsttoken, int location) bool have_strict = false; int into_start_loc = -1; int into_end_loc = -1; + int paren_depth = 0; + int begin_depth = 0; + bool in_routine_definition = false; + int token_count = 0; + char tokens[4]; /* records the first few tokens */ initStringInfo(&ds); + memset(tokens, 0, sizeof(tokens)); + /* special lookup mode for identifiers within the SQL text */ save_IdentifierLookup = plpgsql_IdentifierLookup; plpgsql_IdentifierLookup = IDENTIFIER_LOOKUP_EXPR; @@ -2968,6 +2981,12 @@ make_execsql_stmt(int firsttoken, int location) * Scan to the end of the SQL command. Identify any INTO-variables * clause lurking within it, and parse that via read_into_target(). * + * The end of the statement is defined by a semicolon ... except that + * semicolons within parentheses or BEGIN/END blocks don't terminate a + * statement. We follow psql's lead in not recognizing BEGIN/END except + * after CREATE [OR REPLACE] {FUNCTION|PROCEDURE}. END can also appear + * within a CASE construct, so we treat CASE/END like BEGIN/END. + * * Because INTO is sometimes used in the main SQL grammar, we have to be * careful not to take any such usage of INTO as a PL/pgSQL INTO clause. * There are currently three such cases: @@ -2993,13 +3012,50 @@ make_execsql_stmt(int firsttoken, int location) * break this logic again ... beware! */ tok = firsttoken; + if (tok == T_WORD && strcmp(word->ident, "create") == 0) + tokens[token_count] = 'c'; + token_count++; + for (;;) { prev_tok = tok; tok = yylex(); if (have_into && into_end_loc < 0) into_end_loc = yylloc; /* token after the INTO part */ - if (tok == ';') + /* Detect CREATE [OR REPLACE] {FUNCTION|PROCEDURE} */ + if (tokens[0] == 'c' && token_count < sizeof(tokens)) + { + if (tok == K_OR) + tokens[token_count] = 'o'; + else if (tok == T_WORD && + strcmp(yylval.word.ident, "replace") == 0) + tokens[token_count] = 'r'; + else if (tok == T_WORD && + strcmp(yylval.word.ident, "function") == 0) + tokens[token_count] = 'f'; + else if (tok == T_WORD && + strcmp(yylval.word.ident, "procedure") == 0) + tokens[token_count] = 'f'; /* treat same as "function" */ + if (tokens[1] == 'f' || + (tokens[1] == 'o' && tokens[2] == 'r' && tokens[3] == 'f')) + in_routine_definition = true; + token_count++; + } + /* Track paren nesting (needed for CREATE RULE syntax) */ + if (tok == '(') + paren_depth++; + else if (tok == ')' && paren_depth > 0) + paren_depth--; + /* We need track BEGIN/END nesting only in a routine definition */ + if (in_routine_definition && paren_depth == 0) + { + if (tok == K_BEGIN || tok == K_CASE) + begin_depth++; + else if (tok == K_END && begin_depth > 0) + begin_depth--; + } + /* Command-ending semicolon? */ + if (tok == ';' && paren_depth == 0 && begin_depth == 0) break; if (tok == 0) yyerror("unexpected end of function definition"); diff --git a/src/pl/plpgsql/src/po/ru.po b/src/pl/plpgsql/src/po/ru.po index 5c93496..a1a17a0 100644 --- a/src/pl/plpgsql/src/po/ru.po +++ b/src/pl/plpgsql/src/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: plpgsql (PostgreSQL current)\n" "Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n" -"POT-Creation-Date: 2023-05-03 05:56+0300\n" +"POT-Creation-Date: 2024-02-02 18:11+0300\n" "PO-Revision-Date: 2022-09-05 13:38+0300\n" "Last-Translator: Alexander Lakhin <exclusion@gmail.com>\n" "Language-Team: Russian <pgsql-ru-general@postgresql.org>\n" @@ -323,7 +323,7 @@ msgid "" msgstr "" "функциÑ, Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÑŽÑ‰Ð°Ñ ÑоÑтавной тип, не может вернуть неÑоÑтавное значение" -#: pl_exec.c:3331 pl_gram.y:3319 +#: pl_exec.c:3331 pl_gram.y:3375 #, c-format msgid "cannot use RETURN NEXT in a non-SETOF function" msgstr "" @@ -344,7 +344,7 @@ msgstr "в RETURN NEXT передан неправильный тип Ð·Ð°Ð¿Ð¸Ñ msgid "RETURN NEXT must have a parameter" msgstr "у оператора RETURN NEXT должен быть параметр" -#: pl_exec.c:3551 pl_gram.y:3383 +#: pl_exec.c:3551 pl_gram.y:3439 #, c-format msgid "cannot use RETURN QUERY in a non-SETOF function" msgstr "" @@ -545,7 +545,7 @@ msgid "The tuple structure of a not-yet-assigned record is indeterminate." msgstr "" "Ð”Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи, которой не приÑвоено значение, Ñтруктура кортежа не определена." -#: pl_exec.c:8319 pl_gram.y:3442 +#: pl_exec.c:8319 pl_gram.y:3498 #, c-format msgid "variable \"%s\" is declared CONSTANT" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ \"%s\" объÑвлена как CONSTANT" @@ -582,57 +582,57 @@ msgstr "SQL-оператор" msgid "FOR over EXECUTE statement" msgstr "FOR по результатам EXECUTE" -#: pl_gram.y:487 +#: pl_gram.y:488 #, c-format msgid "block label must be placed before DECLARE, not after" msgstr "метка блока должна помещатьÑÑ Ð´Ð¾ DECLARE, а не поÑле" -#: pl_gram.y:507 +#: pl_gram.y:508 #, c-format msgid "collations are not supported by type %s" msgstr "тип %s не поддерживает Ñортировку (COLLATION)" -#: pl_gram.y:526 +#: pl_gram.y:527 #, c-format msgid "variable \"%s\" must have a default value, since it's declared NOT NULL" msgstr "" "у переменной \"%s\" должно быть значение по умолчанию, так как она объÑвлена " "как NOT NULL" -#: pl_gram.y:674 pl_gram.y:689 pl_gram.y:715 +#: pl_gram.y:675 pl_gram.y:690 pl_gram.y:716 #, c-format msgid "variable \"%s\" does not exist" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ \"%s\" не ÑущеÑтвует" -#: pl_gram.y:733 pl_gram.y:761 +#: pl_gram.y:734 pl_gram.y:762 msgid "duplicate declaration" msgstr "повторÑющееÑÑ Ð¾Ð±ÑŠÑвление" -#: pl_gram.y:744 pl_gram.y:772 +#: pl_gram.y:745 pl_gram.y:773 #, c-format msgid "variable \"%s\" shadows a previously defined variable" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ \"%s\" Ñкрывает ранее определённую переменную" -#: pl_gram.y:1044 +#: pl_gram.y:1045 #, c-format msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS" msgstr "команда GET STACKED DIAGNOSTICS не принимает Ñлемент %s" -#: pl_gram.y:1062 +#: pl_gram.y:1063 #, c-format msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS" msgstr "команда GET CURRENT DIAGNOSTICS не принимает Ñлемент %s" -#: pl_gram.y:1157 +#: pl_gram.y:1158 msgid "unrecognized GET DIAGNOSTICS item" msgstr "нераÑпознанный Ñлемент GET DIAGNOSTICS" -#: pl_gram.y:1173 pl_gram.y:3558 +#: pl_gram.y:1174 pl_gram.y:3614 #, c-format msgid "\"%s\" is not a scalar variable" msgstr "\"%s\" - не ÑкалÑÑ€Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ" -#: pl_gram.y:1403 pl_gram.y:1597 +#: pl_gram.y:1404 pl_gram.y:1598 #, c-format msgid "" "loop variable of loop over rows must be a record variable or list of scalar " @@ -641,229 +641,229 @@ msgstr "" "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñ†Ð¸ÐºÐ»Ð° по кортежам должна быть переменной типа запиÑÑŒ или ÑпиÑком " "ÑкалÑрных переменных" -#: pl_gram.y:1438 +#: pl_gram.y:1439 #, c-format msgid "cursor FOR loop must have only one target variable" msgstr "в цикле FOR Ñ ÐºÑƒÑ€Ñором должна быть только одна переменнаÑ" -#: pl_gram.y:1445 +#: pl_gram.y:1446 #, c-format msgid "cursor FOR loop must use a bound cursor variable" msgstr "" "в цикле FOR Ñ ÐºÑƒÑ€Ñором должен иÑпользоватьÑÑ ÐºÑƒÑ€Ñор, привÑзанный к запроÑу" -#: pl_gram.y:1536 +#: pl_gram.y:1537 #, c-format msgid "integer FOR loop must have only one target variable" msgstr "в целочиÑленном цикле FOR должна быть только одна переменнаÑ" -#: pl_gram.y:1570 +#: pl_gram.y:1571 #, c-format msgid "cannot specify REVERSE in query FOR loop" msgstr "в цикле FOR Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñом Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐºÐ°Ð·Ð°Ñ‚ÑŒ REVERSE" -#: pl_gram.y:1700 +#: pl_gram.y:1701 #, c-format msgid "loop variable of FOREACH must be a known variable or list of variables" msgstr "" "переменной цикла FOREACH должна быть извеÑÑ‚Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ ÑпиÑок " "переменных" -#: pl_gram.y:1742 +#: pl_gram.y:1743 #, c-format msgid "" "there is no label \"%s\" attached to any block or loop enclosing this " "statement" msgstr "в блоке или цикле, окружающем Ñтот оператор, нет метки \"%s\"" -#: pl_gram.y:1750 +#: pl_gram.y:1751 #, c-format msgid "block label \"%s\" cannot be used in CONTINUE" msgstr "метку блока \"%s\" Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать в CONTINUE" -#: pl_gram.y:1765 +#: pl_gram.y:1766 #, c-format msgid "EXIT cannot be used outside a loop, unless it has a label" msgstr "EXIT можно иÑпользовать вне цикла только Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ метки" -#: pl_gram.y:1766 +#: pl_gram.y:1767 #, c-format msgid "CONTINUE cannot be used outside a loop" msgstr "CONTINUE Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать вне цикла" -#: pl_gram.y:1790 pl_gram.y:1828 pl_gram.y:1876 pl_gram.y:3005 pl_gram.y:3093 -#: pl_gram.y:3204 pl_gram.y:3957 +#: pl_gram.y:1791 pl_gram.y:1829 pl_gram.y:1877 pl_gram.y:3061 pl_gram.y:3149 +#: pl_gram.y:3260 pl_gram.y:4013 msgid "unexpected end of function definition" msgstr "неожиданный конец Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¸" -#: pl_gram.y:1896 pl_gram.y:1920 pl_gram.y:1936 pl_gram.y:1942 pl_gram.y:2067 -#: pl_gram.y:2075 pl_gram.y:2089 pl_gram.y:2184 pl_gram.y:2408 pl_gram.y:2498 -#: pl_gram.y:2656 pl_gram.y:3800 pl_gram.y:3861 pl_gram.y:3938 +#: pl_gram.y:1897 pl_gram.y:1921 pl_gram.y:1937 pl_gram.y:1943 pl_gram.y:2068 +#: pl_gram.y:2076 pl_gram.y:2090 pl_gram.y:2185 pl_gram.y:2409 pl_gram.y:2499 +#: pl_gram.y:2657 pl_gram.y:3856 pl_gram.y:3917 pl_gram.y:3994 msgid "syntax error" msgstr "ошибка ÑинтакÑиÑа" -#: pl_gram.y:1924 pl_gram.y:1926 pl_gram.y:2412 pl_gram.y:2414 +#: pl_gram.y:1925 pl_gram.y:1927 pl_gram.y:2413 pl_gram.y:2415 msgid "invalid SQLSTATE code" msgstr "неверный код SQLSTATE" -#: pl_gram.y:2132 +#: pl_gram.y:2133 msgid "syntax error, expected \"FOR\"" msgstr "ошибка ÑинтакÑиÑа, ожидалÑÑ \"FOR\"" -#: pl_gram.y:2193 +#: pl_gram.y:2194 #, c-format msgid "FETCH statement cannot return multiple rows" msgstr "оператор FETCH не может вернуть неÑколько Ñтрок" -#: pl_gram.y:2290 +#: pl_gram.y:2291 #, c-format msgid "cursor variable must be a simple variable" msgstr "переменнаÑ-курÑор должна быть проÑтой переменной" -#: pl_gram.y:2296 +#: pl_gram.y:2297 #, c-format msgid "variable \"%s\" must be of type cursor or refcursor" msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ \"%s\" должна быть типа cursor или refcursor" -#: pl_gram.y:2627 pl_gram.y:2638 +#: pl_gram.y:2628 pl_gram.y:2639 #, c-format msgid "\"%s\" is not a known variable" msgstr "\"%s\" - не извеÑÑ‚Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ" -#: pl_gram.y:2744 pl_gram.y:2754 pl_gram.y:2910 +#: pl_gram.y:2745 pl_gram.y:2755 pl_gram.y:2911 msgid "mismatched parentheses" msgstr "непарные Ñкобки" -#: pl_gram.y:2758 +#: pl_gram.y:2759 #, c-format msgid "missing \"%s\" at end of SQL expression" msgstr "отÑутÑтвует \"%s\" в конце Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ SQL" -#: pl_gram.y:2764 +#: pl_gram.y:2765 #, c-format msgid "missing \"%s\" at end of SQL statement" msgstr "отÑутÑтвует \"%s\" в конце оператора SQL" -#: pl_gram.y:2781 +#: pl_gram.y:2782 msgid "missing expression" msgstr "отÑутÑтвует выражение" -#: pl_gram.y:2783 +#: pl_gram.y:2784 msgid "missing SQL statement" msgstr "отÑутÑтвует оператор SQL" -#: pl_gram.y:2912 +#: pl_gram.y:2913 msgid "incomplete data type declaration" msgstr "неполное определение типа данных" -#: pl_gram.y:2935 +#: pl_gram.y:2936 msgid "missing data type declaration" msgstr "отÑутÑтвует определение типа данных" -#: pl_gram.y:3015 +#: pl_gram.y:3071 msgid "INTO specified more than once" msgstr "INTO указано неоднократно" -#: pl_gram.y:3185 +#: pl_gram.y:3241 msgid "expected FROM or IN" msgstr "ожидалоÑÑŒ FROM или IN" -#: pl_gram.y:3246 +#: pl_gram.y:3302 #, c-format msgid "RETURN cannot have a parameter in function returning set" msgstr "в функции, возвращающей множеÑтво, RETURN должен быть без параметров" -#: pl_gram.y:3247 +#: pl_gram.y:3303 #, c-format msgid "Use RETURN NEXT or RETURN QUERY." msgstr "ИÑпользуйте RETURN NEXT или RETURN QUERY." -#: pl_gram.y:3257 +#: pl_gram.y:3313 #, c-format msgid "RETURN cannot have a parameter in a procedure" msgstr "в процедуре RETURN должен быть без параметров" -#: pl_gram.y:3262 +#: pl_gram.y:3318 #, c-format msgid "RETURN cannot have a parameter in function returning void" msgstr "в функции, не возвращающей ничего, RETURN не должен иметь параметров" -#: pl_gram.y:3271 +#: pl_gram.y:3327 #, c-format msgid "RETURN cannot have a parameter in function with OUT parameters" msgstr "RETURN должен быть без параметров в функции Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ OUT" -#: pl_gram.y:3334 +#: pl_gram.y:3390 #, c-format msgid "RETURN NEXT cannot have a parameter in function with OUT parameters" msgstr "RETURN NEXT должен быть без параметров в функции Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ OUT" -#: pl_gram.y:3500 +#: pl_gram.y:3556 #, c-format msgid "record variable cannot be part of multiple-item INTO list" msgstr "" "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ñ‚Ð¸Ð¿Ð° запиÑÑŒ не может быть чаÑтью ÑпиÑка INTO Ñ Ð½ÐµÑколькими " "Ñлементами" -#: pl_gram.y:3546 +#: pl_gram.y:3602 #, c-format msgid "too many INTO variables specified" msgstr "указано Ñлишком много переменных INTO" -#: pl_gram.y:3754 +#: pl_gram.y:3810 #, c-format msgid "end label \"%s\" specified for unlabeled block" msgstr "ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° \"%s\" указана Ð´Ð»Ñ Ð½ÐµÐ¿Ð¾Ð¼ÐµÑ‡ÐµÐ½Ð½Ð¾Ð³Ð¾ блока" -#: pl_gram.y:3761 +#: pl_gram.y:3817 #, c-format msgid "end label \"%s\" differs from block's label \"%s\"" msgstr "ÐºÐ¾Ð½ÐµÑ‡Ð½Ð°Ñ Ð¼ÐµÑ‚ÐºÐ° \"%s\" отличаетÑÑ Ð¾Ñ‚ метки блока \"%s\"" -#: pl_gram.y:3795 +#: pl_gram.y:3851 #, c-format msgid "cursor \"%s\" has no arguments" msgstr "курÑор \"%s\" не имеет аргументов" -#: pl_gram.y:3809 +#: pl_gram.y:3865 #, c-format msgid "cursor \"%s\" has arguments" msgstr "курÑор \"%s\" имеет аргументы" -#: pl_gram.y:3851 +#: pl_gram.y:3907 #, c-format msgid "cursor \"%s\" has no argument named \"%s\"" msgstr "курÑор \"%s\" не имеет аргумента \"%s\"" -#: pl_gram.y:3871 +#: pl_gram.y:3927 #, c-format msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once" msgstr "значение параметра \"%s\" курÑора \"%s\" указано неоднократно" -#: pl_gram.y:3896 +#: pl_gram.y:3952 #, c-format msgid "not enough arguments for cursor \"%s\"" msgstr "недоÑтаточно аргументов Ð´Ð»Ñ ÐºÑƒÑ€Ñора \"%s\"" -#: pl_gram.y:3903 +#: pl_gram.y:3959 #, c-format msgid "too many arguments for cursor \"%s\"" msgstr "Ñлишком много аргументов Ð´Ð»Ñ ÐºÑƒÑ€Ñора \"%s\"" -#: pl_gram.y:3989 +#: pl_gram.y:4045 msgid "unrecognized RAISE statement option" msgstr "нераÑпознанный параметр оператора RAISE" -#: pl_gram.y:3993 +#: pl_gram.y:4049 msgid "syntax error, expected \"=\"" msgstr "ошибка ÑинтакÑиÑа, ожидалоÑÑŒ \"=\"" -#: pl_gram.y:4034 +#: pl_gram.y:4090 #, c-format msgid "too many parameters specified for RAISE" msgstr "Ñлишком много параметров Ð´Ð»Ñ RAISE" -#: pl_gram.y:4038 +#: pl_gram.y:4094 #, c-format msgid "too few parameters specified for RAISE" msgstr "недоÑтаточно параметров Ð´Ð»Ñ RAISE" diff --git a/src/pl/plpgsql/src/sql/plpgsql_misc.sql b/src/pl/plpgsql/src/sql/plpgsql_misc.sql new file mode 100644 index 0000000..71a8fc2 --- /dev/null +++ b/src/pl/plpgsql/src/sql/plpgsql_misc.sql @@ -0,0 +1,22 @@ +-- +-- Miscellaneous topics +-- + +-- Verify that we can parse new-style CREATE FUNCTION/PROCEDURE +do +$$ + declare procedure int; -- check we still recognize non-keywords as vars + begin + create function test1() returns int + begin atomic + select 2 + 2; + end; + create or replace procedure test2(x int) + begin atomic + select x + 2; + end; + end +$$; + +\sf test1 +\sf test2 diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile index 6b1865c..bb26426 100644 --- a/src/pl/plpython/Makefile +++ b/src/pl/plpython/Makefile @@ -39,6 +39,7 @@ DATA = $(NAME)u.control $(NAME)u--1.0.sql # header files to install - it's not clear which of these might be needed # so install them all. INCS = plpython.h \ + plpython_system.h \ plpy_cursorobject.h \ plpy_elog.h \ plpy_exec.h \ @@ -120,7 +121,7 @@ install-data: installdirs uninstall-data: rm -f $(addprefix '$(DESTDIR)$(datadir)/extension'/, $(notdir $(DATA))) - rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/, plpython.h plpy_util.h) + rm -f $(addprefix '$(DESTDIR)$(includedir_server)'/, $(INCS)) .PHONY: install-data uninstall-data diff --git a/src/pl/plpython/plpython.h b/src/pl/plpython/plpython.h index 2a0c9bf..c8f12c0 100644 --- a/src/pl/plpython/plpython.h +++ b/src/pl/plpython/plpython.h @@ -22,82 +22,15 @@ #endif /* - * Undefine some things that get (re)defined in the Python headers. They aren't - * used by the PL/Python code, and all PostgreSQL headers should be included - * earlier, so this should be pretty safe. + * Pull in Python headers via a wrapper header, to control the scope of + * the system_header pragma therein. */ -#undef _POSIX_C_SOURCE -#undef _XOPEN_SOURCE - -/* - * Sometimes python carefully scribbles on our *printf macros. - * So we undefine them here and redefine them after it's done its dirty deed. - */ -#undef vsnprintf -#undef snprintf -#undef vsprintf -#undef sprintf -#undef vfprintf -#undef fprintf -#undef vprintf -#undef printf - -#if defined(_MSC_VER) && defined(_DEBUG) -/* Python uses #pragma to bring in a non-default libpython on VC++ if - * _DEBUG is defined */ -#undef _DEBUG -/* Also hide away errcode, since we load Python.h before postgres.h */ -#define errcode __msvc_errcode -#include <Python.h> -#undef errcode -#define _DEBUG -#elif defined (_MSC_VER) -#define errcode __msvc_errcode -#include <Python.h> -#undef errcode -#else -#include <Python.h> -#endif +#include "plpython_system.h" /* define our text domain for translations */ #undef TEXTDOMAIN #define TEXTDOMAIN PG_TEXTDOMAIN("plpython") -/* put back our *printf macros ... this must match src/include/port.h */ -#ifdef vsnprintf -#undef vsnprintf -#endif -#ifdef snprintf -#undef snprintf -#endif -#ifdef vsprintf -#undef vsprintf -#endif -#ifdef sprintf -#undef sprintf -#endif -#ifdef vfprintf -#undef vfprintf -#endif -#ifdef fprintf -#undef fprintf -#endif -#ifdef vprintf -#undef vprintf -#endif -#ifdef printf -#undef printf -#endif - -#define vsnprintf pg_vsnprintf -#define snprintf pg_snprintf -#define vsprintf pg_vsprintf -#define sprintf pg_sprintf -#define vfprintf pg_vfprintf -#define fprintf pg_fprintf -#define vprintf pg_vprintf -#define printf(...) pg_printf(__VA_ARGS__) - /* * Used throughout, so it's easier to just include it everywhere. */ diff --git a/src/pl/plpython/plpython_system.h b/src/pl/plpython/plpython_system.h new file mode 100644 index 0000000..e93583f --- /dev/null +++ b/src/pl/plpython/plpython_system.h @@ -0,0 +1,103 @@ +/*------------------------------------------------------------------------- + * + * plpython_system.h - pull in Python's system header files + * + * We break this out as a separate header file to precisely control + * the scope of the "system_header" pragma. No Postgres-specific + * declarations should be put here. However, we do include some stuff + * that is meant to prevent conflicts between our code and Python. + * + * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * src/pl/plpython/plpython_system.h + * + *------------------------------------------------------------------------- + */ +#ifndef PLPYTHON_SYSTEM_H +#define PLPYTHON_SYSTEM_H + +/* + * Newer versions of the Python headers trigger a lot of warnings with our + * preferred compiler flags (at least -Wdeclaration-after-statement is known + * to be problematic). The system_header pragma hides warnings from within + * the rest of this file, if supported. + */ +#ifdef HAVE_PRAGMA_GCC_SYSTEM_HEADER +#pragma GCC system_header +#endif + +/* + * Undefine some things that get (re)defined in the Python headers. They aren't + * used by the PL/Python code, and all PostgreSQL headers should be included + * earlier, so this should be pretty safe. + */ +#undef _POSIX_C_SOURCE +#undef _XOPEN_SOURCE + +/* + * Sometimes python carefully scribbles on our *printf macros. + * So we undefine them here and redefine them after it's done its dirty deed. + */ +#undef vsnprintf +#undef snprintf +#undef vsprintf +#undef sprintf +#undef vfprintf +#undef fprintf +#undef vprintf +#undef printf + +#if defined(_MSC_VER) && defined(_DEBUG) +/* Python uses #pragma to bring in a non-default libpython on VC++ if + * _DEBUG is defined */ +#undef _DEBUG +/* Also hide away errcode, since we load Python.h before postgres.h */ +#define errcode __msvc_errcode +#include <Python.h> +#undef errcode +#define _DEBUG +#elif defined (_MSC_VER) +#define errcode __msvc_errcode +#include <Python.h> +#undef errcode +#else +#include <Python.h> +#endif + +/* put back our *printf macros ... this must match src/include/port.h */ +#ifdef vsnprintf +#undef vsnprintf +#endif +#ifdef snprintf +#undef snprintf +#endif +#ifdef vsprintf +#undef vsprintf +#endif +#ifdef sprintf +#undef sprintf +#endif +#ifdef vfprintf +#undef vfprintf +#endif +#ifdef fprintf +#undef fprintf +#endif +#ifdef vprintf +#undef vprintf +#endif +#ifdef printf +#undef printf +#endif + +#define vsnprintf pg_vsnprintf +#define snprintf pg_snprintf +#define vsprintf pg_vsprintf +#define sprintf pg_sprintf +#define vfprintf pg_vfprintf +#define fprintf pg_fprintf +#define vprintf pg_vprintf +#define printf(...) pg_printf(__VA_ARGS__) + +#endif /* PLPYTHON_SYSTEM_H */ diff --git a/src/test/isolation/expected/fk-snapshot.out b/src/test/isolation/expected/fk-snapshot.out index 5faf80d..bdd26ba 100644 --- a/src/test/isolation/expected/fk-snapshot.out +++ b/src/test/isolation/expected/fk-snapshot.out @@ -122,3 +122,25 @@ a 1 (1 row) + +starting permutation: s2ip2 s1brr s1ifp2 s2brr s2dp2 s1c s2c +step s2ip2: INSERT INTO pk_noparted VALUES (2); +step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; +step s1ifp2: INSERT INTO fk_parted_pk VALUES (2); +step s2brr: BEGIN ISOLATION LEVEL REPEATABLE READ; +step s2dp2: DELETE FROM pk_noparted WHERE a = 2; <waiting ...> +step s1c: COMMIT; +step s2dp2: <... completed> +ERROR: could not serialize access due to concurrent update +step s2c: COMMIT; + +starting permutation: s2ip2 s1brr s1ifn2 s2brr s2dp2 s1c s2c +step s2ip2: INSERT INTO pk_noparted VALUES (2); +step s1brr: BEGIN ISOLATION LEVEL REPEATABLE READ; +step s1ifn2: INSERT INTO fk_noparted_sn VALUES (2); +step s2brr: BEGIN ISOLATION LEVEL REPEATABLE READ; +step s2dp2: DELETE FROM pk_noparted WHERE a = 2; <waiting ...> +step s1c: COMMIT; +step s2dp2: <... completed> +ERROR: could not serialize access due to concurrent update +step s2c: COMMIT; diff --git a/src/test/isolation/specs/fk-snapshot.spec b/src/test/isolation/specs/fk-snapshot.spec index 378507f..9fad57e 100644 --- a/src/test/isolation/specs/fk-snapshot.spec +++ b/src/test/isolation/specs/fk-snapshot.spec @@ -13,6 +13,11 @@ setup CREATE TABLE fk_noparted ( a int REFERENCES fk_parted_pk ON DELETE NO ACTION INITIALLY DEFERRED ); + + CREATE TABLE fk_noparted_sn ( + a int REFERENCES pk_noparted ON DELETE SET NULL + ); + INSERT INTO pk_noparted VALUES (1); INSERT INTO fk_parted_pk VALUES (1); INSERT INTO fk_noparted VALUES (1); @@ -20,7 +25,7 @@ setup teardown { - DROP TABLE pk_noparted, fk_parted_pk, fk_noparted; + DROP TABLE pk_noparted, fk_parted_pk, fk_noparted, fk_noparted_sn; } session s1 @@ -28,6 +33,7 @@ step s1brr { BEGIN ISOLATION LEVEL REPEATABLE READ; } step s1brc { BEGIN ISOLATION LEVEL READ COMMITTED; } step s1ifp2 { INSERT INTO fk_parted_pk VALUES (2); } step s1ifp1 { INSERT INTO fk_parted_pk VALUES (1); } +step s1ifn2 { INSERT INTO fk_noparted_sn VALUES (2); } step s1dfp { DELETE FROM fk_parted_pk WHERE a = 1; } step s1c { COMMIT; } step s1sfp { SELECT * FROM fk_parted_pk; } @@ -38,6 +44,7 @@ session s2 step s2brr { BEGIN ISOLATION LEVEL REPEATABLE READ; } step s2brc { BEGIN ISOLATION LEVEL READ COMMITTED; } step s2ip2 { INSERT INTO pk_noparted VALUES (2); } +step s2dp2 { DELETE FROM pk_noparted WHERE a = 2; } step s2ifn2 { INSERT INTO fk_noparted VALUES (2); } step s2c { COMMIT; } step s2sfp { SELECT * FROM fk_parted_pk; } @@ -59,3 +66,11 @@ permutation s1brc s2brc s2ip2 s1sp s2c s1sp s1ifp2 s2brc s2sfp s1c s1sfp s2ifn2 # the same no matter the snapshot mode permutation s1brr s1dfp s1ifp1 s1c s1sfn permutation s1brc s1dfp s1ifp1 s1c s1sfn + +# trying to delete a row through DELETE CASCADE, whilst that row is deleted +# in a concurrent transaction +permutation s2ip2 s1brr s1ifp2 s2brr s2dp2 s1c s2c + +# trying to update a row through DELETE SET NULL, whilst that row is deleted +# in a concurrent transaction +permutation s2ip2 s1brr s1ifn2 s2brr s2dp2 s1c s2c diff --git a/src/test/modules/test_pg_dump/t/001_base.pl b/src/test/modules/test_pg_dump/t/001_base.pl index f5da6bf..23a7901 100644 --- a/src/test/modules/test_pg_dump/t/001_base.pl +++ b/src/test/modules/test_pg_dump/t/001_base.pl @@ -170,6 +170,19 @@ my %pgdump_runs = ( 'postgres', ], }, + + # regress_dump_login_role shouldn't need SELECT rights on internal + # (undumped) extension tables + privileged_internals => { + dump_cmd => [ + 'pg_dump', '--no-sync', "--file=$tempdir/privileged_internals.sql", + # these two tables are irrelevant to the test case + '--exclude-table=regress_pg_dump_schema.external_tab', + '--exclude-table=regress_pg_dump_schema.extdependtab', + '--username=regress_dump_login_role', 'postgres', + ], + }, + schema_only => { dump_cmd => [ 'pg_dump', '--no-sync', "--file=$tempdir/schema_only.sql", @@ -279,6 +292,7 @@ my %full_runs = ( exclude_table => 1, no_privs => 1, no_owner => 1, + privileged_internals => 1, with_extension => 1, without_extension => 1); @@ -316,6 +330,16 @@ my %tests = ( like => { pg_dumpall_globals => 1, }, }, + 'CREATE ROLE regress_dump_login_role' => { + create_order => 1, + create_sql => 'CREATE ROLE regress_dump_login_role LOGIN;', + regexp => qr/^ + \QCREATE ROLE regress_dump_login_role;\E + \n\QALTER ROLE regress_dump_login_role WITH \E.*\Q LOGIN \E.*; + \n/xm, + like => { pg_dumpall_globals => 1, }, + }, + 'GRANT ALTER SYSTEM ON PARAMETER full_page_writes TO regress_dump_test_role' => { create_order => 2, @@ -699,6 +723,7 @@ my %tests = ( data_only => 1, extension_schema => 1, pg_dumpall_globals => 1, + privileged_internals => 1, section_data => 1, section_pre_data => 1, # Excludes this schema as extension is not listed. @@ -715,6 +740,7 @@ my %tests = ( data_only => 1, extension_schema => 1, pg_dumpall_globals => 1, + privileged_internals => 1, section_data => 1, section_pre_data => 1, # Excludes this schema as extension is not listed. @@ -738,13 +764,14 @@ my %tests = ( # Excludes the extension and keeps the schema's data. without_extension_internal_schema => 1, }, + unlike => { privileged_internals => 1 }, },); ######################################### # Create a PG instance to test actually dumping from my $node = PostgreSQL::Test::Cluster->new('main'); -$node->init; +$node->init('auth_extra' => [ '--create-role', 'regress_dump_login_role' ]); $node->start; my $port = $node->port; diff --git a/src/test/modules/test_pg_dump/test_pg_dump--1.0.sql b/src/test/modules/test_pg_dump/test_pg_dump--1.0.sql index 110f7ee..1c68e14 100644 --- a/src/test/modules/test_pg_dump/test_pg_dump--1.0.sql +++ b/src/test/modules/test_pg_dump/test_pg_dump--1.0.sql @@ -12,11 +12,13 @@ CREATE SEQUENCE regress_pg_dump_seq; CREATE SEQUENCE regress_seq_dumpable; SELECT pg_catalog.pg_extension_config_dump('regress_seq_dumpable', ''); +GRANT SELECT ON SEQUENCE regress_seq_dumpable TO public; CREATE TABLE regress_table_dumpable ( col1 int check (col1 > 0) ); SELECT pg_catalog.pg_extension_config_dump('regress_table_dumpable', ''); +GRANT SELECT ON regress_table_dumpable TO public; CREATE SCHEMA regress_pg_dump_schema; diff --git a/src/test/regress/expected/fast_default.out b/src/test/regress/expected/fast_default.out index 91f2571..59365da 100644 --- a/src/test/regress/expected/fast_default.out +++ b/src/test/regress/expected/fast_default.out @@ -272,7 +272,25 @@ SELECT comp(); Rewritten (1 row) +-- check that we notice insertion of a volatile default argument +CREATE FUNCTION foolme(timestamptz DEFAULT clock_timestamp()) + RETURNS timestamptz + IMMUTABLE AS 'select $1' LANGUAGE sql; +ALTER TABLE T ADD COLUMN c3 timestamptz DEFAULT foolme(); +NOTICE: rewriting table t for reason 2 +SELECT attname, atthasmissing, attmissingval FROM pg_attribute + WHERE attrelid = 't'::regclass AND attnum > 0 + ORDER BY attnum; + attname | atthasmissing | attmissingval +---------+---------------+--------------- + pk | f | + c1 | f | + c2 | f | + c3 | f | +(4 rows) + DROP TABLE T; +DROP FUNCTION foolme(timestamptz); -- Simple querie CREATE TABLE T (pk INT NOT NULL PRIMARY KEY); SELECT set('t'); diff --git a/src/test/regress/expected/generated.out b/src/test/regress/expected/generated.out index 7c3c7b2..1020848 100644 --- a/src/test/regress/expected/generated.out +++ b/src/test/regress/expected/generated.out @@ -61,6 +61,9 @@ LINE 1: ..._3 (a int PRIMARY KEY, b int GENERATED ALWAYS AS (c * 2) STO... -- generation expression must be immutable CREATE TABLE gtest_err_4 (a int PRIMARY KEY, b double precision GENERATED ALWAYS AS (random()) STORED); ERROR: generation expression is not immutable +-- ... but be sure that the immutability test is accurate +CREATE TABLE gtest2 (a int, b text GENERATED ALWAYS AS (a || ' sec') STORED); +DROP TABLE gtest2; -- cannot have default/identity and generated CREATE TABLE gtest_err_5a (a int PRIMARY KEY, b int DEFAULT 5 GENERATED ALWAYS AS (a * 2) STORED); ERROR: both default and generation expression specified for column "b" of table "gtest_err_5a" diff --git a/src/test/regress/expected/horology.out b/src/test/regress/expected/horology.out index de73683..2dc9b00 100644 --- a/src/test/regress/expected/horology.out +++ b/src/test/regress/expected/horology.out @@ -373,6 +373,8 @@ SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' Sun Dec 31 00:00:00 294276 (1 row) +SELECT timestamp without time zone '2000-01-01' - interval '2483590 days' AS "out of range"; +ERROR: timestamp out of range SELECT timestamp without time zone '12/31/294276' - timestamp without time zone '12/23/1999' AS "106751991 Days"; 106751991 Days ------------------ @@ -633,6 +635,8 @@ SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS Fri Dec 31 23:59:59 1999 PST (1 row) +SELECT timestamp with time zone '2000-01-01' - interval '2483590 days' AS "out of range"; +ERROR: timestamp out of range SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True"; True ------ diff --git a/src/test/regress/expected/indexing.out b/src/test/regress/expected/indexing.out index 368e735..e17879b 100644 --- a/src/test/regress/expected/indexing.out +++ b/src/test/regress/expected/indexing.out @@ -1282,6 +1282,45 @@ select tableoid::regclass, * from idxpart order by a; (8 rows) drop table idxpart; +-- Test some other non-btree index types +create table idxpart (a int, b text, c int[]) partition by range (a); +create table idxpart1 partition of idxpart for values from (0) to (100000); +set enable_seqscan to off; +create index idxpart_brin on idxpart using brin(b); +explain (costs off) select * from idxpart where b = 'abcd'; + QUERY PLAN +------------------------------------------- + Bitmap Heap Scan on idxpart1 idxpart + Recheck Cond: (b = 'abcd'::text) + -> Bitmap Index Scan on idxpart1_b_idx + Index Cond: (b = 'abcd'::text) +(4 rows) + +drop index idxpart_brin; +create index idxpart_spgist on idxpart using spgist(b); +explain (costs off) select * from idxpart where b = 'abcd'; + QUERY PLAN +------------------------------------------- + Bitmap Heap Scan on idxpart1 idxpart + Recheck Cond: (b = 'abcd'::text) + -> Bitmap Index Scan on idxpart1_b_idx + Index Cond: (b = 'abcd'::text) +(4 rows) + +drop index idxpart_spgist; +create index idxpart_gin on idxpart using gin(c); +explain (costs off) select * from idxpart where c @> array[42]; + QUERY PLAN +---------------------------------------------- + Bitmap Heap Scan on idxpart1 idxpart + Recheck Cond: (c @> '{42}'::integer[]) + -> Bitmap Index Scan on idxpart1_c_idx + Index Cond: (c @> '{42}'::integer[]) +(4 rows) + +drop index idxpart_gin; +reset enable_seqscan; +drop table idxpart; -- intentionally leave some objects around create table idxpart (a int) partition by range (a); create table idxpart1 partition of idxpart for values from (0) to (100); diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out index 61e1522..33d9f13 100644 --- a/src/test/regress/expected/inherit.out +++ b/src/test/regress/expected/inherit.out @@ -1088,6 +1088,23 @@ Inherits: inht1, inhs1 DROP TABLE inhts; +-- Test for adding a column to a parent table with complex inheritance +CREATE TABLE inhta (); +CREATE TABLE inhtb () INHERITS (inhta); +CREATE TABLE inhtc () INHERITS (inhtb); +CREATE TABLE inhtd () INHERITS (inhta, inhtb, inhtc); +ALTER TABLE inhta ADD COLUMN i int; +NOTICE: merging definition of column "i" for child "inhtd" +NOTICE: merging definition of column "i" for child "inhtd" +\d+ inhta + Table "public.inhta" + Column | Type | Collation | Nullable | Default | Storage | Stats target | Description +--------+---------+-----------+----------+---------+---------+--------------+------------- + i | integer | | | | plain | | +Child tables: inhtb, + inhtd + +DROP TABLE inhta, inhtb, inhtc, inhtd; -- Test for renaming in diamond inheritance CREATE TABLE inht2 (x int) INHERITS (inht1); CREATE TABLE inht3 (y int) INHERITS (inht1); diff --git a/src/test/regress/expected/int8.out b/src/test/regress/expected/int8.out index 1ae23cf..329f391 100644 --- a/src/test/regress/expected/int8.out +++ b/src/test/regress/expected/int8.out @@ -654,6 +654,8 @@ select -('-9223372036854775807'::int8); select -('-9223372036854775808'::int8); ERROR: bigint out of range +select 0::int8 - '-9223372036854775808'::int8; +ERROR: bigint out of range select '9223372036854775800'::int8 + '9223372036854775800'::int8; ERROR: bigint out of range select '-9223372036854775800'::int8 + '-9223372036854775800'::int8; diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out index 5350abf..f96eadd 100644 --- a/src/test/regress/expected/interval.out +++ b/src/test/regress/expected/interval.out @@ -357,6 +357,19 @@ SELECT * FROM INTERVAL_TBL; @ 5 mons 12 hours (10 rows) +-- multiplication and division overflow test cases +SELECT '3000000 months'::interval * 1000; +ERROR: interval out of range +SELECT '3000000 months'::interval / 0.001; +ERROR: interval out of range +SELECT '3000000 days'::interval * 1000; +ERROR: interval out of range +SELECT '3000000 days'::interval / 0.001; +ERROR: interval out of range +SELECT '1 month 2146410 days'::interval * 1000.5002; +ERROR: interval out of range +SELECT '4611686018427387904 usec'::interval / 0.1; +ERROR: interval out of range -- test avg(interval), which is somewhat fragile since people have been -- known to change the allowed input syntax for type interval without -- updating pg_aggregate.agginitval diff --git a/src/test/regress/expected/join.out b/src/test/regress/expected/join.out index 0eb6339..867c6d2 100644 --- a/src/test/regress/expected/join.out +++ b/src/test/regress/expected/join.out @@ -5803,6 +5803,32 @@ select * from Output: (COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2)) (24 rows) +-- another case requiring nested PlaceHolderVars +explain (verbose, costs off) +select * from + (select 0 as val0) as ss0 + left join (select 1 as val) as ss1 on true + left join lateral (select ss1.val as val_filtered where false) as ss2 on true; + QUERY PLAN +-------------------------------- + Nested Loop Left Join + Output: 0, (1), ((1)) + -> Result + Output: 1 + -> Result + Output: (1) + One-Time Filter: false +(7 rows) + +select * from + (select 0 as val0) as ss0 + left join (select 1 as val) as ss1 on true + left join lateral (select ss1.val as val_filtered where false) as ss2 on true; + val0 | val | val_filtered +------+-----+-------------- + 0 | 1 | +(1 row) + -- case that breaks the old ph_may_need optimization explain (verbose, costs off) select c.*,a.*,ss1.q1,ss2.q1,ss3.* from diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out index c109d97..e811e1a 100644 --- a/src/test/regress/expected/matview.out +++ b/src/test/regress/expected/matview.out @@ -572,6 +572,22 @@ REFRESH MATERIALIZED VIEW mvtest_mv_foo; REFRESH MATERIALIZED VIEW CONCURRENTLY mvtest_mv_foo; DROP OWNED BY regress_user_mvtest CASCADE; DROP ROLE regress_user_mvtest; +-- Concurrent refresh requires a unique index on the materialized +-- view. Test what happens if it's dropped during the refresh. +CREATE OR REPLACE FUNCTION mvtest_drop_the_index() + RETURNS bool AS $$ +BEGIN + EXECUTE 'DROP INDEX IF EXISTS mvtest_drop_idx'; + RETURN true; +END; +$$ LANGUAGE plpgsql; +CREATE MATERIALIZED VIEW drop_idx_matview AS + SELECT 1 as i WHERE mvtest_drop_the_index(); +NOTICE: index "mvtest_drop_idx" does not exist, skipping +CREATE UNIQUE INDEX mvtest_drop_idx ON drop_idx_matview (i); +REFRESH MATERIALIZED VIEW CONCURRENTLY drop_idx_matview; +ERROR: could not find suitable unique index on materialized view +DROP MATERIALIZED VIEW drop_idx_matview; -- clean up -- make sure that create WITH NO DATA works via SPI BEGIN; CREATE FUNCTION mvtest_func() diff --git a/src/test/regress/expected/merge.out b/src/test/regress/expected/merge.out index 15c6632..edc0043 100644 --- a/src/test/regress/expected/merge.out +++ b/src/test/regress/expected/merge.out @@ -1662,6 +1662,10 @@ ALTER TABLE pa_target ATTACH PARTITION part4 DEFAULT; INSERT INTO pa_target SELECT id, id * 100, 'initial' FROM generate_series(1,14,2) AS id; -- try simple MERGE BEGIN; +DO $$ +DECLARE + result integer; +BEGIN MERGE INTO pa_target t USING pa_source s ON t.tid = s.sid @@ -1669,6 +1673,11 @@ MERGE INTO pa_target t UPDATE SET balance = balance + delta, val = val || ' updated by merge' WHEN NOT MATCHED THEN INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; +NOTICE: ROW_COUNT = 14 SELECT * FROM pa_target ORDER BY tid; tid | balance | val -----+---------+-------------------------- @@ -1725,6 +1734,10 @@ SELECT * FROM pa_target ORDER BY tid; ROLLBACK; -- try updating the partition key column BEGIN; +DO $$ +DECLARE + result integer; +BEGIN MERGE INTO pa_target t USING pa_source s ON t.tid = s.sid @@ -1732,6 +1745,11 @@ MERGE INTO pa_target t UPDATE SET tid = tid + 1, balance = balance + delta, val = val || ' updated by merge' WHEN NOT MATCHED THEN INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; +NOTICE: ROW_COUNT = 14 SELECT * FROM pa_target ORDER BY tid; tid | balance | val -----+---------+-------------------------- @@ -1752,6 +1770,79 @@ SELECT * FROM pa_target ORDER BY tid; (14 rows) ROLLBACK; +-- as above, but blocked by BEFORE DELETE ROW trigger +BEGIN; +CREATE FUNCTION trig_fn() RETURNS trigger LANGUAGE plpgsql AS + $$ BEGIN RETURN NULL; END; $$; +CREATE TRIGGER del_trig BEFORE DELETE ON pa_target + FOR EACH ROW EXECUTE PROCEDURE trig_fn(); +DO $$ +DECLARE + result integer; +BEGIN +MERGE INTO pa_target t + USING pa_source s + ON t.tid = s.sid + WHEN MATCHED THEN + UPDATE SET tid = tid + 1, balance = balance + delta, val = val || ' updated by merge' + WHEN NOT MATCHED THEN + INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; +NOTICE: ROW_COUNT = 10 +SELECT * FROM pa_target ORDER BY tid; + tid | balance | val +-----+---------+-------------------------- + 1 | 100 | initial + 2 | 20 | inserted by merge + 3 | 300 | initial + 4 | 40 | inserted by merge + 6 | 550 | initial updated by merge + 6 | 60 | inserted by merge + 7 | 700 | initial + 8 | 80 | inserted by merge + 9 | 900 | initial + 10 | 100 | inserted by merge + 12 | 1210 | initial updated by merge + 12 | 120 | inserted by merge + 14 | 1430 | initial updated by merge + 14 | 140 | inserted by merge +(14 rows) + +ROLLBACK; +-- as above, but blocked by BEFORE INSERT ROW trigger +BEGIN; +CREATE FUNCTION trig_fn() RETURNS trigger LANGUAGE plpgsql AS + $$ BEGIN RETURN NULL; END; $$; +CREATE TRIGGER ins_trig BEFORE INSERT ON pa_target + FOR EACH ROW EXECUTE PROCEDURE trig_fn(); +DO $$ +DECLARE + result integer; +BEGIN +MERGE INTO pa_target t + USING pa_source s + ON t.tid = s.sid + WHEN MATCHED THEN + UPDATE SET tid = tid + 1, balance = balance + delta, val = val || ' updated by merge' + WHEN NOT MATCHED THEN + INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; +NOTICE: ROW_COUNT = 3 +SELECT * FROM pa_target ORDER BY tid; + tid | balance | val +-----+---------+-------------------------- + 6 | 550 | initial updated by merge + 12 | 1210 | initial updated by merge + 14 | 1430 | initial updated by merge +(3 rows) + +ROLLBACK; -- test RLS enforcement BEGIN; ALTER TABLE pa_target ENABLE ROW LEVEL SECURITY; diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out index f27217c..ba5875d 100644 --- a/src/test/regress/expected/opr_sanity.out +++ b/src/test/regress/expected/opr_sanity.out @@ -1887,7 +1887,7 @@ WHERE p1.oid = a1.amhandler AND a1.amtype = 'i' AND -- Check for table amhandler functions with the wrong signature SELECT a1.oid, a1.amname, p1.oid, p1.proname FROM pg_am AS a1, pg_proc AS p1 -WHERE p1.oid = a1.amhandler AND a1.amtype = 's' AND +WHERE p1.oid = a1.amhandler AND a1.amtype = 't' AND (p1.prorettype != 'table_am_handler'::regtype OR p1.proretset OR p1.pronargs != 1 diff --git a/src/test/regress/expected/partition_join.out b/src/test/regress/expected/partition_join.out index bb5b7c4..8b179fa 100644 --- a/src/test/regress/expected/partition_join.out +++ b/src/test/regress/expected/partition_join.out @@ -459,6 +459,99 @@ SELECT t1.a, ss.t2a, ss.t2c FROM prt1 t1 LEFT JOIN LATERAL 550 | | (12 rows) +SET max_parallel_workers_per_gather = 0; +-- If there are lateral references to the other relation in sample scan, +-- we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT * FROM prt1 t1 JOIN LATERAL + (SELECT * FROM prt1 t2 TABLESAMPLE SYSTEM (t1.a) REPEATABLE(t1.b)) s + ON t1.a = s.a; + QUERY PLAN +--------------------------------------------------------- + Nested Loop + -> Append + -> Seq Scan on prt1_p1 t1_1 + -> Seq Scan on prt1_p2 t1_2 + -> Seq Scan on prt1_p3 t1_3 + -> Append + -> Sample Scan on prt1_p1 t2_1 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: (t1.a = a) + -> Sample Scan on prt1_p2 t2_2 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: (t1.a = a) + -> Sample Scan on prt1_p3 t2_3 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: (t1.a = a) +(15 rows) + +-- If there are lateral references to the other relation in scan's restriction +-- clauses, we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.a; + QUERY PLAN +--------------------------------------------------------------- + Aggregate + -> Nested Loop + -> Append + -> Seq Scan on prt1_p1 t1_1 + -> Seq Scan on prt1_p2 t1_2 + -> Seq Scan on prt1_p3 t1_3 + -> Append + -> Index Scan using iprt2_p1_b on prt2_p1 t2_1 + Index Cond: (b = t1.a) + Filter: (t1.b = a) + -> Index Scan using iprt2_p2_b on prt2_p2 t2_2 + Index Cond: (b = t1.a) + Filter: (t1.b = a) + -> Index Scan using iprt2_p3_b on prt2_p3 t2_3 + Index Cond: (b = t1.a) + Filter: (t1.b = a) +(16 rows) + +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.a; + count +------- + 100 +(1 row) + +EXPLAIN (COSTS OFF) +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.b; + QUERY PLAN +-------------------------------------------------------------------- + Aggregate + -> Nested Loop + -> Append + -> Seq Scan on prt1_p1 t1_1 + -> Seq Scan on prt1_p2 t1_2 + -> Seq Scan on prt1_p3 t1_3 + -> Append + -> Index Only Scan using iprt2_p1_b on prt2_p1 t2_1 + Index Cond: (b = t1.a) + Filter: (b = t1.b) + -> Index Only Scan using iprt2_p2_b on prt2_p2 t2_2 + Index Cond: (b = t1.a) + Filter: (b = t1.b) + -> Index Only Scan using iprt2_p3_b on prt2_p3 t2_3 + Index Cond: (b = t1.a) + Filter: (b = t1.b) +(16 rows) + +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.b; + count +------- + 5 +(1 row) + +RESET max_parallel_workers_per_gather; -- bug with inadequate sort key representation SET enable_partitionwise_aggregate TO true; SET enable_hashjoin TO false; @@ -1897,6 +1990,80 @@ SELECT * FROM prt1_l t1 LEFT JOIN LATERAL 550 | 0 | 0002 | | | | | (12 rows) +SET max_parallel_workers_per_gather = 0; +-- If there are lateral references to the other relation in sample scan, +-- we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT * FROM prt1_l t1 JOIN LATERAL + (SELECT * FROM prt1_l t2 TABLESAMPLE SYSTEM (t1.a) REPEATABLE(t1.b)) s + ON t1.a = s.a AND t1.b = s.b AND t1.c = s.c; + QUERY PLAN +---------------------------------------------------------------------------------- + Nested Loop + -> Append + -> Seq Scan on prt1_l_p1 t1_1 + -> Seq Scan on prt1_l_p2_p1 t1_2 + -> Seq Scan on prt1_l_p2_p2 t1_3 + -> Seq Scan on prt1_l_p3_p1 t1_4 + -> Seq Scan on prt1_l_p3_p2 t1_5 + -> Append + -> Sample Scan on prt1_l_p1 t2_1 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: ((t1.a = a) AND (t1.b = b) AND ((t1.c)::text = (c)::text)) + -> Sample Scan on prt1_l_p2_p1 t2_2 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: ((t1.a = a) AND (t1.b = b) AND ((t1.c)::text = (c)::text)) + -> Sample Scan on prt1_l_p2_p2 t2_3 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: ((t1.a = a) AND (t1.b = b) AND ((t1.c)::text = (c)::text)) + -> Sample Scan on prt1_l_p3_p1 t2_4 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: ((t1.a = a) AND (t1.b = b) AND ((t1.c)::text = (c)::text)) + -> Sample Scan on prt1_l_p3_p2 t2_5 + Sampling: system (t1.a) REPEATABLE (t1.b) + Filter: ((t1.a = a) AND (t1.b = b) AND ((t1.c)::text = (c)::text)) +(23 rows) + +-- If there are lateral references to the other relation in scan's restriction +-- clauses, we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT COUNT(*) FROM prt1_l t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2_l t2) s + ON t1.a = s.b AND t1.b = s.a AND t1.c = s.c + WHERE s.t1b = s.a; + QUERY PLAN +------------------------------------------------------------------------------------------------------- + Aggregate + -> Nested Loop + -> Append + -> Seq Scan on prt1_l_p1 t1_1 + -> Seq Scan on prt1_l_p2_p1 t1_2 + -> Seq Scan on prt1_l_p2_p2 t1_3 + -> Seq Scan on prt1_l_p3_p1 t1_4 + -> Seq Scan on prt1_l_p3_p2 t1_5 + -> Append + -> Seq Scan on prt2_l_p1 t2_1 + Filter: ((a = t1.b) AND (t1.a = b) AND (t1.b = a) AND ((t1.c)::text = (c)::text)) + -> Seq Scan on prt2_l_p2_p1 t2_2 + Filter: ((a = t1.b) AND (t1.a = b) AND (t1.b = a) AND ((t1.c)::text = (c)::text)) + -> Seq Scan on prt2_l_p2_p2 t2_3 + Filter: ((a = t1.b) AND (t1.a = b) AND (t1.b = a) AND ((t1.c)::text = (c)::text)) + -> Seq Scan on prt2_l_p3_p1 t2_4 + Filter: ((a = t1.b) AND (t1.a = b) AND (t1.b = a) AND ((t1.c)::text = (c)::text)) + -> Seq Scan on prt2_l_p3_p2 t2_5 + Filter: ((a = t1.b) AND (t1.a = b) AND (t1.b = a) AND ((t1.c)::text = (c)::text)) +(19 rows) + +SELECT COUNT(*) FROM prt1_l t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2_l t2) s + ON t1.a = s.b AND t1.b = s.a AND t1.c = s.c + WHERE s.t1b = s.a; + count +------- + 100 +(1 row) + +RESET max_parallel_workers_per_gather; -- join with one side empty EXPLAIN (COSTS OFF) SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE a = 1 AND a = 2) t1 RIGHT JOIN prt2_l t2 ON t1.a = t2.b AND t1.b = t2.a AND t1.c = t2.c; diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out index cc15f5c..723e8b7 100644 --- a/src/test/regress/expected/triggers.out +++ b/src/test/regress/expected/triggers.out @@ -2309,6 +2309,51 @@ NOTICE: trigger zzz on parted_trig_1_1 AFTER INSERT for ROW NOTICE: trigger bbb on parted_trig_2 AFTER INSERT for ROW NOTICE: trigger zzz on parted_trig_2 AFTER INSERT for ROW drop table parted_trig; +-- Verify that the correct triggers fire for cross-partition updates +create table parted_trig (a int) partition by list (a); +create table parted_trig1 partition of parted_trig for values in (1); +create table parted_trig2 partition of parted_trig for values in (2); +insert into parted_trig values (1); +create or replace function trigger_notice() returns trigger as $$ + begin + raise notice 'trigger % on % % % for %', TG_NAME, TG_TABLE_NAME, TG_WHEN, TG_OP, TG_LEVEL; + if TG_LEVEL = 'ROW' then + if TG_OP = 'DELETE' then + return OLD; + else + return NEW; + end if; + end if; + return null; + end; + $$ language plpgsql; +create trigger parted_trig_before_stmt before insert or update or delete on parted_trig + for each statement execute procedure trigger_notice(); +create trigger parted_trig_before_row before insert or update or delete on parted_trig + for each row execute procedure trigger_notice(); +create trigger parted_trig_after_row after insert or update or delete on parted_trig + for each row execute procedure trigger_notice(); +create trigger parted_trig_after_stmt after insert or update or delete on parted_trig + for each statement execute procedure trigger_notice(); +update parted_trig set a = 2 where a = 1; +NOTICE: trigger parted_trig_before_stmt on parted_trig BEFORE UPDATE for STATEMENT +NOTICE: trigger parted_trig_before_row on parted_trig1 BEFORE UPDATE for ROW +NOTICE: trigger parted_trig_before_row on parted_trig1 BEFORE DELETE for ROW +NOTICE: trigger parted_trig_before_row on parted_trig2 BEFORE INSERT for ROW +NOTICE: trigger parted_trig_after_row on parted_trig1 AFTER DELETE for ROW +NOTICE: trigger parted_trig_after_row on parted_trig2 AFTER INSERT for ROW +NOTICE: trigger parted_trig_after_stmt on parted_trig AFTER UPDATE for STATEMENT +-- update action in merge should behave the same +merge into parted_trig using (select 1) as ss on true + when matched and a = 2 then update set a = 1; +NOTICE: trigger parted_trig_before_stmt on parted_trig BEFORE UPDATE for STATEMENT +NOTICE: trigger parted_trig_before_row on parted_trig2 BEFORE UPDATE for ROW +NOTICE: trigger parted_trig_before_row on parted_trig2 BEFORE DELETE for ROW +NOTICE: trigger parted_trig_before_row on parted_trig1 BEFORE INSERT for ROW +NOTICE: trigger parted_trig_after_row on parted_trig2 AFTER DELETE for ROW +NOTICE: trigger parted_trig_after_row on parted_trig1 AFTER INSERT for ROW +NOTICE: trigger parted_trig_after_stmt on parted_trig AFTER UPDATE for STATEMENT +drop table parted_trig; -- Verify propagation of trigger arguments to partitions create table parted_trig (a int) partition by list (a); create table parted_trig1 partition of parted_trig for values in (1); diff --git a/src/test/regress/expected/tsdicts.out b/src/test/regress/expected/tsdicts.out index c804293..4eff85d 100644 --- a/src/test/regress/expected/tsdicts.out +++ b/src/test/regress/expected/tsdicts.out @@ -687,3 +687,37 @@ CREATE TEXT SEARCH DICTIONARY tsdict_case "AffFile" = ispell_sample ); ERROR: unrecognized Ispell parameter: "DictFile" +-- Test grammar for configurations +CREATE TEXT SEARCH CONFIGURATION dummy_tst (COPY=english); +-- Overriden mapping change with duplicated tokens. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + ALTER MAPPING FOR word, word WITH ispell; +-- Not a token supported by the configuration's parser, fails. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING FOR not_a_token, not_a_token; +ERROR: token type "not_a_token" does not exist +-- Not a token supported by the configuration's parser, fails even +-- with IF EXISTS. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING IF EXISTS FOR not_a_token, not_a_token; +ERROR: token type "not_a_token" does not exist +-- Token supported by the configuration's parser, succeeds. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING FOR word, word; +-- No mapping for token supported by the configuration's parser, fails. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING FOR word; +ERROR: mapping for token type "word" does not exist +-- Token supported by the configuration's parser, cannot be found, +-- succeeds with IF EXISTS. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING IF EXISTS FOR word, word; +NOTICE: mapping for token type "word" does not exist, skipping +-- Re-add mapping, with duplicated tokens supported by the parser. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + ADD MAPPING FOR word, word WITH ispell; +-- Not a token supported by the configuration's parser, fails. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + ADD MAPPING FOR not_a_token WITH ispell; +ERROR: token type "not_a_token" does not exist +DROP TEXT SEARCH CONFIGURATION dummy_tst; diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c index d7d5f4a..e275871 100644 --- a/src/test/regress/pg_regress.c +++ b/src/test/regress/pg_regress.c @@ -1126,7 +1126,7 @@ spawn_process(const char *cmdline) comspec = "CMD"; memset(&pi, 0, sizeof(pi)); - cmdline2 = psprintf("\"%s\" /c \"%s\"", comspec, cmdline); + cmdline2 = psprintf("\"%s\" /d /c \"%s\"", comspec, cmdline); if ((restrictedToken = CreateRestrictedProcess(cmdline2, &pi)) == 0) diff --git a/src/test/regress/sql/fast_default.sql b/src/test/regress/sql/fast_default.sql index 16a3b7c..dc9df78 100644 --- a/src/test/regress/sql/fast_default.sql +++ b/src/test/regress/sql/fast_default.sql @@ -256,7 +256,18 @@ ALTER TABLE T ADD COLUMN c2 TIMESTAMP DEFAULT clock_timestamp(); SELECT comp(); +-- check that we notice insertion of a volatile default argument +CREATE FUNCTION foolme(timestamptz DEFAULT clock_timestamp()) + RETURNS timestamptz + IMMUTABLE AS 'select $1' LANGUAGE sql; +ALTER TABLE T ADD COLUMN c3 timestamptz DEFAULT foolme(); + +SELECT attname, atthasmissing, attmissingval FROM pg_attribute + WHERE attrelid = 't'::regclass AND attnum > 0 + ORDER BY attnum; + DROP TABLE T; +DROP FUNCTION foolme(timestamptz); -- Simple querie CREATE TABLE T (pk INT NOT NULL PRIMARY KEY); diff --git a/src/test/regress/sql/generated.sql b/src/test/regress/sql/generated.sql index 8d25161..53bccf9 100644 --- a/src/test/regress/sql/generated.sql +++ b/src/test/regress/sql/generated.sql @@ -26,6 +26,9 @@ CREATE TABLE gtest_err_3 (a int PRIMARY KEY, b int GENERATED ALWAYS AS (c * 2) S -- generation expression must be immutable CREATE TABLE gtest_err_4 (a int PRIMARY KEY, b double precision GENERATED ALWAYS AS (random()) STORED); +-- ... but be sure that the immutability test is accurate +CREATE TABLE gtest2 (a int, b text GENERATED ALWAYS AS (a || ' sec') STORED); +DROP TABLE gtest2; -- cannot have default/identity and generated CREATE TABLE gtest_err_5a (a int PRIMARY KEY, b int DEFAULT 5 GENERATED ALWAYS AS (a * 2) STORED); diff --git a/src/test/regress/sql/horology.sql b/src/test/regress/sql/horology.sql index 2724a2b..4065348 100644 --- a/src/test/regress/sql/horology.sql +++ b/src/test/regress/sql/horology.sql @@ -86,6 +86,7 @@ SELECT timestamp without time zone '1999-12-01' + interval '1 month - 1 second' SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '106000000 days' AS "Feb 23, 285506"; SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '107000000 days' AS "Jan 20, 288244"; SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' AS "Dec 31, 294276"; +SELECT timestamp without time zone '2000-01-01' - interval '2483590 days' AS "out of range"; SELECT timestamp without time zone '12/31/294276' - timestamp without time zone '12/23/1999' AS "106751991 Days"; -- Shorthand values @@ -117,6 +118,7 @@ SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29"; SELECT timestamp with time zone '1999-03-01' - interval '1 second' AS "Feb 28"; SELECT timestamp with time zone '2000-03-01' - interval '1 second' AS "Feb 29"; SELECT timestamp with time zone '1999-12-01' + interval '1 month - 1 second' AS "Dec 31"; +SELECT timestamp with time zone '2000-01-01' - interval '2483590 days' AS "out of range"; SELECT (timestamp with time zone 'today' = (timestamp with time zone 'yesterday' + interval '1 day')) as "True"; SELECT (timestamp with time zone 'today' = (timestamp with time zone 'tomorrow' - interval '1 day')) as "True"; diff --git a/src/test/regress/sql/indexing.sql b/src/test/regress/sql/indexing.sql index 6f60d1d..a48a317 100644 --- a/src/test/regress/sql/indexing.sql +++ b/src/test/regress/sql/indexing.sql @@ -668,6 +668,26 @@ insert into idxpart values (857142, 'six'); select tableoid::regclass, * from idxpart order by a; drop table idxpart; +-- Test some other non-btree index types +create table idxpart (a int, b text, c int[]) partition by range (a); +create table idxpart1 partition of idxpart for values from (0) to (100000); +set enable_seqscan to off; + +create index idxpart_brin on idxpart using brin(b); +explain (costs off) select * from idxpart where b = 'abcd'; +drop index idxpart_brin; + +create index idxpart_spgist on idxpart using spgist(b); +explain (costs off) select * from idxpart where b = 'abcd'; +drop index idxpart_spgist; + +create index idxpart_gin on idxpart using gin(c); +explain (costs off) select * from idxpart where c @> array[42]; +drop index idxpart_gin; + +reset enable_seqscan; +drop table idxpart; + -- intentionally leave some objects around create table idxpart (a int) partition by range (a); create table idxpart1 partition of idxpart for values from (0) to (100); diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql index 76ea197..bd90834 100644 --- a/src/test/regress/sql/inherit.sql +++ b/src/test/regress/sql/inherit.sql @@ -372,6 +372,15 @@ ALTER TABLE inhts RENAME d TO dd; DROP TABLE inhts; +-- Test for adding a column to a parent table with complex inheritance +CREATE TABLE inhta (); +CREATE TABLE inhtb () INHERITS (inhta); +CREATE TABLE inhtc () INHERITS (inhtb); +CREATE TABLE inhtd () INHERITS (inhta, inhtb, inhtc); +ALTER TABLE inhta ADD COLUMN i int; +\d+ inhta +DROP TABLE inhta, inhtb, inhtc, inhtd; + -- Test for renaming in diamond inheritance CREATE TABLE inht2 (x int) INHERITS (inht1); CREATE TABLE inht3 (y int) INHERITS (inht1); diff --git a/src/test/regress/sql/int8.sql b/src/test/regress/sql/int8.sql index 38b7719..8a3d537 100644 --- a/src/test/regress/sql/int8.sql +++ b/src/test/regress/sql/int8.sql @@ -126,6 +126,7 @@ select '9223372036854775808'::int8; select -('-9223372036854775807'::int8); select -('-9223372036854775808'::int8); +select 0::int8 - '-9223372036854775808'::int8; select '9223372036854775800'::int8 + '9223372036854775800'::int8; select '-9223372036854775800'::int8 + '-9223372036854775800'::int8; diff --git a/src/test/regress/sql/interval.sql b/src/test/regress/sql/interval.sql index 5b4944c..2a3dd0c 100644 --- a/src/test/regress/sql/interval.sql +++ b/src/test/regress/sql/interval.sql @@ -129,6 +129,14 @@ SET IntervalStyle to postgres_verbose; SELECT * FROM INTERVAL_TBL; +-- multiplication and division overflow test cases +SELECT '3000000 months'::interval * 1000; +SELECT '3000000 months'::interval / 0.001; +SELECT '3000000 days'::interval * 1000; +SELECT '3000000 days'::interval / 0.001; +SELECT '1 month 2146410 days'::interval * 1000.5002; +SELECT '4611686018427387904 usec'::interval / 0.1; + -- test avg(interval), which is somewhat fragile since people have been -- known to change the allowed input syntax for type interval without -- updating pg_aggregate.agginitval diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index 5fdacce..1113e98 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -1978,6 +1978,18 @@ select * from ) on c.q2 = ss2.q1, lateral (select ss2.y offset 0) ss3; +-- another case requiring nested PlaceHolderVars +explain (verbose, costs off) +select * from + (select 0 as val0) as ss0 + left join (select 1 as val) as ss1 on true + left join lateral (select ss1.val as val_filtered where false) as ss2 on true; + +select * from + (select 0 as val0) as ss0 + left join (select 1 as val) as ss1 on true + left join lateral (select ss1.val as val_filtered where false) as ss2 on true; + -- case that breaks the old ph_may_need optimization explain (verbose, costs off) select c.*,a.*,ss1.q1,ss2.q1,ss3.* from diff --git a/src/test/regress/sql/matview.sql b/src/test/regress/sql/matview.sql index 68b9ccf..543e0a6 100644 --- a/src/test/regress/sql/matview.sql +++ b/src/test/regress/sql/matview.sql @@ -231,6 +231,23 @@ REFRESH MATERIALIZED VIEW CONCURRENTLY mvtest_mv_foo; DROP OWNED BY regress_user_mvtest CASCADE; DROP ROLE regress_user_mvtest; +-- Concurrent refresh requires a unique index on the materialized +-- view. Test what happens if it's dropped during the refresh. +CREATE OR REPLACE FUNCTION mvtest_drop_the_index() + RETURNS bool AS $$ +BEGIN + EXECUTE 'DROP INDEX IF EXISTS mvtest_drop_idx'; + RETURN true; +END; +$$ LANGUAGE plpgsql; + +CREATE MATERIALIZED VIEW drop_idx_matview AS + SELECT 1 as i WHERE mvtest_drop_the_index(); + +CREATE UNIQUE INDEX mvtest_drop_idx ON drop_idx_matview (i); +REFRESH MATERIALIZED VIEW CONCURRENTLY drop_idx_matview; +DROP MATERIALIZED VIEW drop_idx_matview; -- clean up + -- make sure that create WITH NO DATA works via SPI BEGIN; CREATE FUNCTION mvtest_func() diff --git a/src/test/regress/sql/merge.sql b/src/test/regress/sql/merge.sql index 4cf6db9..66cb75a 100644 --- a/src/test/regress/sql/merge.sql +++ b/src/test/regress/sql/merge.sql @@ -1060,6 +1060,10 @@ INSERT INTO pa_target SELECT id, id * 100, 'initial' FROM generate_series(1,14,2 -- try simple MERGE BEGIN; +DO $$ +DECLARE + result integer; +BEGIN MERGE INTO pa_target t USING pa_source s ON t.tid = s.sid @@ -1067,6 +1071,10 @@ MERGE INTO pa_target t UPDATE SET balance = balance + delta, val = val || ' updated by merge' WHEN NOT MATCHED THEN INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; SELECT * FROM pa_target ORDER BY tid; ROLLBACK; @@ -1085,6 +1093,34 @@ ROLLBACK; -- try updating the partition key column BEGIN; +DO $$ +DECLARE + result integer; +BEGIN +MERGE INTO pa_target t + USING pa_source s + ON t.tid = s.sid + WHEN MATCHED THEN + UPDATE SET tid = tid + 1, balance = balance + delta, val = val || ' updated by merge' + WHEN NOT MATCHED THEN + INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; +SELECT * FROM pa_target ORDER BY tid; +ROLLBACK; + +-- as above, but blocked by BEFORE DELETE ROW trigger +BEGIN; +CREATE FUNCTION trig_fn() RETURNS trigger LANGUAGE plpgsql AS + $$ BEGIN RETURN NULL; END; $$; +CREATE TRIGGER del_trig BEFORE DELETE ON pa_target + FOR EACH ROW EXECUTE PROCEDURE trig_fn(); +DO $$ +DECLARE + result integer; +BEGIN MERGE INTO pa_target t USING pa_source s ON t.tid = s.sid @@ -1092,6 +1128,34 @@ MERGE INTO pa_target t UPDATE SET tid = tid + 1, balance = balance + delta, val = val || ' updated by merge' WHEN NOT MATCHED THEN INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; +SELECT * FROM pa_target ORDER BY tid; +ROLLBACK; + +-- as above, but blocked by BEFORE INSERT ROW trigger +BEGIN; +CREATE FUNCTION trig_fn() RETURNS trigger LANGUAGE plpgsql AS + $$ BEGIN RETURN NULL; END; $$; +CREATE TRIGGER ins_trig BEFORE INSERT ON pa_target + FOR EACH ROW EXECUTE PROCEDURE trig_fn(); +DO $$ +DECLARE + result integer; +BEGIN +MERGE INTO pa_target t + USING pa_source s + ON t.tid = s.sid + WHEN MATCHED THEN + UPDATE SET tid = tid + 1, balance = balance + delta, val = val || ' updated by merge' + WHEN NOT MATCHED THEN + INSERT VALUES (sid, delta, 'inserted by merge'); +GET DIAGNOSTICS result := ROW_COUNT; +RAISE NOTICE 'ROW_COUNT = %', result; +END; +$$; SELECT * FROM pa_target ORDER BY tid; ROLLBACK; diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql index 2b29285..0f039f2 100644 --- a/src/test/regress/sql/opr_sanity.sql +++ b/src/test/regress/sql/opr_sanity.sql @@ -1195,7 +1195,7 @@ WHERE p1.oid = a1.amhandler AND a1.amtype = 'i' AND SELECT a1.oid, a1.amname, p1.oid, p1.proname FROM pg_am AS a1, pg_proc AS p1 -WHERE p1.oid = a1.amhandler AND a1.amtype = 's' AND +WHERE p1.oid = a1.amhandler AND a1.amtype = 't' AND (p1.prorettype != 'table_am_handler'::regtype OR p1.proretset OR p1.pronargs != 1 diff --git a/src/test/regress/sql/partition_join.sql b/src/test/regress/sql/partition_join.sql index 67f5063..04d7adb 100644 --- a/src/test/regress/sql/partition_join.sql +++ b/src/test/regress/sql/partition_join.sql @@ -91,6 +91,33 @@ SELECT t1.a, ss.t2a, ss.t2c FROM prt1 t1 LEFT JOIN LATERAL (SELECT t2.a AS t2a, t3.a AS t3a, t2.b t2b, t2.c t2c, least(t1.a,t2.a,t3.a) FROM prt1 t2 JOIN prt2 t3 ON (t2.a = t3.b)) ss ON t1.c = ss.t2c WHERE (t1.b + coalesce(ss.t2b, 0)) = 0 ORDER BY t1.a; +SET max_parallel_workers_per_gather = 0; +-- If there are lateral references to the other relation in sample scan, +-- we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT * FROM prt1 t1 JOIN LATERAL + (SELECT * FROM prt1 t2 TABLESAMPLE SYSTEM (t1.a) REPEATABLE(t1.b)) s + ON t1.a = s.a; + +-- If there are lateral references to the other relation in scan's restriction +-- clauses, we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.a; +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.a; + +EXPLAIN (COSTS OFF) +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.b; +SELECT count(*) FROM prt1 t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2 t2) s + ON t1.a = s.b WHERE s.t1b = s.b; +RESET max_parallel_workers_per_gather; + -- bug with inadequate sort key representation SET enable_partitionwise_aggregate TO true; SET enable_hashjoin TO false; @@ -378,6 +405,27 @@ SELECT * FROM prt1_l t1 LEFT JOIN LATERAL (SELECT t2.a AS t2a, t2.c AS t2c, t2.b AS t2b, t3.b AS t3b, least(t1.a,t2.a,t3.b) FROM prt1_l t2 JOIN prt2_l t3 ON (t2.a = t3.b AND t2.c = t3.c)) ss ON t1.a = ss.t2a AND t1.c = ss.t2c WHERE t1.b = 0 ORDER BY t1.a; +SET max_parallel_workers_per_gather = 0; +-- If there are lateral references to the other relation in sample scan, +-- we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT * FROM prt1_l t1 JOIN LATERAL + (SELECT * FROM prt1_l t2 TABLESAMPLE SYSTEM (t1.a) REPEATABLE(t1.b)) s + ON t1.a = s.a AND t1.b = s.b AND t1.c = s.c; + +-- If there are lateral references to the other relation in scan's restriction +-- clauses, we cannot generate a partitionwise join. +EXPLAIN (COSTS OFF) +SELECT COUNT(*) FROM prt1_l t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2_l t2) s + ON t1.a = s.b AND t1.b = s.a AND t1.c = s.c + WHERE s.t1b = s.a; +SELECT COUNT(*) FROM prt1_l t1 LEFT JOIN LATERAL + (SELECT t1.b AS t1b, t2.* FROM prt2_l t2) s + ON t1.a = s.b AND t1.b = s.a AND t1.c = s.c + WHERE s.t1b = s.a; +RESET max_parallel_workers_per_gather; + -- join with one side empty EXPLAIN (COSTS OFF) SELECT t1.a, t1.c, t2.b, t2.c FROM (SELECT * FROM prt1_l WHERE a = 1 AND a = 2) t1 RIGHT JOIN prt2_l t2 ON t1.a = t2.b AND t1.b = t2.a AND t1.c = t2.c; diff --git a/src/test/regress/sql/triggers.sql b/src/test/regress/sql/triggers.sql index d29e98d..46795a9 100644 --- a/src/test/regress/sql/triggers.sql +++ b/src/test/regress/sql/triggers.sql @@ -1583,6 +1583,42 @@ create trigger qqq after insert on parted_trig_1_1 for each row execute procedur insert into parted_trig values (50), (1500); drop table parted_trig; +-- Verify that the correct triggers fire for cross-partition updates +create table parted_trig (a int) partition by list (a); +create table parted_trig1 partition of parted_trig for values in (1); +create table parted_trig2 partition of parted_trig for values in (2); +insert into parted_trig values (1); + +create or replace function trigger_notice() returns trigger as $$ + begin + raise notice 'trigger % on % % % for %', TG_NAME, TG_TABLE_NAME, TG_WHEN, TG_OP, TG_LEVEL; + if TG_LEVEL = 'ROW' then + if TG_OP = 'DELETE' then + return OLD; + else + return NEW; + end if; + end if; + return null; + end; + $$ language plpgsql; +create trigger parted_trig_before_stmt before insert or update or delete on parted_trig + for each statement execute procedure trigger_notice(); +create trigger parted_trig_before_row before insert or update or delete on parted_trig + for each row execute procedure trigger_notice(); +create trigger parted_trig_after_row after insert or update or delete on parted_trig + for each row execute procedure trigger_notice(); +create trigger parted_trig_after_stmt after insert or update or delete on parted_trig + for each statement execute procedure trigger_notice(); + +update parted_trig set a = 2 where a = 1; + +-- update action in merge should behave the same +merge into parted_trig using (select 1) as ss on true + when matched and a = 2 then update set a = 1; + +drop table parted_trig; + -- Verify propagation of trigger arguments to partitions create table parted_trig (a int) partition by list (a); create table parted_trig1 partition of parted_trig for values in (1); diff --git a/src/test/regress/sql/tsdicts.sql b/src/test/regress/sql/tsdicts.sql index ddc6c7f..6a2b003 100644 --- a/src/test/regress/sql/tsdicts.sql +++ b/src/test/regress/sql/tsdicts.sql @@ -251,3 +251,33 @@ CREATE TEXT SEARCH DICTIONARY tsdict_case "DictFile" = ispell_sample, "AffFile" = ispell_sample ); + +-- Test grammar for configurations +CREATE TEXT SEARCH CONFIGURATION dummy_tst (COPY=english); +-- Overriden mapping change with duplicated tokens. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + ALTER MAPPING FOR word, word WITH ispell; +-- Not a token supported by the configuration's parser, fails. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING FOR not_a_token, not_a_token; +-- Not a token supported by the configuration's parser, fails even +-- with IF EXISTS. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING IF EXISTS FOR not_a_token, not_a_token; +-- Token supported by the configuration's parser, succeeds. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING FOR word, word; +-- No mapping for token supported by the configuration's parser, fails. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING FOR word; +-- Token supported by the configuration's parser, cannot be found, +-- succeeds with IF EXISTS. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + DROP MAPPING IF EXISTS FOR word, word; +-- Re-add mapping, with duplicated tokens supported by the parser. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + ADD MAPPING FOR word, word WITH ispell; +-- Not a token supported by the configuration's parser, fails. +ALTER TEXT SEARCH CONFIGURATION dummy_tst + ADD MAPPING FOR not_a_token WITH ispell; +DROP TEXT SEARCH CONFIGURATION dummy_tst; diff --git a/src/test/ssl/t/001_ssltests.pl b/src/test/ssl/t/001_ssltests.pl index 707f400..c570b48 100644 --- a/src/test/ssl/t/001_ssltests.pl +++ b/src/test/ssl/t/001_ssltests.pl @@ -682,7 +682,7 @@ $node->connect_fails( "$common_connstr user=ssltestuser sslcert=ssl/client-revoked.crt " . sslkey('client-revoked.key'), "certificate authorization fails with revoked client cert", - expected_stderr => qr/SSL error: sslv3 alert certificate revoked/, + expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|, # revoked certificates should not authenticate the user log_unlike => [qr/connection authenticated:/],); @@ -743,6 +743,6 @@ $node->connect_fails( "$common_connstr user=ssltestuser sslcert=ssl/client-revoked.crt " . sslkey('client-revoked.key'), "certificate authorization fails with revoked client cert with server-side CRL directory", - expected_stderr => qr/SSL error: sslv3 alert certificate revoked/); + expected_stderr => qr|SSL error: ssl[a-z0-9/]* alert certificate revoked|); done_testing(); diff --git a/src/test/subscription/t/001_rep_changes.pl b/src/test/subscription/t/001_rep_changes.pl index 6ed9265..6e6ebd8 100644 --- a/src/test/subscription/t/001_rep_changes.pl +++ b/src/test/subscription/t/001_rep_changes.pl @@ -57,6 +57,11 @@ $node_publisher->safe_psql('postgres', "CREATE INDEX idx_no_replidentity_index ON tab_no_replidentity_index(c1)" ); +# Replicate the changes without columns +$node_publisher->safe_psql('postgres', "CREATE TABLE tab_no_col()"); +$node_publisher->safe_psql('postgres', + "INSERT INTO tab_no_col default VALUES"); + # Setup structure on subscriber $node_subscriber->safe_psql('postgres', "CREATE TABLE tab_notrep (a int)"); $node_subscriber->safe_psql('postgres', "CREATE TABLE tab_ins (a int)"); @@ -87,13 +92,16 @@ $node_subscriber->safe_psql('postgres', "CREATE INDEX idx_no_replidentity_index ON tab_no_replidentity_index(c1)" ); +# replication of the table without columns +$node_subscriber->safe_psql('postgres', "CREATE TABLE tab_no_col()"); + # Setup logical replication my $publisher_connstr = $node_publisher->connstr . ' dbname=postgres'; $node_publisher->safe_psql('postgres', "CREATE PUBLICATION tap_pub"); $node_publisher->safe_psql('postgres', "CREATE PUBLICATION tap_pub_ins_only WITH (publish = insert)"); $node_publisher->safe_psql('postgres', - "ALTER PUBLICATION tap_pub ADD TABLE tab_rep, tab_full, tab_full2, tab_mixed, tab_include, tab_nothing, tab_full_pk, tab_no_replidentity_index" + "ALTER PUBLICATION tap_pub ADD TABLE tab_rep, tab_full, tab_full2, tab_mixed, tab_include, tab_nothing, tab_full_pk, tab_no_replidentity_index, tab_no_col" ); $node_publisher->safe_psql('postgres', "ALTER PUBLICATION tap_pub_ins_only ADD TABLE tab_ins"); @@ -141,6 +149,9 @@ $node_publisher->safe_psql('postgres', "UPDATE tab_include SET a = -a"); $node_publisher->safe_psql('postgres', "INSERT INTO tab_no_replidentity_index VALUES(1)"); +$node_publisher->safe_psql('postgres', + "INSERT INTO tab_no_col default VALUES"); + $node_publisher->wait_for_catchup('tap_sub'); $result = $node_subscriber->safe_psql('postgres', @@ -169,6 +180,10 @@ is( $node_subscriber->safe_psql( 1, "value replicated to subscriber without replica identity index"); +$result = + $node_subscriber->safe_psql('postgres', "SELECT count(*) FROM tab_no_col"); +is($result, qq(2), 'check replicated changes for table having no columns'); + # insert some duplicate rows $node_publisher->safe_psql('postgres', "INSERT INTO tab_full SELECT generate_series(1,10)"); diff --git a/src/test/subscription/t/100_bugs.pl b/src/test/subscription/t/100_bugs.pl index 61c9f53..28ca4af 100644 --- a/src/test/subscription/t/100_bugs.pl +++ b/src/test/subscription/t/100_bugs.pl @@ -365,4 +365,57 @@ is( $node_subscriber_d_cols->safe_psql( $node_publisher_d_cols->stop('fast'); $node_subscriber_d_cols->stop('fast'); +# The bug was that pgoutput was incorrectly replacing missing attributes in +# tuples with NULL. This could result in incorrect replication with +# `REPLICA IDENTITY FULL`. + +$node_publisher->rotate_logfile(); +$node_publisher->start(); + +$node_subscriber->rotate_logfile(); +$node_subscriber->start(); + +# Set up a table with schema `(a int, b bool)` where the `b` attribute is +# missing for one row due to the `ALTER TABLE ... ADD COLUMN ... DEFAULT` +# fast path. +$node_publisher->safe_psql( + 'postgres', qq( + CREATE TABLE tab_default (a int); + ALTER TABLE tab_default REPLICA IDENTITY FULL; + INSERT INTO tab_default VALUES (1); + ALTER TABLE tab_default ADD COLUMN b bool DEFAULT false NOT NULL; + INSERT INTO tab_default VALUES (2, true); + CREATE PUBLICATION pub1 FOR TABLE tab_default; +)); + +# Replicate to the subscriber. +$node_subscriber->safe_psql( + 'postgres', qq( + CREATE TABLE tab_default (a int, b bool); + CREATE SUBSCRIPTION sub1 CONNECTION '$publisher_connstr' PUBLICATION pub1; +)); + +$node_subscriber->wait_for_subscription_sync($node_publisher, 'sub1'); +my $result = $node_subscriber->safe_psql('postgres', + "SELECT a, b FROM tab_default"); +is($result, qq(1|f +2|t), 'check snapshot on subscriber'); + +# Update all rows in the table and ensure the rows with the missing `b` +# attribute replicate correctly. +$node_publisher->safe_psql('postgres', + "UPDATE tab_default SET a = a + 1"); +$node_publisher->wait_for_catchup('sub1'); + +# When the bug is present, the `1|f` row will not be updated to `2|f` because +# the publisher incorrectly fills in `NULL` for `b` and publishes an update +# for `1|NULL`, which doesn't exist in the subscriber. +$result = $node_subscriber->safe_psql('postgres', + "SELECT a, b FROM tab_default"); +is($result, qq(2|f +3|t), 'check replicated update on subscriber'); + +$node_publisher->stop('fast'); +$node_subscriber->stop('fast'); + done_testing(); diff --git a/src/timezone/data/tzdata.zi b/src/timezone/data/tzdata.zi index b522e39..be1c408 100644 --- a/src/timezone/data/tzdata.zi +++ b/src/timezone/data/tzdata.zi @@ -1,4 +1,4 @@ -# version 2023c +# version 2024a # 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 - @@ -22,27 +22,6 @@ R d 1978 o - Mar 24 1 1 S R d 1978 o - S 22 3 0 - R d 1980 o - Ap 25 0 1 S R d 1980 o - O 31 2 0 - -Z Africa/Algiers 0:12:12 - LMT 1891 Mar 16 -0:9:21 - PMT 1911 Mar 11 -0 d WE%sT 1940 F 25 2 -1 d CE%sT 1946 O 7 -0 - WET 1956 Ja 29 -1 - CET 1963 Ap 14 -0 d WE%sT 1977 O 21 -1 d CE%sT 1979 O 26 -0 d WE%sT 1981 May -1 - CET -Z Atlantic/Cape_Verde -1:34:4 - LMT 1912 Ja 1 2u --2 - -02 1942 S --2 1 -01 1945 O 15 --2 - -02 1975 N 25 2 --1 - -01 -Z Africa/Ndjamena 1:0:12 - LMT 1912 -1 - WAT 1979 O 14 -1 1 WAST 1980 Mar 8 -1 - WAT -Z Africa/Abidjan -0:16:8 - LMT 1912 -0 - GMT R K 1940 o - Jul 15 0 1 S R K 1940 o - O 1 0 0 - R K 1941 o - Ap 15 0 1 S @@ -77,21 +56,6 @@ R K 2014 o - Jul 31 24 1 S R K 2014 o - S lastTh 24 0 - R K 2023 ma - Ap lastF 0 1 S R K 2023 ma - O lastTh 24 0 - -Z Africa/Cairo 2:5:9 - LMT 1900 O -2 K EE%sT -Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u --1 - -01 1975 -0 - GMT -Z Africa/Nairobi 2:27:16 - LMT 1908 May -2:30 - +0230 1928 Jun 30 24 -3 - EAT 1930 Ja 4 24 -2:30 - +0230 1936 D 31 24 -2:45 - +0245 1942 Jul 31 24 -3 - EAT -Z Africa/Monrovia -0:43:8 - LMT 1882 --0:43:8 - MMT 1919 Mar --0:44:30 - MMT 1972 Ja 7 -0 - GMT R L 1951 o - O 14 2 1 S R L 1952 o - Ja 1 0 0 - R L 1953 o - O 9 2 1 S @@ -109,21 +73,10 @@ R L 1997 o - Ap 4 0 1 S R L 1997 o - O 4 0 0 - R L 2013 o - Mar lastF 1 1 S R L 2013 o - O lastF 2 0 - -Z Africa/Tripoli 0:52:44 - LMT 1920 -1 L CE%sT 1959 -2 - EET 1982 -1 L CE%sT 1990 May 4 -2 - EET 1996 S 30 -1 L CE%sT 1997 O 4 -2 - EET 2012 N 10 2 -1 L CE%sT 2013 O 25 2 -2 - EET R MU 1982 o - O 10 0 1 - R MU 1983 o - Mar 21 0 0 - R MU 2008 o - O lastSu 2 1 - R MU 2009 o - Mar lastSu 2 0 - -Z Indian/Mauritius 3:50 - LMT 1907 -4 MU +04/+05 R M 1939 o - S 12 0 1 - R M 1939 o - N 19 0 0 - R M 1940 o - F 25 0 1 - @@ -307,53 +260,15 @@ R M 2086 o - Ap 14 3 -1 - R M 2086 o - May 19 2 0 - R M 2087 o - Mar 30 3 -1 - R M 2087 o - May 11 2 0 - -Z Africa/Casablanca -0:30:20 - LMT 1913 O 26 -0 M +00/+01 1984 Mar 16 -1 - +01 1986 -0 M +00/+01 2018 O 28 3 -1 M +01/+00 -Z Africa/El_Aaiun -0:52:48 - LMT 1934 --1 - -01 1976 Ap 14 -0 M +00/+01 2018 O 28 3 -1 M +01/+00 -Z Africa/Maputo 2:10:20 - LMT 1903 Mar -2 - CAT R NA 1994 o - Mar 21 0 -1 WAT R NA 1994 2017 - S Su>=1 2 0 CAT R NA 1995 2017 - Ap Su>=1 2 -1 WAT -Z Africa/Windhoek 1:8:24 - LMT 1892 F 8 -1:30 - +0130 1903 Mar -2 - SAST 1942 S 20 2 -2 1 SAST 1943 Mar 21 2 -2 - SAST 1990 Mar 21 -2 NA %s -Z Africa/Lagos 0:13:35 - LMT 1905 Jul -0 - GMT 1908 Jul -0:13:35 - LMT 1914 -0:30 - +0030 1919 S -1 - WAT -Z Africa/Sao_Tome 0:26:56 - LMT 1884 --0:36:45 - LMT 1912 Ja 1 0u -0 - GMT 2018 Ja 1 1 -1 - WAT 2019 Ja 1 2 -0 - GMT R SA 1942 1943 - S Su>=15 2 1 - R SA 1943 1944 - Mar Su>=15 2 0 - -Z Africa/Johannesburg 1:52 - LMT 1892 F 8 -1:30 - SAST 1903 Mar -2 SA SAST R SD 1970 o - May 1 0 1 S R SD 1970 1985 - O 15 0 0 - R SD 1971 o - Ap 30 0 1 S R SD 1972 1985 - Ap lastSu 0 1 S -Z Africa/Khartoum 2:10:8 - LMT 1931 -2 SD CA%sT 2000 Ja 15 12 -3 - EAT 2017 N -2 - CAT -Z Africa/Juba 2:6:28 - LMT 1931 -2 SD CA%sT 2000 Ja 15 12 -3 - EAT 2021 F -2 - CAT R n 1939 o - Ap 15 23s 1 S R n 1939 o - N 18 23s 0 - R n 1940 o - F 25 23s 1 S @@ -379,80 +294,14 @@ R n 2005 o - May 1 0s 1 S R n 2005 o - S 30 1s 0 - R n 2006 2008 - Mar lastSu 2s 1 S R n 2006 2008 - O lastSu 2s 0 - -Z Africa/Tunis 0:40:44 - LMT 1881 May 12 -0:9:21 - PMT 1911 Mar 11 -1 n CE%sT -Z Antarctica/Casey 0 - -00 1969 -8 - +08 2009 O 18 2 -11 - +11 2010 Mar 5 2 -8 - +08 2011 O 28 2 -11 - +11 2012 F 21 17u -8 - +08 2016 O 22 -11 - +11 2018 Mar 11 4 -8 - +08 2018 O 7 4 -11 - +11 2019 Mar 17 3 -8 - +08 2019 O 4 3 -11 - +11 2020 Mar 8 3 -8 - +08 2020 O 4 0:1 -11 - +11 -Z Antarctica/Davis 0 - -00 1957 Ja 13 -7 - +07 1964 N -0 - -00 1969 F -7 - +07 2009 O 18 2 -5 - +05 2010 Mar 10 20u -7 - +07 2011 O 28 2 -5 - +05 2012 F 21 20u -7 - +07 -Z Antarctica/Mawson 0 - -00 1954 F 13 -6 - +06 2009 O 18 2 -5 - +05 R Tr 2005 ma - Mar lastSu 1u 2 +02 R Tr 2004 ma - O lastSu 1u 0 +00 -Z Antarctica/Troll 0 - -00 2005 F 12 -0 Tr %s -Z Antarctica/Rothera 0 - -00 1976 D --3 - -03 -Z Asia/Kabul 4:36:48 - LMT 1890 -4 - +04 1945 -4:30 - +0430 R AM 2011 o - Mar lastSu 2s 1 - R AM 2011 o - O lastSu 2s 0 - -Z Asia/Yerevan 2:58 - LMT 1924 May 2 -3 - +03 1957 Mar -4 R +04/+05 1991 Mar 31 2s -3 R +03/+04 1995 S 24 2s -4 - +04 1997 -4 R +04/+05 2011 -4 AM +04/+05 R AZ 1997 2015 - Mar lastSu 4 1 - R AZ 1997 2015 - O lastSu 5 0 - -Z Asia/Baku 3:19:24 - LMT 1924 May 2 -3 - +03 1957 Mar -4 R +04/+05 1991 Mar 31 2s -3 R +03/+04 1992 S lastSu 2s -4 - +04 1996 -4 E +04/+05 1997 -4 AZ +04/+05 R BD 2009 o - Jun 19 23 1 - R BD 2009 o - D 31 24 0 - -Z Asia/Dhaka 6:1:40 - LMT 1890 -5:53:20 - HMT 1941 O -6:30 - +0630 1942 May 15 -5:30 - +0530 1942 S -6:30 - +0630 1951 S 30 -6 - +06 2009 -6 BD +06/+07 -Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15 -5:30 - +0530 1987 O -6 - +06 -Z Indian/Chagos 4:49:40 - LMT 1907 -5 - +05 1996 -6 - +06 -Z Asia/Yangon 6:24:47 - LMT 1880 -6:24:47 - RMT 1920 -6:30 - +0630 1942 May -9 - +09 1945 May 3 -6:30 - +0630 R Sh 1919 o - Ap 12 24 1 D R Sh 1919 o - S 30 24 0 S R Sh 1940 o - Jun 1 0 1 D @@ -470,11 +319,6 @@ R Sh 1948 1949 - S 30 24 0 S R CN 1986 o - May 4 2 1 D R CN 1986 1991 - S Su>=11 2 0 S R CN 1987 1991 - Ap Su>=11 2 1 D -Z Asia/Shanghai 8:5:43 - LMT 1901 -8 Sh C%sT 1949 May 28 -8 CN C%sT -Z Asia/Urumqi 5:50:20 - LMT 1928 -6 - +06 R HK 1946 o - Ap 21 0 1 S R HK 1946 o - D 1 3:30s 0 - R HK 1947 o - Ap 13 3:30s 1 S @@ -489,12 +333,6 @@ R HK 1965 1976 - O Su>=16 3:30 0 - R HK 1973 o - D 30 3:30 1 S R HK 1979 o - May 13 3:30 1 S R HK 1979 o - O 21 3:30 0 - -Z Asia/Hong_Kong 7:36:42 - LMT 1904 O 29 17u -8 - HKT 1941 Jun 15 3 -8 1 HKST 1941 O 1 4 -8 0:30 HKWT 1941 D 25 -9 - JST 1945 N 18 2 -8 HK HK%sT R f 1946 o - May 15 0 1 D R f 1946 o - O 1 0 0 S R f 1947 o - Ap 15 0 1 D @@ -510,10 +348,6 @@ R f 1974 1975 - Ap 1 0 1 D R f 1974 1975 - O 1 0 0 S R f 1979 o - Jul 1 0 1 D R f 1979 o - O 1 0 0 S -Z Asia/Taipei 8:6 - LMT 1896 -8 - CST 1937 O -9 - JST 1945 S 21 1 -8 f C%sT R _ 1942 1943 - Ap 30 23 1 - R _ 1942 o - N 17 23 0 - R _ 1943 o - S 30 23 0 S @@ -541,10 +375,6 @@ R _ 1973 o - D 30 3:30 1 D R _ 1975 1976 - Ap Su>=16 3:30 1 D R _ 1979 o - May 13 3:30 1 D R _ 1979 o - O Su>=16 3:30 0 S -Z Asia/Macau 7:34:10 - LMT 1904 O 30 -8 - CST 1941 D 21 23 -9 _ +09/+10 1945 S 30 24 -8 _ C%sT R CY 1975 o - Ap 13 0 1 S R CY 1975 o - O 12 0 0 - R CY 1976 o - May 15 0 1 S @@ -554,65 +384,6 @@ R CY 1977 o - S 25 0 0 - R CY 1978 o - O 2 0 0 - R CY 1979 1997 - S lastSu 0 0 - R CY 1981 1998 - Mar lastSu 0 1 S -Z Asia/Nicosia 2:13:28 - LMT 1921 N 14 -2 CY EE%sT 1998 S -2 E EE%sT -Z Asia/Famagusta 2:15:48 - LMT 1921 N 14 -2 CY EE%sT 1998 S -2 E EE%sT 2016 S 8 -3 - +03 2017 O 29 1u -2 E EE%sT -Z Asia/Tbilisi 2:59:11 - LMT 1880 -2:59:11 - TBMT 1924 May 2 -3 - +03 1957 Mar -4 R +04/+05 1991 Mar 31 2s -3 R +03/+04 1992 -3 e +03/+04 1994 S lastSu -4 e +04/+05 1996 O lastSu -4 1 +05 1997 Mar lastSu -4 e +04/+05 2004 Jun 27 -3 R +03/+04 2005 Mar lastSu 2 -4 - +04 -Z Asia/Dili 8:22:20 - LMT 1912 -8 - +08 1942 F 21 23 -9 - +09 1976 May 3 -8 - +08 2000 S 17 -9 - +09 -Z Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 -5:53:20 - HMT 1870 -5:21:10 - MMT 1906 -5:30 - IST 1941 O -5:30 1 +0630 1942 May 15 -5:30 - IST 1942 S -5:30 1 +0630 1945 O 15 -5:30 - IST -Z Asia/Jakarta 7:7:12 - LMT 1867 Au 10 -7:7:12 - BMT 1923 D 31 16:40u -7:20 - +0720 1932 N -7:30 - +0730 1942 Mar 23 -9 - +09 1945 S 23 -7:30 - +0730 1948 May -8 - +08 1950 May -7:30 - +0730 1964 -7 - WIB -Z Asia/Pontianak 7:17:20 - LMT 1908 May -7:17:20 - PMT 1932 N -7:30 - +0730 1942 Ja 29 -9 - +09 1945 S 23 -7:30 - +0730 1948 May -8 - +08 1950 May -7:30 - +0730 1964 -8 - WITA 1988 -7 - WIB -Z Asia/Makassar 7:57:36 - LMT 1920 -7:57:36 - MMT 1932 N -8 - +08 1942 F 9 -9 - +09 1945 S 23 -8 - WITA -Z Asia/Jayapura 9:22:48 - LMT 1932 N -9 - +09 1944 S -9:30 - +0930 1964 -9 - WIT R i 1910 o - Ja 1 0 0 - R i 1977 o - Mar 21 23 1 - R i 1977 o - O 20 24 0 - @@ -653,11 +424,6 @@ R i 2020 o - Mar 20 24 1 - R i 2020 o - S 20 24 0 - R i 2021 2022 - Mar 21 24 1 - R i 2021 2022 - S 21 24 0 - -Z Asia/Tehran 3:25:44 - LMT 1916 -3:25:44 - TMT 1935 Jun 13 -3:30 i +0330/+0430 1977 O 20 24 -4 i +04/+05 1979 -3:30 i +0330/+0430 R IQ 1982 o - May 1 0 1 - R IQ 1982 1984 - O 1 0 0 - R IQ 1983 o - Mar 31 0 1 - @@ -666,10 +432,6 @@ R IQ 1985 1990 - S lastSu 1s 0 - R IQ 1986 1990 - Mar lastSu 1s 1 - R IQ 1991 2007 - Ap 1 3s 1 - R IQ 1991 2007 - O 1 3s 0 - -Z Asia/Baghdad 2:57:40 - LMT 1890 -2:57:36 - BMT 1918 -3 - +03 1982 May -3 IQ +03/+04 R Z 1940 o - May 31 24u 1 D R Z 1940 o - S 30 24u 0 S R Z 1940 o - N 16 24u 1 D @@ -755,15 +517,10 @@ R Z 2011 o - O 2 2 0 S R Z 2012 o - S 23 2 0 S R Z 2013 ma - Mar F>=23 2 1 D R Z 2013 ma - O lastSu 2 0 S -Z Asia/Jerusalem 2:20:54 - LMT 1880 -2:20:40 - JMT 1918 -2 Z I%sT R JP 1948 o - May Sa>=1 24 1 D R JP 1948 1951 - S Sa>=8 25 0 S R JP 1949 o - Ap Sa>=1 24 1 D R JP 1950 1951 - May Sa>=1 24 1 D -Z Asia/Tokyo 9:18:59 - LMT 1887 D 31 15u -9 JP J%sT R J 1973 o - Jun 6 0 1 S R J 1973 1975 - O 1 0 0 - R J 1974 1977 - May 1 0 1 S @@ -796,83 +553,10 @@ R J 2013 o - D 20 0 0 - R J 2014 2021 - Mar lastTh 24 1 S R J 2014 2022 - O lastF 0s 0 - R J 2022 o - F lastTh 24 1 S -Z Asia/Amman 2:23:44 - LMT 1931 -2 J EE%sT 2022 O 28 0s -3 - +03 -Z Asia/Almaty 5:7:48 - LMT 1924 May 2 -5 - +05 1930 Jun 21 -6 R +06/+07 1991 Mar 31 2s -5 R +05/+06 1992 Ja 19 2s -6 R +06/+07 2004 O 31 2s -6 - +06 -Z Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 -4 - +04 1930 Jun 21 -5 - +05 1981 Ap -5 1 +06 1981 O -6 - +06 1982 Ap -5 R +05/+06 1991 Mar 31 2s -4 R +04/+05 1991 S 29 2s -5 R +05/+06 1992 Ja 19 2s -6 R +06/+07 1992 Mar 29 2s -5 R +05/+06 2004 O 31 2s -6 - +06 2018 D 21 -5 - +05 -Z Asia/Qostanay 4:14:28 - LMT 1924 May 2 -4 - +04 1930 Jun 21 -5 - +05 1981 Ap -5 1 +06 1981 O -6 - +06 1982 Ap -5 R +05/+06 1991 Mar 31 2s -4 R +04/+05 1992 Ja 19 2s -5 R +05/+06 2004 O 31 2s -6 - +06 -Z Asia/Aqtobe 3:48:40 - LMT 1924 May 2 -4 - +04 1930 Jun 21 -5 - +05 1981 Ap -5 1 +06 1981 O -6 - +06 1982 Ap -5 R +05/+06 1991 Mar 31 2s -4 R +04/+05 1992 Ja 19 2s -5 R +05/+06 2004 O 31 2s -5 - +05 -Z Asia/Aqtau 3:21:4 - LMT 1924 May 2 -4 - +04 1930 Jun 21 -5 - +05 1981 O -6 - +06 1982 Ap -5 R +05/+06 1991 Mar 31 2s -4 R +04/+05 1992 Ja 19 2s -5 R +05/+06 1994 S 25 2s -4 R +04/+05 2004 O 31 2s -5 - +05 -Z Asia/Atyrau 3:27:44 - LMT 1924 May 2 -3 - +03 1930 Jun 21 -5 - +05 1981 O -6 - +06 1982 Ap -5 R +05/+06 1991 Mar 31 2s -4 R +04/+05 1992 Ja 19 2s -5 R +05/+06 1999 Mar 28 2s -4 R +04/+05 2004 O 31 2s -5 - +05 -Z Asia/Oral 3:25:24 - LMT 1924 May 2 -3 - +03 1930 Jun 21 -5 - +05 1981 Ap -5 1 +06 1981 O -6 - +06 1982 Ap -5 R +05/+06 1989 Mar 26 2s -4 R +04/+05 1992 Ja 19 2s -5 R +05/+06 1992 Mar 29 2s -4 R +04/+05 2004 O 31 2s -5 - +05 R KG 1992 1996 - Ap Su>=7 0s 1 - R KG 1992 1996 - S lastSu 0 0 - R KG 1997 2005 - Mar lastSu 2:30 1 - R KG 1997 2004 - O lastSu 2:30 0 - -Z Asia/Bishkek 4:58:24 - LMT 1924 May 2 -5 - +05 1930 Jun 21 -6 R +06/+07 1991 Mar 31 2s -5 R +05/+06 1991 Au 31 2 -5 KG +05/+06 2005 Au 12 -6 - +06 R KR 1948 o - Jun 1 0 1 D R KR 1948 o - S 12 24 0 S R KR 1949 o - Ap 3 0 1 D @@ -887,18 +571,6 @@ R KR 1957 1960 - May Su>=1 0 1 D R KR 1957 1960 - S Sa>=17 24 0 S R KR 1987 1988 - May Su>=8 2 1 D R KR 1987 1988 - O Su>=8 3 0 S -Z Asia/Seoul 8:27:52 - LMT 1908 Ap -8:30 - KST 1912 -9 - JST 1945 S 8 -9 KR K%sT 1954 Mar 21 -8:30 KR K%sT 1961 Au 10 -9 KR K%sT -Z Asia/Pyongyang 8:23 - LMT 1908 Ap -8:30 - KST 1912 -9 - JST 1945 Au 24 -9 - KST 2015 Au 15 -8:30 - KST 2018 May 4 23:30 -9 - KST R l 1920 o - Mar 28 0 1 S R l 1920 o - O 25 0 0 - R l 1921 o - Ap 3 0 1 S @@ -923,18 +595,8 @@ R l 1992 o - O 4 0 0 - R l 1993 ma - Mar lastSu 0 1 S R l 1993 1998 - S lastSu 0 0 - R l 1999 ma - O lastSu 0 0 - -Z Asia/Beirut 2:22 - LMT 1880 -2 l EE%sT R NB 1935 1941 - S 14 0 0:20 - R NB 1935 1941 - D 14 0 0 - -Z Asia/Kuching 7:21:20 - LMT 1926 Mar -7:30 - +0730 1933 -8 NB +08/+0820 1942 F 16 -9 - +09 1945 S 12 -8 - +08 -Z Indian/Maldives 4:54 - LMT 1880 -4:54 - MMT 1960 -5 - +05 R X 1983 1984 - Ap 1 0 1 - R X 1983 o - O 1 0 0 - R X 1985 1998 - Mar lastSu 0 1 - @@ -944,31 +606,11 @@ R X 2001 2006 - S lastSa 2 0 - R X 2002 2006 - Mar lastSa 2 1 - R X 2015 2016 - Mar lastSa 2 1 - R X 2015 2016 - S lastSa 0 0 - -Z Asia/Hovd 6:6:36 - LMT 1905 Au -6 - +06 1978 -7 X +07/+08 -Z Asia/Ulaanbaatar 7:7:32 - LMT 1905 Au -7 - +07 1978 -8 X +08/+09 -Z Asia/Choibalsan 7:38 - LMT 1905 Au -7 - +07 1978 -8 - +08 1983 Ap -9 X +09/+10 2008 Mar 31 -8 X +08/+09 -Z Asia/Kathmandu 5:41:16 - LMT 1920 -5:30 - +0530 1986 -5:45 - +0545 R PK 2002 o - Ap Su>=2 0 1 S R PK 2002 o - O Su>=2 0 0 - R PK 2008 o - Jun 1 0 1 S R PK 2008 2009 - N 1 0 0 - R PK 2009 o - Ap 15 0 1 S -Z Asia/Karachi 4:28:12 - LMT 1907 -5:30 - +0530 1942 S -5:30 1 +0630 1945 O 15 -5:30 - +0530 1951 S 30 -5 - +05 1971 Mar 26 -5 PK PK%sT R P 1999 2005 - Ap F>=15 0 1 S R P 1999 2003 - O F>=15 0 0 - R P 2004 o - O 1 1 0 - @@ -1001,136 +643,90 @@ R P 2021 o - O 29 1 0 - R P 2022 o - Mar 27 0 1 S R P 2022 2035 - O Sa<=30 2 0 - R P 2023 o - Ap 29 2 1 S -R P 2024 o - Ap 13 2 1 S -R P 2025 o - Ap 5 2 1 S +R P 2024 o - Ap 20 2 1 S +R P 2025 o - Ap 12 2 1 S R P 2026 2054 - Mar Sa<=30 2 1 S R P 2036 o - O 18 2 0 - R P 2037 o - O 10 2 0 - R P 2038 o - S 25 2 0 - R P 2039 o - S 17 2 0 - -R P 2039 o - O 22 2 1 S -R P 2039 2067 - O Sa<=30 2 0 - R P 2040 o - S 1 2 0 - -R P 2040 o - O 13 2 1 S +R P 2040 o - O 20 2 1 S +R P 2040 2067 - O Sa<=30 2 0 - R P 2041 o - Au 24 2 0 - -R P 2041 o - S 28 2 1 S +R P 2041 o - O 5 2 1 S R P 2042 o - Au 16 2 0 - -R P 2042 o - S 20 2 1 S +R P 2042 o - S 27 2 1 S R P 2043 o - Au 1 2 0 - -R P 2043 o - S 12 2 1 S +R P 2043 o - S 19 2 1 S R P 2044 o - Jul 23 2 0 - -R P 2044 o - Au 27 2 1 S +R P 2044 o - S 3 2 1 S R P 2045 o - Jul 15 2 0 - -R P 2045 o - Au 19 2 1 S +R P 2045 o - Au 26 2 1 S R P 2046 o - Jun 30 2 0 - -R P 2046 o - Au 11 2 1 S +R P 2046 o - Au 18 2 1 S R P 2047 o - Jun 22 2 0 - -R P 2047 o - Jul 27 2 1 S +R P 2047 o - Au 3 2 1 S R P 2048 o - Jun 6 2 0 - -R P 2048 o - Jul 18 2 1 S +R P 2048 o - Jul 25 2 1 S R P 2049 o - May 29 2 0 - -R P 2049 o - Jul 3 2 1 S +R P 2049 o - Jul 10 2 1 S R P 2050 o - May 21 2 0 - -R P 2050 o - Jun 25 2 1 S +R P 2050 o - Jul 2 2 1 S R P 2051 o - May 6 2 0 - -R P 2051 o - Jun 17 2 1 S +R P 2051 o - Jun 24 2 1 S R P 2052 o - Ap 27 2 0 - -R P 2052 o - Jun 1 2 1 S +R P 2052 o - Jun 8 2 1 S R P 2053 o - Ap 12 2 0 - -R P 2053 o - May 24 2 1 S +R P 2053 o - May 31 2 1 S R P 2054 o - Ap 4 2 0 - -R P 2054 o - May 16 2 1 S -R P 2055 o - May 1 2 1 S -R P 2056 o - Ap 22 2 1 S -R P 2057 o - Ap 7 2 1 S -R P 2058 ma - Mar Sa<=30 2 1 S +R P 2054 o - May 23 2 1 S +R P 2055 o - May 8 2 1 S +R P 2056 o - Ap 29 2 1 S +R P 2057 o - Ap 14 2 1 S +R P 2058 o - Ap 6 2 1 S +R P 2059 ma - Mar Sa<=30 2 1 S R P 2068 o - O 20 2 0 - R P 2069 o - O 12 2 0 - R P 2070 o - O 4 2 0 - R P 2071 o - S 19 2 0 - R P 2072 o - S 10 2 0 - -R P 2072 o - O 15 2 1 S +R P 2072 o - O 22 2 1 S +R P 2072 ma - O Sa<=30 2 0 - R P 2073 o - S 2 2 0 - -R P 2073 o - O 7 2 1 S +R P 2073 o - O 14 2 1 S R P 2074 o - Au 18 2 0 - -R P 2074 o - S 29 2 1 S +R P 2074 o - O 6 2 1 S R P 2075 o - Au 10 2 0 - -R P 2075 o - S 14 2 1 S -R P 2075 ma - O Sa<=30 2 0 - +R P 2075 o - S 21 2 1 S R P 2076 o - Jul 25 2 0 - -R P 2076 o - S 5 2 1 S +R P 2076 o - S 12 2 1 S R P 2077 o - Jul 17 2 0 - -R P 2077 o - Au 28 2 1 S +R P 2077 o - S 4 2 1 S R P 2078 o - Jul 9 2 0 - -R P 2078 o - Au 13 2 1 S +R P 2078 o - Au 20 2 1 S R P 2079 o - Jun 24 2 0 - -R P 2079 o - Au 5 2 1 S +R P 2079 o - Au 12 2 1 S R P 2080 o - Jun 15 2 0 - -R P 2080 o - Jul 20 2 1 S +R P 2080 o - Jul 27 2 1 S R P 2081 o - Jun 7 2 0 - -R P 2081 o - Jul 12 2 1 S +R P 2081 o - Jul 19 2 1 S R P 2082 o - May 23 2 0 - -R P 2082 o - Jul 4 2 1 S +R P 2082 o - Jul 11 2 1 S R P 2083 o - May 15 2 0 - -R P 2083 o - Jun 19 2 1 S +R P 2083 o - Jun 26 2 1 S R P 2084 o - Ap 29 2 0 - -R P 2084 o - Jun 10 2 1 S +R P 2084 o - Jun 17 2 1 S R P 2085 o - Ap 21 2 0 - -R P 2085 o - Jun 2 2 1 S +R P 2085 o - Jun 9 2 1 S R P 2086 o - Ap 13 2 0 - -R P 2086 o - May 18 2 1 S -Z Asia/Gaza 2:17:52 - LMT 1900 O -2 Z EET/EEST 1948 May 15 -2 K EE%sT 1967 Jun 5 -2 Z I%sT 1996 -2 J EE%sT 1999 -2 P EE%sT 2008 Au 29 -2 - EET 2008 S -2 P EE%sT 2010 -2 - EET 2010 Mar 27 0:1 -2 P EE%sT 2011 Au -2 - EET 2012 -2 P EE%sT -Z Asia/Hebron 2:20:23 - LMT 1900 O -2 Z EET/EEST 1948 May 15 -2 K EE%sT 1967 Jun 5 -2 Z I%sT 1996 -2 J EE%sT 1999 -2 P EE%sT +R P 2086 o - May 25 2 1 S R PH 1936 o - N 1 0 1 D R PH 1937 o - F 1 0 0 S R PH 1954 o - Ap 12 0 1 D R PH 1954 o - Jul 1 0 0 S R PH 1978 o - Mar 22 0 1 D R PH 1978 o - S 21 0 0 S -Z Asia/Manila -15:56 - LMT 1844 D 31 -8:4 - LMT 1899 May 11 -8 PH P%sT 1942 May -9 - JST 1944 N -8 PH P%sT -Z Asia/Qatar 3:26:8 - LMT 1920 -4 - +04 1972 Jun -3 - +03 -Z Asia/Riyadh 3:6:52 - LMT 1947 Mar 14 -3 - +03 -Z Asia/Singapore 6:55:25 - LMT 1901 -6:55:25 - SMT 1905 Jun -7 - +07 1933 -7 0:20 +0720 1936 -7:20 - +0720 1941 S -7:30 - +0730 1942 F 16 -9 - +09 1945 S 12 -7:30 - +0730 1981 D 31 16u -8 - +08 -Z Asia/Colombo 5:19:24 - LMT 1880 -5:19:32 - MMT 1906 -5:30 - +0530 1942 Ja 5 -5:30 0:30 +06 1942 S -5:30 1 +0630 1945 O 16 2 -5:30 - +0530 1996 May 25 -6:30 - +0630 1996 O 26 0:30 -6 - +06 2006 Ap 15 0:30 -5:30 - +0530 R S 1920 1923 - Ap Su>=15 2 1 S R S 1920 1923 - O Su>=1 2 0 - R S 1962 o - Ap 29 2 1 S @@ -1172,46 +768,6 @@ R S 2009 o - Mar lastF 0 1 S R S 2010 2011 - Ap F>=1 0 1 S R S 2012 2022 - Mar lastF 0 1 S R S 2009 2022 - O lastF 0 0 - -Z Asia/Damascus 2:25:12 - LMT 1920 -2 S EE%sT 2022 O 28 -3 - +03 -Z Asia/Dushanbe 4:35:12 - LMT 1924 May 2 -5 - +05 1930 Jun 21 -6 R +06/+07 1991 Mar 31 2s -5 1 +06 1991 S 9 2s -5 - +05 -Z Asia/Bangkok 6:42:4 - LMT 1880 -6:42:4 - BMT 1920 Ap -7 - +07 -Z Asia/Ashgabat 3:53:32 - LMT 1924 May 2 -4 - +04 1930 Jun 21 -5 R +05/+06 1991 Mar 31 2 -4 R +04/+05 1992 Ja 19 2 -5 - +05 -Z Asia/Dubai 3:41:12 - LMT 1920 -4 - +04 -Z Asia/Samarkand 4:27:53 - LMT 1924 May 2 -4 - +04 1930 Jun 21 -5 - +05 1981 Ap -5 1 +06 1981 O -6 - +06 1982 Ap -5 R +05/+06 1992 -5 - +05 -Z Asia/Tashkent 4:37:11 - LMT 1924 May 2 -5 - +05 1930 Jun 21 -6 R +06/+07 1991 Mar 31 2 -5 R +05/+06 1992 -5 - +05 -Z Asia/Ho_Chi_Minh 7:6:30 - LMT 1906 Jul -7:6:30 - PLMT 1911 May -7 - +07 1942 D 31 23 -8 - +08 1945 Mar 14 23 -9 - +09 1945 S 2 -7 - +07 1947 Ap -8 - +08 1955 Jul -7 - +07 1959 D 31 23 -8 - +08 1975 Jun 13 -7 - +07 R AU 1917 o - Ja 1 2s 1 D R AU 1917 o - Mar lastSu 2s 0 S R AU 1942 o - Ja 1 2s 1 D @@ -1219,9 +775,6 @@ R AU 1942 o - Mar lastSu 2s 0 S R AU 1942 o - S 27 2s 1 D R AU 1943 1944 - Mar lastSu 2s 0 S R AU 1943 o - O 3 2s 1 D -Z Australia/Darwin 8:43:20 - LMT 1895 F -9 - ACST 1899 May -9:30 AU AC%sT R AW 1974 o - O lastSu 2s 1 D R AW 1975 o - Mar Su>=1 2s 0 S R AW 1983 o - O lastSu 2s 1 D @@ -1231,25 +784,12 @@ R AW 1992 o - Mar Su>=1 2s 0 S R AW 2006 o - D 3 2s 1 D R AW 2007 2009 - Mar lastSu 2s 0 S R AW 2007 2008 - O lastSu 2s 1 D -Z Australia/Perth 7:43:24 - LMT 1895 D -8 AU AW%sT 1943 Jul -8 AW AW%sT -Z Australia/Eucla 8:35:28 - LMT 1895 D -8:45 AU +0845/+0945 1943 Jul -8:45 AW +0845/+0945 R AQ 1971 o - O lastSu 2s 1 D R AQ 1972 o - F lastSu 2s 0 S R AQ 1989 1991 - O lastSu 2s 1 D R AQ 1990 1992 - Mar Su>=1 2s 0 S R Ho 1992 1993 - O lastSu 2s 1 D R Ho 1993 1994 - Mar Su>=1 2s 0 S -Z Australia/Brisbane 10:12:8 - LMT 1895 -10 AU AE%sT 1971 -10 AQ AE%sT -Z Australia/Lindeman 9:55:56 - LMT 1895 -10 AU AE%sT 1971 -10 AQ AE%sT 1992 Jul -10 Ho AE%sT R AS 1971 1985 - O lastSu 2s 1 D R AS 1986 o - O 19 2s 1 D R AS 1987 2007 - O lastSu 2s 1 D @@ -1265,10 +805,6 @@ R AS 2006 o - Ap 2 2s 0 S R AS 2007 o - Mar lastSu 2s 0 S R AS 2008 ma - Ap Su>=1 2s 0 S R AS 2008 ma - O Su>=1 2s 1 D -Z Australia/Adelaide 9:14:20 - LMT 1895 F -9 - ACST 1899 May -9:30 AU AC%sT 1971 -9:30 AS AC%sT R AT 1916 o - O Su>=1 2s 1 D R AT 1917 o - Mar lastSu 2s 0 S R AT 1917 1918 - O Su>=22 2s 1 D @@ -1292,10 +828,6 @@ R AT 2001 ma - O Su>=1 2s 1 D R AT 2006 o - Ap Su>=1 2s 0 S R AT 2007 o - Mar lastSu 2s 0 S R AT 2008 ma - Ap Su>=1 2s 0 S -Z Australia/Hobart 9:49:16 - LMT 1895 S -10 AT AE%sT 1919 O 24 -10 AU AE%sT 1967 -10 AT AE%sT R AV 1971 1985 - O lastSu 2s 1 D R AV 1972 o - F lastSu 2s 0 S R AV 1973 1985 - Mar Su>=1 2s 0 S @@ -1310,9 +842,6 @@ R AV 2006 o - Ap Su>=1 2s 0 S R AV 2007 o - Mar lastSu 2s 0 S R AV 2008 ma - Ap Su>=1 2s 0 S R AV 2008 ma - O Su>=1 2s 1 D -Z Australia/Melbourne 9:39:52 - LMT 1895 F -10 AU AE%sT 1971 -10 AV AE%sT R AN 1971 1985 - O lastSu 2s 1 D R AN 1972 o - F 27 2s 0 S R AN 1973 1981 - Mar Su>=1 2s 0 S @@ -1329,15 +858,6 @@ R AN 2006 o - Ap Su>=1 2s 0 S R AN 2007 o - Mar lastSu 2s 0 S R AN 2008 ma - Ap Su>=1 2s 0 S R AN 2008 ma - O Su>=1 2s 1 D -Z Australia/Sydney 10:4:52 - LMT 1895 F -10 AU AE%sT 1971 -10 AN AE%sT -Z Australia/Broken_Hill 9:25:48 - LMT 1895 F -10 - AEST 1896 Au 23 -9 - ACST 1899 May -9:30 AU AC%sT 1971 -9:30 AN AC%sT 2000 -9:30 AS AC%sT R LH 1981 1984 - O lastSu 2 1 - R LH 1982 1985 - Mar Su>=1 2 0 - R LH 1985 o - O lastSu 2 0:30 - @@ -1352,19 +872,6 @@ R LH 2006 o - Ap Su>=1 2 0 - R LH 2007 o - Mar lastSu 2 0 - R LH 2008 ma - Ap Su>=1 2 0 - R LH 2008 ma - O Su>=1 2 0:30 - -Z Australia/Lord_Howe 10:36:20 - LMT 1895 F -10 - AEST 1981 Mar -10:30 LH +1030/+1130 1985 Jul -10:30 LH +1030/+11 -Z Antarctica/Macquarie 0 - -00 1899 N -10 - AEST 1916 O 1 2 -10 1 AEDT 1917 F -10 AU AE%sT 1919 Ap 1 0s -0 - -00 1948 Mar 25 -10 AU AE%sT 1967 -10 AT AE%sT 2010 -10 1 AEDT 2011 -10 AT AE%sT R FJ 1998 1999 - N Su>=1 2 1 - R FJ 1999 2000 - F lastSu 3 0 - R FJ 2009 o - N 29 2 1 - @@ -1377,14 +884,6 @@ R FJ 2014 2018 - N Su>=1 2 1 - R FJ 2015 2021 - Ja Su>=12 3 0 - R FJ 2019 o - N Su>=8 2 1 - R FJ 2020 o - D 20 2 1 - -Z Pacific/Fiji 11:55:44 - LMT 1915 O 26 -12 FJ +12/+13 -Z Pacific/Gambier -8:59:48 - LMT 1912 O --9 - -09 -Z Pacific/Marquesas -9:18 - LMT 1912 O --9:30 - -0930 -Z Pacific/Tahiti -9:58:16 - LMT 1912 O --10 - -10 R Gu 1959 o - Jun 27 2 1 D R Gu 1961 o - Ja 29 2 0 S R Gu 1967 o - S 1 2 1 D @@ -1399,50 +898,10 @@ R Gu 1976 o - May 26 2 1 D R Gu 1976 o - Au 22 2:1 0 S R Gu 1977 o - Ap 24 2 1 D R Gu 1977 o - Au 28 2 0 S -Z Pacific/Guam -14:21 - LMT 1844 D 31 -9:39 - LMT 1901 -10 - GST 1941 D 10 -9 - +09 1944 Jul 31 -10 Gu G%sT 2000 D 23 -10 - ChST -Z Pacific/Tarawa 11:32:4 - LMT 1901 -12 - +12 -Z Pacific/Kanton 0 - -00 1937 Au 31 --12 - -12 1979 O --11 - -11 1994 D 31 -13 - +13 -Z Pacific/Kiritimati -10:29:20 - LMT 1901 --10:40 - -1040 1979 O --10 - -10 1994 D 31 -14 - +14 -Z Pacific/Kwajalein 11:9:20 - LMT 1901 -11 - +11 1937 -10 - +10 1941 Ap -9 - +09 1944 F 6 -11 - +11 1969 O --12 - -12 1993 Au 20 24 -12 - +12 -Z Pacific/Kosrae -13:8:4 - LMT 1844 D 31 -10:51:56 - LMT 1901 -11 - +11 1914 O -9 - +09 1919 F -11 - +11 1937 -10 - +10 1941 Ap -9 - +09 1945 Au -11 - +11 1969 O -12 - +12 1999 -11 - +11 -Z Pacific/Nauru 11:7:40 - LMT 1921 Ja 15 -11:30 - +1130 1942 Au 29 -9 - +09 1945 S 8 -11:30 - +1130 1979 F 10 2 -12 - +12 R NC 1977 1978 - D Su>=1 0 1 - R NC 1978 1979 - F 27 0 0 - R NC 1996 o - D 1 2s 1 - R NC 1997 o - Mar 2 2s 0 - -Z Pacific/Noumea 11:5:48 - LMT 1912 Ja 13 -11 NC +11/+12 R NZ 1927 o - N 6 2 1 S R NZ 1928 o - Mar 4 2 0 M R NZ 1928 1933 - O Su>=8 2 0:30 S @@ -1468,80 +927,26 @@ R NZ 2007 ma - S lastSu 2s 1 D R k 2007 ma - S lastSu 2:45s 1 - R NZ 2008 ma - Ap Su>=1 2s 0 S R k 2008 ma - Ap Su>=1 2:45s 0 - -Z Pacific/Auckland 11:39:4 - LMT 1868 N 2 -11:30 NZ NZ%sT 1946 -12 NZ NZ%sT -Z Pacific/Chatham 12:13:48 - LMT 1868 N 2 -12:15 - +1215 1946 -12:45 k +1245/+1345 R CK 1978 o - N 12 0 0:30 - R CK 1979 1991 - Mar Su>=1 0 0 - R CK 1979 1990 - O lastSu 0 0:30 - -Z Pacific/Rarotonga 13:20:56 - LMT 1899 D 26 --10:39:4 - LMT 1952 O 16 --10:30 - -1030 1978 N 12 --10 CK -10/-0930 -Z Pacific/Niue -11:19:40 - LMT 1952 O 16 --11:20 - -1120 1964 Jul --11 - -11 -Z Pacific/Norfolk 11:11:52 - LMT 1901 -11:12 - +1112 1951 -11:30 - +1130 1974 O 27 2s -11:30 1 +1230 1975 Mar 2 2s -11:30 - +1130 2015 O 4 2s -11 - +11 2019 Jul -11 AN +11/+12 -Z Pacific/Palau -15:2:4 - LMT 1844 D 31 -8:57:56 - LMT 1901 -9 - +09 -Z Pacific/Port_Moresby 9:48:40 - LMT 1880 -9:48:32 - PMMT 1895 -10 - +10 -Z Pacific/Bougainville 10:22:16 - LMT 1880 -9:48:32 - PMMT 1895 -10 - +10 1942 Jul -9 - +09 1945 Au 21 -10 - +10 2014 D 28 2 -11 - +11 -Z Pacific/Pitcairn -8:40:20 - LMT 1901 --8:30 - -0830 1998 Ap 27 --8 - -08 -Z Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 --11:22:48 - LMT 1911 --11 - SST R WS 2010 o - S lastSu 0 1 - R WS 2011 o - Ap Sa>=1 4 0 - R WS 2011 o - S lastSa 3 1 - R WS 2012 2021 - Ap Su>=1 4 0 - R WS 2012 2020 - S lastSu 3 1 - -Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5 --11:26:56 - LMT 1911 --11:30 - -1130 1950 --11 WS -11/-10 2011 D 29 24 -13 WS +13/+14 -Z Pacific/Guadalcanal 10:39:48 - LMT 1912 O -11 - +11 -Z Pacific/Fakaofo -11:24:56 - LMT 1901 --11 - -11 2011 D 30 -13 - +13 R TO 1999 o - O 7 2s 1 - R TO 2000 o - Mar 19 2s 0 - R TO 2000 2001 - N Su>=1 2 1 - R TO 2001 2002 - Ja lastSu 2 0 - R TO 2016 o - N Su>=1 2 1 - R TO 2017 o - Ja Su>=15 3 0 - -Z Pacific/Tongatapu 12:19:12 - LMT 1945 S 10 -12:20 - +1220 1961 -13 - +13 1999 -13 TO +13/+14 R VU 1973 o - D 22 12u 1 - R VU 1974 o - Mar 30 12u 0 - R VU 1983 1991 - S Sa>=22 24 1 - R VU 1984 1991 - Mar Sa>=22 24 0 - R VU 1992 1993 - Ja Sa>=22 24 0 - R VU 1992 o - O Sa>=22 24 1 - -Z Pacific/Efate 11:13:16 - LMT 1912 Ja 13 -11 VU +11/+12 R G 1916 o - May 21 2s 1 BST R G 1916 o - O 1 2s 0 GMT R G 1917 o - Ap 8 2s 1 BST @@ -1607,11 +1012,6 @@ R G 1972 1980 - O Su>=23 2s 0 GMT R G 1981 1995 - Mar lastSu 1u 1 BST R G 1981 1989 - O Su>=23 1u 0 GMT R G 1990 1995 - O Su>=22 1u 0 GMT -Z Europe/London -0:1:15 - LMT 1847 D -0 G %s 1968 O 27 -1 - BST 1971 O 31 2u -0 G %s 1996 -0 E GMT/BST R IE 1971 o - O 31 2u -1 - R IE 1972 1980 - Mar Su>=16 2u 0 - R IE 1972 1980 - O Su>=23 2u -1 - @@ -1619,17 +1019,6 @@ R IE 1981 ma - Mar lastSu 1u 0 - R IE 1981 1989 - O Su>=23 1u -1 - R IE 1990 1995 - O Su>=22 1u -1 - R IE 1996 ma - O lastSu 1u -1 - -Z Europe/Dublin -0:25:21 - LMT 1880 Au 2 --0:25:21 - DMT 1916 May 21 2s --0:25:21 1 IST 1916 O 1 2s -0 G %s 1921 D 6 -0 G GMT/IST 1940 F 25 2s -0 1 IST 1946 O 6 2s -0 - GMT 1947 Mar 16 2s -0 1 IST 1947 N 2 2s -0 - GMT 1948 Ap 18 2s -0 G GMT/IST 1968 O 27 -1 IE IST/GMT R E 1977 1980 - Ap Su>=1 1u 1 S R E 1977 o - S lastSu 1u 0 - R E 1978 o - O 1 1u 0 - @@ -1681,10 +1070,6 @@ R R 1981 1983 - O 1 0 0 - R R 1984 1995 - S lastSu 2s 0 - R R 1985 2010 - Mar lastSu 2s 1 S R R 1996 2010 - O lastSu 2s 0 - -Z WET 0 E WE%sT -Z CET 1 c CE%sT -Z MET 1 c ME%sT -Z EET 2 E EE%sT R q 1940 o - Jun 16 0 1 S R q 1942 o - N 2 3 0 - R q 1943 o - Mar 29 2 1 S @@ -1710,14 +1095,6 @@ R q 1982 o - O 3 0 0 - R q 1983 o - Ap 18 0 1 S R q 1983 o - O 1 0 0 - R q 1984 o - Ap 1 0 1 S -Z Europe/Tirane 1:19:20 - LMT 1914 -1 - CET 1940 Jun 16 -1 q CE%sT 1984 Jul -1 E CE%sT -Z Europe/Andorra 0:6:4 - LMT 1901 -0 - WET 1946 S 30 -1 - CET 1985 Mar 31 2 -1 E CE%sT R a 1920 o - Ap 5 2s 1 S R a 1920 o - S 13 2s 0 - R a 1946 o - Ap 14 2s 1 S @@ -1727,23 +1104,6 @@ R a 1947 o - Ap 6 2s 1 S R a 1948 o - Ap 18 2s 1 S R a 1980 o - Ap 6 0 1 S R a 1980 o - S 28 0 0 - -Z Europe/Vienna 1:5:21 - LMT 1893 Ap -1 c CE%sT 1920 -1 a CE%sT 1940 Ap 1 2s -1 c CE%sT 1945 Ap 2 2s -1 1 CEST 1945 Ap 12 2s -1 - CET 1946 -1 a CE%sT 1981 -1 E CE%sT -Z Europe/Minsk 1:50:16 - LMT 1880 -1:50 - MMT 1924 May 2 -2 - EET 1930 Jun 21 -3 - MSK 1941 Jun 28 -1 c CE%sT 1944 Jul 3 -3 R MSK/MSD 1990 -3 - MSK 1991 Mar 31 2s -2 R EE%sT 2011 Mar 27 2s -3 - +03 R b 1918 o - Mar 9 0s 1 S R b 1918 1919 - O Sa>=1 23s 0 - R b 1919 o - Mar 1 23s 1 S @@ -1778,87 +1138,27 @@ R b 1945 o - Ap 2 2s 1 S R b 1945 o - S 16 2s 0 - R b 1946 o - May 19 2s 1 S R b 1946 o - O 7 2s 0 - -Z Europe/Brussels 0:17:30 - LMT 1880 -0:17:30 - BMT 1892 May 1 0:17:30 -0 - WET 1914 N 8 -1 - CET 1916 May -1 c CE%sT 1918 N 11 11u -0 b WE%sT 1940 May 20 2s -1 c CE%sT 1944 S 3 -1 b CE%sT 1977 -1 E CE%sT R BG 1979 o - Mar 31 23 1 S R BG 1979 o - O 1 1 0 - R BG 1980 1982 - Ap Sa>=1 23 1 S R BG 1980 o - S 29 1 0 - R BG 1981 o - S 27 2 0 - -Z Europe/Sofia 1:33:16 - LMT 1880 -1:56:56 - IMT 1894 N 30 -2 - EET 1942 N 2 3 -1 c CE%sT 1945 -1 - CET 1945 Ap 2 3 -2 - EET 1979 Mar 31 23 -2 BG EE%sT 1982 S 26 3 -2 c EE%sT 1991 -2 e EE%sT 1997 -2 E EE%sT R CZ 1945 o - Ap M>=1 2s 1 S R CZ 1945 o - O 1 2s 0 - R CZ 1946 o - May 6 2s 1 S R CZ 1946 1949 - O Su>=1 2s 0 - R CZ 1947 1948 - Ap Su>=15 2s 1 S R CZ 1949 o - Ap 9 2s 1 S -Z Europe/Prague 0:57:44 - LMT 1850 -0:57:44 - PMT 1891 O -1 c CE%sT 1945 May 9 -1 CZ CE%sT 1946 D 1 3 -1 -1 GMT 1947 F 23 2 -1 CZ CE%sT 1979 -1 E CE%sT -Z Atlantic/Faroe -0:27:4 - LMT 1908 Ja 11 -0 - WET 1981 -0 E WE%sT R Th 1991 1992 - Mar lastSu 2 1 D R Th 1991 1992 - S lastSu 2 0 S R Th 1993 2006 - Ap Su>=1 2 1 D R Th 1993 2006 - O lastSu 2 0 S R Th 2007 ma - Mar Su>=8 2 1 D R Th 2007 ma - N Su>=1 2 0 S -Z America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 --3 - -03 1980 Ap 6 2 --3 E -03/-02 1996 -0 - GMT -Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 --2 - -02 1980 Ap 6 2 --2 c -02/-01 1981 Mar 29 --1 E -01/+00 -Z America/Nuuk -3:26:56 - LMT 1916 Jul 28 --3 - -03 1980 Ap 6 2 --3 E -03/-02 2023 O 29 1u --2 E -02/-01 -Z America/Thule -4:35:8 - LMT 1916 Jul 28 --4 Th A%sT -Z Europe/Tallinn 1:39 - LMT 1880 -1:39 - TMT 1918 F -1 c CE%sT 1919 Jul -1:39 - TMT 1921 May -2 - EET 1940 Au 6 -3 - MSK 1941 S 15 -1 c CE%sT 1944 S 22 -3 R MSK/MSD 1989 Mar 26 2s -2 1 EEST 1989 S 24 2s -2 c EE%sT 1998 S 22 -2 E EE%sT 1999 O 31 4 -2 - EET 2002 F 21 -2 E EE%sT R FI 1942 o - Ap 2 24 1 S R FI 1942 o - O 4 1 0 - R FI 1981 1982 - Mar lastSu 2 1 S R FI 1981 1982 - S lastSu 3 0 - -Z Europe/Helsinki 1:39:49 - LMT 1878 May 31 -1:39:49 - HMT 1921 May -2 FI EE%sT 1983 -2 E EE%sT R F 1916 o - Jun 14 23s 1 S R F 1916 1919 - O Su>=1 23s 0 - R F 1917 o - Mar 24 23s 1 S @@ -1901,13 +1201,6 @@ R F 1945 o - Ap 2 2 2 M R F 1945 o - S 16 3 0 - R F 1976 o - Mar 28 1 1 S R F 1976 o - S 26 1 0 - -Z Europe/Paris 0:9:21 - LMT 1891 Mar 16 -0:9:21 - PMT 1911 Mar 11 -0 F WE%sT 1940 Jun 14 23 -1 c CE%sT 1944 Au 25 -0 F WE%sT 1945 S 16 3 -1 F CE%sT 1977 -1 E CE%sT R DE 1946 o - Ap 14 2s 1 S R DE 1946 o - O 7 2s 0 - R DE 1947 1949 - O Su>=1 2s 0 - @@ -1919,15 +1212,6 @@ R DE 1949 o - Ap 10 2s 1 S R So 1945 o - May 24 2 2 M R So 1945 o - S 24 3 1 S R So 1945 o - N 18 2s 0 - -Z Europe/Berlin 0:53:28 - LMT 1893 Ap -1 c CE%sT 1945 May 24 2 -1 So CE%sT 1946 -1 DE CE%sT 1980 -1 E CE%sT -Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 -0 G %s 1957 Ap 14 2 -1 - CET 1982 -1 E CE%sT R g 1932 o - Jul 7 0 1 S R g 1932 o - S 1 0 0 - R g 1941 o - Ap 7 0 1 S @@ -1947,12 +1231,6 @@ R g 1979 o - Ap 1 9 1 S R g 1979 o - S 29 2 0 - R g 1980 o - Ap 1 0 1 S R g 1980 o - S 28 0 0 - -Z Europe/Athens 1:34:52 - LMT 1895 S 14 -1:34:52 - AMT 1916 Jul 28 0:1 -2 g EE%sT 1941 Ap 30 -1 g CE%sT 1944 Ap 4 -2 g EE%sT 1981 -2 E EE%sT R h 1918 1919 - Ap 15 2 1 S R h 1918 1920 - S M>=15 3 0 - R h 1920 o - Ap 5 2 1 S @@ -1972,12 +1250,6 @@ R h 1980 o - Ap 6 0 1 S R h 1980 o - S 28 1 0 - R h 1981 1983 - Mar lastSu 0 1 S R h 1981 1983 - S lastSu 1 0 - -Z Europe/Budapest 1:16:20 - LMT 1890 N -1 c CE%sT 1918 -1 h CE%sT 1941 Ap 7 23 -1 c CE%sT 1945 -1 h CE%sT 1984 -1 E CE%sT R I 1916 o - Jun 3 24 1 S R I 1916 1917 - S 30 24 0 - R I 1917 o - Mar 31 24 1 S @@ -2019,44 +1291,8 @@ R I 1976 o - May 30 0s 1 S R I 1977 1979 - May Su>=22 0s 1 S R I 1978 o - O 1 0s 0 - R I 1979 o - S 30 0s 0 - -Z Europe/Rome 0:49:56 - LMT 1866 D 12 -0:49:56 - RMT 1893 O 31 23u -1 I CE%sT 1943 S 10 -1 c CE%sT 1944 Jun 4 -1 I CE%sT 1980 -1 E CE%sT R LV 1989 1996 - Mar lastSu 2s 1 S R LV 1989 1996 - S lastSu 2s 0 - -Z Europe/Riga 1:36:34 - LMT 1880 -1:36:34 - RMT 1918 Ap 15 2 -1:36:34 1 LST 1918 S 16 3 -1:36:34 - RMT 1919 Ap 1 2 -1:36:34 1 LST 1919 May 22 3 -1:36:34 - RMT 1926 May 11 -2 - EET 1940 Au 5 -3 - MSK 1941 Jul -1 c CE%sT 1944 O 13 -3 R MSK/MSD 1989 Mar lastSu 2s -2 1 EEST 1989 S lastSu 2s -2 LV EE%sT 1997 Ja 21 -2 E EE%sT 2000 F 29 -2 - EET 2001 Ja 2 -2 E EE%sT -Z Europe/Vilnius 1:41:16 - LMT 1880 -1:24 - WMT 1917 -1:35:36 - KMT 1919 O 10 -1 - CET 1920 Jul 12 -2 - EET 1920 O 9 -1 - CET 1940 Au 3 -3 - MSK 1941 Jun 24 -1 c CE%sT 1944 Au -3 R MSK/MSD 1989 Mar 26 2s -2 R EE%sT 1991 S 29 2s -2 c EE%sT 1998 -2 - EET 1998 Mar 29 1u -1 E CE%sT 1999 O 31 1u -2 - EET 2003 -2 E EE%sT R MT 1973 o - Mar 31 0s 1 S R MT 1973 o - S 29 0s 0 - R MT 1974 o - Ap 21 0s 1 S @@ -2064,22 +1300,8 @@ R MT 1974 o - S 16 0s 0 - R MT 1975 1979 - Ap Su>=15 2 1 S R MT 1975 1980 - S Su>=15 2 0 - R MT 1980 o - Mar 31 2 1 S -Z Europe/Malta 0:58:4 - LMT 1893 N 2 -1 I CE%sT 1973 Mar 31 -1 MT CE%sT 1981 -1 E CE%sT R MD 1997 ma - Mar lastSu 2 1 S R MD 1997 ma - O lastSu 3 0 - -Z Europe/Chisinau 1:55:20 - LMT 1880 -1:55 - CMT 1918 F 15 -1:44:24 - BMT 1931 Jul 24 -2 z EE%sT 1940 Au 15 -2 1 EEST 1941 Jul 17 -1 c CE%sT 1944 Au 24 -3 R MSK/MSD 1990 May 6 2 -2 R EE%sT 1992 -2 e EE%sT 1997 -2 MD EE%sT R O 1918 1919 - S 16 2s 0 - R O 1919 o - Ap 15 2s 1 S R O 1944 o - Ap 3 2s 1 S @@ -2100,15 +1322,6 @@ R O 1959 1961 - O Su>=1 1s 0 - R O 1960 o - Ap 3 1s 1 S R O 1961 1964 - May lastSu 1s 1 S R O 1962 1964 - S lastSu 1s 0 - -Z Europe/Warsaw 1:24 - LMT 1880 -1:24 - WMT 1915 Au 5 -1 c CE%sT 1918 S 16 3 -2 O EE%sT 1922 Jun -1 O CE%sT 1940 Jun 23 2 -1 c CE%sT 1944 O -1 O CE%sT 1977 -1 W- CE%sT 1988 -1 E CE%sT R p 1916 o - Jun 17 23 1 S R p 1916 o - N 1 1 0 - R p 1917 o - F 28 23s 1 S @@ -2157,42 +1370,6 @@ R p 1979 1982 - S lastSu 1s 0 - R p 1980 o - Mar lastSu 0s 1 S R p 1981 1982 - Mar lastSu 1s 1 S R p 1983 o - Mar lastSu 2s 1 S -Z Europe/Lisbon -0:36:45 - LMT 1884 --0:36:45 - LMT 1912 Ja 1 0u -0 p WE%sT 1966 Ap 3 2 -1 - CET 1976 S 26 1 -0 p WE%sT 1983 S 25 1s -0 W- WE%sT 1992 S 27 1s -1 E CE%sT 1996 Mar 31 1u -0 E WE%sT -Z Atlantic/Azores -1:42:40 - LMT 1884 --1:54:32 - HMT 1912 Ja 1 2u --2 p -02/-01 1942 Ap 25 22s --2 p +00 1942 Au 15 22s --2 p -02/-01 1943 Ap 17 22s --2 p +00 1943 Au 28 22s --2 p -02/-01 1944 Ap 22 22s --2 p +00 1944 Au 26 22s --2 p -02/-01 1945 Ap 21 22s --2 p +00 1945 Au 25 22s --2 p -02/-01 1966 Ap 3 2 --1 p -01/+00 1983 S 25 1s --1 W- -01/+00 1992 S 27 1s -0 E WE%sT 1993 Mar 28 1u --1 E -01/+00 -Z Atlantic/Madeira -1:7:36 - LMT 1884 --1:7:36 - FMT 1912 Ja 1 1u --1 p -01/+00 1942 Ap 25 22s --1 p +01 1942 Au 15 22s --1 p -01/+00 1943 Ap 17 22s --1 p +01 1943 Au 28 22s --1 p -01/+00 1944 Ap 22 22s --1 p +01 1944 Au 26 22s --1 p -01/+00 1945 Ap 21 22s --1 p +01 1945 Au 25 22s --1 p -01/+00 1966 Ap 3 2 -0 p WE%sT 1983 S 25 1s -0 E WE%sT R z 1932 o - May 21 0s 1 S R z 1932 1939 - O Su>=1 0s 0 - R z 1933 1939 - Ap Su>=2 0s 1 S @@ -2202,252 +1379,6 @@ R z 1980 o - Ap 5 23 1 S R z 1980 o - S lastSu 1 0 - R z 1991 1993 - Mar lastSu 0s 1 S R z 1991 1993 - S lastSu 0s 0 - -Z Europe/Bucharest 1:44:24 - LMT 1891 O -1:44:24 - BMT 1931 Jul 24 -2 z EE%sT 1981 Mar 29 2s -2 c EE%sT 1991 -2 z EE%sT 1994 -2 e EE%sT 1997 -2 E EE%sT -Z Europe/Kaliningrad 1:22 - LMT 1893 Ap -1 c CE%sT 1945 Ap 10 -2 O EE%sT 1946 Ap 7 -3 R MSK/MSD 1989 Mar 26 2s -2 R EE%sT 2011 Mar 27 2s -3 - +03 2014 O 26 2s -2 - EET -Z Europe/Moscow 2:30:17 - LMT 1880 -2:30:17 - MMT 1916 Jul 3 -2:31:19 R %s 1919 Jul 1 0u -3 R %s 1921 O -3 R MSK/MSD 1922 O -2 - EET 1930 Jun 21 -3 R MSK/MSD 1991 Mar 31 2s -2 R EE%sT 1992 Ja 19 2s -3 R MSK/MSD 2011 Mar 27 2s -4 - MSK 2014 O 26 2s -3 - MSK -Z Europe/Simferopol 2:16:24 - LMT 1880 -2:16 - SMT 1924 May 2 -2 - EET 1930 Jun 21 -3 - MSK 1941 N -1 c CE%sT 1944 Ap 13 -3 R MSK/MSD 1990 -3 - MSK 1990 Jul 1 2 -2 - EET 1992 Mar 20 -2 c EE%sT 1994 May -3 c MSK/MSD 1996 Mar 31 0s -3 1 MSD 1996 O 27 3s -3 - MSK 1997 Mar lastSu 1u -2 E EE%sT 2014 Mar 30 2 -4 - MSK 2014 O 26 2s -3 - MSK -Z Europe/Astrakhan 3:12:12 - LMT 1924 May -3 - +03 1930 Jun 21 -4 R +04/+05 1989 Mar 26 2s -3 R +03/+04 1991 Mar 31 2s -4 - +04 1992 Mar 29 2s -3 R +03/+04 2011 Mar 27 2s -4 - +04 2014 O 26 2s -3 - +03 2016 Mar 27 2s -4 - +04 -Z Europe/Volgograd 2:57:40 - LMT 1920 Ja 3 -3 - +03 1930 Jun 21 -4 - +04 1961 N 11 -4 R +04/+05 1988 Mar 27 2s -3 R MSK/MSD 1991 Mar 31 2s -4 - +04 1992 Mar 29 2s -3 R MSK/MSD 2011 Mar 27 2s -4 - MSK 2014 O 26 2s -3 - MSK 2018 O 28 2s -4 - +04 2020 D 27 2s -3 - MSK -Z Europe/Saratov 3:4:18 - LMT 1919 Jul 1 0u -3 - +03 1930 Jun 21 -4 R +04/+05 1988 Mar 27 2s -3 R +03/+04 1991 Mar 31 2s -4 - +04 1992 Mar 29 2s -3 R +03/+04 2011 Mar 27 2s -4 - +04 2014 O 26 2s -3 - +03 2016 D 4 2s -4 - +04 -Z Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0u -3 - +03 1930 Jun 21 -4 R +04/+05 1989 Mar 26 2s -3 R MSK/MSD 1991 Mar 31 2s -4 - +04 1992 Mar 29 2s -3 R MSK/MSD 2011 Mar 27 2s -4 - MSK 2014 O 26 2s -3 - MSK -Z Europe/Samara 3:20:20 - LMT 1919 Jul 1 0u -3 - +03 1930 Jun 21 -4 - +04 1935 Ja 27 -4 R +04/+05 1989 Mar 26 2s -3 R +03/+04 1991 Mar 31 2s -2 R +02/+03 1991 S 29 2s -3 - +03 1991 O 20 3 -4 R +04/+05 2010 Mar 28 2s -3 R +03/+04 2011 Mar 27 2s -4 - +04 -Z Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0u -3 - +03 1930 Jun 21 -4 R +04/+05 1989 Mar 26 2s -3 R +03/+04 1991 Mar 31 2s -2 R +02/+03 1992 Ja 19 2s -3 R +03/+04 2011 Mar 27 2s -4 - +04 2014 O 26 2s -3 - +03 2016 Mar 27 2s -4 - +04 -Z Asia/Yekaterinburg 4:2:33 - LMT 1916 Jul 3 -3:45:5 - PMT 1919 Jul 15 4 -4 - +04 1930 Jun 21 -5 R +05/+06 1991 Mar 31 2s -4 R +04/+05 1992 Ja 19 2s -5 R +05/+06 2011 Mar 27 2s -6 - +06 2014 O 26 2s -5 - +05 -Z Asia/Omsk 4:53:30 - LMT 1919 N 14 -5 - +05 1930 Jun 21 -6 R +06/+07 1991 Mar 31 2s -5 R +05/+06 1992 Ja 19 2s -6 R +06/+07 2011 Mar 27 2s -7 - +07 2014 O 26 2s -6 - +06 -Z Asia/Barnaul 5:35 - LMT 1919 D 10 -6 - +06 1930 Jun 21 -7 R +07/+08 1991 Mar 31 2s -6 R +06/+07 1992 Ja 19 2s -7 R +07/+08 1995 May 28 -6 R +06/+07 2011 Mar 27 2s -7 - +07 2014 O 26 2s -6 - +06 2016 Mar 27 2s -7 - +07 -Z Asia/Novosibirsk 5:31:40 - LMT 1919 D 14 6 -6 - +06 1930 Jun 21 -7 R +07/+08 1991 Mar 31 2s -6 R +06/+07 1992 Ja 19 2s -7 R +07/+08 1993 May 23 -6 R +06/+07 2011 Mar 27 2s -7 - +07 2014 O 26 2s -6 - +06 2016 Jul 24 2s -7 - +07 -Z Asia/Tomsk 5:39:51 - LMT 1919 D 22 -6 - +06 1930 Jun 21 -7 R +07/+08 1991 Mar 31 2s -6 R +06/+07 1992 Ja 19 2s -7 R +07/+08 2002 May 1 3 -6 R +06/+07 2011 Mar 27 2s -7 - +07 2014 O 26 2s -6 - +06 2016 May 29 2s -7 - +07 -Z Asia/Novokuznetsk 5:48:48 - LMT 1924 May -6 - +06 1930 Jun 21 -7 R +07/+08 1991 Mar 31 2s -6 R +06/+07 1992 Ja 19 2s -7 R +07/+08 2010 Mar 28 2s -6 R +06/+07 2011 Mar 27 2s -7 - +07 -Z Asia/Krasnoyarsk 6:11:26 - LMT 1920 Ja 6 -6 - +06 1930 Jun 21 -7 R +07/+08 1991 Mar 31 2s -6 R +06/+07 1992 Ja 19 2s -7 R +07/+08 2011 Mar 27 2s -8 - +08 2014 O 26 2s -7 - +07 -Z Asia/Irkutsk 6:57:5 - LMT 1880 -6:57:5 - IMT 1920 Ja 25 -7 - +07 1930 Jun 21 -8 R +08/+09 1991 Mar 31 2s -7 R +07/+08 1992 Ja 19 2s -8 R +08/+09 2011 Mar 27 2s -9 - +09 2014 O 26 2s -8 - +08 -Z Asia/Chita 7:33:52 - LMT 1919 D 15 -8 - +08 1930 Jun 21 -9 R +09/+10 1991 Mar 31 2s -8 R +08/+09 1992 Ja 19 2s -9 R +09/+10 2011 Mar 27 2s -10 - +10 2014 O 26 2s -8 - +08 2016 Mar 27 2 -9 - +09 -Z Asia/Yakutsk 8:38:58 - LMT 1919 D 15 -8 - +08 1930 Jun 21 -9 R +09/+10 1991 Mar 31 2s -8 R +08/+09 1992 Ja 19 2s -9 R +09/+10 2011 Mar 27 2s -10 - +10 2014 O 26 2s -9 - +09 -Z Asia/Vladivostok 8:47:31 - LMT 1922 N 15 -9 - +09 1930 Jun 21 -10 R +10/+11 1991 Mar 31 2s -9 R +09/+10 1992 Ja 19 2s -10 R +10/+11 2011 Mar 27 2s -11 - +11 2014 O 26 2s -10 - +10 -Z Asia/Khandyga 9:2:13 - LMT 1919 D 15 -8 - +08 1930 Jun 21 -9 R +09/+10 1991 Mar 31 2s -8 R +08/+09 1992 Ja 19 2s -9 R +09/+10 2004 -10 R +10/+11 2011 Mar 27 2s -11 - +11 2011 S 13 0s -10 - +10 2014 O 26 2s -9 - +09 -Z Asia/Sakhalin 9:30:48 - LMT 1905 Au 23 -9 - +09 1945 Au 25 -11 R +11/+12 1991 Mar 31 2s -10 R +10/+11 1992 Ja 19 2s -11 R +11/+12 1997 Mar lastSu 2s -10 R +10/+11 2011 Mar 27 2s -11 - +11 2014 O 26 2s -10 - +10 2016 Mar 27 2s -11 - +11 -Z Asia/Magadan 10:3:12 - LMT 1924 May 2 -10 - +10 1930 Jun 21 -11 R +11/+12 1991 Mar 31 2s -10 R +10/+11 1992 Ja 19 2s -11 R +11/+12 2011 Mar 27 2s -12 - +12 2014 O 26 2s -10 - +10 2016 Ap 24 2s -11 - +11 -Z Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 -10 - +10 1930 Jun 21 -11 R +11/+12 1991 Mar 31 2s -10 R +10/+11 1992 Ja 19 2s -11 R +11/+12 2011 Mar 27 2s -12 - +12 2014 O 26 2s -11 - +11 -Z Asia/Ust-Nera 9:32:54 - LMT 1919 D 15 -8 - +08 1930 Jun 21 -9 R +09/+10 1981 Ap -11 R +11/+12 1991 Mar 31 2s -10 R +10/+11 1992 Ja 19 2s -11 R +11/+12 2011 Mar 27 2s -12 - +12 2011 S 13 0s -11 - +11 2014 O 26 2s -10 - +10 -Z Asia/Kamchatka 10:34:36 - LMT 1922 N 10 -11 - +11 1930 Jun 21 -12 R +12/+13 1991 Mar 31 2s -11 R +11/+12 1992 Ja 19 2s -12 R +12/+13 2010 Mar 28 2s -11 R +11/+12 2011 Mar 27 2s -12 - +12 -Z Asia/Anadyr 11:49:56 - LMT 1924 May 2 -12 - +12 1930 Jun 21 -13 R +13/+14 1982 Ap 1 0s -12 R +12/+13 1991 Mar 31 2s -11 R +11/+12 1992 Ja 19 2s -12 R +12/+13 2010 Mar 28 2s -11 R +11/+12 2011 Mar 27 2s -12 - +12 -Z Europe/Belgrade 1:22 - LMT 1884 -1 - CET 1941 Ap 18 23 -1 c CE%sT 1945 -1 - CET 1945 May 8 2s -1 1 CEST 1945 S 16 2s -1 - CET 1982 N 27 -1 E CE%sT R s 1918 o - Ap 15 23 1 S R s 1918 1919 - O 6 24s 0 - R s 1919 o - Ap 6 23 1 S @@ -2487,30 +1418,8 @@ R Sp 1976 o - Au 1 0 0 - R Sp 1977 o - S 28 0 0 - R Sp 1978 o - Jun 1 0 1 S R Sp 1978 o - Au 4 0 0 - -Z Europe/Madrid -0:14:44 - LMT 1901 Ja 1 0u -0 s WE%sT 1940 Mar 16 23 -1 s CE%sT 1979 -1 E CE%sT -Z Africa/Ceuta -0:21:16 - LMT 1901 Ja 1 0u -0 - WET 1918 May 6 23 -0 1 WEST 1918 O 7 23 -0 - WET 1924 -0 s WE%sT 1929 -0 - WET 1967 -0 Sp WE%sT 1984 Mar 16 -1 - CET 1986 -1 E CE%sT -Z Atlantic/Canary -1:1:36 - LMT 1922 Mar --1 - -01 1946 S 30 1 -0 - WET 1980 Ap 6 0s -0 1 WEST 1980 S 28 1u -0 E WE%sT R CH 1941 1942 - May M>=1 1 1 S R CH 1941 1942 - O M>=1 2 0 - -Z Europe/Zurich 0:34:8 - LMT 1853 Jul 16 -0:29:46 - BMT 1894 Jun -1 CH CE%sT 1981 -1 E CE%sT R T 1916 o - May 1 0 1 S R T 1916 o - O 1 0 0 - R T 1920 o - Mar 28 0 1 S @@ -2556,28 +1465,6 @@ R T 1986 1995 - S lastSu 1s 0 - R T 1994 o - Mar 20 1s 1 S R T 1995 2006 - Mar lastSu 1s 1 S R T 1996 2006 - O lastSu 1s 0 - -Z Europe/Istanbul 1:55:52 - LMT 1880 -1:56:56 - IMT 1910 O -2 T EE%sT 1978 Jun 29 -3 T +03/+04 1984 N 1 2 -2 T EE%sT 2007 -2 E EE%sT 2011 Mar 27 1u -2 - EET 2011 Mar 28 1u -2 E EE%sT 2014 Mar 30 1u -2 - EET 2014 Mar 31 1u -2 E EE%sT 2015 O 25 1u -2 1 EEST 2015 N 8 1u -2 E EE%sT 2016 S 7 -3 - +03 -Z Europe/Kyiv 2:2:4 - LMT 1880 -2:2:4 - KMT 1924 May 2 -2 - EET 1930 Jun 21 -3 - MSK 1941 S 20 -1 c CE%sT 1943 N 6 -3 R MSK/MSD 1990 Jul 1 2 -2 1 EEST 1991 S 29 3 -2 c EE%sT 1996 May 13 -2 E EE%sT R u 1918 1919 - Mar lastSu 2 1 D R u 1918 1919 - O lastSu 2 0 S R u 1942 o - F 9 2 1 W @@ -2591,172 +1478,34 @@ R u 1976 1986 - Ap lastSu 2 1 D R u 1987 2006 - Ap Su>=1 2 1 D R u 2007 ma - Mar Su>=8 2 1 D R u 2007 ma - N Su>=1 2 0 S -Z EST -5 - EST -Z MST -7 - MST -Z HST -10 - HST -Z EST5EDT -5 u E%sT -Z CST6CDT -6 u C%sT -Z MST7MDT -7 u M%sT -Z PST8PDT -8 u P%sT R NY 1920 o - Mar lastSu 2 1 D R NY 1920 o - O lastSu 2 0 S R NY 1921 1966 - Ap lastSu 2 1 D R NY 1921 1954 - S lastSu 2 0 S R NY 1955 1966 - O lastSu 2 0 S -Z America/New_York -4:56:2 - LMT 1883 N 18 17u --5 u E%sT 1920 --5 NY E%sT 1942 --5 u E%sT 1946 --5 NY E%sT 1967 --5 u E%sT R Ch 1920 o - Jun 13 2 1 D R Ch 1920 1921 - O lastSu 2 0 S R Ch 1921 o - Mar lastSu 2 1 D R Ch 1922 1966 - Ap lastSu 2 1 D R Ch 1922 1954 - S lastSu 2 0 S R Ch 1955 1966 - O lastSu 2 0 S -Z America/Chicago -5:50:36 - LMT 1883 N 18 18u --6 u C%sT 1920 --6 Ch C%sT 1936 Mar 1 2 --5 - EST 1936 N 15 2 --6 Ch C%sT 1942 --6 u C%sT 1946 --6 Ch C%sT 1967 --6 u C%sT -Z America/North_Dakota/Center -6:45:12 - LMT 1883 N 18 19u --7 u M%sT 1992 O 25 2 --6 u C%sT -Z America/North_Dakota/New_Salem -6:45:39 - LMT 1883 N 18 19u --7 u M%sT 2003 O 26 2 --6 u C%sT -Z America/North_Dakota/Beulah -6:47:7 - LMT 1883 N 18 19u --7 u M%sT 2010 N 7 2 --6 u C%sT R De 1920 1921 - Mar lastSu 2 1 D R De 1920 o - O lastSu 2 0 S R De 1921 o - May 22 2 0 S R De 1965 1966 - Ap lastSu 2 1 D R De 1965 1966 - O lastSu 2 0 S -Z America/Denver -6:59:56 - LMT 1883 N 18 19u --7 u M%sT 1920 --7 De M%sT 1942 --7 u M%sT 1946 --7 De M%sT 1967 --7 u M%sT R CA 1948 o - Mar 14 2:1 1 D R CA 1949 o - Ja 1 2 0 S R CA 1950 1966 - Ap lastSu 1 1 D R CA 1950 1961 - S lastSu 2 0 S R CA 1962 1966 - O lastSu 2 0 S -Z America/Los_Angeles -7:52:58 - LMT 1883 N 18 20u --8 u P%sT 1946 --8 CA P%sT 1967 --8 u P%sT -Z America/Juneau 15:2:19 - LMT 1867 O 19 15:33:32 --8:57:41 - LMT 1900 Au 20 12 --8 - PST 1942 --8 u P%sT 1946 --8 - PST 1969 --8 u P%sT 1980 Ap 27 2 --9 u Y%sT 1980 O 26 2 --8 u P%sT 1983 O 30 2 --9 u Y%sT 1983 N 30 --9 u AK%sT -Z America/Sitka 14:58:47 - LMT 1867 O 19 15:30 --9:1:13 - LMT 1900 Au 20 12 --8 - PST 1942 --8 u P%sT 1946 --8 - PST 1969 --8 u P%sT 1983 O 30 2 --9 u Y%sT 1983 N 30 --9 u AK%sT -Z America/Metlakatla 15:13:42 - LMT 1867 O 19 15:44:55 --8:46:18 - LMT 1900 Au 20 12 --8 - PST 1942 --8 u P%sT 1946 --8 - PST 1969 --8 u P%sT 1983 O 30 2 --8 - PST 2015 N 1 2 --9 u AK%sT 2018 N 4 2 --8 - PST 2019 Ja 20 2 --9 u AK%sT -Z America/Yakutat 14:41:5 - LMT 1867 O 19 15:12:18 --9:18:55 - LMT 1900 Au 20 12 --9 - YST 1942 --9 u Y%sT 1946 --9 - YST 1969 --9 u Y%sT 1983 N 30 --9 u AK%sT -Z America/Anchorage 14:0:24 - LMT 1867 O 19 14:31:37 --9:59:36 - LMT 1900 Au 20 12 --10 - AST 1942 --10 u A%sT 1967 Ap --10 - AHST 1969 --10 u AH%sT 1983 O 30 2 --9 u Y%sT 1983 N 30 --9 u AK%sT -Z America/Nome 12:58:22 - LMT 1867 O 19 13:29:35 --11:1:38 - LMT 1900 Au 20 12 --11 - NST 1942 --11 u N%sT 1946 --11 - NST 1967 Ap --11 - BST 1969 --11 u B%sT 1983 O 30 2 --9 u Y%sT 1983 N 30 --9 u AK%sT -Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35 --11:46:38 - LMT 1900 Au 20 12 --11 - NST 1942 --11 u N%sT 1946 --11 - NST 1967 Ap --11 - BST 1969 --11 u B%sT 1983 O 30 2 --10 u AH%sT 1983 N 30 --10 u H%sT -Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12 --10:30 - HST 1933 Ap 30 2 --10:30 1 HDT 1933 May 21 12 --10:30 u H%sT 1947 Jun 8 2 --10 - HST -Z America/Phoenix -7:28:18 - LMT 1883 N 18 19u --7 u M%sT 1944 Ja 1 0:1 --7 - MST 1944 Ap 1 0:1 --7 u M%sT 1944 O 1 0:1 --7 - MST 1967 --7 u M%sT 1968 Mar 21 --7 - MST -Z America/Boise -7:44:49 - LMT 1883 N 18 20u --8 u P%sT 1923 May 13 2 --7 u M%sT 1974 --7 - MST 1974 F 3 2 --7 u M%sT R In 1941 o - Jun 22 2 1 D R In 1941 1954 - S lastSu 2 0 S R In 1946 1954 - Ap lastSu 2 1 D -Z America/Indiana/Indianapolis -5:44:38 - LMT 1883 N 18 18u --6 u C%sT 1920 --6 In C%sT 1942 --6 u C%sT 1946 --6 In C%sT 1955 Ap 24 2 --5 - EST 1957 S 29 2 --6 - CST 1958 Ap 27 2 --5 - EST 1969 --5 u E%sT 1971 --5 - EST 2006 --5 u E%sT R Ma 1951 o - Ap lastSu 2 1 D R Ma 1951 o - S lastSu 2 0 S R Ma 1954 1960 - Ap lastSu 2 1 D R Ma 1954 1960 - S lastSu 2 0 S -Z America/Indiana/Marengo -5:45:23 - LMT 1883 N 18 18u --6 u C%sT 1951 --6 Ma C%sT 1961 Ap 30 2 --5 - EST 1969 --5 u E%sT 1974 Ja 6 2 --6 1 CDT 1974 O 27 2 --5 u E%sT 1976 --5 - EST 2006 --5 u E%sT R V 1946 o - Ap lastSu 2 1 D R V 1946 o - S lastSu 2 0 S R V 1953 1954 - Ap lastSu 2 1 D @@ -2766,68 +1515,23 @@ R V 1956 1963 - Ap lastSu 2 1 D R V 1960 o - O lastSu 2 0 S R V 1961 o - S lastSu 2 0 S R V 1962 1963 - O lastSu 2 0 S -Z America/Indiana/Vincennes -5:50:7 - LMT 1883 N 18 18u --6 u C%sT 1946 --6 V C%sT 1964 Ap 26 2 --5 - EST 1969 --5 u E%sT 1971 --5 - EST 2006 Ap 2 2 --6 u C%sT 2007 N 4 2 --5 u E%sT R Pe 1955 o - May 1 0 1 D R Pe 1955 1960 - S lastSu 2 0 S R Pe 1956 1963 - Ap lastSu 2 1 D R Pe 1961 1963 - O lastSu 2 0 S -Z America/Indiana/Tell_City -5:47:3 - LMT 1883 N 18 18u --6 u C%sT 1946 --6 Pe C%sT 1964 Ap 26 2 --5 - EST 1967 O 29 2 --6 u C%sT 1969 Ap 27 2 --5 u E%sT 1971 --5 - EST 2006 Ap 2 2 --6 u C%sT R Pi 1955 o - May 1 0 1 D R Pi 1955 1960 - S lastSu 2 0 S R Pi 1956 1964 - Ap lastSu 2 1 D R Pi 1961 1964 - O lastSu 2 0 S -Z America/Indiana/Petersburg -5:49:7 - LMT 1883 N 18 18u --6 u C%sT 1955 --6 Pi C%sT 1965 Ap 25 2 --5 - EST 1966 O 30 2 --6 u C%sT 1977 O 30 2 --5 - EST 2006 Ap 2 2 --6 u C%sT 2007 N 4 2 --5 u E%sT R St 1947 1961 - Ap lastSu 2 1 D R St 1947 1954 - S lastSu 2 0 S R St 1955 1956 - O lastSu 2 0 S R St 1957 1958 - S lastSu 2 0 S R St 1959 1961 - O lastSu 2 0 S -Z America/Indiana/Knox -5:46:30 - LMT 1883 N 18 18u --6 u C%sT 1947 --6 St C%sT 1962 Ap 29 2 --5 - EST 1963 O 27 2 --6 u C%sT 1991 O 27 2 --5 - EST 2006 Ap 2 2 --6 u C%sT R Pu 1946 1960 - Ap lastSu 2 1 D R Pu 1946 1954 - S lastSu 2 0 S R Pu 1955 1956 - O lastSu 2 0 S R Pu 1957 1960 - S lastSu 2 0 S -Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 18u --6 u C%sT 1946 --6 Pu C%sT 1961 Ap 30 2 --5 - EST 1969 --5 u E%sT 1971 --5 - EST 2006 Ap 2 2 --6 u C%sT 2007 Mar 11 2 --5 u E%sT -Z America/Indiana/Vevay -5:40:16 - LMT 1883 N 18 18u --6 u C%sT 1954 Ap 25 2 --5 - EST 1969 --5 u E%sT 1973 --5 - EST 2006 --5 u E%sT R v 1921 o - May 1 2 1 D R v 1921 o - S 1 2 0 S R v 1941 o - Ap lastSu 2 1 D @@ -2837,41 +1541,12 @@ R v 1946 o - Jun 2 2 0 S R v 1950 1961 - Ap lastSu 2 1 D R v 1950 1955 - S lastSu 2 0 S R v 1956 1961 - O lastSu 2 0 S -Z America/Kentucky/Louisville -5:43:2 - LMT 1883 N 18 18u --6 u C%sT 1921 --6 v C%sT 1942 --6 u C%sT 1946 --6 v C%sT 1961 Jul 23 2 --5 - EST 1968 --5 u E%sT 1974 Ja 6 2 --6 1 CDT 1974 O 27 2 --5 u E%sT -Z America/Kentucky/Monticello -5:39:24 - LMT 1883 N 18 18u --6 u C%sT 1946 --6 - CST 1968 --6 u C%sT 2000 O 29 2 --5 u E%sT R Dt 1948 o - Ap lastSu 2 1 D R Dt 1948 o - S lastSu 2 0 S -Z America/Detroit -5:32:11 - LMT 1905 --6 - CST 1915 May 15 2 --5 - EST 1942 --5 u E%sT 1946 --5 Dt E%sT 1967 Jun 14 0:1 --5 u E%sT 1969 --5 - EST 1973 --5 u E%sT 1975 --5 - EST 1975 Ap 27 2 --5 u E%sT R Me 1946 o - Ap lastSu 2 1 D R Me 1946 o - S lastSu 2 0 S R Me 1966 o - Ap lastSu 2 1 D R Me 1966 o - O lastSu 2 0 S -Z America/Menominee -5:50:27 - LMT 1885 S 18 12 --6 u C%sT 1946 --6 Me C%sT 1969 Ap 27 2 --5 - EST 1973 Ap 29 2 --6 u C%sT R C 1918 o - Ap 14 2 1 D R C 1918 o - O 27 2 0 S R C 1942 o - F 9 2 1 W @@ -2901,24 +1576,6 @@ R j 1988 o - Ap Su>=1 0:1 2 DD R j 1989 2006 - Ap Su>=1 0:1 1 D R j 2007 2011 - Mar Su>=8 0:1 1 D R j 2007 2010 - N Su>=1 0:1 0 S -Z America/St_Johns -3:30:52 - LMT 1884 --3:30:52 j N%sT 1918 --3:30:52 C N%sT 1919 --3:30:52 j N%sT 1935 Mar 30 --3:30 j N%sT 1942 May 11 --3:30 C N%sT 1946 --3:30 j N%sT 2011 N --3:30 C N%sT -Z America/Goose_Bay -4:1:40 - LMT 1884 --3:30:52 - NST 1918 --3:30:52 C N%sT 1919 --3:30:52 - NST 1935 Mar 30 --3:30 - NST 1936 --3:30 j N%sT 1942 May 11 --3:30 C N%sT 1946 --3:30 j N%sT 1966 Mar 15 2 --4 j A%sT 2011 N --4 C A%sT R H 1916 o - Ap 1 0 1 D R H 1916 o - O 1 0 0 S R H 1920 o - May 9 0 1 D @@ -2960,19 +1617,6 @@ R H 1956 1959 - Ap lastSu 2 1 D R H 1956 1959 - S lastSu 2 0 S R H 1962 1973 - Ap lastSu 2 1 D R H 1962 1973 - O lastSu 2 0 S -Z America/Halifax -4:14:24 - LMT 1902 Jun 15 --4 H A%sT 1918 --4 C A%sT 1919 --4 H A%sT 1942 F 9 2s --4 C A%sT 1946 --4 H A%sT 1974 --4 C A%sT -Z America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 --4 C A%sT 1953 --4 H A%sT 1954 --4 - AST 1972 --4 H A%sT 1974 --4 C A%sT R o 1933 1935 - Jun Su>=8 1 1 D R o 1933 1935 - S Su>=8 1 0 S R o 1936 1938 - Jun Su>=1 1 1 D @@ -2986,15 +1630,6 @@ R o 1946 1956 - S lastSu 2 0 S R o 1957 1972 - O lastSu 2 0 S R o 1993 2006 - Ap Su>=1 0:1 1 D R o 1993 2006 - O lastSu 0:1 0 S -Z America/Moncton -4:19:8 - LMT 1883 D 9 --5 - EST 1902 Jun 15 --4 C A%sT 1933 --4 o A%sT 1942 --4 C A%sT 1946 --4 o A%sT 1973 --4 C A%sT 1993 --4 o A%sT 2007 --4 C A%sT R t 1919 o - Mar 30 23:30 1 D R t 1919 o - O 26 0 0 S R t 1920 o - May 2 2 1 D @@ -3008,21 +1643,11 @@ R t 1927 1937 - S Su>=25 2 0 S R t 1928 1937 - Ap Su>=25 2 1 D R t 1938 1940 - Ap lastSu 2 1 D R t 1938 1939 - S lastSu 2 0 S -R t 1945 1946 - S lastSu 2 0 S -R t 1946 o - Ap lastSu 2 1 D -R t 1947 1949 - Ap lastSu 0 1 D -R t 1947 1948 - S lastSu 0 0 S -R t 1949 o - N lastSu 0 0 S -R t 1950 1973 - Ap lastSu 2 1 D -R t 1950 o - N lastSu 2 0 S +R t 1945 1948 - S lastSu 2 0 S +R t 1946 1973 - Ap lastSu 2 1 D +R t 1949 1950 - N lastSu 2 0 S R t 1951 1956 - S lastSu 2 0 S R t 1957 1973 - O lastSu 2 0 S -Z America/Toronto -5:17:32 - LMT 1895 --5 C E%sT 1919 --5 t E%sT 1942 F 9 2s --5 C E%sT 1946 --5 t E%sT 1974 --5 C E%sT R W 1916 o - Ap 23 0 1 D R W 1916 o - S 17 0 0 S R W 1918 o - Ap 14 2 1 D @@ -3047,9 +1672,6 @@ R W 1963 o - S 22 2 0 S R W 1966 1986 - Ap lastSu 2s 1 D R W 1966 2005 - O lastSu 2s 0 S R W 1987 2005 - Ap Su>=1 2s 1 D -Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16 --6 W C%sT 2006 --6 C C%sT R r 1918 o - Ap 14 2 1 D R r 1918 o - O 27 2 0 S R r 1930 1934 - May Su>=1 0 1 D @@ -3072,14 +1694,6 @@ R Sw 1957 o - O lastSu 2 0 S R Sw 1959 1961 - Ap lastSu 2 1 D R Sw 1959 o - O lastSu 2 0 S R Sw 1960 1961 - S lastSu 2 0 S -Z America/Regina -6:58:36 - LMT 1905 S --7 r M%sT 1960 Ap lastSu 2 --6 - CST -Z America/Swift_Current -7:11:20 - LMT 1905 S --7 C M%sT 1946 Ap lastSu 2 --7 r M%sT 1950 --7 Sw M%sT 1972 Ap lastSu 2 --6 - CST R Ed 1918 1919 - Ap Su>=8 2 1 D R Ed 1918 o - O 27 2 0 S R Ed 1919 o - May 27 2 0 S @@ -3093,9 +1707,6 @@ R Ed 1947 o - Ap lastSu 2 1 D R Ed 1947 o - S lastSu 2 0 S R Ed 1972 1986 - Ap lastSu 2 1 D R Ed 1972 2006 - O lastSu 2 0 S -Z America/Edmonton -7:33:52 - LMT 1906 S --7 Ed M%sT 1987 --7 C M%sT R Va 1918 o - Ap 14 2 1 D R Va 1918 o - O 27 2 0 S R Va 1942 o - F 9 2 1 W @@ -3105,19 +1716,6 @@ R Va 1946 1986 - Ap lastSu 2 1 D R Va 1946 o - S 29 2 0 S R Va 1947 1961 - S lastSu 2 0 S R Va 1962 2006 - O lastSu 2 0 S -Z America/Vancouver -8:12:28 - LMT 1884 --8 Va P%sT 1987 --8 C P%sT -Z America/Dawson_Creek -8:0:56 - LMT 1884 --8 C P%sT 1947 --8 Va P%sT 1972 Au 30 2 --7 - MST -Z America/Fort_Nelson -8:10:47 - LMT 1884 --8 Va P%sT 1946 --8 - PST 1947 --8 Va P%sT 1987 --8 C P%sT 2015 Mar 8 2 --7 - MST R Y 1918 o - Ap 14 2 1 D R Y 1918 o - O 27 2 0 S R Y 1919 o - May 25 2 1 D @@ -3130,42 +1728,6 @@ R Y 1972 2006 - O lastSu 2 0 S R Y 1987 2006 - Ap Su>=1 2 1 D R Yu 1965 o - Ap lastSu 0 2 DD R Yu 1965 o - O lastSu 2 0 S -Z America/Iqaluit 0 - -00 1942 Au --5 Y E%sT 1999 O 31 2 --6 C C%sT 2000 O 29 2 --5 C E%sT -Z America/Resolute 0 - -00 1947 Au 31 --6 Y C%sT 2000 O 29 2 --5 - EST 2001 Ap 1 3 --6 C C%sT 2006 O 29 2 --5 - EST 2007 Mar 11 3 --6 C C%sT -Z America/Rankin_Inlet 0 - -00 1957 --6 Y C%sT 2000 O 29 2 --5 - EST 2001 Ap 1 3 --6 C C%sT -Z America/Cambridge_Bay 0 - -00 1920 --7 Y M%sT 1999 O 31 2 --6 C C%sT 2000 O 29 2 --5 - EST 2000 N 5 --6 - CST 2001 Ap 1 3 --7 C M%sT -Z America/Inuvik 0 - -00 1953 --8 Y P%sT 1979 Ap lastSu 2 --7 Y M%sT 1980 --7 C M%sT -Z America/Whitehorse -9:0:12 - LMT 1900 Au 20 --9 Y Y%sT 1965 --9 Yu Y%sT 1966 F 27 --8 - PST 1980 --8 C P%sT 2020 N --7 - MST -Z America/Dawson -9:17:40 - LMT 1900 Au 20 --9 Y Y%sT 1965 --9 Yu Y%sT 1973 O 28 --8 - PST 1980 --8 C P%sT 2020 N --7 - MST R m 1931 o - May 1 23 1 D R m 1931 o - O 1 0 0 S R m 1939 o - F 5 0 1 D @@ -3182,107 +1744,6 @@ R m 2001 o - May Su>=1 2 1 D R m 2001 o - S lastSu 2 0 S R m 2002 2022 - Ap Su>=1 2 1 D R m 2002 2022 - O lastSu 2 0 S -Z America/Cancun -5:47:4 - LMT 1922 Ja 1 6u --6 - CST 1981 D 23 --5 m E%sT 1998 Au 2 2 --6 m C%sT 2015 F 1 2 --5 - EST -Z America/Merida -5:58:28 - LMT 1922 Ja 1 6u --6 - CST 1981 D 23 --5 - EST 1982 D 2 --6 m C%sT -Z America/Matamoros -6:30 - LMT 1922 Ja 1 6u --6 - CST 1988 --6 u C%sT 1989 --6 m C%sT 2010 --6 u C%sT -Z America/Monterrey -6:41:16 - LMT 1922 Ja 1 6u --6 - CST 1988 --6 u C%sT 1989 --6 m C%sT -Z America/Mexico_City -6:36:36 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 m C%sT 2001 S 30 2 --6 - CST 2002 F 20 --6 m C%sT -Z America/Ciudad_Juarez -7:5:56 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 - CST 1996 --6 m C%sT 1998 --6 - CST 1998 Ap Su>=1 3 --7 m M%sT 2010 --7 u M%sT 2022 O 30 2 --6 - CST 2022 N 30 --7 u M%sT -Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 - CST 1996 --6 m C%sT 1998 --6 - CST 1998 Ap Su>=1 3 --7 m M%sT 2010 --7 u M%sT 2022 O 30 2 --6 - CST 2022 N 30 --6 u C%sT -Z America/Chihuahua -7:4:20 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 - CST 1996 --6 m C%sT 1998 --6 - CST 1998 Ap Su>=1 3 --7 m M%sT 2022 O 30 2 --6 - CST -Z America/Hermosillo -7:23:52 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 - CST 1942 Ap 24 --7 - MST 1949 Ja 14 --8 - PST 1970 --7 m M%sT 1999 --7 - MST -Z America/Mazatlan -7:5:40 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 - CST 1942 Ap 24 --7 - MST 1949 Ja 14 --8 - PST 1970 --7 m M%sT -Z America/Bahia_Banderas -7:1 - LMT 1922 Ja 1 7u --7 - MST 1927 Jun 10 23 --6 - CST 1930 N 15 --7 m M%sT 1932 Ap --6 - CST 1942 Ap 24 --7 - MST 1949 Ja 14 --8 - PST 1970 --7 m M%sT 2010 Ap 4 2 --6 m C%sT -Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 7u --7 - MST 1924 --8 - PST 1927 Jun 10 23 --7 - MST 1930 N 15 --8 - PST 1931 Ap --8 1 PDT 1931 S 30 --8 - PST 1942 Ap 24 --8 1 PWT 1945 Au 14 23u --8 1 PPT 1945 N 12 --8 - PST 1948 Ap 5 --8 1 PDT 1949 Ja 14 --8 - PST 1954 --8 CA P%sT 1961 --8 - PST 1976 --8 u P%sT 1996 --8 m P%sT 2001 --8 u P%sT 2002 F 20 --8 m P%sT 2010 --8 u P%sT R BB 1942 o - Ap 19 5u 1 D R BB 1942 o - Au 31 6u 0 S R BB 1943 o - May 2 5u 1 D @@ -3294,10 +1755,6 @@ R BB 1977 1978 - O Su>=1 2 0 S R BB 1978 1980 - Ap Su>=15 2 1 D R BB 1979 o - S 30 2 0 S R BB 1980 o - S 25 2 0 S -Z America/Barbados -3:58:29 - LMT 1911 Au 28 --4 BB A%sT 1944 --4 BB AST/-0330 1945 --4 BB A%sT R BZ 1918 1941 - O Sa>=1 24 0:30 -0530 R BZ 1919 1942 - F Sa>=8 24 0 CST R BZ 1942 o - Jun 27 24 1 CWT @@ -3309,8 +1766,6 @@ R BZ 1973 o - D 5 0 1 CDT R BZ 1974 o - F 9 0 0 CST R BZ 1982 o - D 18 0 1 CDT R BZ 1983 o - F 12 0 0 CST -Z America/Belize -5:52:48 - LMT 1912 Ap --6 BZ %s R Be 1917 o - Ap 5 24 1 - R Be 1917 o - S 30 24 0 - R Be 1918 o - Ap 13 24 1 - @@ -3327,19 +1782,11 @@ R Be 1948 1952 - May Su>=22 2 1 D R Be 1948 1952 - S Su>=1 2 0 S R Be 1956 o - May Su>=22 2 1 D R Be 1956 o - O lastSu 2 0 S -Z Atlantic/Bermuda -4:19:18 - LMT 1890 --4:19:18 Be BMT/BST 1930 Ja 1 2 --4 Be A%sT 1974 Ap 28 2 --4 C A%sT 1976 --4 u A%sT R CR 1979 1980 - F lastSu 0 1 D R CR 1979 1980 - Jun Su>=1 0 0 S R CR 1991 1992 - Ja Sa>=15 0 1 D R CR 1991 o - Jul 1 0 0 S R CR 1992 o - Mar 15 0 0 S -Z America/Costa_Rica -5:36:13 - LMT 1890 --5:36:13 - SJMT 1921 Ja 15 --6 CR C%sT R Q 1928 o - Jun 10 0 1 D R Q 1928 o - O 10 0 0 S R Q 1940 1942 - Jun Su>=1 0 1 D @@ -3379,25 +1826,14 @@ R Q 2011 o - N 13 0s 0 S R Q 2012 o - Ap 1 0s 1 D R Q 2012 ma - N Su>=1 0s 0 S R Q 2013 ma - Mar Su>=8 0s 1 D -Z America/Havana -5:29:28 - LMT 1890 --5:29:36 - HMT 1925 Jul 19 12 --5 Q C%sT R DO 1966 o - O 30 0 1 EDT R DO 1967 o - F 28 0 0 EST R DO 1969 1973 - O lastSu 0 0:30 -0430 R DO 1970 o - F 21 0 0 EST R DO 1971 o - Ja 20 0 0 EST R DO 1972 1974 - Ja 21 0 0 EST -Z America/Santo_Domingo -4:39:36 - LMT 1890 --4:40 - SDMT 1933 Ap 1 12 --5 DO %s 1974 O 27 --4 - AST 2000 O 29 2 --5 u E%sT 2000 D 3 1 --4 - AST R SV 1987 1988 - May Su>=1 0 1 D R SV 1987 1988 - S lastSu 0 0 S -Z America/El_Salvador -5:56:48 - LMT 1921 --6 SV C%sT R GT 1973 o - N 25 0 1 D R GT 1974 o - F 24 0 0 S R GT 1983 o - May 21 0 1 D @@ -3406,8 +1842,6 @@ R GT 1991 o - Mar 23 0 1 D R GT 1991 o - S 7 0 0 S R GT 2006 o - Ap 30 0 1 D R GT 2006 o - O 1 0 0 S -Z America/Guatemala -6:2:4 - LMT 1918 O 5 --6 GT C%sT R HT 1983 o - May 8 0 1 D R HT 1984 1987 - Ap lastSu 0 1 D R HT 1983 1987 - O lastSu 0 0 S @@ -3419,57 +1853,16 @@ R HT 2012 2015 - Mar Su>=8 2 1 D R HT 2012 2015 - N Su>=1 2 0 S R HT 2017 ma - Mar Su>=8 2 1 D R HT 2017 ma - N Su>=1 2 0 S -Z America/Port-au-Prince -4:49:20 - LMT 1890 --4:49 - PPMT 1917 Ja 24 12 --5 HT E%sT R HN 1987 1988 - May Su>=1 0 1 D R HN 1987 1988 - S lastSu 0 0 S R HN 2006 o - May Su>=1 0 1 D R HN 2006 o - Au M>=1 0 0 S -Z America/Tegucigalpa -5:48:52 - LMT 1921 Ap --6 HN C%sT -Z America/Jamaica -5:7:10 - LMT 1890 --5:7:10 - KMT 1912 F --5 - EST 1974 --5 u E%sT 1984 --5 - EST -Z America/Martinique -4:4:20 - LMT 1890 --4:4:20 - FFMT 1911 May --4 - AST 1980 Ap 6 --4 1 ADT 1980 S 28 --4 - AST R NI 1979 1980 - Mar Su>=16 0 1 D R NI 1979 1980 - Jun M>=23 0 0 S R NI 2005 o - Ap 10 0 1 D R NI 2005 o - O Su>=1 0 0 S R NI 2006 o - Ap 30 2 1 D R NI 2006 o - O Su>=1 1 0 S -Z America/Managua -5:45:8 - LMT 1890 --5:45:12 - MMT 1934 Jun 23 --6 - CST 1973 May --5 - EST 1975 F 16 --6 NI C%sT 1992 Ja 1 4 --5 - EST 1992 S 24 --6 - CST 1993 --5 - EST 1997 --6 NI C%sT -Z America/Panama -5:18:8 - LMT 1890 --5:19:36 - CMT 1908 Ap 22 --5 - EST -Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12 --4 - AST 1942 May 3 --4 u A%sT 1946 --4 - AST -Z America/Miquelon -3:44:40 - LMT 1911 May 15 --4 - AST 1980 May --3 - -03 1987 --3 C -03/-02 -Z America/Grand_Turk -4:44:32 - LMT 1890 --5:7:10 - KMT 1912 F --5 - EST 1979 --5 u E%sT 2015 Mar 8 2 --4 - AST 2018 Mar 11 3 --5 u E%sT R A 1930 o - D 1 0 1 - R A 1931 o - Ap 1 0 0 - R A 1931 o - O 15 0 1 - @@ -3499,150 +1892,8 @@ R A 2000 o - Mar 3 0 0 - R A 2007 o - D 30 0 1 - R A 2008 2009 - Mar Su>=15 0 0 - R A 2008 o - O Su>=15 0 1 - -Z America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 A -03/-02 -Z America/Argentina/Cordoba -4:16:48 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1991 Mar 3 --4 - -04 1991 O 20 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 A -03/-02 -Z America/Argentina/Salta -4:21:40 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1991 Mar 3 --4 - -04 1991 O 20 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/Argentina/Tucuman -4:20:52 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1991 Mar 3 --4 - -04 1991 O 20 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 Jun --4 - -04 2004 Jun 13 --3 A -03/-02 -Z America/Argentina/La_Rioja -4:27:24 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1991 Mar --4 - -04 1991 May 7 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 Jun --4 - -04 2004 Jun 20 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/Argentina/San_Juan -4:34:4 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1991 Mar --4 - -04 1991 May 7 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 May 31 --4 - -04 2004 Jul 25 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/Argentina/Jujuy -4:21:12 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1990 Mar 4 --4 - -04 1990 O 28 --4 1 -03 1991 Mar 17 --4 - -04 1991 O 6 --3 1 -02 1992 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/Argentina/Catamarca -4:23:8 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1991 Mar 3 --4 - -04 1991 O 20 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 Jun --4 - -04 2004 Jun 20 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/Argentina/Mendoza -4:35:16 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1990 Mar 4 --4 - -04 1990 O 15 --4 1 -03 1991 Mar --4 - -04 1991 O 15 --4 1 -03 1992 Mar --4 - -04 1992 O 18 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 May 23 --4 - -04 2004 S 26 --3 A -03/-02 2008 O 18 --3 - -03 R Sa 2008 2009 - Mar Su>=8 0 0 - R Sa 2007 2008 - O Su>=8 0 1 - -Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1990 --3 1 -02 1990 Mar 14 --4 - -04 1990 O 15 --4 1 -03 1991 Mar --4 - -04 1991 Jun --3 - -03 1999 O 3 --4 1 -03 2000 Mar 3 --3 - -03 2004 May 31 --4 - -04 2004 Jul 25 --3 A -03/-02 2008 Ja 21 --4 Sa -04/-03 2009 O 11 --3 - -03 -Z America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 Jun --4 - -04 2004 Jun 20 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/Argentina/Ushuaia -4:33:12 - LMT 1894 O 31 --4:16:48 - CMT 1920 May --4 - -04 1930 D --4 A -04/-03 1969 O 5 --3 A -03/-02 1999 O 3 --4 A -04/-03 2000 Mar 3 --3 - -03 2004 May 30 --4 - -04 2004 Jun 20 --3 A -03/-02 2008 O 18 --3 - -03 -Z America/La_Paz -4:32:36 - LMT 1890 --4:32:36 - CMT 1931 O 15 --4:32:36 1 BST 1932 Mar 21 --4 - -04 R B 1931 o - O 3 11 1 - R B 1932 1933 - Ap 1 0 0 - R B 1932 o - O 3 0 1 - @@ -3700,90 +1951,6 @@ R B 2013 2014 - F Su>=15 0 0 - R B 2015 o - F Su>=22 0 0 - R B 2016 2019 - F Su>=15 0 0 - R B 2018 o - N Su>=1 0 1 - -Z America/Noronha -2:9:40 - LMT 1914 --2 B -02/-01 1990 S 17 --2 - -02 1999 S 30 --2 B -02/-01 2000 O 15 --2 - -02 2001 S 13 --2 B -02/-01 2002 O --2 - -02 -Z America/Belem -3:13:56 - LMT 1914 --3 B -03/-02 1988 S 12 --3 - -03 -Z America/Santarem -3:38:48 - LMT 1914 --4 B -04/-03 1988 S 12 --4 - -04 2008 Jun 24 --3 - -03 -Z America/Fortaleza -2:34 - LMT 1914 --3 B -03/-02 1990 S 17 --3 - -03 1999 S 30 --3 B -03/-02 2000 O 22 --3 - -03 2001 S 13 --3 B -03/-02 2002 O --3 - -03 -Z America/Recife -2:19:36 - LMT 1914 --3 B -03/-02 1990 S 17 --3 - -03 1999 S 30 --3 B -03/-02 2000 O 15 --3 - -03 2001 S 13 --3 B -03/-02 2002 O --3 - -03 -Z America/Araguaina -3:12:48 - LMT 1914 --3 B -03/-02 1990 S 17 --3 - -03 1995 S 14 --3 B -03/-02 2003 S 24 --3 - -03 2012 O 21 --3 B -03/-02 2013 S --3 - -03 -Z America/Maceio -2:22:52 - LMT 1914 --3 B -03/-02 1990 S 17 --3 - -03 1995 O 13 --3 B -03/-02 1996 S 4 --3 - -03 1999 S 30 --3 B -03/-02 2000 O 22 --3 - -03 2001 S 13 --3 B -03/-02 2002 O --3 - -03 -Z America/Bahia -2:34:4 - LMT 1914 --3 B -03/-02 2003 S 24 --3 - -03 2011 O 16 --3 B -03/-02 2012 O 21 --3 - -03 -Z America/Sao_Paulo -3:6:28 - LMT 1914 --3 B -03/-02 1963 O 23 --3 1 -02 1964 --3 B -03/-02 -Z America/Campo_Grande -3:38:28 - LMT 1914 --4 B -04/-03 -Z America/Cuiaba -3:44:20 - LMT 1914 --4 B -04/-03 2003 S 24 --4 - -04 2004 O --4 B -04/-03 -Z America/Porto_Velho -4:15:36 - LMT 1914 --4 B -04/-03 1988 S 12 --4 - -04 -Z America/Boa_Vista -4:2:40 - LMT 1914 --4 B -04/-03 1988 S 12 --4 - -04 1999 S 30 --4 B -04/-03 2000 O 15 --4 - -04 -Z America/Manaus -4:0:4 - LMT 1914 --4 B -04/-03 1988 S 12 --4 - -04 1993 S 28 --4 B -04/-03 1994 S 22 --4 - -04 -Z America/Eirunepe -4:39:28 - LMT 1914 --5 B -05/-04 1988 S 12 --5 - -05 1993 S 28 --5 B -05/-04 1994 S 22 --5 - -05 2008 Jun 24 --4 - -04 2013 N 10 --5 - -05 -Z America/Rio_Branco -4:31:12 - LMT 1914 --5 B -05/-04 1988 S 12 --5 - -05 2008 Jun 24 --4 - -04 2013 N 10 --5 - -05 R x 1927 1931 - S 1 0 1 - R x 1928 1932 - Ap 1 0 0 - R x 1968 o - N 3 4u 1 - @@ -3820,56 +1987,10 @@ R x 2019 ma - Ap Su>=2 3u 0 - R x 2019 2021 - S Su>=2 4u 1 - R x 2022 o - S Su>=9 4u 1 - R x 2023 ma - S Su>=2 4u 1 - -Z America/Santiago -4:42:45 - LMT 1890 --4:42:45 - SMT 1910 Ja 10 --5 - -05 1916 Jul --4:42:45 - SMT 1918 S 10 --4 - -04 1919 Jul --4:42:45 - SMT 1927 S --5 x -05/-04 1932 S --4 - -04 1942 Jun --5 - -05 1942 Au --4 - -04 1946 Jul 14 24 --4 1 -03 1946 Au 28 24 --5 1 -04 1947 Mar 31 24 --5 - -05 1947 May 21 23 --4 x -04/-03 -Z America/Punta_Arenas -4:43:40 - LMT 1890 --4:42:45 - SMT 1910 Ja 10 --5 - -05 1916 Jul --4:42:45 - SMT 1918 S 10 --4 - -04 1919 Jul --4:42:45 - SMT 1927 S --5 x -05/-04 1932 S --4 - -04 1942 Jun --5 - -05 1942 Au --4 - -04 1946 Au 28 24 --5 1 -04 1947 Mar 31 24 --5 - -05 1947 May 21 23 --4 x -04/-03 2016 D 4 --3 - -03 -Z Pacific/Easter -7:17:28 - LMT 1890 --7:17:28 - EMT 1932 S --7 x -07/-06 1982 Mar 14 3u --6 x -06/-05 -Z Antarctica/Palmer 0 - -00 1965 --4 A -04/-03 1969 O 5 --3 A -03/-02 1982 May --4 x -04/-03 2016 D 4 --3 - -03 R CO 1992 o - May 3 0 1 - R CO 1993 o - F 6 24 0 - -Z America/Bogota -4:56:16 - LMT 1884 Mar 13 --4:56:16 - BMT 1914 N 23 --5 CO -05/-04 R EC 1992 o - N 28 0 1 - R EC 1993 o - F 5 0 0 - -Z America/Guayaquil -5:19:20 - LMT 1890 --5:14 - QMT 1931 --5 EC -05/-04 -Z Pacific/Galapagos -5:58:24 - LMT 1931 --5 - -05 1986 --6 EC -06/-05 R FK 1937 1938 - S lastSu 0 1 - R FK 1938 1942 - Mar Su>=19 0 0 - R FK 1939 o - O 1 0 1 - @@ -3882,20 +2003,6 @@ R FK 1985 2000 - S Su>=9 0 1 - R FK 1986 2000 - Ap Su>=16 0 0 - R FK 2001 2010 - Ap Su>=15 2 0 - R FK 2001 2010 - S Su>=1 2 1 - -Z Atlantic/Stanley -3:51:24 - LMT 1890 --3:51:24 - SMT 1912 Mar 12 --4 FK -04/-03 1983 May --3 FK -03/-02 1985 S 15 --4 FK -04/-03 2010 S 5 2 --3 - -03 -Z America/Cayenne -3:29:20 - LMT 1911 Jul --4 - -04 1967 O --3 - -03 -Z America/Guyana -3:52:39 - LMT 1911 Au --4 - -04 1915 Mar --3:45 - -0345 1975 Au --3 - -03 1992 Mar 29 1 --4 - -04 R y 1975 1988 - O 1 0 1 - R y 1975 1978 - Mar 1 0 0 - R y 1979 1991 - Ap 1 0 0 - @@ -3918,11 +2025,6 @@ R y 2005 2009 - Mar Su>=8 0 0 - R y 2010 ma - O Su>=1 0 1 - R y 2010 2012 - Ap Su>=8 0 0 - R y 2013 ma - Mar Su>=22 0 0 - -Z America/Asuncion -3:50:40 - LMT 1890 --3:50:40 - AMT 1931 O 10 --4 - -04 1972 O --3 - -03 1974 Ap --4 y -04/-03 R PE 1938 o - Ja 1 0 1 - R PE 1938 o - Ap 1 0 0 - R PE 1938 1939 - S lastSu 0 1 - @@ -3933,16 +2035,6 @@ R PE 1990 o - Ja 1 0 1 - R PE 1990 o - Ap 1 0 0 - R PE 1994 o - Ja 1 0 1 - R PE 1994 o - Ap 1 0 0 - -Z America/Lima -5:8:12 - LMT 1890 --5:8:36 - LMT 1908 Jul 28 --5 PE -05/-04 -Z Atlantic/South_Georgia -2:26:8 - LMT 1890 --2 - -02 -Z America/Paramaribo -3:40:40 - LMT 1911 --3:40:52 - PMT 1935 --3:40:36 - PMT 1945 O --3:30 - -0330 1984 O --3 - -03 R U 1923 1925 - O 1 0 0:30 - R U 1924 1926 - Ap 1 0 0 - R U 1933 1938 - O lastSu 0 0:30 - @@ -3991,6 +2083,659 @@ R U 2005 o - Mar 27 2 0 - R U 2005 o - O 9 2 1 - R U 2006 2015 - Mar Su>=8 2 0 - R U 2006 2014 - O Su>=1 2 1 - +Z Africa/Abidjan -0:16:8 - LMT 1912 +0 - GMT +Z Africa/Algiers 0:12:12 - LMT 1891 Mar 16 +0:9:21 - PMT 1911 Mar 11 +0 d WE%sT 1940 F 25 2 +1 d CE%sT 1946 O 7 +0 - WET 1956 Ja 29 +1 - CET 1963 Ap 14 +0 d WE%sT 1977 O 21 +1 d CE%sT 1979 O 26 +0 d WE%sT 1981 May +1 - CET +Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u +-1 - -01 1975 +0 - GMT +Z Africa/Cairo 2:5:9 - LMT 1900 O +2 K EE%sT +Z Africa/Casablanca -0:30:20 - LMT 1913 O 26 +0 M +00/+01 1984 Mar 16 +1 - +01 1986 +0 M +00/+01 2018 O 28 3 +1 M +01/+00 +Z Africa/Ceuta -0:21:16 - LMT 1901 Ja 1 0u +0 - WET 1918 May 6 23 +0 1 WEST 1918 O 7 23 +0 - WET 1924 +0 s WE%sT 1929 +0 - WET 1967 +0 Sp WE%sT 1984 Mar 16 +1 - CET 1986 +1 E CE%sT +Z Africa/El_Aaiun -0:52:48 - LMT 1934 +-1 - -01 1976 Ap 14 +0 M +00/+01 2018 O 28 3 +1 M +01/+00 +Z Africa/Johannesburg 1:52 - LMT 1892 F 8 +1:30 - SAST 1903 Mar +2 SA SAST +Z Africa/Juba 2:6:28 - LMT 1931 +2 SD CA%sT 2000 Ja 15 12 +3 - EAT 2021 F +2 - CAT +Z Africa/Khartoum 2:10:8 - LMT 1931 +2 SD CA%sT 2000 Ja 15 12 +3 - EAT 2017 N +2 - CAT +Z Africa/Lagos 0:13:35 - LMT 1905 Jul +0 - GMT 1908 Jul +0:13:35 - LMT 1914 +0:30 - +0030 1919 S +1 - WAT +Z Africa/Maputo 2:10:20 - LMT 1903 Mar +2 - CAT +Z Africa/Monrovia -0:43:8 - LMT 1882 +-0:43:8 - MMT 1919 Mar +-0:44:30 - MMT 1972 Ja 7 +0 - GMT +Z Africa/Nairobi 2:27:16 - LMT 1908 May +2:30 - +0230 1928 Jun 30 24 +3 - EAT 1930 Ja 4 24 +2:30 - +0230 1936 D 31 24 +2:45 - +0245 1942 Jul 31 24 +3 - EAT +Z Africa/Ndjamena 1:0:12 - LMT 1912 +1 - WAT 1979 O 14 +1 1 WAST 1980 Mar 8 +1 - WAT +Z Africa/Sao_Tome 0:26:56 - LMT 1884 +-0:36:45 - LMT 1912 Ja 1 0u +0 - GMT 2018 Ja 1 1 +1 - WAT 2019 Ja 1 2 +0 - GMT +Z Africa/Tripoli 0:52:44 - LMT 1920 +1 L CE%sT 1959 +2 - EET 1982 +1 L CE%sT 1990 May 4 +2 - EET 1996 S 30 +1 L CE%sT 1997 O 4 +2 - EET 2012 N 10 2 +1 L CE%sT 2013 O 25 2 +2 - EET +Z Africa/Tunis 0:40:44 - LMT 1881 May 12 +0:9:21 - PMT 1911 Mar 11 +1 n CE%sT +Z Africa/Windhoek 1:8:24 - LMT 1892 F 8 +1:30 - +0130 1903 Mar +2 - SAST 1942 S 20 2 +2 1 SAST 1943 Mar 21 2 +2 - SAST 1990 Mar 21 +2 NA %s +Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35 +-11:46:38 - LMT 1900 Au 20 12 +-11 - NST 1942 +-11 u N%sT 1946 +-11 - NST 1967 Ap +-11 - BST 1969 +-11 u B%sT 1983 O 30 2 +-10 u AH%sT 1983 N 30 +-10 u H%sT +Z America/Anchorage 14:0:24 - LMT 1867 O 19 14:31:37 +-9:59:36 - LMT 1900 Au 20 12 +-10 - AST 1942 +-10 u A%sT 1967 Ap +-10 - AHST 1969 +-10 u AH%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/Araguaina -3:12:48 - LMT 1914 +-3 B -03/-02 1990 S 17 +-3 - -03 1995 S 14 +-3 B -03/-02 2003 S 24 +-3 - -03 2012 O 21 +-3 B -03/-02 2013 S +-3 - -03 +Z America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 A -03/-02 +Z America/Argentina/Catamarca -4:23:8 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1991 Mar 3 +-4 - -04 1991 O 20 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 Jun +-4 - -04 2004 Jun 20 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/Cordoba -4:16:48 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1991 Mar 3 +-4 - -04 1991 O 20 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 A -03/-02 +Z America/Argentina/Jujuy -4:21:12 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1990 Mar 4 +-4 - -04 1990 O 28 +-4 1 -03 1991 Mar 17 +-4 - -04 1991 O 6 +-3 1 -02 1992 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/La_Rioja -4:27:24 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1991 Mar +-4 - -04 1991 May 7 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 Jun +-4 - -04 2004 Jun 20 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/Mendoza -4:35:16 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1990 Mar 4 +-4 - -04 1990 O 15 +-4 1 -03 1991 Mar +-4 - -04 1991 O 15 +-4 1 -03 1992 Mar +-4 - -04 1992 O 18 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 May 23 +-4 - -04 2004 S 26 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 Jun +-4 - -04 2004 Jun 20 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/Salta -4:21:40 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1991 Mar 3 +-4 - -04 1991 O 20 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/San_Juan -4:34:4 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1991 Mar +-4 - -04 1991 May 7 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 May 31 +-4 - -04 2004 Jul 25 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1990 +-3 1 -02 1990 Mar 14 +-4 - -04 1990 O 15 +-4 1 -03 1991 Mar +-4 - -04 1991 Jun +-3 - -03 1999 O 3 +-4 1 -03 2000 Mar 3 +-3 - -03 2004 May 31 +-4 - -04 2004 Jul 25 +-3 A -03/-02 2008 Ja 21 +-4 Sa -04/-03 2009 O 11 +-3 - -03 +Z America/Argentina/Tucuman -4:20:52 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1991 Mar 3 +-4 - -04 1991 O 20 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 Jun +-4 - -04 2004 Jun 13 +-3 A -03/-02 +Z America/Argentina/Ushuaia -4:33:12 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - -04 1930 D +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1999 O 3 +-4 A -04/-03 2000 Mar 3 +-3 - -03 2004 May 30 +-4 - -04 2004 Jun 20 +-3 A -03/-02 2008 O 18 +-3 - -03 +Z America/Asuncion -3:50:40 - LMT 1890 +-3:50:40 - AMT 1931 O 10 +-4 - -04 1972 O +-3 - -03 1974 Ap +-4 y -04/-03 +Z America/Bahia -2:34:4 - LMT 1914 +-3 B -03/-02 2003 S 24 +-3 - -03 2011 O 16 +-3 B -03/-02 2012 O 21 +-3 - -03 +Z America/Bahia_Banderas -7:1 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1942 Ap 24 +-7 - MST 1949 Ja 14 +-8 - PST 1970 +-7 m M%sT 2010 Ap 4 2 +-6 m C%sT +Z America/Barbados -3:58:29 - LMT 1911 Au 28 +-4 BB A%sT 1944 +-4 BB AST/-0330 1945 +-4 BB A%sT +Z America/Belem -3:13:56 - LMT 1914 +-3 B -03/-02 1988 S 12 +-3 - -03 +Z America/Belize -5:52:48 - LMT 1912 Ap +-6 BZ %s +Z America/Boa_Vista -4:2:40 - LMT 1914 +-4 B -04/-03 1988 S 12 +-4 - -04 1999 S 30 +-4 B -04/-03 2000 O 15 +-4 - -04 +Z America/Bogota -4:56:16 - LMT 1884 Mar 13 +-4:56:16 - BMT 1914 N 23 +-5 CO -05/-04 +Z America/Boise -7:44:49 - LMT 1883 N 18 20u +-8 u P%sT 1923 May 13 2 +-7 u M%sT 1974 +-7 - MST 1974 F 3 2 +-7 u M%sT +Z America/Cambridge_Bay 0 - -00 1920 +-7 Y M%sT 1999 O 31 2 +-6 C C%sT 2000 O 29 2 +-5 - EST 2000 N 5 +-6 - CST 2001 Ap 1 3 +-7 C M%sT +Z America/Campo_Grande -3:38:28 - LMT 1914 +-4 B -04/-03 +Z America/Cancun -5:47:4 - LMT 1922 Ja 1 6u +-6 - CST 1981 D 23 +-5 m E%sT 1998 Au 2 2 +-6 m C%sT 2015 F 1 2 +-5 - EST +Z America/Caracas -4:27:44 - LMT 1890 +-4:27:40 - CMT 1912 F 12 +-4:30 - -0430 1965 +-4 - -04 2007 D 9 3 +-4:30 - -0430 2016 May 1 2:30 +-4 - -04 +Z America/Cayenne -3:29:20 - LMT 1911 Jul +-4 - -04 1967 O +-3 - -03 +Z America/Chicago -5:50:36 - LMT 1883 N 18 18u +-6 u C%sT 1920 +-6 Ch C%sT 1936 Mar 1 2 +-5 - EST 1936 N 15 2 +-6 Ch C%sT 1942 +-6 u C%sT 1946 +-6 Ch C%sT 1967 +-6 u C%sT +Z America/Chihuahua -7:4:20 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1996 +-6 m C%sT 1998 +-6 - CST 1998 Ap Su>=1 3 +-7 m M%sT 2022 O 30 2 +-6 - CST +Z America/Ciudad_Juarez -7:5:56 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1996 +-6 m C%sT 1998 +-6 - CST 1998 Ap Su>=1 3 +-7 m M%sT 2010 +-7 u M%sT 2022 O 30 2 +-6 - CST 2022 N 30 +-7 u M%sT +Z America/Costa_Rica -5:36:13 - LMT 1890 +-5:36:13 - SJMT 1921 Ja 15 +-6 CR C%sT +Z America/Cuiaba -3:44:20 - LMT 1914 +-4 B -04/-03 2003 S 24 +-4 - -04 2004 O +-4 B -04/-03 +Z America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 +-3 - -03 1980 Ap 6 2 +-3 E -03/-02 1996 +0 - GMT +Z America/Dawson -9:17:40 - LMT 1900 Au 20 +-9 Y Y%sT 1965 +-9 Yu Y%sT 1973 O 28 +-8 - PST 1980 +-8 C P%sT 2020 N +-7 - MST +Z America/Dawson_Creek -8:0:56 - LMT 1884 +-8 C P%sT 1947 +-8 Va P%sT 1972 Au 30 2 +-7 - MST +Z America/Denver -6:59:56 - LMT 1883 N 18 19u +-7 u M%sT 1920 +-7 De M%sT 1942 +-7 u M%sT 1946 +-7 De M%sT 1967 +-7 u M%sT +Z America/Detroit -5:32:11 - LMT 1905 +-6 - CST 1915 May 15 2 +-5 - EST 1942 +-5 u E%sT 1946 +-5 Dt E%sT 1967 Jun 14 0:1 +-5 u E%sT 1969 +-5 - EST 1973 +-5 u E%sT 1975 +-5 - EST 1975 Ap 27 2 +-5 u E%sT +Z America/Edmonton -7:33:52 - LMT 1906 S +-7 Ed M%sT 1987 +-7 C M%sT +Z America/Eirunepe -4:39:28 - LMT 1914 +-5 B -05/-04 1988 S 12 +-5 - -05 1993 S 28 +-5 B -05/-04 1994 S 22 +-5 - -05 2008 Jun 24 +-4 - -04 2013 N 10 +-5 - -05 +Z America/El_Salvador -5:56:48 - LMT 1921 +-6 SV C%sT +Z America/Fort_Nelson -8:10:47 - LMT 1884 +-8 Va P%sT 1946 +-8 - PST 1947 +-8 Va P%sT 1987 +-8 C P%sT 2015 Mar 8 2 +-7 - MST +Z America/Fortaleza -2:34 - LMT 1914 +-3 B -03/-02 1990 S 17 +-3 - -03 1999 S 30 +-3 B -03/-02 2000 O 22 +-3 - -03 2001 S 13 +-3 B -03/-02 2002 O +-3 - -03 +Z America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 +-4 C A%sT 1953 +-4 H A%sT 1954 +-4 - AST 1972 +-4 H A%sT 1974 +-4 C A%sT +Z America/Goose_Bay -4:1:40 - LMT 1884 +-3:30:52 - NST 1918 +-3:30:52 C N%sT 1919 +-3:30:52 - NST 1935 Mar 30 +-3:30 - NST 1936 +-3:30 j N%sT 1942 May 11 +-3:30 C N%sT 1946 +-3:30 j N%sT 1966 Mar 15 2 +-4 j A%sT 2011 N +-4 C A%sT +Z America/Grand_Turk -4:44:32 - LMT 1890 +-5:7:10 - KMT 1912 F +-5 - EST 1979 +-5 u E%sT 2015 Mar 8 2 +-4 - AST 2018 Mar 11 3 +-5 u E%sT +Z America/Guatemala -6:2:4 - LMT 1918 O 5 +-6 GT C%sT +Z America/Guayaquil -5:19:20 - LMT 1890 +-5:14 - QMT 1931 +-5 EC -05/-04 +Z America/Guyana -3:52:39 - LMT 1911 Au +-4 - -04 1915 Mar +-3:45 - -0345 1975 Au +-3 - -03 1992 Mar 29 1 +-4 - -04 +Z America/Halifax -4:14:24 - LMT 1902 Jun 15 +-4 H A%sT 1918 +-4 C A%sT 1919 +-4 H A%sT 1942 F 9 2s +-4 C A%sT 1946 +-4 H A%sT 1974 +-4 C A%sT +Z America/Havana -5:29:28 - LMT 1890 +-5:29:36 - HMT 1925 Jul 19 12 +-5 Q C%sT +Z America/Hermosillo -7:23:52 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1942 Ap 24 +-7 - MST 1949 Ja 14 +-8 - PST 1970 +-7 m M%sT 1999 +-7 - MST +Z America/Indiana/Indianapolis -5:44:38 - LMT 1883 N 18 18u +-6 u C%sT 1920 +-6 In C%sT 1942 +-6 u C%sT 1946 +-6 In C%sT 1955 Ap 24 2 +-5 - EST 1957 S 29 2 +-6 - CST 1958 Ap 27 2 +-5 - EST 1969 +-5 u E%sT 1971 +-5 - EST 2006 +-5 u E%sT +Z America/Indiana/Knox -5:46:30 - LMT 1883 N 18 18u +-6 u C%sT 1947 +-6 St C%sT 1962 Ap 29 2 +-5 - EST 1963 O 27 2 +-6 u C%sT 1991 O 27 2 +-5 - EST 2006 Ap 2 2 +-6 u C%sT +Z America/Indiana/Marengo -5:45:23 - LMT 1883 N 18 18u +-6 u C%sT 1951 +-6 Ma C%sT 1961 Ap 30 2 +-5 - EST 1969 +-5 u E%sT 1974 Ja 6 2 +-6 1 CDT 1974 O 27 2 +-5 u E%sT 1976 +-5 - EST 2006 +-5 u E%sT +Z America/Indiana/Petersburg -5:49:7 - LMT 1883 N 18 18u +-6 u C%sT 1955 +-6 Pi C%sT 1965 Ap 25 2 +-5 - EST 1966 O 30 2 +-6 u C%sT 1977 O 30 2 +-5 - EST 2006 Ap 2 2 +-6 u C%sT 2007 N 4 2 +-5 u E%sT +Z America/Indiana/Tell_City -5:47:3 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 Pe C%sT 1964 Ap 26 2 +-5 - EST 1967 O 29 2 +-6 u C%sT 1969 Ap 27 2 +-5 u E%sT 1971 +-5 - EST 2006 Ap 2 2 +-6 u C%sT +Z America/Indiana/Vevay -5:40:16 - LMT 1883 N 18 18u +-6 u C%sT 1954 Ap 25 2 +-5 - EST 1969 +-5 u E%sT 1973 +-5 - EST 2006 +-5 u E%sT +Z America/Indiana/Vincennes -5:50:7 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 V C%sT 1964 Ap 26 2 +-5 - EST 1969 +-5 u E%sT 1971 +-5 - EST 2006 Ap 2 2 +-6 u C%sT 2007 N 4 2 +-5 u E%sT +Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 Pu C%sT 1961 Ap 30 2 +-5 - EST 1969 +-5 u E%sT 1971 +-5 - EST 2006 Ap 2 2 +-6 u C%sT 2007 Mar 11 2 +-5 u E%sT +Z America/Inuvik 0 - -00 1953 +-8 Y P%sT 1979 Ap lastSu 2 +-7 Y M%sT 1980 +-7 C M%sT +Z America/Iqaluit 0 - -00 1942 Au +-5 Y E%sT 1999 O 31 2 +-6 C C%sT 2000 O 29 2 +-5 C E%sT +Z America/Jamaica -5:7:10 - LMT 1890 +-5:7:10 - KMT 1912 F +-5 - EST 1974 +-5 u E%sT 1984 +-5 - EST +Z America/Juneau 15:2:19 - LMT 1867 O 19 15:33:32 +-8:57:41 - LMT 1900 Au 20 12 +-8 - PST 1942 +-8 u P%sT 1946 +-8 - PST 1969 +-8 u P%sT 1980 Ap 27 2 +-9 u Y%sT 1980 O 26 2 +-8 u P%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/Kentucky/Louisville -5:43:2 - LMT 1883 N 18 18u +-6 u C%sT 1921 +-6 v C%sT 1942 +-6 u C%sT 1946 +-6 v C%sT 1961 Jul 23 2 +-5 - EST 1968 +-5 u E%sT 1974 Ja 6 2 +-6 1 CDT 1974 O 27 2 +-5 u E%sT +Z America/Kentucky/Monticello -5:39:24 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 - CST 1968 +-6 u C%sT 2000 O 29 2 +-5 u E%sT +Z America/La_Paz -4:32:36 - LMT 1890 +-4:32:36 - CMT 1931 O 15 +-4:32:36 1 BST 1932 Mar 21 +-4 - -04 +Z America/Lima -5:8:12 - LMT 1890 +-5:8:36 - LMT 1908 Jul 28 +-5 PE -05/-04 +Z America/Los_Angeles -7:52:58 - LMT 1883 N 18 20u +-8 u P%sT 1946 +-8 CA P%sT 1967 +-8 u P%sT +Z America/Maceio -2:22:52 - LMT 1914 +-3 B -03/-02 1990 S 17 +-3 - -03 1995 O 13 +-3 B -03/-02 1996 S 4 +-3 - -03 1999 S 30 +-3 B -03/-02 2000 O 22 +-3 - -03 2001 S 13 +-3 B -03/-02 2002 O +-3 - -03 +Z America/Managua -5:45:8 - LMT 1890 +-5:45:12 - MMT 1934 Jun 23 +-6 - CST 1973 May +-5 - EST 1975 F 16 +-6 NI C%sT 1992 Ja 1 4 +-5 - EST 1992 S 24 +-6 - CST 1993 +-5 - EST 1997 +-6 NI C%sT +Z America/Manaus -4:0:4 - LMT 1914 +-4 B -04/-03 1988 S 12 +-4 - -04 1993 S 28 +-4 B -04/-03 1994 S 22 +-4 - -04 +Z America/Martinique -4:4:20 - LMT 1890 +-4:4:20 - FFMT 1911 May +-4 - AST 1980 Ap 6 +-4 1 ADT 1980 S 28 +-4 - AST +Z America/Matamoros -6:30 - LMT 1922 Ja 1 6u +-6 - CST 1988 +-6 u C%sT 1989 +-6 m C%sT 2010 +-6 u C%sT +Z America/Mazatlan -7:5:40 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1942 Ap 24 +-7 - MST 1949 Ja 14 +-8 - PST 1970 +-7 m M%sT +Z America/Menominee -5:50:27 - LMT 1885 S 18 12 +-6 u C%sT 1946 +-6 Me C%sT 1969 Ap 27 2 +-5 - EST 1973 Ap 29 2 +-6 u C%sT +Z America/Merida -5:58:28 - LMT 1922 Ja 1 6u +-6 - CST 1981 D 23 +-5 - EST 1982 D 2 +-6 m C%sT +Z America/Metlakatla 15:13:42 - LMT 1867 O 19 15:44:55 +-8:46:18 - LMT 1900 Au 20 12 +-8 - PST 1942 +-8 u P%sT 1946 +-8 - PST 1969 +-8 u P%sT 1983 O 30 2 +-8 - PST 2015 N 1 2 +-9 u AK%sT 2018 N 4 2 +-8 - PST 2019 Ja 20 2 +-9 u AK%sT +Z America/Mexico_City -6:36:36 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 m C%sT 2001 S 30 2 +-6 - CST 2002 F 20 +-6 m C%sT +Z America/Miquelon -3:44:40 - LMT 1911 Jun 15 +-4 - AST 1980 May +-3 - -03 1987 +-3 C -03/-02 +Z America/Moncton -4:19:8 - LMT 1883 D 9 +-5 - EST 1902 Jun 15 +-4 C A%sT 1933 +-4 o A%sT 1942 +-4 C A%sT 1946 +-4 o A%sT 1973 +-4 C A%sT 1993 +-4 o A%sT 2007 +-4 C A%sT +Z America/Monterrey -6:41:16 - LMT 1922 Ja 1 6u +-6 - CST 1988 +-6 u C%sT 1989 +-6 m C%sT Z America/Montevideo -3:44:51 - LMT 1908 Jun 10 -3:44:51 - MMT 1920 May -4 - -04 1923 O @@ -4002,30 +2747,842 @@ Z America/Montevideo -3:44:51 - LMT 1908 Jun 10 -3 U -03/-0130 1974 Mar 10 -3 U -03/-0230 1974 D 22 -3 U -03/-02 -Z America/Caracas -4:27:44 - LMT 1890 --4:27:40 - CMT 1912 F 12 --4:30 - -0430 1965 --4 - -04 2007 D 9 3 --4:30 - -0430 2016 May 1 2:30 +Z America/New_York -4:56:2 - LMT 1883 N 18 17u +-5 u E%sT 1920 +-5 NY E%sT 1942 +-5 u E%sT 1946 +-5 NY E%sT 1967 +-5 u E%sT +Z America/Nome 12:58:22 - LMT 1867 O 19 13:29:35 +-11:1:38 - LMT 1900 Au 20 12 +-11 - NST 1942 +-11 u N%sT 1946 +-11 - NST 1967 Ap +-11 - BST 1969 +-11 u B%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/Noronha -2:9:40 - LMT 1914 +-2 B -02/-01 1990 S 17 +-2 - -02 1999 S 30 +-2 B -02/-01 2000 O 15 +-2 - -02 2001 S 13 +-2 B -02/-01 2002 O +-2 - -02 +Z America/North_Dakota/Beulah -6:47:7 - LMT 1883 N 18 19u +-7 u M%sT 2010 N 7 2 +-6 u C%sT +Z America/North_Dakota/Center -6:45:12 - LMT 1883 N 18 19u +-7 u M%sT 1992 O 25 2 +-6 u C%sT +Z America/North_Dakota/New_Salem -6:45:39 - LMT 1883 N 18 19u +-7 u M%sT 2003 O 26 2 +-6 u C%sT +Z America/Nuuk -3:26:56 - LMT 1916 Jul 28 +-3 - -03 1980 Ap 6 2 +-3 E -03/-02 2023 Mar 26 1u +-2 - -02 2023 O 29 1u +-2 E -02/-01 +Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 23 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1996 +-6 m C%sT 1998 +-6 - CST 1998 Ap Su>=1 3 +-7 m M%sT 2010 +-7 u M%sT 2022 O 30 2 +-6 - CST 2022 N 30 +-6 u C%sT +Z America/Panama -5:18:8 - LMT 1890 +-5:19:36 - CMT 1908 Ap 22 +-5 - EST +Z America/Paramaribo -3:40:40 - LMT 1911 +-3:40:52 - PMT 1935 +-3:40:36 - PMT 1945 O +-3:30 - -0330 1984 O +-3 - -03 +Z America/Phoenix -7:28:18 - LMT 1883 N 18 19u +-7 u M%sT 1944 Ja 1 0:1 +-7 - MST 1944 Ap 1 0:1 +-7 u M%sT 1944 O 1 0:1 +-7 - MST 1967 +-7 u M%sT 1968 Mar 21 +-7 - MST +Z America/Port-au-Prince -4:49:20 - LMT 1890 +-4:49 - PPMT 1917 Ja 24 12 +-5 HT E%sT +Z America/Porto_Velho -4:15:36 - LMT 1914 +-4 B -04/-03 1988 S 12 -4 - -04 -Z Etc/UTC 0 - UTC +Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12 +-4 - AST 1942 May 3 +-4 u A%sT 1946 +-4 - AST +Z America/Punta_Arenas -4:43:40 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 +-5 - -05 1916 Jul +-4:42:45 - SMT 1918 S 10 +-4 - -04 1919 Jul +-4:42:45 - SMT 1927 S +-5 x -05/-04 1932 S +-4 - -04 1942 Jun +-5 - -05 1942 Au +-4 - -04 1946 Au 28 24 +-5 1 -04 1947 Mar 31 24 +-5 - -05 1947 May 21 23 +-4 x -04/-03 2016 D 4 +-3 - -03 +Z America/Rankin_Inlet 0 - -00 1957 +-6 Y C%sT 2000 O 29 2 +-5 - EST 2001 Ap 1 3 +-6 C C%sT +Z America/Recife -2:19:36 - LMT 1914 +-3 B -03/-02 1990 S 17 +-3 - -03 1999 S 30 +-3 B -03/-02 2000 O 15 +-3 - -03 2001 S 13 +-3 B -03/-02 2002 O +-3 - -03 +Z America/Regina -6:58:36 - LMT 1905 S +-7 r M%sT 1960 Ap lastSu 2 +-6 - CST +Z America/Resolute 0 - -00 1947 Au 31 +-6 Y C%sT 2000 O 29 2 +-5 - EST 2001 Ap 1 3 +-6 C C%sT 2006 O 29 2 +-5 - EST 2007 Mar 11 3 +-6 C C%sT +Z America/Rio_Branco -4:31:12 - LMT 1914 +-5 B -05/-04 1988 S 12 +-5 - -05 2008 Jun 24 +-4 - -04 2013 N 10 +-5 - -05 +Z America/Santarem -3:38:48 - LMT 1914 +-4 B -04/-03 1988 S 12 +-4 - -04 2008 Jun 24 +-3 - -03 +Z America/Santiago -4:42:45 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 +-5 - -05 1916 Jul +-4:42:45 - SMT 1918 S 10 +-4 - -04 1919 Jul +-4:42:45 - SMT 1927 S +-5 x -05/-04 1932 S +-4 - -04 1942 Jun +-5 - -05 1942 Au +-4 - -04 1946 Jul 14 24 +-4 1 -03 1946 Au 28 24 +-5 1 -04 1947 Mar 31 24 +-5 - -05 1947 May 21 23 +-4 x -04/-03 +Z America/Santo_Domingo -4:39:36 - LMT 1890 +-4:40 - SDMT 1933 Ap 1 12 +-5 DO %s 1974 O 27 +-4 - AST 2000 O 29 2 +-5 u E%sT 2000 D 3 1 +-4 - AST +Z America/Sao_Paulo -3:6:28 - LMT 1914 +-3 B -03/-02 1963 O 23 +-3 1 -02 1964 +-3 B -03/-02 +Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 +-2 - -02 1980 Ap 6 2 +-2 c -02/-01 1981 Mar 29 +-1 E -01/+00 2024 Mar 31 +-2 E -02/-01 +Z America/Sitka 14:58:47 - LMT 1867 O 19 15:30 +-9:1:13 - LMT 1900 Au 20 12 +-8 - PST 1942 +-8 u P%sT 1946 +-8 - PST 1969 +-8 u P%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/St_Johns -3:30:52 - LMT 1884 +-3:30:52 j N%sT 1918 +-3:30:52 C N%sT 1919 +-3:30:52 j N%sT 1935 Mar 30 +-3:30 j N%sT 1942 May 11 +-3:30 C N%sT 1946 +-3:30 j N%sT 2011 N +-3:30 C N%sT +Z America/Swift_Current -7:11:20 - LMT 1905 S +-7 C M%sT 1946 Ap lastSu 2 +-7 r M%sT 1950 +-7 Sw M%sT 1972 Ap lastSu 2 +-6 - CST +Z America/Tegucigalpa -5:48:52 - LMT 1921 Ap +-6 HN C%sT +Z America/Thule -4:35:8 - LMT 1916 Jul 28 +-4 Th A%sT +Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 7u +-7 - MST 1924 +-8 - PST 1927 Jun 10 23 +-7 - MST 1930 N 15 +-8 - PST 1931 Ap +-8 1 PDT 1931 S 30 +-8 - PST 1942 Ap 24 +-8 1 PWT 1945 Au 14 23u +-8 1 PPT 1945 N 12 +-8 - PST 1948 Ap 5 +-8 1 PDT 1949 Ja 14 +-8 - PST 1954 +-8 CA P%sT 1961 +-8 - PST 1976 +-8 u P%sT 1996 +-8 m P%sT 2001 +-8 u P%sT 2002 F 20 +-8 m P%sT 2010 +-8 u P%sT +Z America/Toronto -5:17:32 - LMT 1895 +-5 C E%sT 1919 +-5 t E%sT 1942 F 9 2s +-5 C E%sT 1946 +-5 t E%sT 1974 +-5 C E%sT +Z America/Vancouver -8:12:28 - LMT 1884 +-8 Va P%sT 1987 +-8 C P%sT +Z America/Whitehorse -9:0:12 - LMT 1900 Au 20 +-9 Y Y%sT 1965 +-9 Yu Y%sT 1966 F 27 +-8 - PST 1980 +-8 C P%sT 2020 N +-7 - MST +Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16 +-6 W C%sT 2006 +-6 C C%sT +Z America/Yakutat 14:41:5 - LMT 1867 O 19 15:12:18 +-9:18:55 - LMT 1900 Au 20 12 +-9 - YST 1942 +-9 u Y%sT 1946 +-9 - YST 1969 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z Antarctica/Casey 0 - -00 1969 +8 - +08 2009 O 18 2 +11 - +11 2010 Mar 5 2 +8 - +08 2011 O 28 2 +11 - +11 2012 F 21 17u +8 - +08 2016 O 22 +11 - +11 2018 Mar 11 4 +8 - +08 2018 O 7 4 +11 - +11 2019 Mar 17 3 +8 - +08 2019 O 4 3 +11 - +11 2020 Mar 8 3 +8 - +08 2020 O 4 0:1 +11 - +11 2021 Mar 14 +8 - +08 2021 O 3 0:1 +11 - +11 2022 Mar 13 +8 - +08 2022 O 2 0:1 +11 - +11 2023 Mar 9 3 +8 - +08 +Z Antarctica/Davis 0 - -00 1957 Ja 13 +7 - +07 1964 N +0 - -00 1969 F +7 - +07 2009 O 18 2 +5 - +05 2010 Mar 10 20u +7 - +07 2011 O 28 2 +5 - +05 2012 F 21 20u +7 - +07 +Z Antarctica/Macquarie 0 - -00 1899 N +10 - AEST 1916 O 1 2 +10 1 AEDT 1917 F +10 AU AE%sT 1919 Ap 1 0s +0 - -00 1948 Mar 25 +10 AU AE%sT 1967 +10 AT AE%sT 2010 +10 1 AEDT 2011 +10 AT AE%sT +Z Antarctica/Mawson 0 - -00 1954 F 13 +6 - +06 2009 O 18 2 +5 - +05 +Z Antarctica/Palmer 0 - -00 1965 +-4 A -04/-03 1969 O 5 +-3 A -03/-02 1982 May +-4 x -04/-03 2016 D 4 +-3 - -03 +Z Antarctica/Rothera 0 - -00 1976 D +-3 - -03 +Z Antarctica/Troll 0 - -00 2005 F 12 +0 Tr %s +Z Antarctica/Vostok 0 - -00 1957 D 16 +7 - +07 1994 F +0 - -00 1994 N +7 - +07 2023 D 18 2 +5 - +05 +Z Asia/Almaty 5:7:48 - LMT 1924 May 2 +5 - +05 1930 Jun 21 +6 R +06/+07 1991 Mar 31 2s +5 R +05/+06 1992 Ja 19 2s +6 R +06/+07 2004 O 31 2s +6 - +06 2024 Mar +5 - +05 +Z Asia/Amman 2:23:44 - LMT 1931 +2 J EE%sT 2022 O 28 0s +3 - +03 +Z Asia/Anadyr 11:49:56 - LMT 1924 May 2 +12 - +12 1930 Jun 21 +13 R +13/+14 1982 Ap 1 0s +12 R +12/+13 1991 Mar 31 2s +11 R +11/+12 1992 Ja 19 2s +12 R +12/+13 2010 Mar 28 2s +11 R +11/+12 2011 Mar 27 2s +12 - +12 +Z Asia/Aqtau 3:21:4 - LMT 1924 May 2 +4 - +04 1930 Jun 21 +5 - +05 1981 O +6 - +06 1982 Ap +5 R +05/+06 1991 Mar 31 2s +4 R +04/+05 1992 Ja 19 2s +5 R +05/+06 1994 S 25 2s +4 R +04/+05 2004 O 31 2s +5 - +05 +Z Asia/Aqtobe 3:48:40 - LMT 1924 May 2 +4 - +04 1930 Jun 21 +5 - +05 1981 Ap +5 1 +06 1981 O +6 - +06 1982 Ap +5 R +05/+06 1991 Mar 31 2s +4 R +04/+05 1992 Ja 19 2s +5 R +05/+06 2004 O 31 2s +5 - +05 +Z Asia/Ashgabat 3:53:32 - LMT 1924 May 2 +4 - +04 1930 Jun 21 +5 R +05/+06 1991 Mar 31 2 +4 R +04/+05 1992 Ja 19 2 +5 - +05 +Z Asia/Atyrau 3:27:44 - LMT 1924 May 2 +3 - +03 1930 Jun 21 +5 - +05 1981 O +6 - +06 1982 Ap +5 R +05/+06 1991 Mar 31 2s +4 R +04/+05 1992 Ja 19 2s +5 R +05/+06 1999 Mar 28 2s +4 R +04/+05 2004 O 31 2s +5 - +05 +Z Asia/Baghdad 2:57:40 - LMT 1890 +2:57:36 - BMT 1918 +3 - +03 1982 May +3 IQ +03/+04 +Z Asia/Baku 3:19:24 - LMT 1924 May 2 +3 - +03 1957 Mar +4 R +04/+05 1991 Mar 31 2s +3 R +03/+04 1992 S lastSu 2s +4 - +04 1996 +4 E +04/+05 1997 +4 AZ +04/+05 +Z Asia/Bangkok 6:42:4 - LMT 1880 +6:42:4 - BMT 1920 Ap +7 - +07 +Z Asia/Barnaul 5:35 - LMT 1919 D 10 +6 - +06 1930 Jun 21 +7 R +07/+08 1991 Mar 31 2s +6 R +06/+07 1992 Ja 19 2s +7 R +07/+08 1995 May 28 +6 R +06/+07 2011 Mar 27 2s +7 - +07 2014 O 26 2s +6 - +06 2016 Mar 27 2s +7 - +07 +Z Asia/Beirut 2:22 - LMT 1880 +2 l EE%sT +Z Asia/Bishkek 4:58:24 - LMT 1924 May 2 +5 - +05 1930 Jun 21 +6 R +06/+07 1991 Mar 31 2s +5 R +05/+06 1991 Au 31 2 +5 KG +05/+06 2005 Au 12 +6 - +06 +Z Asia/Chita 7:33:52 - LMT 1919 D 15 +8 - +08 1930 Jun 21 +9 R +09/+10 1991 Mar 31 2s +8 R +08/+09 1992 Ja 19 2s +9 R +09/+10 2011 Mar 27 2s +10 - +10 2014 O 26 2s +8 - +08 2016 Mar 27 2 +9 - +09 +Z Asia/Choibalsan 7:38 - LMT 1905 Au +7 - +07 1978 +8 - +08 1983 Ap +9 X +09/+10 2008 Mar 31 +8 X +08/+09 +Z Asia/Colombo 5:19:24 - LMT 1880 +5:19:32 - MMT 1906 +5:30 - +0530 1942 Ja 5 +5:30 0:30 +06 1942 S +5:30 1 +0630 1945 O 16 2 +5:30 - +0530 1996 May 25 +6:30 - +0630 1996 O 26 0:30 +6 - +06 2006 Ap 15 0:30 +5:30 - +0530 +Z Asia/Damascus 2:25:12 - LMT 1920 +2 S EE%sT 2022 O 28 +3 - +03 +Z Asia/Dhaka 6:1:40 - LMT 1890 +5:53:20 - HMT 1941 O +6:30 - +0630 1942 May 15 +5:30 - +0530 1942 S +6:30 - +0630 1951 S 30 +6 - +06 2009 +6 BD +06/+07 +Z Asia/Dili 8:22:20 - LMT 1912 +8 - +08 1942 F 21 23 +9 - +09 1976 May 3 +8 - +08 2000 S 17 +9 - +09 +Z Asia/Dubai 3:41:12 - LMT 1920 +4 - +04 +Z Asia/Dushanbe 4:35:12 - LMT 1924 May 2 +5 - +05 1930 Jun 21 +6 R +06/+07 1991 Mar 31 2s +5 1 +06 1991 S 9 2s +5 - +05 +Z Asia/Famagusta 2:15:48 - LMT 1921 N 14 +2 CY EE%sT 1998 S +2 E EE%sT 2016 S 8 +3 - +03 2017 O 29 1u +2 E EE%sT +Z Asia/Gaza 2:17:52 - LMT 1900 O +2 Z EET/EEST 1948 May 15 +2 K EE%sT 1967 Jun 5 +2 Z I%sT 1996 +2 J EE%sT 1999 +2 P EE%sT 2008 Au 29 +2 - EET 2008 S +2 P EE%sT 2010 +2 - EET 2010 Mar 27 0:1 +2 P EE%sT 2011 Au +2 - EET 2012 +2 P EE%sT +Z Asia/Hebron 2:20:23 - LMT 1900 O +2 Z EET/EEST 1948 May 15 +2 K EE%sT 1967 Jun 5 +2 Z I%sT 1996 +2 J EE%sT 1999 +2 P EE%sT +Z Asia/Ho_Chi_Minh 7:6:30 - LMT 1906 Jul +7:6:30 - PLMT 1911 May +7 - +07 1942 D 31 23 +8 - +08 1945 Mar 14 23 +9 - +09 1945 S 1 24 +7 - +07 1947 Ap +8 - +08 1955 Jul 1 1 +7 - +07 1959 D 31 23 +8 - +08 1975 Jun 13 +7 - +07 +Z Asia/Hong_Kong 7:36:42 - LMT 1904 O 29 17u +8 - HKT 1941 Jun 15 3 +8 1 HKST 1941 O 1 4 +8 0:30 HKWT 1941 D 25 +9 - JST 1945 N 18 2 +8 HK HK%sT +Z Asia/Hovd 6:6:36 - LMT 1905 Au +6 - +06 1978 +7 X +07/+08 +Z Asia/Irkutsk 6:57:5 - LMT 1880 +6:57:5 - IMT 1920 Ja 25 +7 - +07 1930 Jun 21 +8 R +08/+09 1991 Mar 31 2s +7 R +07/+08 1992 Ja 19 2s +8 R +08/+09 2011 Mar 27 2s +9 - +09 2014 O 26 2s +8 - +08 +Z Asia/Jakarta 7:7:12 - LMT 1867 Au 10 +7:7:12 - BMT 1923 D 31 16:40u +7:20 - +0720 1932 N +7:30 - +0730 1942 Mar 23 +9 - +09 1945 S 23 +7:30 - +0730 1948 May +8 - +08 1950 May +7:30 - +0730 1964 +7 - WIB +Z Asia/Jayapura 9:22:48 - LMT 1932 N +9 - +09 1944 S +9:30 - +0930 1964 +9 - WIT +Z Asia/Jerusalem 2:20:54 - LMT 1880 +2:20:40 - JMT 1918 +2 Z I%sT +Z Asia/Kabul 4:36:48 - LMT 1890 +4 - +04 1945 +4:30 - +0430 +Z Asia/Kamchatka 10:34:36 - LMT 1922 N 10 +11 - +11 1930 Jun 21 +12 R +12/+13 1991 Mar 31 2s +11 R +11/+12 1992 Ja 19 2s +12 R +12/+13 2010 Mar 28 2s +11 R +11/+12 2011 Mar 27 2s +12 - +12 +Z Asia/Karachi 4:28:12 - LMT 1907 +5:30 - +0530 1942 S +5:30 1 +0630 1945 O 15 +5:30 - +0530 1951 S 30 +5 - +05 1971 Mar 26 +5 PK PK%sT +Z Asia/Kathmandu 5:41:16 - LMT 1920 +5:30 - +0530 1986 +5:45 - +0545 +Z Asia/Khandyga 9:2:13 - LMT 1919 D 15 +8 - +08 1930 Jun 21 +9 R +09/+10 1991 Mar 31 2s +8 R +08/+09 1992 Ja 19 2s +9 R +09/+10 2004 +10 R +10/+11 2011 Mar 27 2s +11 - +11 2011 S 13 0s +10 - +10 2014 O 26 2s +9 - +09 +Z Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 +5:53:20 - HMT 1870 +5:21:10 - MMT 1906 +5:30 - IST 1941 O +5:30 1 +0630 1942 May 15 +5:30 - IST 1942 S +5:30 1 +0630 1945 O 15 +5:30 - IST +Z Asia/Krasnoyarsk 6:11:26 - LMT 1920 Ja 6 +6 - +06 1930 Jun 21 +7 R +07/+08 1991 Mar 31 2s +6 R +06/+07 1992 Ja 19 2s +7 R +07/+08 2011 Mar 27 2s +8 - +08 2014 O 26 2s +7 - +07 +Z Asia/Kuching 7:21:20 - LMT 1926 Mar +7:30 - +0730 1933 +8 NB +08/+0820 1942 F 16 +9 - +09 1945 S 12 +8 - +08 +Z Asia/Macau 7:34:10 - LMT 1904 O 30 +8 - CST 1941 D 21 23 +9 _ +09/+10 1945 S 30 24 +8 _ C%sT +Z Asia/Magadan 10:3:12 - LMT 1924 May 2 +10 - +10 1930 Jun 21 +11 R +11/+12 1991 Mar 31 2s +10 R +10/+11 1992 Ja 19 2s +11 R +11/+12 2011 Mar 27 2s +12 - +12 2014 O 26 2s +10 - +10 2016 Ap 24 2s +11 - +11 +Z Asia/Makassar 7:57:36 - LMT 1920 +7:57:36 - MMT 1932 N +8 - +08 1942 F 9 +9 - +09 1945 S 23 +8 - WITA +Z Asia/Manila -15:56 - LMT 1844 D 31 +8:4 - LMT 1899 May 11 +8 PH P%sT 1942 May +9 - JST 1944 N +8 PH P%sT +Z Asia/Nicosia 2:13:28 - LMT 1921 N 14 +2 CY EE%sT 1998 S +2 E EE%sT +Z Asia/Novokuznetsk 5:48:48 - LMT 1924 May +6 - +06 1930 Jun 21 +7 R +07/+08 1991 Mar 31 2s +6 R +06/+07 1992 Ja 19 2s +7 R +07/+08 2010 Mar 28 2s +6 R +06/+07 2011 Mar 27 2s +7 - +07 +Z Asia/Novosibirsk 5:31:40 - LMT 1919 D 14 6 +6 - +06 1930 Jun 21 +7 R +07/+08 1991 Mar 31 2s +6 R +06/+07 1992 Ja 19 2s +7 R +07/+08 1993 May 23 +6 R +06/+07 2011 Mar 27 2s +7 - +07 2014 O 26 2s +6 - +06 2016 Jul 24 2s +7 - +07 +Z Asia/Omsk 4:53:30 - LMT 1919 N 14 +5 - +05 1930 Jun 21 +6 R +06/+07 1991 Mar 31 2s +5 R +05/+06 1992 Ja 19 2s +6 R +06/+07 2011 Mar 27 2s +7 - +07 2014 O 26 2s +6 - +06 +Z Asia/Oral 3:25:24 - LMT 1924 May 2 +3 - +03 1930 Jun 21 +5 - +05 1981 Ap +5 1 +06 1981 O +6 - +06 1982 Ap +5 R +05/+06 1989 Mar 26 2s +4 R +04/+05 1992 Ja 19 2s +5 R +05/+06 1992 Mar 29 2s +4 R +04/+05 2004 O 31 2s +5 - +05 +Z Asia/Pontianak 7:17:20 - LMT 1908 May +7:17:20 - PMT 1932 N +7:30 - +0730 1942 Ja 29 +9 - +09 1945 S 23 +7:30 - +0730 1948 May +8 - +08 1950 May +7:30 - +0730 1964 +8 - WITA 1988 +7 - WIB +Z Asia/Pyongyang 8:23 - LMT 1908 Ap +8:30 - KST 1912 +9 - JST 1945 Au 24 +9 - KST 2015 Au 15 +8:30 - KST 2018 May 4 23:30 +9 - KST +Z Asia/Qatar 3:26:8 - LMT 1920 +4 - +04 1972 Jun +3 - +03 +Z Asia/Qostanay 4:14:28 - LMT 1924 May 2 +4 - +04 1930 Jun 21 +5 - +05 1981 Ap +5 1 +06 1981 O +6 - +06 1982 Ap +5 R +05/+06 1991 Mar 31 2s +4 R +04/+05 1992 Ja 19 2s +5 R +05/+06 2004 O 31 2s +6 - +06 2024 Mar +5 - +05 +Z Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 +4 - +04 1930 Jun 21 +5 - +05 1981 Ap +5 1 +06 1981 O +6 - +06 1982 Ap +5 R +05/+06 1991 Mar 31 2s +4 R +04/+05 1991 S 29 2s +5 R +05/+06 1992 Ja 19 2s +6 R +06/+07 1992 Mar 29 2s +5 R +05/+06 2004 O 31 2s +6 - +06 2018 D 21 +5 - +05 +Z Asia/Riyadh 3:6:52 - LMT 1947 Mar 14 +3 - +03 +Z Asia/Sakhalin 9:30:48 - LMT 1905 Au 23 +9 - +09 1945 Au 25 +11 R +11/+12 1991 Mar 31 2s +10 R +10/+11 1992 Ja 19 2s +11 R +11/+12 1997 Mar lastSu 2s +10 R +10/+11 2011 Mar 27 2s +11 - +11 2014 O 26 2s +10 - +10 2016 Mar 27 2s +11 - +11 +Z Asia/Samarkand 4:27:53 - LMT 1924 May 2 +4 - +04 1930 Jun 21 +5 - +05 1981 Ap +5 1 +06 1981 O +6 - +06 1982 Ap +5 R +05/+06 1992 +5 - +05 +Z Asia/Seoul 8:27:52 - LMT 1908 Ap +8:30 - KST 1912 +9 - JST 1945 S 8 +9 KR K%sT 1954 Mar 21 +8:30 KR K%sT 1961 Au 10 +9 KR K%sT +Z Asia/Shanghai 8:5:43 - LMT 1901 +8 Sh C%sT 1949 May 28 +8 CN C%sT +Z Asia/Singapore 6:55:25 - LMT 1901 +6:55:25 - SMT 1905 Jun +7 - +07 1933 +7 0:20 +0720 1936 +7:20 - +0720 1941 S +7:30 - +0730 1942 F 16 +9 - +09 1945 S 12 +7:30 - +0730 1981 D 31 16u +8 - +08 +Z Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 +10 - +10 1930 Jun 21 +11 R +11/+12 1991 Mar 31 2s +10 R +10/+11 1992 Ja 19 2s +11 R +11/+12 2011 Mar 27 2s +12 - +12 2014 O 26 2s +11 - +11 +Z Asia/Taipei 8:6 - LMT 1896 +8 - CST 1937 O +9 - JST 1945 S 21 1 +8 f C%sT +Z Asia/Tashkent 4:37:11 - LMT 1924 May 2 +5 - +05 1930 Jun 21 +6 R +06/+07 1991 Mar 31 2 +5 R +05/+06 1992 +5 - +05 +Z Asia/Tbilisi 2:59:11 - LMT 1880 +2:59:11 - TBMT 1924 May 2 +3 - +03 1957 Mar +4 R +04/+05 1991 Mar 31 2s +3 R +03/+04 1992 +3 e +03/+04 1994 S lastSu +4 e +04/+05 1996 O lastSu +4 1 +05 1997 Mar lastSu +4 e +04/+05 2004 Jun 27 +3 R +03/+04 2005 Mar lastSu 2 +4 - +04 +Z Asia/Tehran 3:25:44 - LMT 1916 +3:25:44 - TMT 1935 Jun 13 +3:30 i +0330/+0430 1977 O 20 24 +4 i +04/+05 1979 +3:30 i +0330/+0430 +Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15 +5:30 - +0530 1987 O +6 - +06 +Z Asia/Tokyo 9:18:59 - LMT 1887 D 31 15u +9 JP J%sT +Z Asia/Tomsk 5:39:51 - LMT 1919 D 22 +6 - +06 1930 Jun 21 +7 R +07/+08 1991 Mar 31 2s +6 R +06/+07 1992 Ja 19 2s +7 R +07/+08 2002 May 1 3 +6 R +06/+07 2011 Mar 27 2s +7 - +07 2014 O 26 2s +6 - +06 2016 May 29 2s +7 - +07 +Z Asia/Ulaanbaatar 7:7:32 - LMT 1905 Au +7 - +07 1978 +8 X +08/+09 +Z Asia/Urumqi 5:50:20 - LMT 1928 +6 - +06 +Z Asia/Ust-Nera 9:32:54 - LMT 1919 D 15 +8 - +08 1930 Jun 21 +9 R +09/+10 1981 Ap +11 R +11/+12 1991 Mar 31 2s +10 R +10/+11 1992 Ja 19 2s +11 R +11/+12 2011 Mar 27 2s +12 - +12 2011 S 13 0s +11 - +11 2014 O 26 2s +10 - +10 +Z Asia/Vladivostok 8:47:31 - LMT 1922 N 15 +9 - +09 1930 Jun 21 +10 R +10/+11 1991 Mar 31 2s +9 R +09/+10 1992 Ja 19 2s +10 R +10/+11 2011 Mar 27 2s +11 - +11 2014 O 26 2s +10 - +10 +Z Asia/Yakutsk 8:38:58 - LMT 1919 D 15 +8 - +08 1930 Jun 21 +9 R +09/+10 1991 Mar 31 2s +8 R +08/+09 1992 Ja 19 2s +9 R +09/+10 2011 Mar 27 2s +10 - +10 2014 O 26 2s +9 - +09 +Z Asia/Yangon 6:24:47 - LMT 1880 +6:24:47 - RMT 1920 +6:30 - +0630 1942 May +9 - +09 1945 May 3 +6:30 - +0630 +Z Asia/Yekaterinburg 4:2:33 - LMT 1916 Jul 3 +3:45:5 - PMT 1919 Jul 15 4 +4 - +04 1930 Jun 21 +5 R +05/+06 1991 Mar 31 2s +4 R +04/+05 1992 Ja 19 2s +5 R +05/+06 2011 Mar 27 2s +6 - +06 2014 O 26 2s +5 - +05 +Z Asia/Yerevan 2:58 - LMT 1924 May 2 +3 - +03 1957 Mar +4 R +04/+05 1991 Mar 31 2s +3 R +03/+04 1995 S 24 2s +4 - +04 1997 +4 R +04/+05 2011 +4 AM +04/+05 +Z Atlantic/Azores -1:42:40 - LMT 1884 +-1:54:32 - HMT 1912 Ja 1 2u +-2 p -02/-01 1942 Ap 25 22s +-2 p +00 1942 Au 15 22s +-2 p -02/-01 1943 Ap 17 22s +-2 p +00 1943 Au 28 22s +-2 p -02/-01 1944 Ap 22 22s +-2 p +00 1944 Au 26 22s +-2 p -02/-01 1945 Ap 21 22s +-2 p +00 1945 Au 25 22s +-2 p -02/-01 1966 Ap 3 2 +-1 p -01/+00 1983 S 25 1s +-1 W- -01/+00 1992 S 27 1s +0 E WE%sT 1993 Mar 28 1u +-1 E -01/+00 +Z Atlantic/Bermuda -4:19:18 - LMT 1890 +-4:19:18 Be BMT/BST 1930 Ja 1 2 +-4 Be A%sT 1974 Ap 28 2 +-4 C A%sT 1976 +-4 u A%sT +Z Atlantic/Canary -1:1:36 - LMT 1922 Mar +-1 - -01 1946 S 30 1 +0 - WET 1980 Ap 6 0s +0 1 WEST 1980 S 28 1u +0 E WE%sT +Z Atlantic/Cape_Verde -1:34:4 - LMT 1912 Ja 1 2u +-2 - -02 1942 S +-2 1 -01 1945 O 15 +-2 - -02 1975 N 25 2 +-1 - -01 +Z Atlantic/Faroe -0:27:4 - LMT 1908 Ja 11 +0 - WET 1981 +0 E WE%sT +Z Atlantic/Madeira -1:7:36 - LMT 1884 +-1:7:36 - FMT 1912 Ja 1 1u +-1 p -01/+00 1942 Ap 25 22s +-1 p +01 1942 Au 15 22s +-1 p -01/+00 1943 Ap 17 22s +-1 p +01 1943 Au 28 22s +-1 p -01/+00 1944 Ap 22 22s +-1 p +01 1944 Au 26 22s +-1 p -01/+00 1945 Ap 21 22s +-1 p +01 1945 Au 25 22s +-1 p -01/+00 1966 Ap 3 2 +0 p WE%sT 1983 S 25 1s +0 E WE%sT +Z Atlantic/South_Georgia -2:26:8 - LMT 1890 +-2 - -02 +Z Atlantic/Stanley -3:51:24 - LMT 1890 +-3:51:24 - SMT 1912 Mar 12 +-4 FK -04/-03 1983 May +-3 FK -03/-02 1985 S 15 +-4 FK -04/-03 2010 S 5 2 +-3 - -03 +Z Australia/Adelaide 9:14:20 - LMT 1895 F +9 - ACST 1899 May +9:30 AU AC%sT 1971 +9:30 AS AC%sT +Z Australia/Brisbane 10:12:8 - LMT 1895 +10 AU AE%sT 1971 +10 AQ AE%sT +Z Australia/Broken_Hill 9:25:48 - LMT 1895 F +10 - AEST 1896 Au 23 +9 - ACST 1899 May +9:30 AU AC%sT 1971 +9:30 AN AC%sT 2000 +9:30 AS AC%sT +Z Australia/Darwin 8:43:20 - LMT 1895 F +9 - ACST 1899 May +9:30 AU AC%sT +Z Australia/Eucla 8:35:28 - LMT 1895 D +8:45 AU +0845/+0945 1943 Jul +8:45 AW +0845/+0945 +Z Australia/Hobart 9:49:16 - LMT 1895 S +10 AT AE%sT 1919 O 24 +10 AU AE%sT 1967 +10 AT AE%sT +Z Australia/Lindeman 9:55:56 - LMT 1895 +10 AU AE%sT 1971 +10 AQ AE%sT 1992 Jul +10 Ho AE%sT +Z Australia/Lord_Howe 10:36:20 - LMT 1895 F +10 - AEST 1981 Mar +10:30 LH +1030/+1130 1985 Jul +10:30 LH +1030/+11 +Z Australia/Melbourne 9:39:52 - LMT 1895 F +10 AU AE%sT 1971 +10 AV AE%sT +Z Australia/Perth 7:43:24 - LMT 1895 D +8 AU AW%sT 1943 Jul +8 AW AW%sT +Z Australia/Sydney 10:4:52 - LMT 1895 F +10 AU AE%sT 1971 +10 AN AE%sT +Z CET 1 c CE%sT +Z CST6CDT -6 u C%sT +Z EET 2 E EE%sT +Z EST -5 - EST +Z EST5EDT -5 u E%sT Z Etc/GMT 0 - GMT -L Etc/GMT GMT -Z Etc/GMT-14 14 - +14 -Z Etc/GMT-13 13 - +13 -Z Etc/GMT-12 12 - +12 -Z Etc/GMT-11 11 - +11 -Z Etc/GMT-10 10 - +10 -Z Etc/GMT-9 9 - +09 -Z Etc/GMT-8 8 - +08 -Z Etc/GMT-7 7 - +07 -Z Etc/GMT-6 6 - +06 -Z Etc/GMT-5 5 - +05 -Z Etc/GMT-4 4 - +04 -Z Etc/GMT-3 3 - +03 -Z Etc/GMT-2 2 - +02 -Z Etc/GMT-1 1 - +01 Z Etc/GMT+1 -1 - -01 +Z Etc/GMT+10 -10 - -10 +Z Etc/GMT+11 -11 - -11 +Z Etc/GMT+12 -12 - -12 Z Etc/GMT+2 -2 - -02 Z Etc/GMT+3 -3 - -03 Z Etc/GMT+4 -4 - -04 @@ -4034,10 +3591,463 @@ Z Etc/GMT+6 -6 - -06 Z Etc/GMT+7 -7 - -07 Z Etc/GMT+8 -8 - -08 Z Etc/GMT+9 -9 - -09 -Z Etc/GMT+10 -10 - -10 -Z Etc/GMT+11 -11 - -11 -Z Etc/GMT+12 -12 - -12 +Z Etc/GMT-1 1 - +01 +Z Etc/GMT-10 10 - +10 +Z Etc/GMT-11 11 - +11 +Z Etc/GMT-12 12 - +12 +Z Etc/GMT-13 13 - +13 +Z Etc/GMT-14 14 - +14 +Z Etc/GMT-2 2 - +02 +Z Etc/GMT-3 3 - +03 +Z Etc/GMT-4 4 - +04 +Z Etc/GMT-5 5 - +05 +Z Etc/GMT-6 6 - +06 +Z Etc/GMT-7 7 - +07 +Z Etc/GMT-8 8 - +08 +Z Etc/GMT-9 9 - +09 +Z Etc/UTC 0 - UTC +Z Europe/Andorra 0:6:4 - LMT 1901 +0 - WET 1946 S 30 +1 - CET 1985 Mar 31 2 +1 E CE%sT +Z Europe/Astrakhan 3:12:12 - LMT 1924 May +3 - +03 1930 Jun 21 +4 R +04/+05 1989 Mar 26 2s +3 R +03/+04 1991 Mar 31 2s +4 - +04 1992 Mar 29 2s +3 R +03/+04 2011 Mar 27 2s +4 - +04 2014 O 26 2s +3 - +03 2016 Mar 27 2s +4 - +04 +Z Europe/Athens 1:34:52 - LMT 1895 S 14 +1:34:52 - AMT 1916 Jul 28 0:1 +2 g EE%sT 1941 Ap 30 +1 g CE%sT 1944 Ap 4 +2 g EE%sT 1981 +2 E EE%sT +Z Europe/Belgrade 1:22 - LMT 1884 +1 - CET 1941 Ap 18 23 +1 c CE%sT 1945 +1 - CET 1945 May 8 2s +1 1 CEST 1945 S 16 2s +1 - CET 1982 N 27 +1 E CE%sT +Z Europe/Berlin 0:53:28 - LMT 1893 Ap +1 c CE%sT 1945 May 24 2 +1 So CE%sT 1946 +1 DE CE%sT 1980 +1 E CE%sT +Z Europe/Brussels 0:17:30 - LMT 1880 +0:17:30 - BMT 1892 May 1 0:17:30 +0 - WET 1914 N 8 +1 - CET 1916 May +1 c CE%sT 1918 N 11 11u +0 b WE%sT 1940 May 20 2s +1 c CE%sT 1944 S 3 +1 b CE%sT 1977 +1 E CE%sT +Z Europe/Bucharest 1:44:24 - LMT 1891 O +1:44:24 - BMT 1931 Jul 24 +2 z EE%sT 1981 Mar 29 2s +2 c EE%sT 1991 +2 z EE%sT 1994 +2 e EE%sT 1997 +2 E EE%sT +Z Europe/Budapest 1:16:20 - LMT 1890 N +1 c CE%sT 1918 +1 h CE%sT 1941 Ap 7 23 +1 c CE%sT 1945 +1 h CE%sT 1984 +1 E CE%sT +Z Europe/Chisinau 1:55:20 - LMT 1880 +1:55 - CMT 1918 F 15 +1:44:24 - BMT 1931 Jul 24 +2 z EE%sT 1940 Au 15 +2 1 EEST 1941 Jul 17 +1 c CE%sT 1944 Au 24 +3 R MSK/MSD 1990 May 6 2 +2 R EE%sT 1992 +2 e EE%sT 1997 +2 MD EE%sT +Z Europe/Dublin -0:25:21 - LMT 1880 Au 2 +-0:25:21 - DMT 1916 May 21 2s +-0:25:21 1 IST 1916 O 1 2s +0 G %s 1921 D 6 +0 G GMT/IST 1940 F 25 2s +0 1 IST 1946 O 6 2s +0 - GMT 1947 Mar 16 2s +0 1 IST 1947 N 2 2s +0 - GMT 1948 Ap 18 2s +0 G GMT/IST 1968 O 27 +1 IE IST/GMT +Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 +0 G %s 1957 Ap 14 2 +1 - CET 1982 +1 E CE%sT +Z Europe/Helsinki 1:39:49 - LMT 1878 May 31 +1:39:49 - HMT 1921 May +2 FI EE%sT 1983 +2 E EE%sT +Z Europe/Istanbul 1:55:52 - LMT 1880 +1:56:56 - IMT 1910 O +2 T EE%sT 1978 Jun 29 +3 T +03/+04 1984 N 1 2 +2 T EE%sT 2007 +2 E EE%sT 2011 Mar 27 1u +2 - EET 2011 Mar 28 1u +2 E EE%sT 2014 Mar 30 1u +2 - EET 2014 Mar 31 1u +2 E EE%sT 2015 O 25 1u +2 1 EEST 2015 N 8 1u +2 E EE%sT 2016 S 7 +3 - +03 +Z Europe/Kaliningrad 1:22 - LMT 1893 Ap +1 c CE%sT 1945 Ap 10 +2 O EE%sT 1946 Ap 7 +3 R MSK/MSD 1989 Mar 26 2s +2 R EE%sT 2011 Mar 27 2s +3 - +03 2014 O 26 2s +2 - EET +Z Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0u +3 - +03 1930 Jun 21 +4 R +04/+05 1989 Mar 26 2s +3 R MSK/MSD 1991 Mar 31 2s +4 - +04 1992 Mar 29 2s +3 R MSK/MSD 2011 Mar 27 2s +4 - MSK 2014 O 26 2s +3 - MSK +Z Europe/Kyiv 2:2:4 - LMT 1880 +2:2:4 - KMT 1924 May 2 +2 - EET 1930 Jun 21 +3 - MSK 1941 S 20 +1 c CE%sT 1943 N 6 +3 R MSK/MSD 1990 Jul 1 2 +2 1 EEST 1991 S 29 3 +2 c EE%sT 1996 May 13 +2 E EE%sT +Z Europe/Lisbon -0:36:45 - LMT 1884 +-0:36:45 - LMT 1912 Ja 1 0u +0 p WE%sT 1966 Ap 3 2 +1 - CET 1976 S 26 1 +0 p WE%sT 1983 S 25 1s +0 W- WE%sT 1992 S 27 1s +1 E CE%sT 1996 Mar 31 1u +0 E WE%sT +Z Europe/London -0:1:15 - LMT 1847 D +0 G %s 1968 O 27 +1 - BST 1971 O 31 2u +0 G %s 1996 +0 E GMT/BST +Z Europe/Madrid -0:14:44 - LMT 1901 Ja 1 0u +0 s WE%sT 1940 Mar 16 23 +1 s CE%sT 1979 +1 E CE%sT +Z Europe/Malta 0:58:4 - LMT 1893 N 2 +1 I CE%sT 1973 Mar 31 +1 MT CE%sT 1981 +1 E CE%sT +Z Europe/Minsk 1:50:16 - LMT 1880 +1:50 - MMT 1924 May 2 +2 - EET 1930 Jun 21 +3 - MSK 1941 Jun 28 +1 c CE%sT 1944 Jul 3 +3 R MSK/MSD 1990 +3 - MSK 1991 Mar 31 2s +2 R EE%sT 2011 Mar 27 2s +3 - +03 +Z Europe/Moscow 2:30:17 - LMT 1880 +2:30:17 - MMT 1916 Jul 3 +2:31:19 R %s 1919 Jul 1 0u +3 R %s 1921 O +3 R MSK/MSD 1922 O +2 - EET 1930 Jun 21 +3 R MSK/MSD 1991 Mar 31 2s +2 R EE%sT 1992 Ja 19 2s +3 R MSK/MSD 2011 Mar 27 2s +4 - MSK 2014 O 26 2s +3 - MSK +Z Europe/Paris 0:9:21 - LMT 1891 Mar 16 +0:9:21 - PMT 1911 Mar 11 +0 F WE%sT 1940 Jun 14 23 +1 c CE%sT 1944 Au 25 +0 F WE%sT 1945 S 16 3 +1 F CE%sT 1977 +1 E CE%sT +Z Europe/Prague 0:57:44 - LMT 1850 +0:57:44 - PMT 1891 O +1 c CE%sT 1945 May 9 +1 CZ CE%sT 1946 D 1 3 +1 -1 GMT 1947 F 23 2 +1 CZ CE%sT 1979 +1 E CE%sT +Z Europe/Riga 1:36:34 - LMT 1880 +1:36:34 - RMT 1918 Ap 15 2 +1:36:34 1 LST 1918 S 16 3 +1:36:34 - RMT 1919 Ap 1 2 +1:36:34 1 LST 1919 May 22 3 +1:36:34 - RMT 1926 May 11 +2 - EET 1940 Au 5 +3 - MSK 1941 Jul +1 c CE%sT 1944 O 13 +3 R MSK/MSD 1989 Mar lastSu 2s +2 1 EEST 1989 S lastSu 2s +2 LV EE%sT 1997 Ja 21 +2 E EE%sT 2000 F 29 +2 - EET 2001 Ja 2 +2 E EE%sT +Z Europe/Rome 0:49:56 - LMT 1866 D 12 +0:49:56 - RMT 1893 O 31 23u +1 I CE%sT 1943 S 10 +1 c CE%sT 1944 Jun 4 +1 I CE%sT 1980 +1 E CE%sT +Z Europe/Samara 3:20:20 - LMT 1919 Jul 1 0u +3 - +03 1930 Jun 21 +4 - +04 1935 Ja 27 +4 R +04/+05 1989 Mar 26 2s +3 R +03/+04 1991 Mar 31 2s +2 R +02/+03 1991 S 29 2s +3 - +03 1991 O 20 3 +4 R +04/+05 2010 Mar 28 2s +3 R +03/+04 2011 Mar 27 2s +4 - +04 +Z Europe/Saratov 3:4:18 - LMT 1919 Jul 1 0u +3 - +03 1930 Jun 21 +4 R +04/+05 1988 Mar 27 2s +3 R +03/+04 1991 Mar 31 2s +4 - +04 1992 Mar 29 2s +3 R +03/+04 2011 Mar 27 2s +4 - +04 2014 O 26 2s +3 - +03 2016 D 4 2s +4 - +04 +Z Europe/Simferopol 2:16:24 - LMT 1880 +2:16 - SMT 1924 May 2 +2 - EET 1930 Jun 21 +3 - MSK 1941 N +1 c CE%sT 1944 Ap 13 +3 R MSK/MSD 1990 +3 - MSK 1990 Jul 1 2 +2 - EET 1992 Mar 20 +2 c EE%sT 1994 May +3 c MSK/MSD 1996 Mar 31 0s +3 1 MSD 1996 O 27 3s +3 - MSK 1997 Mar lastSu 1u +2 E EE%sT 2014 Mar 30 2 +4 - MSK 2014 O 26 2s +3 - MSK +Z Europe/Sofia 1:33:16 - LMT 1880 +1:56:56 - IMT 1894 N 30 +2 - EET 1942 N 2 3 +1 c CE%sT 1945 +1 - CET 1945 Ap 2 3 +2 - EET 1979 Mar 31 23 +2 BG EE%sT 1982 S 26 3 +2 c EE%sT 1991 +2 e EE%sT 1997 +2 E EE%sT +Z Europe/Tallinn 1:39 - LMT 1880 +1:39 - TMT 1918 F +1 c CE%sT 1919 Jul +1:39 - TMT 1921 May +2 - EET 1940 Au 6 +3 - MSK 1941 S 15 +1 c CE%sT 1944 S 22 +3 R MSK/MSD 1989 Mar 26 2s +2 1 EEST 1989 S 24 2s +2 c EE%sT 1998 S 22 +2 E EE%sT 1999 O 31 4 +2 - EET 2002 F 21 +2 E EE%sT +Z Europe/Tirane 1:19:20 - LMT 1914 +1 - CET 1940 Jun 16 +1 q CE%sT 1984 Jul +1 E CE%sT +Z Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0u +3 - +03 1930 Jun 21 +4 R +04/+05 1989 Mar 26 2s +3 R +03/+04 1991 Mar 31 2s +2 R +02/+03 1992 Ja 19 2s +3 R +03/+04 2011 Mar 27 2s +4 - +04 2014 O 26 2s +3 - +03 2016 Mar 27 2s +4 - +04 +Z Europe/Vienna 1:5:21 - LMT 1893 Ap +1 c CE%sT 1920 +1 a CE%sT 1940 Ap 1 2s +1 c CE%sT 1945 Ap 2 2s +1 1 CEST 1945 Ap 12 2s +1 - CET 1946 +1 a CE%sT 1981 +1 E CE%sT +Z Europe/Vilnius 1:41:16 - LMT 1880 +1:24 - WMT 1917 +1:35:36 - KMT 1919 O 10 +1 - CET 1920 Jul 12 +2 - EET 1920 O 9 +1 - CET 1940 Au 3 +3 - MSK 1941 Jun 24 +1 c CE%sT 1944 Au +3 R MSK/MSD 1989 Mar 26 2s +2 R EE%sT 1991 S 29 2s +2 c EE%sT 1998 +2 - EET 1998 Mar 29 1u +1 E CE%sT 1999 O 31 1u +2 - EET 2003 +2 E EE%sT +Z Europe/Volgograd 2:57:40 - LMT 1920 Ja 3 +3 - +03 1930 Jun 21 +4 - +04 1961 N 11 +4 R +04/+05 1988 Mar 27 2s +3 R MSK/MSD 1991 Mar 31 2s +4 - +04 1992 Mar 29 2s +3 R MSK/MSD 2011 Mar 27 2s +4 - MSK 2014 O 26 2s +3 - MSK 2018 O 28 2s +4 - +04 2020 D 27 2s +3 - MSK +Z Europe/Warsaw 1:24 - LMT 1880 +1:24 - WMT 1915 Au 5 +1 c CE%sT 1918 S 16 3 +2 O EE%sT 1922 Jun +1 O CE%sT 1940 Jun 23 2 +1 c CE%sT 1944 O +1 O CE%sT 1977 +1 W- CE%sT 1988 +1 E CE%sT +Z Europe/Zurich 0:34:8 - LMT 1853 Jul 16 +0:29:46 - BMT 1894 Jun +1 CH CE%sT 1981 +1 E CE%sT Z Factory 0 - -00 +Z HST -10 - HST +Z Indian/Chagos 4:49:40 - LMT 1907 +5 - +05 1996 +6 - +06 +Z Indian/Maldives 4:54 - LMT 1880 +4:54 - MMT 1960 +5 - +05 +Z Indian/Mauritius 3:50 - LMT 1907 +4 MU +04/+05 +Z MET 1 c ME%sT +Z MST -7 - MST +Z MST7MDT -7 u M%sT +Z PST8PDT -8 u P%sT +Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5 +-11:26:56 - LMT 1911 +-11:30 - -1130 1950 +-11 WS -11/-10 2011 D 29 24 +13 WS +13/+14 +Z Pacific/Auckland 11:39:4 - LMT 1868 N 2 +11:30 NZ NZ%sT 1946 +12 NZ NZ%sT +Z Pacific/Bougainville 10:22:16 - LMT 1880 +9:48:32 - PMMT 1895 +10 - +10 1942 Jul +9 - +09 1945 Au 21 +10 - +10 2014 D 28 2 +11 - +11 +Z Pacific/Chatham 12:13:48 - LMT 1868 N 2 +12:15 - +1215 1946 +12:45 k +1245/+1345 +Z Pacific/Easter -7:17:28 - LMT 1890 +-7:17:28 - EMT 1932 S +-7 x -07/-06 1982 Mar 14 3u +-6 x -06/-05 +Z Pacific/Efate 11:13:16 - LMT 1912 Ja 13 +11 VU +11/+12 +Z Pacific/Fakaofo -11:24:56 - LMT 1901 +-11 - -11 2011 D 30 +13 - +13 +Z Pacific/Fiji 11:55:44 - LMT 1915 O 26 +12 FJ +12/+13 +Z Pacific/Galapagos -5:58:24 - LMT 1931 +-5 - -05 1986 +-6 EC -06/-05 +Z Pacific/Gambier -8:59:48 - LMT 1912 O +-9 - -09 +Z Pacific/Guadalcanal 10:39:48 - LMT 1912 O +11 - +11 +Z Pacific/Guam -14:21 - LMT 1844 D 31 +9:39 - LMT 1901 +10 - GST 1941 D 10 +9 - +09 1944 Jul 31 +10 Gu G%sT 2000 D 23 +10 - ChST +Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12 +-10:30 - HST 1933 Ap 30 2 +-10:30 1 HDT 1933 May 21 12 +-10:30 u H%sT 1947 Jun 8 2 +-10 - HST +Z Pacific/Kanton 0 - -00 1937 Au 31 +-12 - -12 1979 O +-11 - -11 1994 D 31 +13 - +13 +Z Pacific/Kiritimati -10:29:20 - LMT 1901 +-10:40 - -1040 1979 O +-10 - -10 1994 D 31 +14 - +14 +Z Pacific/Kosrae -13:8:4 - LMT 1844 D 31 +10:51:56 - LMT 1901 +11 - +11 1914 O +9 - +09 1919 F +11 - +11 1937 +10 - +10 1941 Ap +9 - +09 1945 Au +11 - +11 1969 O +12 - +12 1999 +11 - +11 +Z Pacific/Kwajalein 11:9:20 - LMT 1901 +11 - +11 1937 +10 - +10 1941 Ap +9 - +09 1944 F 6 +11 - +11 1969 O +-12 - -12 1993 Au 20 24 +12 - +12 +Z Pacific/Marquesas -9:18 - LMT 1912 O +-9:30 - -0930 +Z Pacific/Nauru 11:7:40 - LMT 1921 Ja 15 +11:30 - +1130 1942 Au 29 +9 - +09 1945 S 8 +11:30 - +1130 1979 F 10 2 +12 - +12 +Z Pacific/Niue -11:19:40 - LMT 1952 O 16 +-11:20 - -1120 1964 Jul +-11 - -11 +Z Pacific/Norfolk 11:11:52 - LMT 1901 +11:12 - +1112 1951 +11:30 - +1130 1974 O 27 2s +11:30 1 +1230 1975 Mar 2 2s +11:30 - +1130 2015 O 4 2s +11 - +11 2019 Jul +11 AN +11/+12 +Z Pacific/Noumea 11:5:48 - LMT 1912 Ja 13 +11 NC +11/+12 +Z Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 +-11:22:48 - LMT 1911 +-11 - SST +Z Pacific/Palau -15:2:4 - LMT 1844 D 31 +8:57:56 - LMT 1901 +9 - +09 +Z Pacific/Pitcairn -8:40:20 - LMT 1901 +-8:30 - -0830 1998 Ap 27 +-8 - -08 +Z Pacific/Port_Moresby 9:48:40 - LMT 1880 +9:48:32 - PMMT 1895 +10 - +10 +Z Pacific/Rarotonga 13:20:56 - LMT 1899 D 26 +-10:39:4 - LMT 1952 O 16 +-10:30 - -1030 1978 N 12 +-10 CK -10/-0930 +Z Pacific/Tahiti -9:58:16 - LMT 1912 O +-10 - -10 +Z Pacific/Tarawa 11:32:4 - LMT 1901 +12 - +12 +Z Pacific/Tongatapu 12:19:12 - LMT 1945 S 10 +12:20 - +1220 1961 +13 - +13 1999 +13 TO +13/+14 +Z WET 0 E WE%sT +L Etc/GMT GMT L Australia/Sydney Australia/ACT L Australia/Lord_Howe Australia/LHI L Australia/Sydney Australia/NSW @@ -4185,7 +4195,6 @@ L America/Puerto_Rico America/Tortola L Pacific/Port_Moresby Antarctica/DumontDUrville L Pacific/Auckland Antarctica/McMurdo L Asia/Riyadh Antarctica/Syowa -L Asia/Urumqi Antarctica/Vostok L Europe/Berlin Arctic/Longyearbyen L Asia/Riyadh Asia/Aden L Asia/Qatar Asia/Bahrain diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 790f03b..a53239f 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -226,7 +226,6 @@ sub GenerateFiles HAVE_ATOMICS => 1, HAVE_ATOMIC_H => undef, HAVE_BACKTRACE_SYMBOLS => undef, - HAVE_BIO_GET_DATA => undef, HAVE_BIO_METH_NEW => undef, HAVE_CLOCK_GETTIME => undef, HAVE_COMPUTED_GOTO => undef, @@ -566,7 +565,6 @@ sub GenerateFiles || ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')) { $define{HAVE_ASN1_STRING_GET0_DATA} = 1; - $define{HAVE_BIO_GET_DATA} = 1; $define{HAVE_BIO_METH_NEW} = 1; $define{HAVE_HMAC_CTX_FREE} = 1; $define{HAVE_HMAC_CTX_NEW} = 1; diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 8c5b136..d030c48 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -2689,6 +2689,7 @@ TSQuerySign TSReadPointer TSTemplateInfo TSTernaryValue +TSTokenTypeItem TSTokenTypeStorage TSVector TSVectorBuildState |