mirror of
https://github.com/FerretDB/documentdb.git
synced 2026-11-07 03:22:46 -05:00
### Does this PR have any customer impact? No ### Type (Feature, Refactoring, Bugfix, DevOps, Testing, Perf, etc) Feature ### Does it involve schema level changes? (Table, Column, Index, UDF, etc level changes) No ### Are you introducing any new config? If yes, do you have tests with and without them being set? No ### ChangeLog (Refer [Template](../oss/CHANGELOG.md)) ### Description `deleteOne` requires `_id` or shard key value filter. If only `_id` is used, we query for the minimum shard key value and use it. The querying for that shard key must be able to use the `variableSpec`. ---- #### AI description (iteration 1) #### PR Classification API change to enable proper handling of deleteOne commands on sharded collections using only an _id filter by incorporating variable specification support. #### PR Summary This pull request enhances deleteOne functionality by integrating a variableSpec (let variable) into query construction for sharded collections, ensuring that _id-only filters are handled correctly. The changes update core command functions, test expectations, and configuration flags to support the new behavior. - **`commands_common.c`**: Revised the `FindShardKeyValueForDocumentId` function to accept a new variableSpec parameter and conditionally modify the query. - **`delete.c` and `update.c`**: Updated deletion and update operations to process the variableSpec for write commands. - **Test and Configuration Files**: Renamed and updated GUC flags (from enableLet... to enableVariablesAndCollationSupportForQueryMatch) and adjusted expected outputs to reflect the new deleteOne behavior. <!-- GitOpsUserAgent=GitOps.Apps.Server.pullrequestcopilot -->