[coverage] Conformance findings: CLOUDFETCH-012
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 52/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- sql, typescript
調査の方向性
CLOUDFETCH-012 の coverage PR にある xfail テストと、executeStatement オプションおよび databricks.cloudfetch.enabled を処理するドライバーパスから始めます。意図された動作をリファレンス PR 225 と比較し、その後 SEA/kernel の ExecuteStatement および CreateSession リクエストを追跡します。契約を満たせば完了です。つまり、INLINE と ARROW_STREAM が使用され、can_cloud_download が存在せず、少なくとも 1 行が返され、cloud_download の呼び出しが 0 件であることです。
索引モデルが 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
- CLOUDFETCH-012 [sea]: SEA/kernel path silently ignores CloudFetch-disable: both per-statement
useCloudFetch:false(driver logs "no-op on kernel") and the connection-leveldatabricks.cloudfetch.enabled=falseextraParameter are dropped, so ExecuteStatement still sends disposition=INLINE_OR_EXTERNAL_LINKS instead of INLINE- failing test:
CLOUDFETCH-012 — cloudfetch disabled: disposition=INLINE, no can_cloud_download conf, 0 cloud downloads [sea](see the coverage PR diff undertests/)
- failing test:
- CLOUDFETCH-012: SEA/kernel path silently ignores CloudFetch-disable: both per-statement
executeStatement(sql, {useCloudFetch:false})(driver logs "no-op on kernel") and the connection-leveldatabricks.cloudfetch.enabled=falseextraParameter are dropped, so ExecuteStatement still sends disposition=INLINE_OR_EXTERNAL_LINKS instead of INLINE and callers who disable CloudFetch keep receiving external links
Reproduce & Expected
CLOUDFETCH-012 — Validates that when CloudFetch is disabled, no CloudFetch activity occurs and results are fetched via the driver's inline result path instead.
Reproduce:
- Execute query with CloudFetch disabled
Expected (per the shared spec):
- completes without an exception
- result has at least 1 row(s)
- [thrift]
ExecuteStatementrequestcanDownloadResult== False - [thrift] exactly 0
cloud_downloadcall(s) - [sea]
ExecuteStatementrequestdisposition== 'INLINE' - [sea]
ExecuteStatementrequestformat== 'ARROW_STREAM' - [sea]
CreateSessionrequestsession_confs.can_cloud_downloadis absent - [sea] exactly 0
cloud_downloadcall(s) - full assertion contract:
result:
- no_exception: true
- row_count_min: 1
- result_not_null_with_data: true
protocol:
thrift:
- request_field:
method: ExecuteStatement
path: canDownloadResult
equals: false
- call_min:
method: FetchResults
min: 1
- call_count:
method: cloud_download
expected: 0
sea:
- request_field:
operation: ExecuteStatement
path: disposition
equals: INLINE
- request_field:
operation: ExecuteStatement
path: format
equals: ARROW_STREAM
- request_field:
operation: CreateSession
path: session_confs.can_cloud_download
present: false
- call_count:
method: cloud_download
expected: 0
Context
- The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/databricks/databricks-sql-kernel/pull/225 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-nodejs; the reference PR is for cross-referencing the intended behavior, NOT a change to this repo.
- Coverage PR carrying the reproducing xfail test(s): https://github.com/databricks/databricks-driver-test/pull/1212
- 主要言語
- TypeScript
- スター
- 36
- フォーク
- 50
- 平均マージ
- 13時間 46分
- マージ済み PR(30日)
- 9
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
databricks/databricks-sql-nodejs のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
engineer-bot
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
databricks/databricks-sql-nodejs#274 · コメント 1 件 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
databricks/databricks-sql-nodejs の issue をすべて見る
似ている issue
-
VerificationGate: ATTRIBUTION quote guard never matches a normal quotation (\b around the quote) オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
danielmiessler/LifeOS#2234 ·
-
T: Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
Mend: dependency security vulnerability untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100