conditional_join.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #pragma once
7 
10 #include <cudf/types.hpp>
12 #include <cudf/utilities/export.hpp>
14 #include <cudf/utilities/span.hpp>
15 
16 #include <rmm/cuda_stream_view.hpp>
17 #include <rmm/device_uvector.hpp>
18 
19 #include <optional>
20 #include <utility>
21 
22 namespace CUDF_EXPORT cudf {
23 
66 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
67  std::unique_ptr<rmm::device_uvector<size_type>>>
69  table_view const& right,
70  ast::expression const& binary_predicate,
71  std::optional<std::size_t> output_size = {},
74 
113 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
114  std::unique_ptr<rmm::device_uvector<size_type>>>
116  table_view const& right,
117  ast::expression const& binary_predicate,
118  std::optional<std::size_t> output_size = {},
121 
158 std::pair<std::unique_ptr<rmm::device_uvector<size_type>>,
159  std::unique_ptr<rmm::device_uvector<size_type>>>
161  table_view const& right,
162  ast::expression const& binary_predicate,
165 
199 std::unique_ptr<rmm::device_uvector<size_type>> conditional_left_semi_join(
200  table_view const& left,
201  table_view const& right,
202  ast::expression const& binary_predicate,
203  std::optional<std::size_t> output_size = {},
206 
240 std::unique_ptr<rmm::device_uvector<size_type>> conditional_left_anti_join(
241  table_view const& left,
242  table_view const& right,
243  ast::expression const& binary_predicate,
244  std::optional<std::size_t> output_size = {},
247 
267  table_view const& left,
268  table_view const& right,
269  ast::expression const& binary_predicate,
272 
292  table_view const& left,
293  table_view const& right,
294  ast::expression const& binary_predicate,
297 
317  table_view const& left,
318  table_view const& right,
319  ast::expression const& binary_predicate,
322 
342  table_view const& left,
343  table_view const& right,
344  ast::expression const& binary_predicate,
347  // end of group
349 
350 } // namespace CUDF_EXPORT cudf
A set of cudf::column_view's of the same size.
Definition: table_view.hpp:189
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > conditional_full_join(table_view const &left, table_view const &right, ast::expression const &binary_predicate, 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 all pairs of rows between the specified tables w...
std::size_t conditional_inner_join_size(table_view const &left, table_view const &right, ast::expression const &binary_predicate, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns the exact number of matches (rows) when performing a conditional inner join between the speci...
std::size_t conditional_left_semi_join_size(table_view const &left, table_view const &right, ast::expression const &binary_predicate, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns the exact number of matches (rows) when performing a conditional left semi join between the s...
std::size_t conditional_left_anti_join_size(table_view const &left, table_view const &right, ast::expression const &binary_predicate, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns the exact number of matches (rows) when performing a conditional left anti join between the s...
std::unique_ptr< rmm::device_uvector< size_type > > conditional_left_semi_join(table_view const &left, table_view const &right, ast::expression const &binary_predicate, std::optional< std::size_t > output_size={}, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns an index vector corresponding to all rows in the left table for which there exists some row i...
std::size_t conditional_left_join_size(table_view const &left, table_view const &right, ast::expression const &binary_predicate, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns the exact number of matches (rows) when performing a conditional left join between the specif...
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > conditional_inner_join(table_view const &left, table_view const &right, ast::expression const &binary_predicate, std::optional< std::size_t > output_size={}, 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 all pairs of rows between the specified tables w...
std::pair< std::unique_ptr< rmm::device_uvector< size_type > >, std::unique_ptr< rmm::device_uvector< size_type > > > conditional_left_join(table_view const &left, table_view const &right, ast::expression const &binary_predicate, std::optional< std::size_t > output_size={}, 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 all pairs of rows between the specified tables w...
std::unique_ptr< rmm::device_uvector< size_type > > conditional_left_anti_join(table_view const &left, table_view const &right, ast::expression const &binary_predicate, std::optional< std::size_t > output_size={}, rmm::cuda_stream_view stream=cudf::get_default_stream(), rmm::device_async_resource_ref mr=cudf::get_current_device_resource_ref())
Returns an index vector corresponding to all rows in the left table for which there does not exist an...
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
cuDF interfaces
Definition: host_udf.hpp:26
APIs for spans.
A generic expression that can be evaluated to return a value.
Definition: expressions.hpp:61
Class definitions for (mutable)_table_view
Type declarations for libcudf.