Skip to content

DRIVERS-3483 Clarify BulkWrite pre-flight check timing in collation spec#1941

Open
GromNaN wants to merge 2 commits into
mongodb:masterfrom
GromNaN:fix/collation-bulkwrite-timing
Open

DRIVERS-3483 Clarify BulkWrite pre-flight check timing in collation spec#1941
GromNaN wants to merge 2 commits into
mongodb:masterfrom
GromNaN:fix/collation-bulkwrite-timing

Conversation

@GromNaN
Copy link
Copy Markdown
Member

@GromNaN GromNaN commented May 13, 2026

Jira: https://jira.mongodb.org/browse/DRIVERS-3483

The paragraph following the BulkWrite example used lowercase must (not RFC 2119 normative) and did not repeat the MUST NOT send any operations condition, making the rejection timing ambiguous:

The driver must inspect each operation for a Collation if maxWireVersion is < 5
and fail the entire bulkWrite if a collation was explicitly specified.

A driver could read this as: iterate and send operations one by one, failing when it hits one with a Collation. The first paragraph already says MUST NOT send any operations to the server, but the repetition with weaker language introduced doubt.

Replace with RFC 2119 MUST and make the pre-flight nature explicit: all operations MUST be inspected before any are sent.

The second paragraph after the BulkWrite example used lowercase "must"
(non-RFC 2119) and did not repeat the "MUST NOT send any operations"
condition, leaving the rejection timing ambiguous (pre-flight vs.
on first encountered error).

Replace with uppercase MUST and explicitly restate that all operations
MUST be inspected before any are sent to the server.
@GromNaN GromNaN requested a review from a team as a code owner May 13, 2026 15:57
@GromNaN GromNaN requested review from qingyang-hu and removed request for a team May 13, 2026 15:57
@GromNaN GromNaN changed the title Clarify BulkWrite pre-flight check timing in collation spec DRIVERS-3483 Clarify BulkWrite pre-flight check timing in collation spec May 18, 2026
@GromNaN GromNaN enabled auto-merge (squash) May 20, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant