-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Integration
-
None
-
None
-
None
-
None
-
None
-
None
-
None
When an extension Desugar stage expands into a stage that is not implemented by the extension, the extension must be able to provide a node in the ExpansionArray which the Host can later parse into the actual runtime implementation, either a LiteParsedDocumentSource, or a DocumentSource depending on where expansion is taking place.
For this purpose, the Extensions API will provide a function (create_host_stage_parse_node) which will permit extensions to create a ParseNode representing an extension stage which the extension cannot implement (i.e $match).
// Addition to MongoExtensionHostPortal typedef struct MongoExtensionHostPortalVTable { /** * create_host_stage_parse_node: Creates a Host implemented ParseNode for a stage which * the extension does not implement. **/ MongoExtensionStatus* (*create_host_stage_parse_node)(MongoExtensionByteView bsonSpec, MongoExtensionAggregationStageParseNode** node); } MongoExtensionHostPortalVTable;
Add this function to the public API, and add unit tests for it.
- depends on
-
SERVER-111972 Convert VariantNode to VariantNodeHandle in extensions API SDK
-
- Closed
-
-
SERVER-109778 Introduce host::HostParseNode to the API
-
- Closed
-
-
SERVER-112012 Create directory and Bazel targets for shared "connector layer" code
-
- Closed
-
-
SERVER-112835 Move host_connector/handle/aggregation_stage to shared directory
-
- Closed
-