-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
We could move the expression fallback memory tracker from the shared ExpressionContext to the per-call EvaluationContext, so each evaluation owns its own tracker. Alternatively in getTracker() we can create a new tracker when there is no OperationContext. Checking for the existence of an OperationContext is an indirect way to check if the ExpressionContext might be used my multiple threads. Even though this is just a heuristic, an OperationContext currently cannot be shared by multiple threads so it is safe to use.