Skip to content

[coverage] Conformance findings: PARAMQUERY-021 #1599

Description

@peco-engineer-bot

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:

SELECT ? AS v

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    engineer-botMaintainer-only: triggers the autonomous engineer-bot (bug-fix author on issues; follow-up on PRs)

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions