btree index (13)

btbeginscan

btree indexの検索の初期化処理を行う。RelationGetIndexScanでIndexScanDesc
構造体を作成する。

btrescan

btree indexの検索条件を設定する。最初に検索を実行するときはbtbeginscanから
btrescanが実行される。

#0  btrescan at nbtree.c:419
#1  FunctionCall2 at fmgr.c:1157
#2  index_rescan at indexam.c:354
#3  RelationGetIndexScan at genam.c:113
#4  btbeginscan at nbtree.c:408
#5  FunctionCall3 at fmgr.c:1182
#6  index_beginscan_internal at indexam.c:312
#7  index_beginscan at indexam.c:241
#8  ExecInitIndexScan at nodeIndexscan.c:485
#9  ExecInitNode at execProcnode.c:163
#10 InitPlan at execMain.c:613
#11 ExecutorStart at execMain.c:165

またnested loop joinなどで検索条件を変えてbtree indexを再度実行する前にも,この関数が実行される。

btendscan

btree indexの検索を終了する。バッファを開放したり,メモリを開放する。

btgetmulti

btree indexから,一度に複数の検索結果を取得する。これにより_bt_restscanのoverheadを減らすことができる。この関数は,実行計画がBitmapIndexScanのときに利用され、一度のコールで最大max_tidsに指定した数の検索結果を取得できる。検索結果はItemPointerの配列に保存される。