Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[coverage] Conformance findings: STATEMENT-023,STATEMENT-025

Fechada
#527 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
nodejs, sql, typescript

Direção de pesquisa

The issue describes two conformance test failures related to query timeout handling in the Thrift layer. Start by examining the failing tests in the coverage PR (linked). Look for the Thrift client code that sets TExecuteStatementReq.queryTimeout. For STATEMENT-025, validate that negative timeouts are rejected. For STATEMENT-023, ensure the timeout is enforced during query execution, not just set. The tests provide SQL to reproduce and expected YAML output.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

  • STATEMENT-025 [thrift]: a negative queryTimeout is silently accepted and forwarded verbatim as TExecuteStatementReq.queryTimeout with no range validation, so the statement runs unbounded instead of the invalid value being reported to the caller
    • failing test: STATEMENT-025 — queryTimeout=0 is unlimited and a negative queryTimeout is rejected (see the coverage PR diff under tests/)
  • STATEMENT-023 [thrift]: queryTimeout is accepted but never enforced at execution on Thrift — the driver polls to the query's natural completion (23.9s against a 5s deadline) instead of aborting at ~the deadline, the same accepted-but-never-applied defect class as databricks-odbc#136
    • failing test: STATEMENT-023 — queryTimeout aborts a long query at ~the deadline and leaves the session usable (see the coverage PR diff under tests/)

Reproduce & Expected

STATEMENT-023 — Validates that a configured client-side query timeout is ENFORCED at execution time -- not merely stored and echoed back by the getter (STATEMENT-021 asserts only that some timeout error surfaces;…

Reproduce:

SELECT COUNT(*) FROM range(0, 40000000) a JOIN range(0, 40000000) b ON a.id % 5000 = b.id % 5000 -- timeout nonce <unique-per-run>
SELECT 1

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1 row(s)
  • full assertion contract:
result:
- label: timed_out
  error:
    contains:
    - timeout
    - timed out
    - cancel
- label: timed_out
  sql_state: HYT00
- label: timed_out
  elapsed_seconds_range:
    min: 4
    max: 25
- label: reused_statement
  no_exception: true
- label: reused_statement
  row_count: 1
STATEMENT-025 — Validates the BOUNDARY VALUES of the driver's client-side query-timeout surface -- the same surface STATEMENT-023 exercises with an ordinary finite deadline.

Reproduce:

SELECT 1 AS test_value
SELECT 1 AS test_value

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1 row(s)
  • col 0, row 0 == 1 (type Int32)
  • full assertion contract:
result:
- label: unlimited
  no_exception: true
- label: unlimited
  row_count: 1
- label: unlimited
  column:
    index: 0
    row: 0
    type: Int32
    equals: 1
- label: invalid
  exception_thrown: true

Context

Linguagem predominante
TypeScript
Estrelas
36
Forks
50
Merge médio
10h 59min
PRs com merge (30d)
11

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de databricks/databricks-sql-nodejs

Todas as issues de databricks/databricks-sql-nodejs

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.