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

Add tests for the "sbe" command

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.9.0
    • Affects Version/s: None
    • Component/s: Querying
    • Labels:
    • Fully Compatible
    • Query Execution 2021-02-22, Query Execution 2021-03-08, Query Execution 2021-03-22, Query Execution 2021-04-05

      The "sbe" command is an internal, test-only command, used for testing and debugging purposes, which directly executes a query execution plan expressed as an SBE string. Although this command is not exposed to users, it would still be a good idea to have some test coverage for it. We currently have none. Regression tests will provide us with a means to make sure that we have not broken the "sbe" command as we continue to develop the SBE engine.

      We should be able to add tests which call the "sbe" command to the jsCore suite, since the SBE engine does not need to be enabled in order to run it.

      We have discovered some inconsistencies between SBE parser and debug print of SBE stages. It would be nice if we could fix them in the scope of this ticket too:

      • IXSCAN, IXSEEK - slots are assigned to different values after serialization/deserialization loop
      • PROJECT - serialization works correct, but the order of slot assignments is not preserved which
        prevents us from comparing debug outputs as strings
      • MKOBJ - parser does not recognize 'forceNewObject' and 'returnOldObject' flags from debug print
      • GROUP - slots are assigned to different values after serialization/deserialization loop
      • LIMIT, SKIP - parser does not recognize 'limitskip' keyword produced by 'LimitSkipStage'
      • TRAVERSE - parser does not recognize correlated slots from debug print
      • SORT - parser does not recognize 'limit' field from debug print
      • UNION - debug print does not output square braces around union branches list
      • SCAN, SEEK - parser expects forward flag which is not included in the debug print
      • HJOIN - inner and outer projects are swapped after serialization/deserialization loop

            andrii.dobroshynski@mongodb.com Andrii Dobroshynski (Inactive)
            david.storch@mongodb.com David Storch
            0 Vote for this issue
            3 Start watching this issue