GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — [coverage] Conformance findings: STATEMENT-026 · Issue #963 · databricks/databricks-sql-python

[coverage] Conformance findings: STATEMENT-026 #963

New issue
Copy link
New issue
Copy link
Open
Open
[coverage] Conformance findings: STATEMENT-026#963
Copy link

Description

@peco-engineer-bot
peco-engineer-bot
bot
opened on Sep 29, 2026
Issue body actions

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. 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-python) is fixed, then flips green as a tripwire.

Findings

  • STATEMENT-026 [sea]: kernel/SEA backend: a second get_async_execution_result() on the same execute_async handle re-delivers the full result set (re-attach-by-id after _async_result_stream_started materialises a fresh stream), so async result delivery is not single-consumption; the Thrift backend correctly yields the exhausted stream
    • failing test: test_submitted_statement_handle_lifecycle (see the coverage PR diff under tests/)

Reproduce & Expected

STATEMENT-026 — Validates the CONTRACT OF THE HANDLE a submit-and-return (caller-driven async) execution surface returns -- the part of the async path STATEMENT-002 and STATEMENT-004 do not cover.

Reproduce:

SELECT id FROM range(0, 1000)
SELECT * FORM invalid_table

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1000 row(s)
  • result has 1 column(s)
  • completes without an exception
  • full assertion contract:
result:
- label: submit
  no_exception: true
- label: submit
  statement_id_available: true
- label: poll
  terminal_success_observed: true
- label: materialise
  row_count: 1000
- label: materialise
  column_count: 1
- label: materialise
  second_materialisation_yields_no_duplicate_rows: true
- label: close
  no_exception: true
- label: failure
  failure_surfaced: true
- label: failure
  error:
    contains:
    - syntax
    - PARSE
    - FORM
    - invalid
protocol:
  thrift:
  - label: poll
    call_min:
      method: GetOperationStatus
      min: 1
  sea:
  - label: poll
    call_min:
      operation: GetStatementStatus
      min: 1

Context

  • The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/databricks/databricks-sql-kernel/pull/356 — which seeded the shared language-neutral spec. This issue tracks the same conformance gap in databricks/databricks-sql-python; 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/1708

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.