-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
Fully Compatible
-
200
-
None
-
None
-
None
-
None
-
None
-
None
-
None
When constructing a DependencyGraph for a sub-pipeline (e.g. $lookup, $unionWith), we currently use the default canPathBeArray callback, which always returns true. This means canPathBeArray() queries that recurse into a subpipeline conservatively report that any collection-origin path in the sub-collection could be an array, even when the real PathArrayness API for that collection would say otherwise.
Without this, array-related optimizations that rely on canPathBeArray() will be overly conservative for paths resolved through subpipelines. This is safe but may miss optimization opportunities.
- related to
-
SERVER-118544 Op-scoped QueryKnobConfiguration: single consistent snapshot per query
-
- In Progress
-
- split from
-
SERVER-119375 Represent subpipelines in the graph
-
- Closed
-