ea7ff362创建于 2023年10月12日历史提交
/* -------------------------------------------------------------------------
*
* nodeSpqSeqscan.cpp
*	  Support routines for sequential scans of relations.
*
* Portions Copyright (c) 2023 Huawei Technologies Co.,Ltd.
*
*
* IDENTIFICATION
*	  src/gausskernel/runtime/executor/nodeSpqSeqscan.cpp
*
* -------------------------------------------------------------------------
*
* INTERFACE ROUTINES
*		ExecSeqScan			sequentially scans a relation.
*		ExecSeqNext			retrieve next tuple in sequential order.
*		ExecInitSeqScan			creates and initializes a seqscan node.
*		ExecEndSeqScan			releases any storage allocated.
*		ExecReScanSeqScan		rescans the relation
*		ExecSeqMarkPos			marks scan position
*		ExecSeqRestrPos			restores scan position
 */
#ifdef USE_SPQ
#include "executor/node/nodeSeqscan.h"
#include "executor/node/nodeSpqSeqscan.h"
 
THR_LOCAL init_spqscan_hook_type init_spqscan_hook = nullptr;
THR_LOCAL exec_spqscan_hook_type exec_spqscan_hook = nullptr;
THR_LOCAL end_spqscan_hook_type end_spqscan_hook = nullptr;
THR_LOCAL spqscan_rescan_hook_type spqscan_rescan_hook = nullptr;
 
/* ----------------------------------------------------------------
 *		ExecSeqMarkPos(node)
 *
 *		Marks scan position.
 * ----------------------------------------------------------------
 */
void ExecSpqSeqMarkPos(SpqSeqScanState* node)
{
    ExecSeqMarkPos((SeqScanState*)node);
}
 
/* ----------------------------------------------------------------
 *		ExecSeqRestrPos
 *
 *		Restores scan position.
 * ----------------------------------------------------------------
 */
void ExecSpqSeqRestrPos(SpqSeqScanState* node)
{
    ExecSeqRestrPos((SeqScanState*)node);
}
 
#endif