12 #include <cudf/utilities/export.hpp>
18 #include <cuda/std/limits>
22 namespace CUDF_EXPORT
cudf {
74 std::unique_ptr<rmm::device_uvector<size_type>>
87 : _left_table{left_table}, _match_counts{std::move(match_counts)}
104 std::unique_ptr<join_match_context>
143 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
144 std::unique_ptr<rmm::device_uvector<size_type>>>
184 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
185 std::unique_ptr<rmm::device_uvector<size_type>>>
225 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
226 std::unique_ptr<rmm::device_uvector<size_type>>>
330 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
331 std::unique_ptr<rmm::device_uvector<size_type>>>
403 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
404 std::unique_ptr<rmm::device_uvector<size_type>>>
410 std::string
const& predicate_code,
432 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
433 std::unique_ptr<rmm::device_uvector<size_type>>>
A set of cudf::column_view's of the same size.
join_prefilter
Specifies whether a join implementation should apply an optional probe-side prefilter.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > left_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 a left join between the specified tables.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > full_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 a full join between the specified tables.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > filter_join_indices(cudf::table_view const &left, cudf::table_view const &right, cudf::device_span< size_type const > left_indices, cudf::device_span< size_type const > right_indices, cudf::ast::expression const &predicate, cudf::join_kind join_kind, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Filters join result indices based on a conditional predicate and join type.
constexpr CUDF_HOST_DEVICE size_type JoinNoMatch
Sentinel value used to indicate an unmatched row index in join operations.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > filter_join_indices_jit(cudf::table_view const &left, cudf::table_view const &right, cudf::device_span< size_type const > left_indices, cudf::device_span< size_type const > right_indices, cudf::ast::expression const &predicate, cudf::join_kind join_kind, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Filters join indices using a JIT-compiled predicate from an AST expression.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > 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.
join_kind
Specifies the type of join operation to perform.
std::unique_ptr< cudf::table > cross_join(cudf::table_view const &left, cudf::table_view const &right, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Performs a cross join on two tables (left, right)
@ LEFT_ANTI_JOIN
Left anti join: left rows that have no matches in right table.
@ LEFT_SEMI_JOIN
Left semi join: left rows that have matches in right table.
@ FULL_JOIN
Full outer join: all rows from both tables.
@ LEFT_JOIN
Left join: all rows from left table plus matching rows from right.
@ INNER_JOIN
Inner join: only matching rows from both 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.
detail::cccl_async_resource_ref< cuda::mr::resource_ref< cuda::mr::device_accessible > > device_async_resource_ref
cuda::std::span< T, Extent > device_span
Device span is an alias of cuda::std::span.
null_equality
Enum to consider two nulls as equal or unequal.
int32_t size_type
Row index type for columns and tables.
A generic expression that can be evaluated to return a value.
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.
join_match_context(table_view const &left_table, std::unique_ptr< rmm::device_uvector< size_type >> match_counts)
Construct a join_match_context.
virtual ~join_match_context()=default
Virtual destructor for proper polymorphic deletion.
Stores context information for partitioned join operations.
size_type left_start_idx
The starting row index of the current left table partition.
std::unique_ptr< join_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.
Class definitions for (mutable)_table_view
Type declarations for libcudf.
#define CUDF_HOST_DEVICE
Indicates that the function or method is usable on host and device.