pub trait CpuRadixPartitionable: Sized + DeviceCopy {
fn prefix_sum_impl(
rp: &mut CpuRadixPartitioner,
partition_attr: RadixPartitionInputChunk<'_, Self>,
partition_offsets: PartitionOffsetsMutSlice<'_, Tuple<Self, Self>>
) -> Result<()>;
fn partition_impl(
rp: &mut CpuRadixPartitioner,
partition_attr: RadixPartitionInputChunk<'_, Self>,
payload_attr: RadixPartitionInputChunk<'_, Self>,
partition_offsets: PartitionOffsetsMutSlice<'_, Tuple<Self, Self>>,
partitioned_relation: PartitionedRelationMutSlice<'_, Tuple<Self, Self>>
) -> Result<()>;
}
Expand description
Specifies that the implementing type can be used as partitioning key in
CpuRadixPartitioner
.
CpuRadixPartitionable
is a trait for which specialized implementations
exist for each implementing type (currently i32 and i64). Specialization is
necessary because each type requires a different C++ function to be called.
See CudaHashJoinable
for more details on the design decision.