Skip to content

[coverage] Conformance findings: STATEMENT-026 #1627

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

  • STATEMENT-026 [thrift, sea]: Connection.setCatalog issues SET CATALOG unconditionally instead of only on change — it never compares against the session's tracked current catalog, so scoping to the catalog the session is already on still costs an extra server round-trip (ES-2115589)
    • failing test: testCatalogScopingSkippedWhenAlreadyCurrent (see the coverage PR diff under tests/)
  • STATEMENT-026: Connection.setCatalog issues SET CATALOG unconditionally instead of only on a genuine change: it never compares the requested catalog against the session's tracked current catalog, so every call costs an extra server round-trip even when the session is already on that catalog (ES-2115589; ODBC issues the change only on change)

Reproduce & Expected

STATEMENT-026 — Validates that catalog scoping is issue-ON-CHANGE, not per query: with scoping opted in and the session ALREADY on the requested catalog, the driver issues NO catalog-change statement, and the bare 2…

Reproduce:

SELECT COUNT(*) FROM `<test schema>`.`<test table>`
SELECT COUNT(*) FROM `<test schema>`.`<test table>`

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1 row(s)
  • completes without an exception
  • result has exactly 1 row(s)
  • [thrift] exactly 0 ExecuteStatement call(s)
  • [sea] exactly 0 ExecuteStatement call(s)

Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions