[coverage] Conformance findings: DATATYPE-042
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 55/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- sql, typescript
調査の方向性
tests/ 配下の coverage PR にある DATATYPE-042 expected-failure test から始め、次に想定される動作を reference PR #644 と比較します。databricks-sql-nodejs が 2 つの SELECT NULL クエリのメタデータをどのように報告するかを追跡します。両方の列について live の結果と空の結果の両方が STRING を報告し、名前と null 値を保持し、列挙された row-count assertions を満たせば完了です。
索引モデルが 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
- DATATYPE-042 [sea]: SEA/kernel reports NULL_TYPE (TTypeId 16) for an untyped
SELECT NULL(VOID) result column instead of its STRING type, so it disagrees with aCAST(NULL AS STRING)sibling in the same result set; Thrift correctly reports STRING_TYPE- failing test:
untyped NULL column is reported as STRING, matching its CAST(NULL AS STRING) sibling [sea](see the coverage PR diff undertests/)
- failing test:
- DATATYPE-042: SEA/kernel reports NULL_TYPE (TTypeId 16) for an untyped
SELECT NULL(VOID) result column instead of its STRING type, so the column disagrees with aCAST(NULL AS STRING)sibling in the same result set; Thrift correctly reports STRING_TYPE
Reproduce & Expected
DATATYPE-042 — Verify that an UNTYPED NULL column -- a bare SELECT NULL expression, whose Databricks SQL type is VOID (spelled NULL on some surfaces) -- is reported by the driver as its STRING type, identically t…
Reproduce:
SELECT NULL AS untyped_null, CAST(NULL AS STRING) AS typed_null_string
SELECT NULL AS untyped_null, CAST(NULL AS STRING) AS typed_null_string FROM range(1) WHERE 1 = 0
Expected (per the shared spec):
- completes without an exception
- result has 2 column(s)
- col 0 is named
untyped_null - col 1 is named
typed_null_string - result has exactly 1 row(s)
- col
untyped_null, row 0 is null - col
typed_null_string, row 0 is null - completes without an exception
- result has 2 column(s)
- col 0 is named
untyped_null - col 1 is named
typed_null_string - result has exactly 0 row(s)
- full assertion contract:
result:
- label: live_data
no_exception: true
- label: live_data
column_count: 2
- label: live_data
column:
index: 0
name: untyped_null
- label: live_data
column:
index: 1
name: typed_null_string
- label: live_data
column_reported_type:
name: untyped_null
equals: STRING
- label: live_data
column_reported_type:
name: typed_null_string
equals: STRING
- label: live_data
column_reported_types_match:
columns:
- untyped_null
- typed_null_string
- label: live_data
row_count: 1
- label: live_data
column:
name: untyped_null
is_null: true
- label: live_data
column:
name: typed_null_string
is_null: true
- label: live_data
column_data_agrees_with_reported_type:
columns:
- untyped_null
- typed_null_string
- label: empty_result
no_exception: true
- label: empty_result
column_count: 2
- label: empty_result
column:
index: 0
name: untyped_null
- label: empty_result
column:
index: 1
name: typed_null_string
- label: empty_result
column_reported_type:
name: untyped_null
equals: STRING
- label: empty_result
column_reported_type:
name: typed_null_string
equals: STRING
- label: empty_result
column_reported_types_match:
columns:
- untyped_null
- typed_null_string
- label: empty_result
row_count: 0
Context
- The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/adbc-drivers/databricks/pull/644 — 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/1258
- 主要言語
- 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