diff --git a/CHANGELOG.md b/CHANGELOG.md index f0ada28d..02f26d0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ # MongoDB Connector Changelog + This changelog documents the changes between release versions. ## [Unreleased] + - Support filtering and sorting by fields of related collections ([#72](https://github.com/hasura/ndc-mongodb/pull/72)) - Support for root collection column references ([#75](https://github.com/hasura/ndc-mongodb/pull/75)) - Fix for databases with field names that begin with a dollar sign, or that contain dots ([#74](https://github.com/hasura/ndc-mongodb/pull/74)) @@ -9,8 +11,10 @@ This changelog documents the changes between release versions. - Fix error tracking collection with no documents by skipping such collections during CLI introspection ([#76](https://github.com/hasura/ndc-mongodb/pull/76)) - If a field contains both `int` and `double` values then the field type is inferred as `double` instead of `ExtendedJSON` ([#77](https://github.com/hasura/ndc-mongodb/pull/77)) - Fix: schema generated with `_id` column nullable when introspecting schema via sampling ([#78](https://github.com/hasura/ndc-mongodb/pull/78)) +- Don't require _id field to have type ObjectId when generating primary uniqueness constraint ([#79](https://github.com/hasura/ndc-mongodb/pull/79)) ## [0.0.6] - 2024-05-01 + - Enables logging events from the MongoDB driver by setting the `RUST_LOG` variable ([#67](https://github.com/hasura/ndc-mongodb/pull/67)) - To log all events set `RUST_LOG=mongodb::command=debug,mongodb::connection=debug,mongodb::server_selection=debug,mongodb::topology=debug` - Relations with a single column mapping now use concise correlated subquery syntax in `$lookup` stage ([#65](https://github.com/hasura/ndc-mongodb/pull/65)) @@ -21,15 +25,17 @@ This changelog documents the changes between release versions. - Note: `native_procedures` folder in configuration is not deprecated. It will continue to work for a few releases, but renaming your folder is all that is needed. ## [0.0.5] - 2024-04-26 + - Fix incorrect order of results for query requests with more than 10 variable sets (#37) - In the CLI update command, don't overwrite schema files that haven't changed ([#49](https://github.com/hasura/ndc-mongodb/pull/49/files)) - In the CLI update command, if the database URI is not provided the error message now mentions the correct environment variable to use (`MONGODB_DATABASE_URI`) ([#50](https://github.com/hasura/ndc-mongodb/pull/50)) - Update to latest NDC SDK ([#51](https://github.com/hasura/ndc-mongodb/pull/51)) -- Update `rustls` dependency to fix https://github.com/hasura/ndc-mongodb/security/dependabot/1 ([#51](https://github.com/hasura/ndc-mongodb/pull/51)) +- Update `rustls` dependency to fix ([#51](https://github.com/hasura/ndc-mongodb/pull/51)) - Serialize query and mutation response fields with known types using simple JSON instead of Extended JSON (#53) (#59) - Add trace spans ([#58](https://github.com/hasura/ndc-mongodb/pull/58)) ## [0.0.4] - 2024-04-12 + - Queries that attempt to compare a column to a column in the query root table, or a related table, will now fail instead of giving the incorrect result ([#22](https://github.com/hasura/ndc-mongodb/pull/22)) - Fix bug in v2 to v3 conversion of query responses containing nested objects ([PR #27](https://github.com/hasura/ndc-mongodb/pull/27)) - Fixed bug where use of aggregate functions in queries would fail ([#26](https://github.com/hasura/ndc-mongodb/pull/26)) @@ -37,6 +43,7 @@ This changelog documents the changes between release versions. - The collection primary key `_id` property now has a unique constraint generated in the NDC schema for it ([#32](https://github.com/hasura/ndc-mongodb/pull/32)) ## [0.0.3] - 2024-03-28 + - Use separate schema files for each collection ([PR #14](https://github.com/hasura/ndc-mongodb/pull/14)) - Changes to `update` CLI command ([PR #17](https://github.com/hasura/ndc-mongodb/pull/17)): - new default behaviour: @@ -48,7 +55,9 @@ This changelog documents the changes between release versions. - Add `any` type and use it to represent mismatched types in sample documents ([PR #18](https://github.com/hasura/ndc-mongodb/pull/18)) ## [0.0.2] - 2024-03-26 + - Rename CLI plugin to ndc-mongodb ([PR #13](https://github.com/hasura/ndc-mongodb/pull/13)) ## [0.0.1] - 2024-03-22 + Initial release diff --git a/crates/configuration/src/configuration.rs b/crates/configuration/src/configuration.rs index e7719ec7..f028a504 100644 --- a/crates/configuration/src/configuration.rs +++ b/crates/configuration/src/configuration.rs @@ -2,7 +2,6 @@ use std::{collections::BTreeMap, path::Path}; use anyhow::{anyhow, ensure}; use itertools::Itertools; -use mongodb_support::BsonScalarType; use ndc_models as ndc; use serde::{Deserialize, Serialize}; @@ -282,12 +281,12 @@ fn get_primary_key_uniqueness_constraint( name: &str, collection_type: &str, ) -> Option<(String, ndc::UniquenessConstraint)> { - // Check to make sure our collection's object type contains the _id objectid field + // Check to make sure our collection's object type contains the _id field // If it doesn't (should never happen, all collections need an _id column), don't generate the constraint let object_type = object_types.get(collection_type)?; let id_field = object_type.fields.get("_id")?; match &id_field.r#type { - schema::Type::Scalar(BsonScalarType::ObjectId) => Some(()), + schema::Type::Scalar(scalar_type) if scalar_type.is_comparable() => Some(()), _ => None, }?; let uniqueness_constraint = ndc::UniquenessConstraint {