• Type: Sub-task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Integration
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Extensions aren’t allowed on views until featureFlagExtensionViewsAndUnionWith is enabled. In DocumentSourceExtensionOptimizable::create():

      void DocumentSourceExtensionOptimizable::LiteParsedExpanded::bindViewInfo(...) {     
            uassert(ErrorCodes::NotImplemented,hasExtensionVectorSearchStage() || hasExtensionSearchStage());
            throwIfrKickbackIfNecessary(name, isExtensionSearchStage, gFeatureFlagSearchExtension,search_metrics::onViewKickbackRetryCount, "...");
      }

      There is also an optimization in cluster_aggregate.cpp that can be added to prevent an unnecessary round-trip for views:

      if (ifrContext->getSavedFlagValue(feature_flags::gFeatureFlagSearchExtension) &&
          !feature_flags::gFeatureFlagExtensionViewsAndUnionWith.isEnabled()) {
             state.ifrFlagsToDisableOnRetries.insert(&feature_flags::gFeatureFlagSearchExtension);
      } 

      Integration Tests:

      • $search/$searchMeta on a view with the appropriate flag disabled.
        • IFR kickback fires and the query retries.
        • The appropriate metric is incremented.
      • $search/$searchMeta on a view with the appropriate flag enabled.
        • No IFR kickback or metric increment.

            Assignee:
            Unassigned
            Reporter:
            Josh Siegel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: