-
Notifications
You must be signed in to change notification settings - Fork 245
DRIVERS-3082 add prose tests for $lookup
#1757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Appears to error in `mkdocs`. Link is not very useful regardless.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, passing in node, fairly straightforward implementation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor comments
Co-authored-by: Maxim Katcharov <[email protected]>
Co-authored-by: Maxim Katcharov <[email protected]>
Use `encryptedClient` to also drop state collections created for QE.
Testing with crypt_shared/mongocryptd 8.1+ and pre-8.1 server results in not matching QE fields in sub-pipelines. This is a known server limitation.
Co-authored-by: Maxim Katcharov <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, though note above comment.
All relevant tests are now passing in the Java implementation mongodb/mongo-java-driver#1638
Summary
Add prose test for
$lookup
support in QE/CSFLE.Tests were run in the C driver in this patch. Note:
latest
tasks were updated to uselatest-build
to use unreleased 8.1 builds (see slack for background).Testing requires a unreleased version of libmongocrypt to include changes from MONGOCRYPT-723. Binaries are available on this patch build or by building from source at mongodb/libmongocrypt@33fdf65.
The failed
Markdown Link Check
on the GitHub action appears unrelated (and is failing on master).libmongocrypt protocol change
libmongocrypt's protocol previously assumed auto encrypting a command only required at most one schema. With
$lookup
there can be multiple schemas on anaggregate
command. As a result, a small driver change is needed: feed all listCollections results to libmongocrypt in theMONGOCRYPT_CTX_NEED_MONGO_COLLINFO(_WITH_DB)
states. The previous protocol only required returning the first. Callmongocrypt_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 includes a change to the protocol in integrating.md.
See the small protocol change implemented in the C driver here.
Please complete the following before merging:
[ ] Update changelog.Test changes onlyclusters, and serverless).