-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Integration
-
Fully Compatible
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Extension stages must be able to report the metadata fields that it requires along with the metadata fields that it provides. This information will be gathered by the pipeline using the overridden method `getDependencies()` on `DocumentSource`. Because this will called after desugaring, we need to override this method on `DocumentSourceExtensionOptimizable` (separate ticket).
We will introduce two new expected fields in the BSON populated by `MongoExtensionAggStageAstNodeVTable::get_properties()`. This BSON is modeled by the `MongoExtensionStaticProperties` IDL. Additionally, the extension can report whether or not the incoming metadata is preserved and passed through to the downstream stage. The static properties are currently cached on `DocumentSourceExtensionOptimizable` during initialization, allowing them to be accessed during the `getDependencies()` override.
// Modeled in IDL MongoExtensionStaticProperties: // Existing description and fields. fields: requiredMetadataFields: type: array<string> optional: true default: [] providedMetadataFields: type: array<string> optional: true default: [] preservesUpstreamMetadata: type: bool optional: true default: true
This ticket should add these functions to IDL and add unit tests. This ticket should not make any changes to the host side.
- is depended on by
-
SERVER-114031 Add e2e tests for extension metadata
-
- In Progress
-
-
SERVER-113761 Override DocumentSourceExtensionOptimizable::getDependencies() to report metadata
-
- Closed
-
-
SERVER-113904 Add and initialize providedMetadataFields in ExtensionStage
-
- Closed
-