[GODRIVER-1093] Scope and design support for complex parameter types Created: 29/May/19  Updated: 17/Jul/20  Resolved: 17/Jul/20

Status: Closed
Project: Go Driver
Component/s: Core API
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Major - P3
Reporter: Kristofer Brandow (Inactive) Assignee: Unassigned
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to GODRIVER-1077 Investigate handling arrays returned ... Closed
related to GODRIVER-1069 Support cursor subdocuments in drivergen Closed
Epic Link: Codegen everything

 Description   

During the implementation of GODRIVER-1054 and GODRIVER-1056 a design flaw was discovered. The drivergen library can only handle simple parameters for operations, like int64, string, and bsoncore.Value. This means parameters that have more structure, like the update and delete commands, cannot be easily represented by the operation.Update and operation.Delete types. For the updates field of the update command and the deletes field of the delete command the only option is a bsoncore.Document which requires the consumer of the operation package to have knowledge of the structure of a command, which leaks part of the abstraction from the operation layer.

We require a new design for the parameters of operations for drivergen that enables these structured fields. The IDL format needs to be amended to define these structured fields and the code generation components of drivergen need to be updated to handle this.


Generated at Thu Feb 08 08:35:40 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.