[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:
Documented
is documented by DOCS-15545 Investigate changes in SERVER-68543: ... Backlog
Related
is related to SERVER-67282 $add expression should not use Double... Closed
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 SERVER-67282)

 



 Comments   
Comment by Githook User [ 17/Aug/22 ]

Author:

{'name': 'zixuan.zhuang', 'email': 'zixuan.zhuang@mongodb.com', 'username': 'leozzx'}

Message: SERVER-68543 Make operator type left associate for date
Branch: master
https://github.com/mongodb/mongo/commit/5f8f59cd20901e9de9edb5eb5f33ea72f1fc1ef7

Generated at Thu Feb 08 06:11:05 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.