[coverage] Conformance findings: RESULTFETCH-020
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 49/100
調査の方向性
Start with the failing TestDuplicateColumnNamesSurviveResultFetch in the coverage PR and trace the SEA/kernel path through kernel.newKernelRows and cdata.ImportCArrowSchema, where duplicate fields trigger the panic. Reproduce with the single-row query, then check row-oriented and Arrow fetches plus multi-chunk and JOIN cases. Done means duplicate column names and both positional values survive every fetch surface without an exception.
索引モデルが issue の本文から書いたものです。
説明
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-go. 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-go) is fixed, then flips green as a tripwire.
Findings
- RESULTFETCH-020 [sea]: SEA/kernel backend panics with
arrow: duplicate field with name "a"(arrow.StructOf via cdata.ImportCArrowSchema in kernel.newKernelRows) for any result with two identically named columns, including a single-row single-chunkSELECT 1 AS a, 2 AS a; the server returns both columns, so the failure is client-side Arrow schema assembly- failing test:
TestDuplicateColumnNamesSurviveResultFetch(see the coverage PR diff undertests/)
- failing test:
- RESULTFETCH-020: SEA/kernel backend panics with
arrow: duplicate field with name "a"(arrow.StructOf via cdata.ImportCArrowSchema in kernel.newKernelRows) for any result containing two identically named columns, including a single-row single-chunkSELECT 1 AS a, 2 AS a; the server returns both columns correctly, so the failure is client-side Arrow schema assembly
Reproduce & Expected
RESULTFETCH-020 — A query whose result set contains two columns with the SAME name is valid SQL (e.g.
Reproduce:
- Execute a one-row query with two identically named columns and read the
result fully, through every fetch surface the driver exposes (row-oriented
fetch-all / fetch-one, and the native Arrow/columnar accessor if present). - Execute a duplicate-named query whose result is large enough to arrive in
more than one chunk/batch, and read every row. Exercises concatenation of
multiple equal-schema chunks. Chunk/batch COUNT is server- and driver-
dependent and is deliberately NOT asserted -- only that all rows and both
columns survive. ORDER BY id makes the first data row deterministic so the
two columns can be told apart positionally (0 vs 1000000). - Execute a JOIN whose two sides share a column name, so the duplication comes
from SELECT * rather than from explicit aliasing.
Expected (per the shared spec):
- completes without an exception
- result has exactly 1 row(s)
- result has 2 column(s)
- col 0 is named
a - col 1 is named
a - col 0, row 0 == 1 (type Int32)
- col 1, row 0 == 2 (type Int32)
- completes without an exception
- result has exactly 200000 row(s)
- result has 2 column(s)
- col 0 is named
a - col 1 is named
a - col 0, row 0 == 0 (type Int64)
- col 1, row 0 == 1000000 (type Int64)
- completes without an exception
- result has exactly 1 row(s)
- result has 2 column(s)
- col 0 is named
id - col 1 is named
id - col 0, row 0 == 1 (type Int32)
- col 1, row 0 == 1 (type Int32)
Context
- The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/databricks/databricks-sql-python/pull/995 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-go; 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/1884
- 主要言語
- Go
- スター
- 53
- フォーク
- 70
- 平均マージ
- 2日 12時間
- マージ済み PR(30日)
- 16
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
databricks/databricks-sql-go のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
databricks/databricks-sql-go#494 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 1〜2日 初心者へのやさしさ 52/100
databricks/databricks-sql-go#521 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 1〜2日 初心者へのやさしさ 56/100
databricks/databricks-sql-go#520 ·
メンテナーはふだん 1 日以内に返信
-
bug engineer-bot
難易度 3/5 1〜2日 初心者へのやさしさ 67/100
databricks/databricks-sql-go#505 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
databricks/databricks-sql-go#504 ·
メンテナーはふだん 1 日以内に返信
databricks/databricks-sql-go の issue をすべて見る
似ている issue
-
area/docs framework/hugo help wanted language/markdown
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:other issue-rating: 🦞 diamond lobster no-stale P2
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
openclaw/crabbox#3060 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
kubeflow/semantic-operator#52 ·
メンテナーはふだん 10 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
enhancement help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PramodBasavarajMenasi/siftwise#52 ·
メンテナーはふだん 1 日以内に返信