Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against adbc-drivers/databricks. 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 (adbc-drivers/databricks) is fixed, then flips green as a tripwire.
Findings
- SESSION-017 [sea]: SEA/REST path ignores adbc.databricks.http_request_timeout: StatementExecutionConnection builds its HandlerConfig without setting HttpRequestTimeout, so RetryHttpHandler keeps the 900s default and a caller-supplied 2s per-request deadline never fires (the 5s delayed status request is waited out and the query succeeds); Thrift honors the same option
- failing test:
RequestTimeoutBoundsDelayedRequestAndZeroSelectsDefault (see the coverage PR diff under tests/)
- SESSION-017: SEA/REST path ignores adbc.databricks.http_request_timeout: StatementExecutionConnection builds its HttpHandlerFactory.HandlerConfig without setting HttpRequestTimeout, so RetryHttpHandler keeps the 900s default and a caller-supplied per-request deadline is never applied (a 2s deadline waits out a 5s delayed status request and succeeds); Thrift honors the same option
Reproduce & Expected
SESSION-017 — Validates the connection-level HTTP request/socket timeout option: the per-request transport deadline that applies to every request the driver issues on a connection (connect through response-body co…
Reproduce:
SELECT count(*) FROM range(1, 100000000)
SELECT 1 AS test_value
Expected (per the shared spec):
- completes without an exception
- result has exactly 1 row(s)
- full assertion contract:
result:
- error_thrown: true
context: positive_timeout
description: 'The 2-second deadline aborts the delayed request rather than waiting
out the
5-second delay.
'
- error_message_contains_any:
- timeout
- timed out
- deadline
- cancel
context: positive_timeout
description: 'Case-insensitive. The error identifies a timeout/deadline rather than
an
unrelated transport or server failure.
'
- no_exception: true
context: zero_timeout
description: 'With the option set to 0 the 5s-delayed request is NOT aborted - the
query
completes. Satisfied whether the driver reads 0 as "use my default deadline"
or as "no deadline"; only an immediate zero-length deadline fails here.
'
- row_count: 1
context: zero_timeout
description: SELECT 1 returns its single row, proving the request completed normally.
Context
Summary
Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against adbc-drivers/databricks. 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 (adbc-drivers/databricks) is fixed, then flips green as a tripwire.
Findings
RequestTimeoutBoundsDelayedRequestAndZeroSelectsDefault(see the coverage PR diff undertests/)Reproduce & Expected
SESSION-017 — Validates the connection-level HTTP request/socket timeout option: the per-request transport deadline that applies to every request the driver issues on a connection (connect through response-body co…
Reproduce:
Expected (per the shared spec):
Context