Anti-materialization doesn't integrate output from MatchNode

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • Fully Compatible
    • ALL
    • QE 2026-02-02, QE 2026-02-16
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      If the join graph places a Filter node in the plan, the antimaterialization loses track of the field projected by the subtree, and creates a trimmed output

       

      HASH_JOIN
      ---leftEmbeddingField: (none)
      ---rightEmbeddingField: (none)
      ---joinPredicates:
      ------x.f1key = l1key
      ---Outer:
      ------MATCH
      ---------filter:
                      x.l2key $eq 10
      ---------nodeId = 4
      ---------fetched = 1
      ---------sortedByDiskLoc = 0
      ---------providedSorts = {baseSortPattern: {}, ignoredFields: []}
      ---------Child:
      ------------HASH_JOIN
      ---------------leftEmbeddingField: x
      ---------------rightEmbeddingField: z
      ---------------joinPredicates:
      ------------------l2key = f2key
      ---------------Outer:
      ------------------COLLSCAN
      ---------------------ns = testdb.sbe_stage_builder_foreign_1
      ---------------------nodeId = 1
      ---------------------fetched = 1
      ---------------------sortedByDiskLoc = 0
      ---------------------providedSorts = {baseSortPattern: {}, ignoredFields: []}
      ---------------Inner:
      ------------------COLLSCAN
      ---------------------ns = testdb.sbe_stage_builder_foreign_2
      ---------------------nodeId = 2
      ---------------------fetched = 1
      ---------------------sortedByDiskLoc = 0
      ---------------------providedSorts = {baseSortPattern: {}, ignoredFields: []}
      ---Inner:
      ------COLLSCAN
      ---------ns = testdb.sbe_stage_builder
      ---------nodeId = 5
      ---------fetched = 1
      ---------sortedByDiskLoc = 0
      ---------providedSorts = {baseSortPattern: {}, ignoredFields: []}

      The output contains only the output from the last COLLSCAN, and is missing the "x" and "y" fields generated by the HASH_JOIN below the MATCH

       

            Assignee:
            Alberto Massari
            Reporter:
            Alberto Massari
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: