From 08f2a403fa9a052af38953959d5323fd048997b3 Mon Sep 17 00:00:00 2001 From: Xiao__Ma Date: Fri, 16 Apr 2021 21:07:28 +0800 Subject: [PATCH] upsert --- src/gausskernel/storage/access/redo/redo_heapam.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gausskernel/storage/access/redo/redo_heapam.cpp b/src/gausskernel/storage/access/redo/redo_heapam.cpp index d35b9af51..1ebbce476 100644 --- a/src/gausskernel/storage/access/redo/redo_heapam.cpp +++ b/src/gausskernel/storage/access/redo/redo_heapam.cpp @@ -259,7 +259,12 @@ void HeapXlogDeleteOperatorPage(RedoBufferInfo *buffer, void *recorddata, Transa htup->t_infomask &= ~(HEAP_XMAX_COMMITTED | HEAP_XMAX_INVALID | HEAP_XMAX_IS_MULTI | HEAP_IS_LOCKED | HEAP_MOVED); HeapTupleHeaderClearHotUpdated(htup); HeapTupleHeaderSetXmax(page, htup, recordxid); - HeapTupleHeaderSetCmax(htup, FirstCommandId, false); + if (!(xlrec->flags & XLH_DELETE_IS_SUPER)) { + HeapTupleHeaderSetXmax(page, htup, recordxid); + } else { + HeapTupleHeaderSetXmin(page, htup, FrozenTransactionId); + HeapTupleHeaderSetXmax(page, htup, FrozenTransactionId); + } /* Mark the page as a candidate for pruning */ PageSetPrunable(page, recordxid);