Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Won't Do
-
Impala 4.1.0
-
None
-
None
-
ghx-label-14
Description
In replan implementation v2, we make copies of the query tree (PlanNode) and planner context (PlannerContext) for each iteration since planner state in these objects are modified when making distributed plan in DistributedPlanner.createPlanFragments().
We want to verify that both copies of the singleNodePlan (PlanNode) and planner context (PlannerContext) are identical to original ones in each iteration, e.g. don't make use of a data member in one iteration that has been modified in previous iterations.
Replan implementation added new copy constructors for classes in PlanNode and StatementBase class hierarchy. In such copy constructors, there are both deep and shadow copied data members with the goal to minimally making deep copies to produce correct plans. We have to provide functions PlanNode.compareEqual() to compare tree of plan nodes, and PlannerContext.compareEqual() to compare two planner context objects.