Skip to content

[coverage] Conformance findings: STATEMENT-026 #963

Description

@peco-engineer-bot

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

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