[coverage] Conformance findings: DATATYPE-041
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Comece pelo teste com falha test_decimal_text_rendering_without_scientific_notation no diff do PR de coverage em tests/ e, em seguida, rastreie como o conector Python expõe valores DECIMAL como texto. Compare o comportamento pretendido com o PR de referência 134; considera-se concluído quando as asserções DATATYPE-041 passam com notação simples na escala declarada, incluindo 0.0000001.
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-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
- DATATYPE-041 [thrift]: DECIMAL text surface uses scientific notation at high scale: a DECIMAL(20,7) 0.0000001 renders as "1E-7" instead of plain "0.0000001" at the declared scale, because the connector returns a decimal.Decimal whose stdlib str switches to exponent form below adjusted exponent -6 (PECOBLR-2096)
- failing test:
test_decimal_text_rendering_without_scientific_notation(see the coverage PR diff undertests/)
- failing test:
- DATATYPE-041 [sea]: DECIMAL text surface uses scientific notation at high scale on the SEA/kernel backend too: a DECIMAL(20,7) 0.0000001 renders as "1E-7" instead of plain "0.0000001" at the declared scale (PECOBLR-2096)
- failing test:
test_decimal_text_rendering_without_scientific_notation(see the coverage PR diff undertests/)
- failing test:
- DATATYPE-041: DECIMAL text surface uses scientific notation at high scale: a DECIMAL(20,7) 0.0000001 renders as "1E-7" instead of plain "0.0000001" at the declared scale, because the connector returns a decimal.Decimal whose stdlib str switches to exponent form below adjusted exponent -6 — consumers reading the column as text (CSV export, f-string/str formatting, BI tools) get an exponent form where the reference driver emits plain digits (PECOBLR-2096)
Reproduce & Expected
DATATYPE-041 — Verify that when a driver renders a DECIMAL column as text, the rendering is PLAIN decimal notation carrying the column's declared scale -- never scientific notation, never a re-scaled or truncated m…
Expected (per the shared spec):
- result has exactly 1 row(s)
- col
zero_scaled, row 0 == 0 - col
sub_one, row 0 == 0.5 - col
neg_sub_one, row 0 == -0.05 - col
sub_one_high_scale, row 0 == 1e-07 - col
trailing_zeros, row 0 == 100.0 - col
wide_magnitude, row 0 == 1.2345678901234568e+26 - full assertion contract:
result:
- row_count: 1
- column:
name: zero_scaled
equals: 0
- column:
name: sub_one
equals: 0.5
- column:
name: neg_sub_one
equals: -0.05
- column:
name: sub_one_high_scale
equals: 1.0e-07
- column:
name: trailing_zeros
equals: 100.0
- column:
name: wide_magnitude
equals: 1.2345678901234568e+26
- decimal_text_plain_notation:
columns:
- zero_scaled
- sub_one
- neg_sub_one
- sub_one_high_scale
- trailing_zeros
- wide_magnitude
Context
- The behavior was first fixed in a DIFFERENT driver — reference PR: https://github.com/databricks/databricks-odbc/pull/134 — 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/1138
- Linguagem predominante
- Python
- Estrelas
- 233
- Forks
- 152
- Merge médio
- 21h 5min
- PRs com merge (30d)
- 10
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de databricks/databricks-sql-python
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Todas as issues de databricks/databricks-sql-python
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
anthropics/skills#1811 · 1 comentário ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
speaches-ai/speaches#678 ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
datalayer/mcp-compose#42 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
conda-forge/spacy-feedstock#177 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
UKGovernmentBEIS/inspect_evals#2523 ·