| 104 | } |
| 105 | |
| 106 | void 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 | |
| 124 | static void runVertexComputeInternal(const TableCatalogEntry* currentEntry, |
| 125 | GDSDensityState densityState, const Graph* graph, std::shared_ptr<VertexComputeTask> task, |
nothing calls this directly
no test coverage detected