-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Component/s: BSON
-
None
-
Needed
-
Summary
The binary vector spec tests are JSON-format spec tests with a unique format. They encode, amongst other data, the numeric vector data for the test cases, including positive and negative infinity for some "float32" test cases. However, the JSON spec does not officially support encoding positive and negative infinity, and many JSON implementations can't decode those values directly as numbers (the quoted strings "inf" and "-inf" in this case), requiring additional conversion logic. The Extended JSON format does support those special floating point values. To avoid requiring some drivers teams to write additional number conversion logic, we should use canonical Extended JSON as the format for the binary vector spec tests.
Motivation
Who is the affected end user?
Drivers devs who are implementing binary vector support and spec test runners.
How does this affect the end user?
They have to implement custom JSON unmarshaling logic.
How likely is it that this problem or use case will occur?
Depends on the language, but any language that doesn't support the non-standard strings "inf", "-inf" for pos/neg infinity will have to write custom decode logic.
If the problem does occur, what are the consequences and how severe are they?
Wasted time, possible bugs in the spec test runner.
Is this issue urgent?
No.
Is this ticket required by a downstream team?
No.
Is this ticket only for tests?
Yes.
Acceptance Criteria
- Update the binary vector spec test runner docs to require that drivers decode the spec tests as canonical Extended JSON.
- Update the binary vector spec tests to use canonical Extended JSON format.
- split to
-
CSHARP-5482 Use canonical Extended JSON for BSON binary vector spec tests
-
- Needs Triage
-
-
JAVA-5779 Use canonical Extended JSON for BSON binary vector spec tests
-
- Needs Triage
-
-
MOTOR-1428 Use canonical Extended JSON for BSON binary vector spec tests
-
- Needs Triage
-
-
NODE-6711 Use canonical Extended JSON for BSON binary vector spec tests
-
- Needs Triage
-
-
PYTHON-5121 Use canonical Extended JSON for BSON binary vector spec tests
-
- Needs Triage
-
-
RUBY-3617 Use canonical Extended JSON for BSON binary vector spec tests
-
- Needs Triage
-
-
GODRIVER-3478 Use canonical Extended JSON for BSON binary vector spec tests
-
- Backlog
-
-
PHPC-2534 Use canonical Extended JSON for BSON binary vector spec tests
-
- Backlog
-
-
RUST-2147 Use canonical Extended JSON for BSON binary vector spec tests
-
- Backlog
-
-
CDRIVER-5880 Use canonical Extended JSON for BSON binary vector spec tests
-
- Closed
-
-
CXX-3213 Use canonical Extended JSON for BSON binary vector spec tests
-
- Closed
-