Details
-
Improvement
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
Query Optimization
Description
Currently, the ParsedUpdate and ParsedDelete classes hand ownership of their canonical query to the PlanExecutor. The PlanExecutor then is allowed to mutate the CanonicalQuery during the course of planning and query execution.
Making the CanonicalQuery immutable would allow the same CQ to be used by multiple PlanExecutors. This means that we would not need do the work of parsing again when we retry due to a write conflict.