*
* knl_uam.cpp
* uheap page pruning
*
* Portions Copyright (c) 2020 Huawei Technologies Co.,Ltd.
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* src/gausskernel/storage/access/ustore/knl_uam.cpp
* --------------------------------------------------------------------------------
*/
#include "access/ustore/knl_uam.h"
bool UHeapFetchRowVersion(TidScanState *node, Relation relation, ItemPointer tid, Snapshot snapshot,
TupleTableSlot *slot)
{
Buffer buffer = InvalidBuffer;
UHeapTuple utuple = &node->tss_uhtup;
union {
UHeapDiskTupleData hdr;
char data[MaxPossibleUHeapTupleSize];
} tbuf;
utuple->disk_tuple = &tbuf.hdr;
ExecClearTuple(slot);
if (UHeapFetch(relation, snapshot, tid, utuple, &buffer, false, false,
&node->ss.ps.state->have_current_xact_date)) {
ExecStoreTuple(UHeapCopyTuple(utuple), slot, InvalidBuffer, true);
ReleaseBuffer(buffer);
return true;
}
return false;
}