Mark shredded_variant cases 41, 131, 132, 138 as INVALID (missing 'value' column)#117
Mark shredded_variant cases 41, 131, 132, 138 as INVALID (missing 'value' column)#117sdf-jkl wants to merge 1 commit into
Conversation
…lue' column) These cases omit the required 'value' column from a variant group (cases 41, 131, 138 at the top level; case 132 in the shredded object field groups) but were labeled as valid cases. Per the discussion in apache/parquet-format#591, the spec requires the 'value' field to always be present, so these files are not spec-compliant. Relabel them following the existing convention used by cases 43, 84 and 125: '-INVALID' filenames plus a 'notes' entry stating that implementations can choose to error or read the shredded value. The expected variant outputs are kept for implementations that choose to read them. Fixes apache#116 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Does this break existing CI of dependent projects if merged? |
|
No. I checked the implementations I could find that use this corpus, and they either consume it as a git submodule (arrow-rs, arrow-go, arrow-dotnet, arrow-cpp, datafusion) or pin it to an explicit revision. iceberg-go pins a And when they bump, they are fine. The one project I found that this does affect is hardwood. It shallow-clones parquet-testing master at HEAD (unpinned), enumerates I cannot claim to have found every consumer. parquet-testing has no dependency graph, so this is not exhaustively enumerable. If any implementer pins to master, please shout. |
Fixes #116
Rationale
These four cases omit the required
valuecolumn from a variant group but are labeled as valid cases with expected outputs. Per the discussion in apache/parquet-format#591, the spec's requirement that the group contain avaluefield is intentional and will not be relaxed, so these files are not spec-compliant. The mislabeling has already propagated into implementations that run this corpus in CI (see apache/arrow-rs#10306).testArrayMissingValueColumnvalue(typed_value is a LIST)testMissingValueColumnvalue(typed_value is INT32)testShreddedObjectMissingFieldValueColumnvalueinside the shredded object field groupstestShreddedObjectMissingValueColumnvalue(typed_value is an object)Changes
Follows the existing convention used by cases 43, 84 and 125:
case-NNN.parquet/case-NNN_row-0.variant.bintocase-NNN-INVALID.parquet/case-NNN-INVALID_row-0.variant.binnotesentry incases.jsonstating the file is not valid according to the spec (with the reason) and that implementations can choose to error, or read the shredded valueNo file contents were changed, only renames and
cases.jsonmetadata.🤖 Generated with Claude Code