| 137 | } |
| 138 | |
| 139 | static void initSourceNodeScanState(ScanNodeTableInfo& sourceInfo, |
| 140 | std::unique_ptr<TableScanState>& sourceScanState, ValueVector* boundNodeIDVector, |
| 141 | const std::vector<ValueVector*>& sourceNodeOutVectors, main::ClientContext* context) { |
| 142 | sourceScanState = createSourceNodeTableScanState(sourceInfo.table->ptrCast<NodeTable>(), |
| 143 | boundNodeIDVector, sourceNodeOutVectors, MemoryManager::Get(*context)); |
| 144 | sourceInfo.initScanState(*sourceScanState, sourceNodeOutVectors, context); |
| 145 | if (dynamic_cast<IceDiskNodeTable*>(sourceInfo.table) || |
| 146 | dynamic_cast<ArrowNodeTable*>(sourceInfo.table)) { |
| 147 | sourceInfo.table->initScanState(transaction::Transaction::Get(*context), *sourceScanState); |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | bool ScanRelTable::fetchNextBoundNodeBatch(transaction::Transaction* transaction) { |
| 152 | if (sourceNodeScanMode) { |
no test coverage detected