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

[CQF] Allow SBE plans (built through CQF) which require a output RecordId slot

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 6.2.0-rc0
    • None
    • None
    • None
    • Fully Compatible
    • ALL
    • QO 2022-09-05, QO 2022-09-19

    Description

      findOne() is an internal C++ helper function which constructs a PlanExecutor and invokes getNext() with the RecordId out-param. Note that the find implementation never sets this parameter.

      When a CQF-eligible query uses the findOne() helper, such as in the codepath to drop a view, the SBE plan executor hits an invariant during the getNext() call that the output recordId slot is not set.

      SERVER-62407 introduced a temporary bit to CanonicalQuery to avoid using CQF in the findOne codepath. This ticket tracks the work to allow SBE plans generated via CQF to output the RecordId slot, allowing the findOne() codepath to use CQF.

      Attachments

        Activity

          People

            svilen.mihaylov@mongodb.com Svilen Mihaylov (Inactive)
            ben.shteinfeld@mongodb.com Ben Shteinfeld
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: