Uploaded image for project: 'MongoDB Database Tools'
  1. MongoDB Database Tools
  2. TOOLS-3486

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
    • 100.9.5
    • Affects Version/s: None
    • Component/s: None
    • None
    • 3
    • TAR 2024-03-04
    • Tools and Replicator
    • 0.25

      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:
            dave.rolsky@mongodb.com Dave Rolsky
            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: