-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Execution
Aggregation comparison expressions in SBE are implemented using cmp3w VM instruction. This instruction does not have a well defined semantics behind it. It does not implement MQL comparison or WO comparison. This leads to a situation where passing all comparison operators tests is not enough because we do not have any guarantee on the behaviour in some extreme cases (for instance, comparing special values like NaN, Inf and undefined).
To fix that, we should:
- Strictly define semantics for cmp3w
- Ensure that other comparison instructions (less, eq, etc.) have MQL semantics
- Add an exhaustive test which ensure the behaviour of all find/aggregation comparison operators on various types (including special values)
- related to
-
SERVER-54750 [SBE] Rename cmp3w VM instruction and inspect usages in the SBE codebase
- Backlog