MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / initLocalStateInternal

Method initLocalStateInternal

src/processor/operator/scan/scan_rel_table.cpp:88–125  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86}
87
88void ScanRelTable::initLocalStateInternal(ResultSet* resultSet, ExecutionContext* context) {
89 ScanTable::initLocalStateInternal(resultSet, context);
90 auto clientContext = context->clientContext;
91 auto boundNodeIDVector = resultSet->getValueVector(opInfo.nodeIDPos).get();
92 auto nbrNodeIDVector = outVectors[0];
93 // Check if this is an external rel table and create the corresponding scan state.
94 auto* arrowTable = dynamic_cast<storage::ArrowRelTable*>(tableInfo.table);
95 auto* iceDiskTable = dynamic_cast<storage::IceDiskRelTable*>(tableInfo.table);
96 auto* foreignTable = dynamic_cast<storage::ForeignRelTable*>(tableInfo.table);
97 if (arrowTable) {
98 scanState =
99 std::make_unique<storage::ArrowRelTableScanState>(*MemoryManager::Get(*clientContext),
100 boundNodeIDVector, outVectors, nbrNodeIDVector->state);
101 } else if (iceDiskTable) {
102 scanState =
103 std::make_unique<storage::IceDiskRelTableScanState>(*MemoryManager::Get(*clientContext),
104 boundNodeIDVector, outVectors, nbrNodeIDVector->state);
105 } else if (foreignTable) {
106 scanState =
107 std::make_unique<storage::ForeignRelTableScanState>(*MemoryManager::Get(*clientContext),
108 boundNodeIDVector, outVectors, nbrNodeIDVector->state);
109 } else {
110 scanState = std::make_unique<RelTableScanState>(*MemoryManager::Get(*clientContext),
111 boundNodeIDVector, outVectors, nbrNodeIDVector->state);
112 }
113 tableInfo.initScanState(*scanState, outVectors, clientContext);
114 if (sourceNodeScanMode) {
115 sourceNodeOutVectors.clear();
116 for (auto& pos : sourceNodeScanInfo.outVectorsPos) {
117 sourceNodeOutVectors.push_back(resultSet->getValueVector(pos).get());
118 }
119 }
120 if (sourceMode) {
121 currentSourceTableIdx = 0;
122 nextSourceOffset = 0;
123 currentSourceTableNumRows = 0;
124 }
125}
126
127void ScanRelTable::initGlobalStateInternal(ExecutionContext* context) {
128 if (!sourceNodeScanMode) {

Callers

nothing calls this directly

Calls 6

initLocalStateInternalFunction · 0.85
getMethod · 0.45
getValueVectorMethod · 0.45
initScanStateMethod · 0.45
clearMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected