Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-50246

$unionWith explain loses information from any stages in sub-pipeline which get absorbed into cursor stage

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.7.0, 4.4.2
    • Component/s: None
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v4.4
    • Sprint:
      Query 2020-09-07, Query 2020-09-21
    • Linked BF Score:
      0

      Description

      When we explain a pipeline with mode "executionStats" or above, we first execute the pipeline to completion and then serialize the individual stages. If one of those stages is a $unionWith, then the first phase will target and optimize the sub-pipeline, absorbing any possible stages into the $cursor stage. When serialize() is subsequently called against the $unionWith to generate the 'stages' element of explain, we do the same process again except we've lost any stages which were pushed down into the $cursor/$mergeCursors.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              nicholas.zolnierz Nicholas Zolnierz
              Reporter:
              ted.tuckman Ted Tuckman
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: