$listExtensions should output extensions and their aggregation stages

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Query Integration
    • None
    • 3
    • TBD
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      As of SERVER-109835, $listExtensions only outputs what extensions are loaded at runtime, but we don't have any record of which aggregation stages are loaded by which extensions. We should add this functionality to achieve output like:

      [
        {
          "extensionName": "my_extension",
          "stages": ["$foo"]
        },
        {
         "extensionName": "another_extension",                
         "stages": ["$bar", "$baz"]
        }, 
      ]
      

      With this addition, we can also re-add null_chars_string_input.js to the "with-extensions" variant by removing the "incompatible_with_extensions" tag. This test was previously excluded in SERVER-108821 because $listMqlEntities would include extension-loaded aggregation stages in its output. When we can use $listExtensions to output all extension-loaded aggregation stages, we can confirm that every aggregation stage from $listMqlEntities is: tested, explicitly skipped, or from an extension.

      This will likely require adding a linkage between Extension --> StageDescriptor in the C API.
       

            Assignee:
            Unassigned
            Reporter:
            Daniel Segel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: