Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ public static LogicalPlanTuple firstSubPlan(LogicalPlan optimizedPlan, Set<Local
}
return lr;
});
plan.setOptimized();
// plan.setOptimized();
tuple = new LogicalPlanTuple(plan, originalSubPlanHolder.get());
}
return tuple;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ public void onResponse(Versioned<LogicalPlan> analyzedPlan) {
executionInfo,
planRunner,
p,
logicalPlanOptimizer,
configuration,
foldContext,
minimumVersion,
Expand All @@ -264,6 +265,7 @@ public void executeOptimizedPlan(
EsqlExecutionInfo executionInfo,
PlanRunner planRunner,
LogicalPlan optimizedPlan,
LogicalPlanOptimizer logicalPlanOptimizer,
Configuration configuration,
FoldContext foldContext,
TransportVersion minimumVersion,
Expand Down Expand Up @@ -295,7 +297,17 @@ public void executeOptimizedPlan(
// TODO: this could be snuck into the underlying listener
EsqlCCSUtils.updateExecutionInfoAtEndOfPlanning(executionInfo);
// execute any potential subplans
executeSubPlans(optimizedPlan, configuration, foldContext, planRunner, executionInfo, request, physicalPlanOptimizer, listener);
executeSubPlans(
optimizedPlan,
configuration,
foldContext,
planRunner,
executionInfo,
request,
logicalPlanOptimizer,
physicalPlanOptimizer,
listener
);
}
}

Expand All @@ -306,6 +318,7 @@ private void executeSubPlans(
PlanRunner runner,
EsqlExecutionInfo executionInfo,
EsqlQueryRequest request,
LogicalPlanOptimizer logicalPlanOptimizer,
PhysicalPlanOptimizer physicalPlanOptimizer,
ActionListener<Result> listener
) {
Expand All @@ -325,6 +338,7 @@ private void executeSubPlans(
runner,
request,
subPlansResults,
logicalPlanOptimizer,
physicalPlanOptimizer,
// Ensure we don't have subplan flag stuck in there on failure
ActionListener.runAfter(listener, executionInfo::finishSubPlans)
Expand All @@ -346,12 +360,18 @@ private void executeSubPlan(
PlanRunner runner,
EsqlQueryRequest request,
Set<LocalRelation> subPlansResults,
LogicalPlanOptimizer logicalPlanOptimizer,
PhysicalPlanOptimizer physicalPlanOptimizer,
ActionListener<Result> listener
) {
LOGGER.debug("Executing subplan:\n{}", subPlans.stubReplacedSubPlan());
// Create a physical plan out of the logical sub-plan
var physicalSubPlan = logicalPlanToPhysicalPlan(subPlans.stubReplacedSubPlan(), request, physicalPlanOptimizer);
// var physicalSubPlan = logicalPlanToPhysicalPlan(subPlans.stubReplacedSubPlan(), request, physicalPlanOptimizer);
var physicalSubPlan = logicalPlanToPhysicalPlan(
logicalPlanOptimizer.optimize(subPlans.stubReplacedSubPlan()),
request,
physicalPlanOptimizer
);

executionInfo.startSubPlans();

Expand All @@ -373,7 +393,8 @@ private void executeSubPlan(
ij -> ij.right() == subPlans.originalSubPlan() ? InlineJoin.inlineData(ij, resultWrapper) : ij
);
// TODO: INLINE STATS can we do better here and further optimize the plan AFTER one of the subplans executed?
newLogicalPlan.setOptimized();
// newLogicalPlan.setOptimized();
newLogicalPlan = logicalPlanOptimizer.optimize(newLogicalPlan);
LOGGER.trace("Main plan change after previous subplan execution:\n{}", NodeUtils.diffString(optimizedPlan, newLogicalPlan));

// look for the next inlinejoin plan
Expand Down Expand Up @@ -405,6 +426,7 @@ private void executeSubPlan(
runner,
request,
subPlansResults,
logicalPlanOptimizer,
physicalPlanOptimizer,
releasingNext
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ private ActualResults executePlan(BigArrays bigArrays) throws Exception {
new EsqlExecutionInfo(randomBoolean()),
planRunner(bigArrays, physicalOperationProviders),
session.optimizedPlan(preOptimized, logicalPlanOptimizer),
logicalPlanOptimizer,
configuration,
foldCtx,
minimumVersion,
Expand Down