-
Notifications
You must be signed in to change notification settings - Fork 919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[REVIEW] Initial support for struct columns #5807
Conversation
Please update the changelog in order to start CI tests. View the gpuCI docs here. |
Changed how null-masks are retrrieved from child columns.
Removed redundant error checks. Also, simplified for loops.
Added tests for List<Struct>. Reordered some struct tests. Removed unnecessary reference_wrapper helper functions.
Removed dead code. Fixed typo in variable name.
Codecov Report
@@ Coverage Diff @@
## branch-0.15 #5807 +/- ##
===============================================
- Coverage 88.65% 84.57% -4.08%
===============================================
Files 57 81 +24
Lines 10945 13852 +2907
===============================================
+ Hits 9703 11715 +2012
- Misses 1242 2137 +895
Continue to review full report at Codecov.
|
1. Added documentation for struct_column_wrapper. 2. Removed unnecessary std::move for child null masks.
Super! Thank you for reviewing, @raydouglass, @ajschmidt8, @jrhemstad.
|
Thanks for picking up the review, @nvdbaranec. :] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be good to have more tests involving empty columns, particularly in the nested list/struct case. Also some tests that bounce between list<struct<list<struct< etc (with validity and nulls, etc).
cudf::test::expect_columns_equivalent(expected_unchanged_struct_col, | ||
cudf::lists_column_view(*list_col).child()); | ||
|
||
#ifndef NDEBUG |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jrhemstad Is there a cudf standard for debug stuff like this? This is generally something I like to do but have avoided so far because it doesn't seem to be used in cudf at large.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I took my cues from rolling_test
, for the printing. (Although there, it was under a #if 0
.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Considering that the cudf debug build doesn't even succeed currently (if you got it to build, I'd love to hear about it), I'm guessing you didn't compile this code?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm guessing you didn't compile this code?
Not in debug mode, but I do use the prints. I comment out the #ifndef NDEBUG
, when I'm debugging. :/
I left this in for when I figure out debugging, proper.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm happy to remove these prints, if that's preferable.
The reason I don't have deeper nested tests is:
|
1. Added tests for deeper nesting. 2. Fixed license headers. 3. Added convenience methods to structs_column_wrapper.
I have added tests for |
Super. Thanks for reviewing, @nvdbaranec. |
Closes #5700.
This PR adds rudimentary support for struct columns in CUDF, the behaviour of which is described here:
#5700