From 918ec73ed222e303bac9d85e8619a9a1ef8b6fe8 Mon Sep 17 00:00:00 2001 From: hanlizhu <2399541971@qq.com> Date: Tue, 4 Jun 2024 21:45:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=90=AF=E6=9E=81=E8=87=B4RTTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../optimizer/commands/tablecmds.cpp | 9 -------- .../storage/access/ustore/knl_uredo.cpp | 22 +++++++++---------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/gausskernel/optimizer/commands/tablecmds.cpp b/src/gausskernel/optimizer/commands/tablecmds.cpp index 5a8530765..723f42ef3 100755 --- a/src/gausskernel/optimizer/commands/tablecmds.cpp +++ b/src/gausskernel/optimizer/commands/tablecmds.cpp @@ -2572,10 +2572,6 @@ ObjectAddress DefineRelation(CreateStmt* stmt, char relkind, Oid ownerId, Object ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UStore tables do not support compression."))); } - if (g_instance.attr.attr_storage.recovery_parse_workers > 1) { - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("UStore tables do not support extreme rto."))); - } ForbidToSetOptionsForRowTbl(stmt->options); ForbidToSetOptionsForUstoreTbl(stmt->options); } else { @@ -27194,11 +27190,6 @@ static void ExecUndoActionsPageForRelation(Relation rel) return; } - for (BlockNumber blkno = 0; blkno < srcHeapBlocks; blkno ++) { - ExecuteUndoActionsPageForPartition(rel, rel->rd_smgr, MAIN_FORKNUM, blkno, - blkno, ROLLBACK_OP_FOR_EXCHANGE_PARTITION); - } - RelationCloseSmgr(rel); } diff --git a/src/gausskernel/storage/access/ustore/knl_uredo.cpp b/src/gausskernel/storage/access/ustore/knl_uredo.cpp index 538baa0b5..6b0b1ac11 100644 --- a/src/gausskernel/storage/access/ustore/knl_uredo.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uredo.cpp @@ -163,7 +163,7 @@ static UndoRecPtr PrepareAndInsertUndoRecordForInsertRedo(XLogReaderState *recor errmsg(UNDOFORMAT("redo:undoptr=%lu, xid %lu, partoid=%u, spcoid=%u."), urecptr, xid, *partitionOid, targetNode.spcNode))); /* recover undo record */ - Assert(urecptr == xlundohdr->urecptr); + Assert(UNDO_PTR_GET_OFFSET(urecptr) == UNDO_PTR_GET_OFFSET(xlundohdr->urecptr)); undorec->SetOffset(xlrec->offnum); if (!skipInsert) { /* Insert the Undo record into the undo store */ @@ -259,7 +259,7 @@ static void PerformInsertRedoAction(XLogReaderState *record, const Buffer buf, c void UHeapXlogInsert(XLogReaderState *record) { - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; RelFileNode targetNode; BlockNumber blkno = InvalidBlockNumber; XLogRedoAction action; @@ -445,7 +445,7 @@ static void PerformDeleteRedoAction(XLogReaderState *record, UHeapTupleData *utu static void UHeapXlogDelete(XLogReaderState *record) { - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; UHeapTupleData utup; RelFileNode targetNode; BlockNumber blkno = InvalidBlockNumber; @@ -494,7 +494,7 @@ static void UHeapXlogFreezeTdSlot(XLogReaderState *record) XLogRecPtr lsn = record->EndRecPtr; XlUHeapFreezeTdSlot *xlrec = (XlUHeapFreezeTdSlot *)XLogRecGetData(record); int *frozenSlots = (int *)((char *)xlrec + SizeOfUHeapFreezeTDSlot); - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; Page page; XLogRedoAction action; RelFileNode rnode = ((RelFileNode) {0, 0, 0, -1}); @@ -556,7 +556,7 @@ static void UHeapXlogInvalidTdSlot(XLogReaderState *record) XLogRecPtr lsn = record->EndRecPtr; uint16 *nCompletedSlots = (uint16 *)XLogRecGetData(record); int *completedXactSlots = (int *)((char *)nCompletedSlots + sizeof(uint16)); - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; Page page; XLogRedoAction action; int slotNo = 0; @@ -707,7 +707,7 @@ static void PerformCleanRedoAction(XLogReaderState *record, RedoBufferInfo *buff static void UHeapXlogClean(XLogReaderState *record) { XlUHeapClean *xlrec = (XlUHeapClean *)XLogRecGetData(record); - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; Size freespace = 0; RelFileNode rnode = ((RelFileNode) {0, 0, 0, -1}); BlockNumber blkno = InvalidBlockNumber; @@ -1269,7 +1269,7 @@ static Size PerformUpdateNewRedoAction(XLogReaderState *record, UpdateRedoBuffer static void UHeapXlogUpdate(XLogReaderState *record) { XlUndoHeader *xlnewundohdr = NULL; - UpdateRedoBuffers buffers; + UpdateRedoBuffers buffers = { 0 }; RelFileNode rnode = {0}; BlockNumber oldblk = InvalidBlockNumber; BlockNumber newblk = InvalidBlockNumber; @@ -1480,7 +1480,7 @@ static UndoRecPtr PrepareAndInsertUndoRecordForMultiInsertRedo(XLogReaderState * * undo should be inserted at same location as it was during the * actual insert (DO operation). */ - Assert((*urecvec)[0]->Urp() == xlundohdr->urecptr); + Assert(UNDO_PTR_GET_OFFSET((*urecvec)[0]->Urp()) == UNDO_PTR_GET_OFFSET(xlundohdr->urecptr)); InsertPreparedUndo(urecvec, lsn); } @@ -1631,7 +1631,7 @@ static void UHeapXlogMultiInsert(XLogReaderState *record) { RelFileNode rnode; BlockNumber blkno = InvalidBlockNumber; - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; XlUHeapMultiInsert *xlrec = NULL; XLogRedoAction action = BLK_NOTFOUND; UHeapFreeOffsetRanges *ufreeOffsetRanges = NULL; @@ -1673,7 +1673,7 @@ static void UHeapXlogMultiInsert(XLogReaderState *record) static void UHeapXlogBaseShift(XLogReaderState *record) { - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; XLogRecPtr lsn = record->EndRecPtr; BlockNumber blkno = InvalidBlockNumber; URedoVerifyParams verifyParams; @@ -1700,7 +1700,7 @@ static void UHeapXlogBaseShift(XLogReaderState *record) static void UHeapXlogExtendTDSlot(XLogReaderState *record) { - RedoBufferInfo buffer; + RedoBufferInfo buffer = { 0 }; XLogRecPtr lsn = record->EndRecPtr; Page page; XLogRedoAction action = (XLogRedoAction)-1;