23 #include <cudf/utilities/export.hpp>
28 #include <thrust/iterator/counting_iterator.h>
33 namespace CUDF_EXPORT
cudf {
55 std::unique_ptr<rmm::device_uvector<size_type>>
111 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
112 std::unique_ptr<rmm::device_uvector<size_type>>>
192 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
193 std::unique_ptr<rmm::device_uvector<size_type>>>
203 struct preprocessed_table {
207 _null_processed_table_view;
211 std::optional<rmm::device_buffer> _validity_mask =
213 std::optional<size_type> _num_nulls =
215 std::optional<std::unique_ptr<table>> _null_processed_table =
218 std::optional<std::unique_ptr<column>> _null_processed_table_sorted_order =
259 preprocessed_table preprocessed_left;
260 preprocessed_table preprocessed_right;
298 template <
typename MergeOperation>
335 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
336 std::unique_ptr<rmm::device_uvector<size_type>>>
377 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
378 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 ...
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.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > partitioned_inner_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.
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,...
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.
int32_t size_type
Row index type for columns and tables.
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.
std::unique_ptr< rmm::device_uvector< size_type > > _match_counts
table_view _left_table
View of the left table involved in the join operation.
Stores context information for partitioned join operations.
match_context left_table_context
The match context from a previous inner_join_match_context call.
size_type left_end_idx
The ending row index (exclusive) of the current left table partition.
size_type left_start_idx
The starting row index of the current left table partition.
Class definitions for (mutable)_table_view
Type declarations for libcudf.