diff --git a/src/gausskernel/storage/access/ubtreepcr/ubtpcrinsert.cpp b/src/gausskernel/storage/access/ubtreepcr/ubtpcrinsert.cpp index e4bef828d1d74e1155b795a04d4ceaec0ab00bcc..16f6bba2fb1741d0805da4b51fabf984a215fa13 100644 --- a/src/gausskernel/storage/access/ubtreepcr/ubtpcrinsert.cpp +++ b/src/gausskernel/storage/access/ubtreepcr/ubtpcrinsert.cpp @@ -1816,6 +1816,8 @@ static Buffer UBTreePCRSplit(Relation rel, Buffer buf, Buffer cbuf, OffsetNumber /* copy other fields */ lopaque->last_delete_xid = oopaque->last_delete_xid; ropaque->last_delete_xid = oopaque->last_delete_xid; + lopaque->last_prune_xid = oopaque->last_prune_xid; + ropaque->last_prune_xid = oopaque->last_prune_xid; /* reset the active hint, update later */ lopaque->activeTupleCount = 0; ropaque->activeTupleCount = 0; diff --git a/src/include/access/nbtree.h b/src/include/access/nbtree.h index a480499b92854ce35cb7f0ecc20ad43d71f521fc..94d6fccf28ade77319d8d8b87d0414e78c127eee 100644 --- a/src/include/access/nbtree.h +++ b/src/include/access/nbtree.h @@ -124,6 +124,7 @@ typedef struct { TransactionId xact; /* next transaction id, if deleted */ TransactionId last_delete_xid; TransactionId last_commit_xid; + TransactionId last_prune_xid; uint8 td_count; uint16 activeTupleCount; uint32 flags; diff --git a/src/include/access/ubtreepcr.h b/src/include/access/ubtreepcr.h index 01f21d302053e2637f3350a5ab22ef70751b5b72..0be9575c8c097b056f9092d10e0a4d147601be23 100644 --- a/src/include/access/ubtreepcr.h +++ b/src/include/access/ubtreepcr.h @@ -74,7 +74,8 @@ typedef struct UBTreeItemIdData { lp_td_id : 8, lp_td_invalid : 1, lp_deleted : 1, - lp_aligned : 5; + lp_xmin_frozen : 1, + lp_aligned : 4; } UBTreeItemIdData; typedef UBTreeItemIdData* UBTreeItemId;