[SERVER-68543] Make $add operator type left associate for date in classic engine Created: 03/Aug/22 Updated: 29/Oct/23 Resolved: 17/Aug/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.1.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Zixuan Zhuang | Assignee: | Zixuan Zhuang |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Minor Change | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Sprint: | QE 2022-09-05 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
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
|
| Comments |
| Comment by Githook User [ 17/Aug/22 ] |
|
Author: {'name': 'zixuan.zhuang', 'email': 'zixuan.zhuang@mongodb.com', 'username': 'leozzx'}Message: |