Add boolean type support to Parquet variant field extraction - #23276
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughSummary by CodeRabbit
WalkthroughVARIANT casting now supports Apache boolean primitives as BOOL8 output. CUDA decoding and null-mask handling were updated, documentation was expanded, and tests cover boolean values, nulls, slices, malformed inputs, cast matrices, and boundary cases. ChangesVARIANT boolean casting
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@cpp/tests/io/experimental/variant_extract_test.cpp`:
- Around line 661-675: Add BOOL8 test coverage in
CastVariantTest.ApachePrimitiveBooleans for a null boolean input and a sliced
multi-row input. Reuse the existing cast_variant path and column comparison
pattern, ensuring expected validity masks and values verify null handling and
grid-stride processing.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 27916a08-ddf7-4798-b096-5e8d9d69216f
📒 Files selected for processing (3)
cpp/include/cudf/io/experimental/variant.hppcpp/src/io/parquet/experimental/variant_extract.cucpp/tests/io/experimental/variant_extract_test.cpp
|
There's a lot of conflicting changes between this PR and #23075. Let's merge that one before moving on with this one. |
|
/ok to test 97845f5 |
|
/ok to test b730c80 |
Co-authored-by: Vukasin Milovanovic <vmilovanovic@nvidia.com>
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
cpp/tests/io/experimental/variant_extract_test.cpp (1)
976-1045: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winAdd a multi-block BOOL8 cast case.
The sliced multi-row test does not exercise
cast_variant_bool_kernelbeyond one 256-thread block. Add at leastblock_size + 1rows, including true, false, and null values, and validate the output mask after casting. As per coding guidelines, “Tests must cover empty inputs, nulls, sliced columns, boundary and multi-block sizes.”🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@cpp/tests/io/experimental/variant_extract_test.cpp` around lines 976 - 1045, Extend the sliced multi-row case in ApachePrimitiveBooleans so the input contains more than one cast_variant_bool_kernel block, using at least 257 rows while retaining true, false, and null patterns. Keep the non-zero slice offset and update expected values and validity to match the enlarged range, then assert the cast output including its null mask.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@cpp/tests/io/experimental/variant_extract_test.cpp`:
- Around line 976-1045: Extend the sliced multi-row case in
ApachePrimitiveBooleans so the input contains more than one
cast_variant_bool_kernel block, using at least 257 rows while retaining true,
false, and null patterns. Keep the non-zero slice offset and update expected
values and validity to match the enlarged range, then assert the cast output
including its null mask.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 1c5d8712-ca0f-4a60-b19d-7ba73349bf85
📒 Files selected for processing (2)
cpp/src/io/parquet/experimental/variant_extract.cucpp/tests/io/experimental/variant_extract_test.cpp
|
/ok to test 69bd1d0 |
|
/ok to test 98040d5 |
|
/ok to test 5dd9e23 |
|
/merge |
Description
Adds boolean type support to Apache Parquet variant field extraction.
Checklist