Uploaded image for project: 'Compass '
  1. Compass
  2. COMPASS-7678

Investigate changes in SERVER-81378: Change classic behavior: equality to null should not match undefined

    • Type: Icon: Investigation Investigation
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • No version
    • Affects Version/s: None
    • Component/s: None
    • None
    • Not Needed
    • Developer Tools

      Original Downstream Change Summary

      This makes a change in the behavior of MongoDB queries. Mainly, comparison to null via MatchExpression $eq and $in will not match `undefined` values.

      It is worth noting that we will also see changes in $lookup: a null local field will not match undefined foreign field.

      Description of Linked Ticket

      The undefined type has been deprecated for a long time. In v8.0, we will change classic and stage builders behavior so that comparison to null does not match undefined.

      This ticket will include the necessary updates to the classic comparison expressions, classic index bounds building, and stage builders code. We should consider doing a performance investigation to see if there are improvements for comparison to null queries, which should be simpler after this change. Also, we will likely need to make updates to the query fuzzers. We should consider if it's worthwhile to fuzz with data containing undefined values.

      In preparation for this, we will provide downstream notifications, including recommendations for ways to achieve the original behavior, when the work is complete. 

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

              Created:
              Updated:
              Resolved: