Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-jdbc. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-jdbc) is fixed, then flips green as a tripwire.
Findings
- PARAMQUERY-021 [thrift, sea]: setObject with a Types.FLOAT target rides as the Databricks 4-byte FLOAT instead of the 8-byte DOUBLE the spec requires (Types.FLOAT and Types.REAL collapse to one wire type), silently narrowing double-precision binds
- failing test:
testTargetTypeDrivesWireTypeAcrossScalarTypes (see the coverage PR diff under tests/)
Reproduce & Expected
PARAMQUERY-021 — Verify the declared SQL target type — not the bound value's own native/buffer type — determines the type the parameter rides as on the wire, across the scalar and temporal target set. Binding the SAME textual value against different target types must yield differently-typed result columns for a bare marker projection.
Reproduce:
Expected (per the shared spec):
- result has exactly 1 row(s)
- col 0, row 0 == 42 (type Int32)
- full assertion contract:
result:
- row_count: 1
- column:
index: 0
row: 0
type: Int32
equals: 42
- result_column_type_matches_target: true
Context
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-jdbc. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-jdbc) is fixed, then flips green as a tripwire.
Findings
testTargetTypeDrivesWireTypeAcrossScalarTypes(see the coverage PR diff undertests/)Reproduce & Expected
PARAMQUERY-021 — Verify the declared SQL target type — not the bound value's own native/buffer type — determines the type the parameter rides as on the wire, across the scalar and temporal target set. Binding the SAME textual value against different target types must yield differently-typed result columns for a bare marker projection.
Reproduce:
Expected (per the shared spec):
Context