-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
This could probably be split into two or three tickets once we start implementing this (one for implementing the document source, one for implementing the rewrite, one for adding the suite).
From the design:
We will introduce a new passthrough DocumentSource that holds a set of FieldPaths and asserts for every input document that none of the FieldPaths contain arrays. Additionally, we will introduce a new test-only rewrite (gated via a query knob) that inserts said DocumentSource before every stage. The rewrite will construct the set of field paths by looking at all fields referenced by the stage and adding them to the set if the graph reports canPathBeArray(stage, path) == false.
- depends on
-
SERVER-127302 Dependency graph arrayness tracking incorrect for $lookup with sorted INLJ indexes
-
- Needs Scheduling
-
-
SERVER-127304 PathArrayness incorrectly marks parent field as non-array when index uses positional path notation
-
- Needs Scheduling
-
-
SERVER-127290 $_internalValidateArrayness injection prevents $match pushdown, breaking {$meta: "indexKey"} in shred_documents.js
-
- Needs Scheduling
-
-
SERVER-127292 Make $_internalValidateArrayness transparent to SBE pushdown
-
- Needs Scheduling
-
-
SERVER-127305 Move $_internalValidateArrayness insertion to a Rule-Based Rewriter (RBR) rule
-
- Needs Scheduling
-