Uploaded image for project: 'Python Driver'
  1. Python Driver
  2. PYTHON-5046

Support $lookup in CSFLE and QE

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

      DRIVERS-3082:
      Summary of necessary driver changes

      • Upgrade libmongocrypt to 1.13.0.
      • 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 527e22d.

      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 Upgrade libmongocrypt to 1.13.0. 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 527e22d . 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 . libmongocrypt 1.13.0 binaries: A tarball containing all binaries are available in the upload all task. Smaller platform specific binaries are available on the build-and-test-and-upload tasks Specifications prose tests commit: 527e22d C driver implementation: PR#1880
    • None
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

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

            Assignee:
            iris.ho@mongodb.com Iris Ho
            Reporter:
            dbeng-pm-bot TPM Jira Automations Bot
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              None
              None
              None
              None