[coverage] Conformance findings: STATEMENT-025

Open
#495 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
sql, typescript
Domain
backend, database

Research direction

Start with the STATEMENT-025 xfail test in the coverage PR diff under tests/ and trace the driver’s per-operation CloseOperation teardown path. Reproduce the two-query case, then verify that a failed close does not escape teardown or prevent connection reuse, while the expected row counts and protocol calls still hold.

Written by the indexing model from the issue text.

Description

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-nodejs. 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-sql-nodejs) is fixed, then flips green as a tripwire.

Findings

  • STATEMENT-025 [thrift]: Thrift: a failed per-operation teardown close (CloseOperation forced to 404) is not best-effort — the 404 propagates out of teardown as a raw THTTPException instead of being swallowed, so cleanup becomes a caller-visible error
    • failing test: STATEMENT-025 — failed teardown CloseOperation is swallowed and teardown continues [thrift] (see the coverage PR diff under tests/)

Reproduce & Expected

STATEMENT-025 — Validates that a FAILING per-operation close RPC issued during teardown is BEST EFFORT: the failure must not propagate out of close/dispose, and must not abort the rest of teardown.

Reproduce:

SELECT id FROM range(1000)
SELECT 1

Expected (per the shared spec):

  • result has exactly 1000 row(s)
  • completes without an exception
  • completes without an exception
  • result has exactly 1 row(s)
  • full assertion contract:
result:
- label: consumed
  row_count: 1000
- label: teardown
  no_exception: true
- label: reused_connection
  no_exception: true
- label: reused_connection
  row_count: 1
protocol:
  thrift:
  - call_min:
      method: CloseOperation
      min: 1
  sea:
  - call_min:
      operation: CloseStatement
      min: 1

Context

Dominant language
TypeScript
Stars
36
Forks
50
Avg merge
13h 46m
Merged PRs (30d)
9

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from databricks/databricks-sql-nodejs

All issues in databricks/databricks-sql-nodejs

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.