Check for output offsets int32 overflow in list APIs - #23652
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe CUDA list concatenation and interleaving paths now use ChangesList offset construction and validation
Estimated code review effort: 2 (Simple) | ~10 minutes Mergeability Score: ⚪ Minimal · up to The change is localized to overflow handling in list APIs, with no concrete merge-blocking risk identified; it is merge-ready after normal checks. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🔇 Additional comments (3)
cpp/src/lists/combine/concatenate_rows.cu (2)
2-2: LGTM!Also applies to: 13-13
114-122: 📐 Maintainability & Code Quality
⚠️ Unverified finding
Sandbox verification was unavailable.Verify coverage for offset construction.
The supplied cohort contains no test or benchmark files. Verify that the full PR adds tests for empty inputs, null lists, sliced lists, normal totals,
int32_tboundary totals, and overflowing totals for both paths.As per coding guidelines,
**/*: “Add unit tests and unit benchmarks.” Based on learnings, list tests must include boundary sizes, null values, and sliced columns.cpp/src/lists/interleave_columns.cu (1)
2-2: LGTM!
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 5ff6e72a-c5a1-4a32-a248-9806ce4a9309
📒 Files selected for processing (2)
cpp/src/lists/combine/concatenate_rows.cucpp/src/lists/interleave_columns.cu
Description
Adds int32 overflow check logic to list column functions when building output offsets by replacing calls to
thrust::exclusive_scanwithcudf::detail::size_to_offsetswhich returns the total size (last element) as an int64 value and then comparing it tomax(int32)and throwing an exception as appropriate.This was found while working on related
size_typeas offsets type cleanup work.Checklist