Skip to content

Restore JSON row inputs and missing fields after empty rows - #26

Merged
quinnj merged 2 commits into
mainfrom
maintenance/row-table-inputs
Oct 14, 2026
Merged

quinnj merged 2 commits into
mainfrom
maintenance/row-table-inputs

Conversation

@quinnj

@quinnj quinnj commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Current main rejects valid JSON arrays of objects, including string, byte and IO inputs. The broader object-vector method loses dispatch to the existing JSON-array validation fallback. Add a specific object-array bridge and allow vectors/views with concrete JSON object element types, following the direction proposed in #23. Invalid scalar/mixed arrays keep their existing ArgumentError behavior.

Initial empty objects also make later fields incorrectly non-nullable: initialization tests whether the column names are empty, which can remain true after several real rows. Track the first row by position so converting later fields to columns or named tuples retains the missing entries. The late-field behavior fixed in #21 is preserved.

Validation:

  • Valid parsed-row input reproduces the dispatch failure on preceding main. An independent probe through its already supported object-vector API has three passes, two wrong-type failures and four conversion errors for initial empty rows.
  • All 65 new public contract checks pass. They cover parsed/text/byte/IO inputs, abstract and concrete object vectors, views, invalid arrays, one/multiple empty initial rows, nulls, existing late fields, non-nullable complete fields, empty typed vectors, and read options.
  • The full 94-check suite passes on Julia 1.6.7 and 1.13.0 with four threads and forced bounds checks; git diff --check passes.
  • The four-job minimum/current/nightly Linux and current Windows x86 matrix is retained. Replace the retired cache service and old uploader with supported Julia caching and strict Codecov uploads, using conditional OIDC. No coverage threshold is weakened. All six checks pass at 351e260323ee24d1b1e78d496c12fe2118b6c8c8: all four native jobs in run 37185043707, plus both Codecov checks. All four coverage sessions were accepted at the correct repository/commit destination; the stable Linux job uploaded 865 bytes and the final report is 93.61%. Independent private source/regression review found no blockers. Merge remains held for the repository’s required independent approval.

Related to #20 and #23.

Co-authored by Codex

AI disclosure: This work was prepared with assistance from OpenAI Codex.

Keep JSON object-array dispatch more specific than the validation fallback, while accepting vectors with concrete JSON object element types. Distinguish the first row by position so initial empty objects do not make later columns incorrectly non-nullable. Preserve invalid-array errors, bytes/IO inputs and read options. Cover the public table schema and both conversion paths; use supported CI caching/coverage actions with the original four jobs retained.

AI disclosure: This work was prepared with assistance from OpenAI Codex.
@codecov

codecov Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.61%. Comparing base (499d8ac) to head (3eaaa30).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #26      +/-   ##
==========================================
+ Coverage   91.57%   93.61%   +2.03%     
==========================================
  Files           1        1              
  Lines          95       94       -1     
==========================================
+ Hits           87       88       +1     
+ Misses          8        6       -2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@quinnj
quinnj merged commit fea5d94 into main Oct 14, 2026
6 checks passed
@quinnj
quinnj deleted the maintenance/row-table-inputs branch October 14, 2026 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant