表扫描描述符及扫描方向

1、表扫描函数的参数传递通过TableScanDescData,函数内层将扫描到的记录存储到HeapScanDesc.rs_ctup中,然后将该成员内容传递给slot中。

2、内部处理时会将TableScanDescData转换成HeapScanDesc类型,其第一个成员变量是TableScanDescData类型,方便类型强制转换。

3、HeapScanDesc结构成员:

   TableScanDescData rs_base:描述符中AM独立部分

   BlockNumber rs_nblocks:表中总共有多少数据页

   BlockNumber rs_startblock:从哪一页开始进行扫描

   BlockNumber rs_numblocks:最多扫描多少页,范围扫描中使用

   boolrs_inited;该扫描描述符是否已初始化,第一个记录时初始化,扫描后面的不再初始化,从上一次保存的数据页中取下一个记录

   BlockNumber rs_cblock:当前扫描的文件页页号

   Bufferrs_cbuf:当前扫描的内存页页号

   BufferAccessStrategy rs_strategy:扫描策略,使用哪种内存描述符获取方法:

   参考:

   https://blog.csdn.net/yanzongshuai/article/details/103659270

   https://blog.csdn.net/yanzongshuai/article/details/103795628

   https://blog.csdn.net/yanzongshuai/article/details/103798038

   https://blog.csdn.net/yanzongshuai/article/details/103828829

   https://blog.csdn.net/yanzongshuai/article/details/103839702

   HeapTupleData rs_ctup:扫描到的记录存储到这个位置

   int rs_cindex:扫描的记录索引号

   int rs_ntuples:该页中总共有多少记录

   OffsetNumber rs_vistuples[MaxHeapTuplesPerPage]:page at a time下该页所有可见记录的索引号保存在这个数组中。

关于扫描方向:

ForwardScanDirection:向前

BackwardScanDirection:向后

NoMovementScanDirection:重新获取记录

这里的方向和理解的有点不一样,需注意。

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值