Skip to content

Report scalar element types for JSON columns - #28

Merged
quinnj merged 2 commits into
mainfrom
maintenance/column-element-types
Oct 14, 2026
Merged

quinnj merged 2 commits into
mainfrom
maintenance/column-element-types

Conversation

@quinnj

@quinnj quinnj commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Depends on #27 and its #26 foundation. This follow-up corrects the element type of returned JSON columns.

For jsontable("{\"a\":[1,2]}"), the schema declares integer values but the returned column currently declares a JSON array as its element type. collect(column) then tries to convert each integer into that array type and throws MethodError. Null-converting columns have the same mismatch.

Give the wrapper separate parameters for its scalar element type and its source array type. Reuse the existing column-type conversion, retaining the source array field and direct indexing without copying it. Column access through a name, position, or property now advertises the same value type as the schema.

Validation:

  • The preceding public probe has 24 passes, 21 incorrect-element-type failures and 18 collection errors.
  • All 63 public regression checks pass across integers, mixed nulls, all-null values, strings, empty columns, nested objects and nested arrays, through all three column-access forms. They verify schema/element-type agreement, collect and existing copy behavior.
  • The full 203-check suite passes on Julia 1.6.7 and 1.13.0 with four threads and forced bounds checks; git diff --check passes.
  • All six checks pass at 9923fe14f59c0acc884c0f810aca91c31dec6f70: all four native jobs in run 37186473791, including Julia 1.0, plus both Codecov checks. All four coverage sessions were accepted at the correct repository/commit destination; the stable job uploaded 889 bytes and the final report is 95.87%. Merge remains held for prerequisite Validate empty and null JSON columns #27 and required independent approval.

Co-authored by Codex

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.81%. Comparing base (b466c6b) to head (4d10ffa).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #28      +/-   ##
==========================================
+ Coverage   93.75%   93.81%   +0.06%     
==========================================
  Files           1        1              
  Lines          96       97       +1     
==========================================
+ Hits           90       91       +1     
  Misses          6        6              

☔ 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.

@quinnj
quinnj force-pushed the maintenance/column-element-types branch from 9923fe1 to efe0e8d Compare October 14, 2026 00:25
quinnj and others added 2 commits October 13, 2026 19:02
Distinguish a column wrapper's value type from its stored source-array type. Reuse null/empty type conversion so AbstractVector element types agree with table schemas and collect succeeds while reads keep the source array. Preserve existing nested copy behavior.

AI disclosure: This work was prepared with assistance from OpenAI Codex.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@quinnj
quinnj force-pushed the maintenance/column-element-types branch from efe0e8d to 4d10ffa Compare October 14, 2026 01:02
@quinnj
quinnj merged commit 042e40c into main Oct 14, 2026
6 checks passed
@quinnj
quinnj deleted the maintenance/column-element-types branch October 14, 2026 01:13
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