Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[coverage] Conformance findings: DATATYPE-042

オープン
#496 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
55/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
sql, typescript
領域
api, backend, databases

調査の方向性

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 a CAST(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 under tests/)
  • 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 a CAST(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

主要言語
TypeScript
スター
36
フォーク
50
平均マージ
13時間 46分
マージ済み PR(30日)
9

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

databricks/databricks-sql-nodejs のほかの issue

databricks/databricks-sql-nodejs の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。