[coverage] Conformance findings: STATEMENT-023

未关闭
#480 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
55/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
sql, typescript
领域
api, backend, databases

调研方向

先从 coverage PR 的 tests/ diff 中的测试 STATEMENT-023 — driver bug: failing teardown CloseOperation escapes dispose [thrift] [xfail] 开始,然后使用此 issue 中的两条 SQL 语句重现该问题。跟踪通过 Thrift CloseOperation 释放 result-reader 的过程,并验证其在不抛出异常的情况下完成、返回一行、释放后读取被阻塞,以及执行了预期的 cleanup 调用。

由索引模型根据 Issue 内容生成。

描述

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-023 [thrift]: Thrift op.close() rethrows a failed teardown CloseOperation (injected 404) out of dispose instead of treating the per-operation close as best effort, so a cleanup-only error surfaces to the caller after results are fully consumed and the rest of the reader teardown is skipped
    • failing test: STATEMENT-023 — driver bug: failing teardown CloseOperation escapes dispose [thrift] [xfail] (see the coverage PR diff under tests/)

Reproduce & Expected

STATEMENT-023 — The per-operation close RPC (Thrift CloseOperation / SEA CloseStatement) issued during result-reader disposal is TEARDOWN cleanup: the operation's results have already been consumed by the time dispo…

Reproduce:

SELECT id FROM range(10000)
SELECT 1 AS test_value

Expected (per the shared spec):

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

Context

主要语言
TypeScript
星标
36
派生
50
平均合并
13 小时 46 分钟
30 天内合并 PR
9

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

databricks/databricks-sql-nodejs 的其他 Issue

查看 databricks/databricks-sql-nodejs 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。