-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Integration
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Today, we don't create the IFRContext until the ExpressionContext is built (here in the run_agg path, for example), and child ExpressionContexts (for sub-pipelines) get a copy of the IFRContext, meaning it's possible a child pipeline can see a different view than the parent pipeline of flags checked after that copy.
Our IFR flag for the $vectorSearch extension needs to be checked during parsing. We will move creation of the IFRContext to the very top of the run_agg/cluster_agg path so that it can be available for any work done to prepare for and execute an aggregate command.
We also want to do our best to use a consistent (single) IFRContext across query processing, including across child pipelines. We'll make changes to pass the IFRContext as a shared_ptr and remove the copy that's performed for child ExpressionContexts. When we build any the expression context, we will pass the pointer to the existing IFRContext.
- is depended on by
-
SERVER-115162 Pass IFRContext down to LiteParserRegistration::getParser()
-
- Backlog
-