• Type: Sub-task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Integration
    • Fully Compatible
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The parsers in document_source_search.cpp and document_source_search_meta.cpp will be updated as follows:

       

      REGISTER_LITE_PARSED_DOCUMENT_SOURCE_FALLBACK(
          {search|searchMeta},
          [](const NamespaceString& nss,
             const BSONElement& spec,
             const LiteParserOptions& options) -> std::unique_ptr<LiteParsedDocumentSource> {
         // Check if the extension is loaded on this shard, tassert otherwise.
              return {Search|SearchMeta}LiteParsed::parse(nss, spec, options);
          },
          AllowedWithApiStrict::kNeverInVersion1,
          &feature_flags::gFeatureFlagSearchExtension);

      Unit Tests

      • Fallback Parser Registration (document_source_search{_meta}_test.cpp)
      • Parser tasserts when featureFlagSearchExtension is true but the extension is not loaded.
      • Parser uses the fallback legacy implementation when featureFlagSearchExtension is false.

      Integration Tests

      • IFR Flag Toggle
      • Extension loaded + featureFlagSearchExtension=true uses the extension.
      • Extension loaded + featureFlagSearchExtension=false uses the fallback.
      • No extension loaded uses the fallback regardless of featureFlagSearchExtension.
      • Flipping the flag at runtime correctly toggles between legacy and extension implementations.

       

            Assignee:
            Daniel Segel
            Reporter:
            Josh Siegel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: