Distinguish semantics of equality operator in JoinPredicate

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Optimization
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Currently there are two ways in MQL to specify an equijoin predicate: using local/foreign field syntax and using $expr. The former has find equality semantics (null and missing are equal) while the latter has agg equality semantics (null and missing are not equal). When we extract a JoinGraph from the pipeline, we need to distinguish between the two so that the stage builders can generate the correct plan.

      We should modify JoinPredicate operator enum to have EqFind and EqAgg (or similar) values and modify the stage builders to generate a corresponding plan.

            Assignee:
            Unassigned
            Reporter:
            Ben Shteinfeld
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: