Uploaded image for project: 'Motor'
  1. Motor
  2. MOTOR-1424

Support $lookup in CSFLE and QE

    • Type: Icon: New Feature New Feature
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: New Spec
    • Hide

      DRIVERS-3082:
      Summary of necessary driver changes

      • Update libmongocrypt bindings to pass all listCollection results in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented.
      • Implement prose tests from https://github.com/mongodb/specifications/pull/1757.

      libmongocrypt binding changes
      libmongocrypt's protocol previously assumed auto encrypting a command only required at most one schema. With $lookup there can be multiple schemas on an aggregate command. As a result, a small driver change is needed: feed all listCollections results to libmongocrypt in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. The previous protocol only required returning the first. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented (otherwise libmongocrypt returns an error if a command requires multiple schemas).

      The libmongocrypt documentation describes the updated protocol in integrating.md.

      See the small protocol change implemented in the C driver here.

      References

      Show
      DRIVERS-3082: Summary of necessary driver changes Update libmongocrypt bindings to pass all listCollection results in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented. Implement prose tests from https://github.com/mongodb/specifications/pull/1757 . libmongocrypt binding changes libmongocrypt's protocol previously assumed auto encrypting a command only required at most one schema. With $lookup there can be multiple schemas on an aggregate command. As a result, a small driver change is needed: feed all listCollections results to libmongocrypt in the MONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB) states. The previous protocol only required returning the first. Call mongocrypt_setopt_enable_multiple_collinfo to indicate the new behavior is implemented (otherwise libmongocrypt returns an error if a command requires multiple schemas). The libmongocrypt documentation describes the updated protocol in integrating.md . See the small protocol change implemented in the C driver here . References libmongocrypt commit: 33fdf65 Specifications prose tests: PR#1757 C driver implementation: PR#1880

      This ticket was split from DRIVERS-3082, please see that ticket for a detailed description.

            Assignee:
            Unassigned Unassigned
            Reporter:
            dbeng-pm-bot TPM Jira Automations Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: