Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-5469

Support $lookup in CSFLE and QE

    • Type: Icon: New Feature New Feature
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 3.3.0
    • 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
    • Fully Compatible
    • Not Needed
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • None
    • None
    • None
    • None
    • None
    • None

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

            Assignee:
            ferdinando.papale@mongodb.com Ferdinando Papale
            Reporter:
            dbeng-pm-bot TPM Jira Automations Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              None
              None
              None
              None