13 #include <cudf/utilities/export.hpp>
19 #include <cuda/stream>
30 namespace CUDF_EXPORT
cudf {
38 namespace hashing::detail {
89 cuda::mr::any_resource<cuda::mr::device_accessible> mr =
115 cuda::mr::any_resource<cuda::mr::device_accessible> mr =
140 [[nodiscard]] std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
141 std::unique_ptr<rmm::device_uvector<size_type>>>
143 std::optional<std::size_t> output_size = {},
169 [[nodiscard]] std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
170 std::unique_ptr<rmm::device_uvector<size_type>>>
172 std::optional<std::size_t> output_size = {},
198 [[nodiscard]] std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
199 std::unique_ptr<rmm::device_uvector<size_type>>>
201 std::optional<std::size_t> output_size = {},
353 [[nodiscard]] std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
354 std::unique_ptr<rmm::device_uvector<size_type>>>
379 [[nodiscard]] std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
380 std::unique_ptr<rmm::device_uvector<size_type>>>
409 [[nodiscard]] std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
410 std::unique_ptr<rmm::device_uvector<size_type>>>
435 [[nodiscard]]
static std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
436 std::unique_ptr<rmm::device_uvector<size_type>>>
446 std::unique_ptr<impl_type const> _impl;
Forward declaration for our hash join.
Hash join that builds a hash table with the right table on construction and probes results in subsequ...
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, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
Performs an inner join on a partition of the probe table.
static std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > finalize_partitioned_full_join(cudf::host_span< cudf::device_span< size_type const > const > left_partials, cudf::host_span< cudf::device_span< size_type const > const > right_partials, size_type left_table_num_rows, size_type right_table_num_rows, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Finalizes a partitioned full join by concatenating all per-partition results and appending the unmatc...
hash_join(cudf::table_view const &right, null_equality compare_nulls, cuda::stream_ref stream=cudf::get_default_stream(), cuda::mr::any_resource< cuda::mr::device_accessible > mr=cudf::get_current_device_resource_ref())
Construct a hash join object for subsequent probe calls.
typename cudf::detail::hash_join< cudf::hashing::detail::MurmurHash3_x86_32< cudf::hash_value_type > > impl_type
Implementation type.
cudf::join_match_context left_join_match_context(cudf::table_view const &left, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
Returns context information about matches between the left and right tables.
cudf::join_match_context full_join_match_context(cudf::table_view const &left, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
Returns context information about matches between the left and right tables.
std::size_t full_join_size(cudf::table_view const &left, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
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, std::optional< std::size_t > output_size={}, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
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, std::optional< std::size_t > output_size={}, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > partitioned_full_join(cudf::join_partition_context const &context, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
Performs a full join probe on a partition of the probe table.
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > partitioned_left_join(cudf::join_partition_context const &context, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
Performs a left join on a partition of the probe table.
std::size_t left_join_size(cudf::table_view const &left, cuda::stream_ref stream=cudf::get_default_stream()) const
std::size_t inner_join_size(cudf::table_view const &left, cuda::stream_ref stream=cudf::get_default_stream()) const
hash_join(cudf::table_view const &right, nullable_join has_nulls, null_equality compare_nulls, double load_factor, cuda::stream_ref stream=cudf::get_default_stream(), cuda::mr::any_resource< cuda::mr::device_accessible > mr=cudf::get_current_device_resource_ref())
Construct a hash join object for subsequent probe calls.
cudf::join_match_context inner_join_match_context(cudf::table_view const &left, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
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 > > > full_join(cudf::table_view const &left, std::optional< std::size_t > output_size={}, cuda::stream_ref stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref()) const
Forward declaration for our Murmur Hash 3 implementation.
A set of cudf::column_view's of the same size.
APIs for querying the default CUDA stream and per-thread default stream status.
nullable_join
Specifies whether join-key columns may contain nulls.
cuda::stream_ref 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::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.
APIs for computing hash values of columns and tables using various hash algorithms.
Common types and utilities shared by cuDF's join APIs.
APIs for getting and setting the current device memory resource.
bool has_nulls(table_view const &view)
Returns True if the table has nulls in any of its columns.
Host span, a non-owning view over a contiguous sequence of host-accessible elements.
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.