Repository navigation
Preserve single-column values during delimiter detection - #1211
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1211 +/- ##
==========================================
+ Coverage 95.75% 95.79% +0.04%
==========================================
Files 9 9
Lines 5489 5566 +77
==========================================
+ Hits 5256 5332 +76
- Misses 233 234 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
quinnj
left a comment
There was a problem hiding this comment.
I refreshed the source review against base a0335ff5bcbd3abe41a2f6ee9cb1b00187503937 and ran the complete package suite on Julia 1.12.6 with bounds checks and four threads: all 331,670 checks pass. The shared detector handles the single-column timestamp reproducer and the existing reader-mode/colon-delimiter regressions without an additional source finding.
All 16 executed Actions jobs pass on this exact head; performance was intentionally skipped. The current codecov/project check reports a small coverage drop (95.73% versus 95.75%), while patch coverage passes. That check and the required independent approval remain outstanding, so this is not yet ready to merge.
AI disclosure: This work was prepared with assistance from OpenAI Codex.
A one-column file whose header has a space still elected `:` when its
values were times or timestamps ("event time" over "10:30:00" rows), and
returned only the hour. Two fallbacks could elect a candidate that does
not appear in the first row: the byte-count divisibility tier and the
consistency scorer's data-only pick. Such a delimiter leaves the header
one column wide, so detection now falls back to ',' in that case, and
the divisibility tier, which could only elect such candidates, is gone.
CSV 0.10 read "header text\n1:2\n3:4\n" as one column; the test that
pinned ':' for it now expects ','.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Delimiter detection could elect a candidate that does not appear in the header row, so a one-column file of times or timestamps was split on
:and kept only the hour (with long-row problems):ts\n2026-09-28T01:02:03.123456789\n2026-09-28T012026-09-28T01event time\n10:30:00\n11:45:00\nTimevalues[10, 11]TimevaluesCreated Date\n2026-09-28T01:02:03\n2026-09-28T01:02:04\nDateTimevalues2026-09-28T01twiceThe first row passed the byte-count "count divisible by the line count" tier: two colons over two lines. The other two passed the data-only fallback, which 1.0 added, so they are 1.0 regressions.
Change: a delimiter that does not split the first surviving row would leave the header one column wide, so detection keeps
,in that case. The divisibility tier could only elect such candidates, so it is removed. An explicitdelimis unaffected. The existing test that pinned:for"header text\n1:2\n3:4\n"now expects,, which is what CSV 0.10 returns.Validation:
ts) and a spaced (event time) header, both scanners, other punctuation, every reader, and colon-delimited controls with and without a header.Co-authored by Codex
AI disclosure: This work was prepared with assistance from OpenAI Codex and Claude Code.
🤖 Generated with Claude Code