Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-15545

Investigate changes in SERVER-68543: Make $add operator type left associate for date in classic engine

    XMLWordPrintableJSON

Details

    Description

      Original Downstream Change Summary

      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

        Activity

          People

            Unassigned Unassigned
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              1 year, 25 weeks ago