MCPcopy Create free account
hub / github.com/RedisGraph/RedisGraph / applyJoin

Function applyJoin

src/execution_plan/optimizations/apply_join.c:198–207  ·  view source on GitHub ↗

TODO: Consider changing Cartesian Products such that each has exactly two child operations. Try to replace Cartesian Products (cross joins) with Value Hash Joins. * This is viable when a Cartesian Product is combining two streams that each satisfies * one side of an EQUALS filter operation, like: * MATCH (a), (b) WHERE ID(a) = ID(b) */

Source from the content-addressed store, hash-verified

196 * one side of an EQUALS filter operation, like:
197 * MATCH (a), (b) WHERE ID(a) = ID(b) */
198void applyJoin(ExecutionPlan *plan) {
199 OpBase **cps = ExecutionPlan_CollectOps(plan->root, OPType_CARTESIAN_PRODUCT);
200 uint cp_count = array_len(cps);
201
202 for(uint i = 0; i < cp_count; i++) {
203 OpBase *cp = cps[i];
204 _reduce_cp_to_hashjoin(plan, cp);
205 }
206 array_free(cps);
207}
208

Callers 1

optimizePlanFunction · 0.85

Calls 4

ExecutionPlan_CollectOpsFunction · 0.85
array_lenFunction · 0.85
_reduce_cp_to_hashjoinFunction · 0.85
array_freeFunction · 0.85

Tested by

no test coverage detected