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

Method runRecursiveJoinEdgeCompute

src/function/gds/gds_utils.cpp:106–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104}
105
106void GDSUtils::runRecursiveJoinEdgeCompute(ExecutionContext* context, GDSComputeState& compState,
107 Graph* graph, ExtendDirection extendDirection, uint64_t maxIteration,
108 NodeOffsetMaskMap* outputNodeMask, const std::vector<std::string>& propertiesToScan) {
109 auto frontierPair = compState.frontierPair.get();
110 compState.edgeCompute->resetSingleThreadState();
111 while (frontierPair->continueNextIter(maxIteration)) {
112 frontierPair->beginNewIteration();
113 if (outputNodeMask != nullptr && compState.edgeCompute->terminate(*outputNodeMask)) {
114 break;
115 }
116 runOneIteration(context, graph, extendDirection, compState, propertiesToScan);
117 if (frontierPair->needSwitchToDense(
118 context->clientContext->getClientConfig()->sparseFrontierThreshold)) {
119 compState.switchToDense(context, graph);
120 }
121 }
122}
123
124static void runVertexComputeInternal(const TableCatalogEntry* currentEntry,
125 GDSDensityState densityState, const Graph* graph, std::shared_ptr<VertexComputeTask> task,

Callers

nothing calls this directly

Calls 7

runOneIterationFunction · 0.85
beginNewIterationMethod · 0.80
needSwitchToDenseMethod · 0.80
getMethod · 0.45
terminateMethod · 0.45
switchToDenseMethod · 0.45

Tested by

no test coverage detected