[FEA] Support self comparisons in cudf::experimental::row::lexicographic::two_table_comparator
#13371
Labels
1 - On Deck
To be worked on next
feature request
New feature or request
libcudf
Affects libcudf (C++/CUDA) code.
As showcased in #13347, there's a need for
{lhs, lhs}
and{rhs, rhs}
comparisons in an instance oftwo_table_comparator
.This can't simply be achieved by adding more overloads because
left
andright
terminology is baked into the comparator when it's constructed at the host-side. In a device function, the strongly typed indices now work with the assumption that acomp(i, j)
that is called in a device function operates on{lhs, rhs}
or{rhs, lhs}
.We need to settle on a design that lets us refactor the row operators such that the assumption of working on two different tables can be removed.
Do we strongly type
device_row_comparator::operator()
over here such that we can decide which columns of which tables to pass along to theelement_comparator
over here?I see the design looking something like this:
Note: In this example, weak_ordering_comparator_impl will be removed and it's functionality will instead be baked into
single_table_ordering
andtwo_table_ordering
. less_comparator will then be reworked with CRTP such that:The text was updated successfully, but these errors were encountered: