-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Optimization
-
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.
- split from
-
SERVER-119375 Represent subpipelines in the graph
-
- Closed
-