Details
Description
Changes in classic query engine, SBE change is done in SERVER-67282
[1.5, date, 1.5] result change: date + 3 -> date + 4 due to rounding
https://docs.google.com/document/d/1J4lkN3eRJSB6mM01NtZ9QQam7ilA_d5CAdb_YBgeGkU/edit?usp=sharing
Description of Linked Ticket
Currently $add always use widest numerical type to do summation, then cast to date type if there's a date element in the array.
This is fine for all numeric types except date which could cause confusion:
[1.5 + date + 1.5] can be either date + 3 or date + 4, the later one comes from round(round(date + 1.5) + 1.5).
We should make the $add type left associate for date type, so when we are date to any number the result is casted to date, and following (right side) numbers are all added and casted to date type. code link
(We will not backport this change to 6.0 or earlier)
(this ticket is for classic engine, sbe change will be included in SERVER-67282)
Attachments
Issue Links
- documents
-
SERVER-68543 Make $add operator type left associate for date in classic engine
-
- Closed
-