Skip to content

Bump mongo-java-driver from 3.12.4 to 3.12.10#4

Merged
lvca merged 1 commit into
mainfrom
dependabot/maven/org.mongodb-mongo-java-driver-3.12.10
Sep 16, 2021
Merged

Bump mongo-java-driver from 3.12.4 to 3.12.10#4
lvca merged 1 commit into
mainfrom
dependabot/maven/org.mongodb-mongo-java-driver-3.12.10

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Aug 16, 2021

Bumps mongo-java-driver from 3.12.4 to 3.12.10.

Release notes

Sourced from mongo-java-driver's releases.

Java Driver 3.12.8 (February 18, 2021)

Release Notes: https://developer.mongodb.com/community/forums/t/mongodb-java-driver-3-12-8-released/16823

Java Driver 3.12.6 (July 8, 2020)

Release Notes: https://developer.mongodb.com/community/forums/t/mongodb-java-driver-3-12-6-released/6448/2

Java Driver 3.12.5 (June 2, 2020)

Release Notes: https://developer.mongodb.com/community/forums/t/mongodb-java-driver-3-12-5-released/4886

Commits
  • d5e75f4 Build: version 3.12.10
  • 9c4c81a Docs: Updated for 3.12.10 release
  • 149a04c Disable test that no longer passes on 5.1 server
  • 2a32ac3 Support aggregation with $merge as a string (#768)
  • 81cc1a7 Add top-level error labels to write concern error (#766)
  • c3c0a2c Set proper stream factory in AbstractUnifiedTest
  • 411d5dc Remove misleading note about mongocryptd in reference docs
  • b062e59 Disable tests of legacy wire protocol on 5.1+ servers
  • ba6aef8 Build: version 3.12.10-SNAPSHOT
  • 39815b4 Build: version 3.12.9
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java labels Aug 16, 2021
@arcade-player
Copy link
Copy Markdown
Contributor

@dependabot rebase

@dependabot dependabot Bot force-pushed the dependabot/maven/org.mongodb-mongo-java-driver-3.12.10 branch 2 times, most recently from 81de53e to 8786b96 Compare September 1, 2021 07:01
Bumps [mongo-java-driver](https://github.com/mongodb/mongo-java-driver) from 3.12.4 to 3.12.10.
- [Release notes](https://github.com/mongodb/mongo-java-driver/releases)
- [Commits](mongodb/mongo-java-driver@r3.12.4...r3.12.10)

---
updated-dependencies:
- dependency-name: org.mongodb:mongo-java-driver
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/maven/org.mongodb-mongo-java-driver-3.12.10 branch from 8786b96 to 44f17ac Compare September 16, 2021 15:52
@lvca lvca merged commit f30d7b1 into main Sep 16, 2021
@dependabot dependabot Bot deleted the dependabot/maven/org.mongodb-mongo-java-driver-3.12.10 branch September 16, 2021 21:26
@claude claude Bot mentioned this pull request May 5, 2026
2 tasks
lvca added a commit that referenced this pull request May 8, 2026
#4136)

* HTTP: route int8 query vectors to byte[] via $bytes/$int8 markers (#4135)

Closes the HTTP/JSON gap left by the INT8 ingest landing (#4132/#4133):
clients can now send int8 query vectors that reach the engine as byte[]
and trigger the encoding-aware dequantization on LSM_VECTOR indexes,
rather than getting silently round-tripped through float32 and losing
the 4x payload claim on the wire.

Wire convention (Extended JSON-style):
- {"$bytes": "<base64>"}    -> byte[] decoded from base64
- {"$int8":  [v0, v1, ...]} -> byte[] packed from int values in [-128, 127]

The int8 form also accepts the float[] / double[] shapes that
JSONObject.toMap(optimizeNumericArrays=true) produces for JSON integer
arrays, with a fractional-value check that rejects non-integer floats so
a caller mixing up float and int8 vectors fails loudly at the wire
boundary.

Implementation:

- AbstractQueryHandler.decodeTypedJsonMarkers recursively walks the
  parsed param map and rewrites single-key {"$bytes" | "$int8": ...}
  objects into byte[]; multi-key maps and unrelated single-key maps pass
  through unchanged so existing user data with leading-$ keys is not
  silently transformed.
- mapParams calls the decoder before its existing ordinal-vs-named
  routing so the byte[] flows verbatim to SQL parameter binding.

Tests:

- AbstractQueryHandlerTypedJsonMarkersTest: 11 unit cases pin the
  decoder contract (base64 decode, int list decode, float[] decode,
  out-of-range / non-integer / non-numeric / bad-base64 rejection,
  multi-key passthrough, list-of-markers recursion, scalar passthrough).
- Int8VectorHttpIT: 2 end-to-end cases spin up the HTTP server,
  create an INT8 vector index, and submit `vector.neighbors` queries
  via HTTP using both marker forms; the seed-0 record comes back as the
  top hit confirming the byte[] path is exercised.

Comparison matrix updated to drop the "HTTP/JSON wire routing tracked
in #4135" caveat - INT8 ingest is now end-to-end.

* #4134 LSMVectorIndex: consolidate constructor args into LSMVectorIndexConfig record

Replaces the 17-positional-arg primary constructor with a single
LSMVectorIndexConfig value object. The factory handler no longer needs
to post-mutate metadata.encoding after construction, so the metadata
is fully populated atomically before the instance escapes.

* HTTP int8 markers: review fixes (null/key checks, int[], lazy alloc, tests)

- {"$bytes": null} now throws IllegalArgumentException naming the marker
  and the null instead of falling through to the recursive-map branch
- {"$bytes": <non-string>} same treatment
- Map-key recursion validates instanceof String and throws a clear
  IllegalArgumentException instead of letting a hypothetical non-string
  key surface as an opaque ClassCastException
- $int8 now also accepts int[] payloads alongside List/float[]/double[]
  for completeness
- decodeTypedJsonMarkers short-circuits without allocating a fresh
  LinkedHashMap when the param map carries no nested Map/List, which is
  the normal case for non-vector queries
- Trimmed multi-paragraph Javadocs and what-not-why inline comments
  per CLAUDE.md style

Tests:
- New cases for double[] payload, empty $int8 array, empty $bytes
  string, {"$bytes": null} rejection, int[] payload, and a two-level
  nested-map recursion (sibling to the existing list-recursion test).
- Test-class headers trimmed to one-line Javadocs.

* HTTP int8 markers: URL-safe base64, long[], zero-alloc passthrough, OpenAPI

- $bytes now accepts URL-safe base64 (RFC 4648 section 5) by retrying
  with Base64.getUrlDecoder() on the standard decoder's failure. Common
  in ML tooling that base64-encodes embeddings using - and _ in place of
  + and /.
- $int8 now accepts long[] payloads alongside List, float[], double[],
  int[].
- decodeTypedJsonMarkers and the Map/List recursion arms now return the
  original reference when no entry was rewritten. A parameter map of
  scalars + plain nested maps no longer pays for a fresh LinkedHashMap
  allocation per request - only marker-bearing requests build a new map.
- Decoder split into two private helpers (decodeBytesMarker /
  decodeInt8Marker) so the dispatcher reads as a one-line switch on the
  marker key.
- OpenAPI spec for /query and /command param fields now documents the
  $bytes / $int8 marker convention so users discover it from the API
  reference instead of source code.
- Int8VectorHttpIT POSTs Content-Type: application/json explicitly.

Tests:
- New cases for long[] payload, explicit -128/127 boundary, URL-safe
  base64 round-trip, and a same-reference assertion that pins the
  zero-allocation passthrough on marker-free maps.

* HTTP int8 markers: fix nested-map break, depth guard, IAE -> 400 on tx wrap

- decodeTypedJsonMarker's nested-map prefix-copy loop now uses an
  index-based break instead of reference equality on the key. The
  previous loop assumed the same Map.Entry returns the same key
  reference across iterations, which holds for HashMap/LinkedHashMap
  but is not part of the Map contract.
- Decoder recursion is bounded at 32 levels with an IllegalArgumentException
  on overflow; protects against StackOverflowError on hostile or
  accidentally deeply-nested JSON without depending on the upstream
  parser's depth limit.
- Decode call moved from mapParams to PostCommandHandler.execute() so
  it runs before the database.transaction wrapper rather than under it.
- AbstractServerHttpHandler's TransactionException catch arm now
  unwraps an IllegalArgumentException cause and returns HTTP 400,
  matching the un-wrapped catch arm. Without this, a malformed marker
  thrown from inside the transaction lambda was wrapped in a
  TransactionException and downgraded to HTTP 500 even though the
  underlying problem is bad client input.

Tests:

- New int8MarkerNullValueIsRejected gives the int8 path symmetric
  null-payload coverage (the bytes path already had it).
- New deeplyNestedPayloadIsRejected pins the 32-level depth guard.
- New Int8VectorHttpIT.int8MarkerOutOfRangeReturnsHttp400 confirms the
  IllegalArgumentException -> HTTP 400 chain end-to-end (was returning
  500 prior to the AbstractServerHttpHandler unwrap fix).

* HTTP int8 markers: simplify toInt8 guard, dedup IT helpers, ordinal test

- toInt8 drops the redundant Double.isNaN / Double.isInfinite checks.
  NaN already trips the v != Math.floor(v) guard (NaN compared with
  anything is false, so != is true). Infinity passes that guard but is
  caught by the subsequent range check, so explicit handling here was
  dead code. Comment notes both flow paths so a future reader does not
  accidentally re-add the redundancy.
- Int8VectorHttpIT now factors postQuery on top of postQueryRaw, sharing
  a single connection-setup helper and HttpResult type instead of two
  near-identical bodies.
- @tag("slow") on the IT class so CI runs that filter out slow tests
  skip the full server boot. Spinning up the HTTP server + creating an
  index + 16 inserts puts the elapsed time over the multi-second
  threshold called out in CLAUDE.md.

Tests:

- New ordinalKeyMapWithMarkersIsDecoded covers the positional-array
  call shape (params keyed "0", "1", ...) that PostCommandHandler
  produces from a JSON array body. Without this, the typed-marker
  decoder is only exercised under named-key params at the unit level.
tae898 pushed a commit to humemai/arcadedb-embedded-python that referenced this pull request May 10, 2026
…cadeData#4… (ArcadeData#4136)

* HTTP: route int8 query vectors to byte[] via $bytes/$int8 markers (ArcadeData#4135)

Closes the HTTP/JSON gap left by the INT8 ingest landing (ArcadeData#4132/ArcadeData#4133):
clients can now send int8 query vectors that reach the engine as byte[]
and trigger the encoding-aware dequantization on LSM_VECTOR indexes,
rather than getting silently round-tripped through float32 and losing
the 4x payload claim on the wire.

Wire convention (Extended JSON-style):
- {"$bytes": "<base64>"}    -> byte[] decoded from base64
- {"$int8":  [v0, v1, ...]} -> byte[] packed from int values in [-128, 127]

The int8 form also accepts the float[] / double[] shapes that
JSONObject.toMap(optimizeNumericArrays=true) produces for JSON integer
arrays, with a fractional-value check that rejects non-integer floats so
a caller mixing up float and int8 vectors fails loudly at the wire
boundary.

Implementation:

- AbstractQueryHandler.decodeTypedJsonMarkers recursively walks the
  parsed param map and rewrites single-key {"$bytes" | "$int8": ...}
  objects into byte[]; multi-key maps and unrelated single-key maps pass
  through unchanged so existing user data with leading-$ keys is not
  silently transformed.
- mapParams calls the decoder before its existing ordinal-vs-named
  routing so the byte[] flows verbatim to SQL parameter binding.

Tests:

- AbstractQueryHandlerTypedJsonMarkersTest: 11 unit cases pin the
  decoder contract (base64 decode, int list decode, float[] decode,
  out-of-range / non-integer / non-numeric / bad-base64 rejection,
  multi-key passthrough, list-of-markers recursion, scalar passthrough).
- Int8VectorHttpIT: 2 end-to-end cases spin up the HTTP server,
  create an INT8 vector index, and submit `vector.neighbors` queries
  via HTTP using both marker forms; the seed-0 record comes back as the
  top hit confirming the byte[] path is exercised.

Comparison matrix updated to drop the "HTTP/JSON wire routing tracked
in ArcadeData#4135" caveat - INT8 ingest is now end-to-end.

* ArcadeData#4134 LSMVectorIndex: consolidate constructor args into LSMVectorIndexConfig record

Replaces the 17-positional-arg primary constructor with a single
LSMVectorIndexConfig value object. The factory handler no longer needs
to post-mutate metadata.encoding after construction, so the metadata
is fully populated atomically before the instance escapes.

* HTTP int8 markers: review fixes (null/key checks, int[], lazy alloc, tests)

- {"$bytes": null} now throws IllegalArgumentException naming the marker
  and the null instead of falling through to the recursive-map branch
- {"$bytes": <non-string>} same treatment
- Map-key recursion validates instanceof String and throws a clear
  IllegalArgumentException instead of letting a hypothetical non-string
  key surface as an opaque ClassCastException
- $int8 now also accepts int[] payloads alongside List/float[]/double[]
  for completeness
- decodeTypedJsonMarkers short-circuits without allocating a fresh
  LinkedHashMap when the param map carries no nested Map/List, which is
  the normal case for non-vector queries
- Trimmed multi-paragraph Javadocs and what-not-why inline comments
  per CLAUDE.md style

Tests:
- New cases for double[] payload, empty $int8 array, empty $bytes
  string, {"$bytes": null} rejection, int[] payload, and a two-level
  nested-map recursion (sibling to the existing list-recursion test).
- Test-class headers trimmed to one-line Javadocs.

* HTTP int8 markers: URL-safe base64, long[], zero-alloc passthrough, OpenAPI

- $bytes now accepts URL-safe base64 (RFC 4648 section 5) by retrying
  with Base64.getUrlDecoder() on the standard decoder's failure. Common
  in ML tooling that base64-encodes embeddings using - and _ in place of
  + and /.
- $int8 now accepts long[] payloads alongside List, float[], double[],
  int[].
- decodeTypedJsonMarkers and the Map/List recursion arms now return the
  original reference when no entry was rewritten. A parameter map of
  scalars + plain nested maps no longer pays for a fresh LinkedHashMap
  allocation per request - only marker-bearing requests build a new map.
- Decoder split into two private helpers (decodeBytesMarker /
  decodeInt8Marker) so the dispatcher reads as a one-line switch on the
  marker key.
- OpenAPI spec for /query and /command param fields now documents the
  $bytes / $int8 marker convention so users discover it from the API
  reference instead of source code.
- Int8VectorHttpIT POSTs Content-Type: application/json explicitly.

Tests:
- New cases for long[] payload, explicit -128/127 boundary, URL-safe
  base64 round-trip, and a same-reference assertion that pins the
  zero-allocation passthrough on marker-free maps.

* HTTP int8 markers: fix nested-map break, depth guard, IAE -> 400 on tx wrap

- decodeTypedJsonMarker's nested-map prefix-copy loop now uses an
  index-based break instead of reference equality on the key. The
  previous loop assumed the same Map.Entry returns the same key
  reference across iterations, which holds for HashMap/LinkedHashMap
  but is not part of the Map contract.
- Decoder recursion is bounded at 32 levels with an IllegalArgumentException
  on overflow; protects against StackOverflowError on hostile or
  accidentally deeply-nested JSON without depending on the upstream
  parser's depth limit.
- Decode call moved from mapParams to PostCommandHandler.execute() so
  it runs before the database.transaction wrapper rather than under it.
- AbstractServerHttpHandler's TransactionException catch arm now
  unwraps an IllegalArgumentException cause and returns HTTP 400,
  matching the un-wrapped catch arm. Without this, a malformed marker
  thrown from inside the transaction lambda was wrapped in a
  TransactionException and downgraded to HTTP 500 even though the
  underlying problem is bad client input.

Tests:

- New int8MarkerNullValueIsRejected gives the int8 path symmetric
  null-payload coverage (the bytes path already had it).
- New deeplyNestedPayloadIsRejected pins the 32-level depth guard.
- New Int8VectorHttpIT.int8MarkerOutOfRangeReturnsHttp400 confirms the
  IllegalArgumentException -> HTTP 400 chain end-to-end (was returning
  500 prior to the AbstractServerHttpHandler unwrap fix).

* HTTP int8 markers: simplify toInt8 guard, dedup IT helpers, ordinal test

- toInt8 drops the redundant Double.isNaN / Double.isInfinite checks.
  NaN already trips the v != Math.floor(v) guard (NaN compared with
  anything is false, so != is true). Infinity passes that guard but is
  caught by the subsequent range check, so explicit handling here was
  dead code. Comment notes both flow paths so a future reader does not
  accidentally re-add the redundancy.
- Int8VectorHttpIT now factors postQuery on top of postQueryRaw, sharing
  a single connection-setup helper and HttpResult type instead of two
  near-identical bodies.
- @tag("slow") on the IT class so CI runs that filter out slow tests
  skip the full server boot. Spinning up the HTTP server + creating an
  index + 16 inserts puts the elapsed time over the multi-second
  threshold called out in CLAUDE.md.

Tests:

- New ordinalKeyMapWithMarkersIsDecoded covers the positional-array
  call shape (params keyed "0", "1", ...) that PostCommandHandler
  produces from a JSON array body. Without this, the typed-marker
  decoder is only exercised under named-key params at the unit level.
robfrank pushed a commit that referenced this pull request May 12, 2026
#4136)

* HTTP: route int8 query vectors to byte[] via $bytes/$int8 markers (#4135)

Closes the HTTP/JSON gap left by the INT8 ingest landing (#4132/#4133):
clients can now send int8 query vectors that reach the engine as byte[]
and trigger the encoding-aware dequantization on LSM_VECTOR indexes,
rather than getting silently round-tripped through float32 and losing
the 4x payload claim on the wire.

Wire convention (Extended JSON-style):
- {"$bytes": "<base64>"}    -> byte[] decoded from base64
- {"$int8":  [v0, v1, ...]} -> byte[] packed from int values in [-128, 127]

The int8 form also accepts the float[] / double[] shapes that
JSONObject.toMap(optimizeNumericArrays=true) produces for JSON integer
arrays, with a fractional-value check that rejects non-integer floats so
a caller mixing up float and int8 vectors fails loudly at the wire
boundary.

Implementation:

- AbstractQueryHandler.decodeTypedJsonMarkers recursively walks the
  parsed param map and rewrites single-key {"$bytes" | "$int8": ...}
  objects into byte[]; multi-key maps and unrelated single-key maps pass
  through unchanged so existing user data with leading-$ keys is not
  silently transformed.
- mapParams calls the decoder before its existing ordinal-vs-named
  routing so the byte[] flows verbatim to SQL parameter binding.

Tests:

- AbstractQueryHandlerTypedJsonMarkersTest: 11 unit cases pin the
  decoder contract (base64 decode, int list decode, float[] decode,
  out-of-range / non-integer / non-numeric / bad-base64 rejection,
  multi-key passthrough, list-of-markers recursion, scalar passthrough).
- Int8VectorHttpIT: 2 end-to-end cases spin up the HTTP server,
  create an INT8 vector index, and submit `vector.neighbors` queries
  via HTTP using both marker forms; the seed-0 record comes back as the
  top hit confirming the byte[] path is exercised.

Comparison matrix updated to drop the "HTTP/JSON wire routing tracked
in #4135" caveat - INT8 ingest is now end-to-end.

* #4134 LSMVectorIndex: consolidate constructor args into LSMVectorIndexConfig record

Replaces the 17-positional-arg primary constructor with a single
LSMVectorIndexConfig value object. The factory handler no longer needs
to post-mutate metadata.encoding after construction, so the metadata
is fully populated atomically before the instance escapes.

* HTTP int8 markers: review fixes (null/key checks, int[], lazy alloc, tests)

- {"$bytes": null} now throws IllegalArgumentException naming the marker
  and the null instead of falling through to the recursive-map branch
- {"$bytes": <non-string>} same treatment
- Map-key recursion validates instanceof String and throws a clear
  IllegalArgumentException instead of letting a hypothetical non-string
  key surface as an opaque ClassCastException
- $int8 now also accepts int[] payloads alongside List/float[]/double[]
  for completeness
- decodeTypedJsonMarkers short-circuits without allocating a fresh
  LinkedHashMap when the param map carries no nested Map/List, which is
  the normal case for non-vector queries
- Trimmed multi-paragraph Javadocs and what-not-why inline comments
  per CLAUDE.md style

Tests:
- New cases for double[] payload, empty $int8 array, empty $bytes
  string, {"$bytes": null} rejection, int[] payload, and a two-level
  nested-map recursion (sibling to the existing list-recursion test).
- Test-class headers trimmed to one-line Javadocs.

* HTTP int8 markers: URL-safe base64, long[], zero-alloc passthrough, OpenAPI

- $bytes now accepts URL-safe base64 (RFC 4648 section 5) by retrying
  with Base64.getUrlDecoder() on the standard decoder's failure. Common
  in ML tooling that base64-encodes embeddings using - and _ in place of
  + and /.
- $int8 now accepts long[] payloads alongside List, float[], double[],
  int[].
- decodeTypedJsonMarkers and the Map/List recursion arms now return the
  original reference when no entry was rewritten. A parameter map of
  scalars + plain nested maps no longer pays for a fresh LinkedHashMap
  allocation per request - only marker-bearing requests build a new map.
- Decoder split into two private helpers (decodeBytesMarker /
  decodeInt8Marker) so the dispatcher reads as a one-line switch on the
  marker key.
- OpenAPI spec for /query and /command param fields now documents the
  $bytes / $int8 marker convention so users discover it from the API
  reference instead of source code.
- Int8VectorHttpIT POSTs Content-Type: application/json explicitly.

Tests:
- New cases for long[] payload, explicit -128/127 boundary, URL-safe
  base64 round-trip, and a same-reference assertion that pins the
  zero-allocation passthrough on marker-free maps.

* HTTP int8 markers: fix nested-map break, depth guard, IAE -> 400 on tx wrap

- decodeTypedJsonMarker's nested-map prefix-copy loop now uses an
  index-based break instead of reference equality on the key. The
  previous loop assumed the same Map.Entry returns the same key
  reference across iterations, which holds for HashMap/LinkedHashMap
  but is not part of the Map contract.
- Decoder recursion is bounded at 32 levels with an IllegalArgumentException
  on overflow; protects against StackOverflowError on hostile or
  accidentally deeply-nested JSON without depending on the upstream
  parser's depth limit.
- Decode call moved from mapParams to PostCommandHandler.execute() so
  it runs before the database.transaction wrapper rather than under it.
- AbstractServerHttpHandler's TransactionException catch arm now
  unwraps an IllegalArgumentException cause and returns HTTP 400,
  matching the un-wrapped catch arm. Without this, a malformed marker
  thrown from inside the transaction lambda was wrapped in a
  TransactionException and downgraded to HTTP 500 even though the
  underlying problem is bad client input.

Tests:

- New int8MarkerNullValueIsRejected gives the int8 path symmetric
  null-payload coverage (the bytes path already had it).
- New deeplyNestedPayloadIsRejected pins the 32-level depth guard.
- New Int8VectorHttpIT.int8MarkerOutOfRangeReturnsHttp400 confirms the
  IllegalArgumentException -> HTTP 400 chain end-to-end (was returning
  500 prior to the AbstractServerHttpHandler unwrap fix).

* HTTP int8 markers: simplify toInt8 guard, dedup IT helpers, ordinal test

- toInt8 drops the redundant Double.isNaN / Double.isInfinite checks.
  NaN already trips the v != Math.floor(v) guard (NaN compared with
  anything is false, so != is true). Infinity passes that guard but is
  caught by the subsequent range check, so explicit handling here was
  dead code. Comment notes both flow paths so a future reader does not
  accidentally re-add the redundancy.
- Int8VectorHttpIT now factors postQuery on top of postQueryRaw, sharing
  a single connection-setup helper and HttpResult type instead of two
  near-identical bodies.
- @tag("slow") on the IT class so CI runs that filter out slow tests
  skip the full server boot. Spinning up the HTTP server + creating an
  index + 16 inserts puts the elapsed time over the multi-second
  threshold called out in CLAUDE.md.

Tests:

- New ordinalKeyMapWithMarkersIsDecoded covers the positional-array
  call shape (params keyed "0", "1", ...) that PostCommandHandler
  produces from a JSON array body. Without this, the typed-marker
  decoder is only exercised under named-key params at the unit level.

(cherry picked from commit d8fe7f4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants