[coverage] Conformance findings: SESSION-017

Open
#481 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
55/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go, sql
Domain
database

Research direction

Start with TestTelemetryEnablementPropertyIsHonoredAndOptional in the coverage PR diff under tests/, then trace the Go driver's DSN parsing and connect-time telemetry-property handling. Confirm the driver's own spelling for EnableTelemetry. Done means malformed values allow the connection to open, preserve the default, and produce the specified warning diagnostic while valid and absent values continue to work.

Written by the indexing model from the issue text.

Description

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

  • SESSION-017 [thrift]: A malformed enableTelemetry DSN value is fatal: ParseDSN rejects the entire DSN (strconv.ParseBool error) so the connection never opens, instead of leaving the telemetry overlay default untouched and diagnosing the typo
    • failing test: TestTelemetryEnablementPropertyIsHonoredAndOptional (see the coverage PR diff under tests/)

Reproduce & Expected

SESSION-017 — Validates the connect-time contract of the driver's telemetry-enablement connection property (reference ODBC key EnableTelemetry; map to the driver's own spelling for the SAME concept, e.g.

Reproduce:

SELECT 1 AS value
SELECT 1 AS value
SELECT 1 AS value
SELECT 1 AS value

Expected (per the shared spec):

  • completes without an exception
  • result has exactly 1 row(s)
  • col 0 is named value
  • completes without an exception
  • result has exactly 1 row(s)
  • completes without an exception
  • result has exactly 1 row(s)
  • completes without an exception
  • result has exactly 1 row(s)
  • full assertion contract:
result:
- label: opt_in
  no_exception: true
- label: opt_in
  row_count: 1
- label: opt_in
  column:
    index: 0
    name: value
- label: opt_in
  warning_diagnostic:
    mentions: EnableTelemetry
    present: false
- label: opt_out
  no_exception: true
- label: opt_out
  row_count: 1
- label: opt_out
  warning_diagnostic:
    mentions: EnableTelemetry
    present: false
- label: malformed
  no_exception: true
- label: malformed
  row_count: 1
- label: malformed
  warning_diagnostic:
    mentions: EnableTelemetry
    present: true
    sql_state: 01S02
- label: absent
  no_exception: true
- label: absent
  row_count: 1

Context

Dominant language
Go
Stars
53
Forks
66
Avg merge
1d 1h
Merged PRs (30d)
21

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from databricks/databricks-sql-go

All issues in databricks/databricks-sql-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.