-
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
[FEA] Support struct and list columns in element_equality_comparator #8683
Comments
We have explored this at length and unfortunately this is not possible as it would require arbitrary recursion. |
Is there a reason to not support the simple cases of lists and structs? e.g. structs without lists or other structs as elements and lists that are not lists of lists or lists of structs. |
Yes, this case we can support by special casing the dispatch for struct and lists. Arbitrary nesting is where you get into trouble. |
Follow on to #8652 for nested struct support using, partially removing the need for #8683. This change simplifies the rank algorithm by assuming `superimpose_parent_nulls` has been ran on the struct column. This removes the need for separate logic that ensures we are not comparing elements covered by a parent column's null mask. Authors: - https://github.com/rwlee Approvers: - Vyas Ramasubramani (https://github.com/vyasr) - https://github.com/nvdbaranec - Mike Wilson (https://github.com/hyperbolic2346) - Mark Harris (https://github.com/harrism) URL: #8962
From
cpp/include/cudf/table/row_operators.cuh
, add functionality toelement_equality_comparator
androw_equality_comparator
to compare struct and list elements. Currently they are quietly caught as non-is_equality_comparable
types and return false representing unequal elements.row_equality_comparator
is used in #8652 for rank and dense rank scan aggregations. Both would benefit from this change.The text was updated successfully, but these errors were encountered: