-
Notifications
You must be signed in to change notification settings - Fork 915
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
Update tests/column_utilities
to use experimental::equality
row comparator
#12777
Update tests/column_utilities
to use experimental::equality
row comparator
#12777
Conversation
Co-authored-by: Nghia Truong <[email protected]>
…a/cudf into column_utilities-row-comparator
@ttnghia all the mixed type test failures are now solved, these are the only failing tests. Any advice would be appreciated:
|
@davidwendt according to your baseline report, |
The first two failed tests compare decimals with different scales. I'm not sure if we should continue to support it or not (for the new comparator). Please initialize a discussion on Slack to get more feedback for it. The last two failed tests are due to comparing strings in a strings column having all-nulls (which doesn't have a child column). I believe this is a bug. So you need to file a bug issue for it, then either fix that bug before this PR can proceed, or xfail these two tests. |
Thanks. I'd still like to consider this change: #12777 (comment) |
This PR uncovers a bug in this code: cudf/cpp/src/copying/purge_nonempty_nulls.cu Lines 37 to 54 in 84ac1d5
Accessing data at null rows is considered undefined behavior which this function does intentionally. Both an all-null strings column and an empty strings column may not have children. I believe that is the same case for list columns though it may actually have an empty child column simply to identify its type. I propose this function could be fixed to handle this correctly in this PR by adding the following if-statement near the top:
|
For the fixed-point error, it appears that the intention was to be able to compare fixed-point values in different scales. The cudf/cpp/src/utilities/type_checks.cpp Lines 66 to 70 in 84ac1d5
To only check the type id by changing the if-statement there to:
EDIT: Looks like that causes another test to fail at
Then the |
@@ -147,6 +147,7 @@ TEST_F(ColumnTypeCheckTest, DifferentFixedWidth) | |||
fixed_point_column_wrapper<int32_t> rhs5({10000}, numeric::scale_type{0}); | |||
|
|||
EXPECT_FALSE(column_types_equal(lhs5, rhs5)); | |||
EXPECT_TRUE(column_types_equivalent(lhs5, rhs5)); |
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.
Nice.
/merge |
Fixes a bug introduced in #12777 (by me) in `column_utilities.cu` that caused the difference reporting in a failed comparison in a gtest result (i.e. through `CUDF_TEST_EXPECT_COLUMNS_EQUIVALENT` for example) to report the incorrect row. The logic was changed to improve compile time but incorrectly created indices of only 0s and 1s in the difference vector. This PR fixes the logic to create the correct indices for the reporting logic. Authors: - David Wendt (https://github.com/davidwendt) Approvers: - Nghia Truong (https://github.com/ttnghia) - Divye Gala (https://github.com/divyegala) URL: #12995
This PR is a part of #11844
Checklist