24 #include <cudf/utilities/export.hpp>
29 #include <thrust/iterator/counting_iterator.h>
34 namespace CUDF_EXPORT
cudf {
80 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
81 std::unique_ptr<rmm::device_uvector<size_type>>>
161 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
162 std::unique_ptr<rmm::device_uvector<size_type>>>
172 struct preprocessed_table {
176 _null_processed_table_view;
180 std::optional<rmm::device_buffer> _validity_mask =
182 std::optional<size_type> _num_nulls =
184 std::optional<std::unique_ptr<table>> _null_processed_table =
187 std::optional<std::unique_ptr<column>> _null_processed_table_sorted_order =
228 preprocessed_table preprocessed_left;
229 preprocessed_table preprocessed_right;
267 template <
typename MergeOperation>
304 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
305 std::unique_ptr<rmm::device_uvector<size_type>>>
346 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
347 std::unique_ptr<rmm::device_uvector<size_type>>>
Class that implements sort-merge algorithm for table joins.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > inner_join(table_view const &left, sorted is_left_sorted, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns the row indices that can be used to construct the result of performing an inner join between ...
cudf::join_match_context inner_join_match_context(table_view const &left, sorted is_left_sorted, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns context information about matches between the left and right tables.
sort_merge_join(table_view const &right, sorted is_right_sorted, null_equality compare_nulls=null_equality::EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream())
Construct a sort-merge join object that pre-processes the right table on creation,...
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > partitioned_inner_join(cudf::join_partition_context const &context, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Performs an inner join between a partition of the left table and the right table.
A set of cudf::column_view's of the same size.
Class definition for cudf::column.
column view class definitions
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > merge_inner_join(cudf::table_view const &left_keys, cudf::table_view const &right_keys, null_equality compare_nulls=null_equality::EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns a pair of row index vectors corresponding to an inner join between the specified tables.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > sort_merge_inner_join(cudf::table_view const &left_keys, cudf::table_view const &right_keys, null_equality compare_nulls=null_equality::EQUAL, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns a pair of row index vectors corresponding to an inner join between the specified tables.
rmm::cuda_stream_view const get_default_stream()
Get the current default stream.
rmm::device_async_resource_ref get_current_device_resource_ref()
Get the current device memory resource reference.
cuda::mr::async_resource_ref< cuda::mr::device_accessible > device_async_resource_ref
null_equality
Enum to consider two nulls as equal or unequal.
sorted
Indicates whether a collection of values is known to be sorted.
Device version of C++20 std::span with reduced feature set.
Holds context information about matches between tables during a join operation.
Stores context information for partitioned join operations.
Class definitions for (mutable)_table_view
Type declarations for libcudf.