-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
Fully Compatible
-
QO 2023-05-15, QO 2023-05-29
We can extend the NotPushdown rewrite to handle more cases, which can result in better bounds, or at least simpler expressions to evaluate.
For example (pseudocode):
- Not (ComposeA p1 p2) -> ComposeM (Not p1) (Not p2)
- Should help $nor queries, or more complex boolean expressions.
- Not (Default e) -> Default (Not e)
- In an EvalFilter context, Default returns either its argument or the negation of its argument.
- This will help us combine $not with $exists.
- Not (Constant e) -> Constant (Not e)
- Should help with constant folding.
- depends on
-
SERVER-77020 [CQF] Pushdown Not through ComposeA
- Closed
-
SERVER-77021 [CQF] Pushdown Not through Default
- Closed
-
SERVER-77022 [CQF] Pushdown Not through PathConstant
- Closed