OmniSciDB
c1a53651b2
|
#include <cstddef>
#include <cstdint>
#include <vector>
#include "../../../Shared/SqlTypesLayout.h"
#include "../../../Shared/sqltypes.h"
#include "../../RuntimeFunctions.h"
#include "../../../Shared/funcannotations.h"
Go to the source code of this file.
Classes | |
struct | BucketizedHashEntryInfo |
struct | JoinChunk |
struct | JoinColumn |
struct | JoinColumnTypeInfo |
struct | JoinBucketInfo |
struct | ShardInfo |
Enumerations | |
enum | ColumnType { SmallDate = 0, Signed = 1, Unsigned = 2, Double = 3 } |
Functions | |
void | init_hash_join_buff (int32_t *buff, const int64_t entry_count, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | init_hash_join_buff_on_device (int32_t *buff, const int64_t entry_count, const int32_t invalid_slot_val) |
void | init_baseline_hash_join_buff_32 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | init_baseline_hash_join_buff_64 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | init_baseline_hash_join_buff_on_device_32 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val) |
void | init_baseline_hash_join_buff_on_device_64 (int8_t *hash_join_buff, const int64_t entry_count, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val) |
ColumnType | get_join_column_type_kind (const SQLTypeInfo &ti) |
int | fill_hash_join_buff_bucketized (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, const JoinColumn join_column, const JoinColumnTypeInfo type_info, const int32_t *sd_inner_to_outer_translation_map, const int32_t min_inner_elem, const int32_t cpu_thread_idx, const int32_t cpu_thread_count, const int64_t bucket_normalization) |
int | fill_hash_join_buff (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, const JoinColumn join_column, const JoinColumnTypeInfo type_info, const int32_t *sd_inner_to_outer_translation_map, const int32_t min_inner_elem, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | fill_hash_join_buff_on_device (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, int *dev_err_buff, const JoinColumn join_column, const JoinColumnTypeInfo type_info) |
void | fill_hash_join_buff_on_device_bucketized (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, int *dev_err_buff, const JoinColumn join_column, const JoinColumnTypeInfo type_info, const int64_t bucket_normalization) |
void | fill_hash_join_buff_on_device_sharded (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, int *dev_err_buff, const JoinColumn join_column, const JoinColumnTypeInfo type_info, const ShardInfo shard_info) |
void | fill_hash_join_buff_on_device_sharded_bucketized (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, int *dev_err_buff, const JoinColumn join_column, const JoinColumnTypeInfo type_info, const ShardInfo shard_info, const int64_t bucket_normalization) |
void | fill_one_to_many_hash_table (int32_t *buff, const BucketizedHashEntryInfo hash_entry_info, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const int32_t *sd_inner_to_outer_translation_map, const int32_t min_inner_elem, const unsigned cpu_thread_count, const bool for_window_framing) |
void | fill_one_to_many_hash_table_bucketized (int32_t *buff, const BucketizedHashEntryInfo hash_entry_info, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const int32_t *sd_inner_to_outer_translation_map, const int32_t min_inner_elem, const unsigned cpu_thread_count) |
void | fill_one_to_many_hash_table_sharded_bucketized (int32_t *buff, const BucketizedHashEntryInfo hash_entry_info, const int32_t invalid_slot_val, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const ShardInfo &shard_info, const int32_t *sd_inner_to_outer_translation_map, const int32_t min_inner_elem, const unsigned cpu_thread_count) |
void | fill_one_to_many_hash_table_on_device (int32_t *buff, const BucketizedHashEntryInfo hash_entry_info, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const bool for_window_framing) |
void | fill_one_to_many_hash_table_on_device_bucketized (int32_t *buff, const BucketizedHashEntryInfo hash_entry_info, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info) |
void | fill_one_to_many_hash_table_on_device_sharded (int32_t *buff, const BucketizedHashEntryInfo hash_entry_info, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const ShardInfo &shard_info) |
int | fill_baseline_hash_join_buff_32 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, const GenericKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | overlaps_fill_baseline_hash_join_buff_32 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const OverlapsKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | range_fill_baseline_hash_join_buff_32 (int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const RangeKeyHandler *key_handler, const size_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | fill_baseline_hash_join_buff_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, const GenericKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | overlaps_fill_baseline_hash_join_buff_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const OverlapsKeyHandler *key_handler, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
int | range_fill_baseline_hash_join_buff_64 (int8_t *hash_buff, const size_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, const RangeKeyHandler *key_handler, const size_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
void | fill_baseline_hash_join_buff_on_device_32 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const GenericKeyHandler *key_handler, const int64_t num_elems) |
void | fill_baseline_hash_join_buff_on_device_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const bool for_semi_join, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const GenericKeyHandler *key_handler, const int64_t num_elems) |
void | overlaps_fill_baseline_hash_join_buff_on_device_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const OverlapsKeyHandler *key_handler, const int64_t num_elems) |
void | range_fill_baseline_hash_join_buff_on_device_64 (int8_t *hash_buff, const int64_t entry_count, const int32_t invalid_slot_val, const size_t key_component_count, const bool with_val_slot, int *dev_err_buff, const RangeKeyHandler *key_handler, const size_t num_elems) |
void | fill_one_to_many_baseline_hash_table_32 (int32_t *buff, const int32_t *composite_key_dict, const int64_t hash_entry_count, const size_t key_component_count, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_bucket_info, const std::vector< const int32_t * > &sd_inner_to_outer_translation_maps, const std::vector< int32_t > &sd_min_inner_elems, const int32_t cpu_thread_count, const bool is_range_join=false, const bool is_geo_compressed=false, const bool for_window_framing=false) |
void | fill_one_to_many_baseline_hash_table_64 (int32_t *buff, const int64_t *composite_key_dict, const int64_t hash_entry_count, const size_t key_component_count, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_bucket_info, const std::vector< const int32_t * > &sd_inner_to_outer_translation_maps, const std::vector< int32_t > &sd_min_inner_elems, const int32_t cpu_thread_count, const bool is_range_join=false, const bool is_geo_compressed=false, const bool for_window_framing=false) |
void | fill_one_to_many_baseline_hash_table_on_device_32 (int32_t *buff, const int32_t *composite_key_dict, const int64_t hash_entry_count, const size_t key_component_count, const GenericKeyHandler *key_handler, const int64_t num_elems, const bool for_window_framing) |
void | fill_one_to_many_baseline_hash_table_on_device_64 (int32_t *buff, const int64_t *composite_key_dict, const int64_t hash_entry_count, const GenericKeyHandler *key_handler, const int64_t num_elems, const bool for_window_framing) |
void | overlaps_fill_one_to_many_baseline_hash_table_on_device_64 (int32_t *buff, const int64_t *composite_key_dict, const int64_t hash_entry_count, const OverlapsKeyHandler *key_handler, const int64_t num_elems) |
void | range_fill_one_to_many_baseline_hash_table_on_device_64 (int32_t *buff, const int64_t *composite_key_dict, const size_t hash_entry_count, const RangeKeyHandler *key_handler, const size_t num_elems) |
void | approximate_distinct_tuples (uint8_t *hll_buffer_all_cpus, const uint32_t b, const size_t padded_size_bytes, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const int thread_count) |
void | approximate_distinct_tuples_overlaps (uint8_t *hll_buffer_all_cpus, std::vector< int32_t > &row_counts, const uint32_t b, const size_t padded_size_bytes, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_buckets_per_key, const int thread_count) |
void | approximate_distinct_tuples_range (uint8_t *hll_buffer_all_cpus, std::vector< int32_t > &row_counts, const uint32_t b, const size_t padded_size_bytes, const std::vector< JoinColumn > &join_column_per_key, const std::vector< JoinColumnTypeInfo > &type_info_per_key, const std::vector< JoinBucketInfo > &join_buckets_per_key, const bool is_compressed, const int thread_count) |
void | approximate_distinct_tuples_on_device (uint8_t *hll_buffer, const uint32_t b, const GenericKeyHandler *key_handler, const int64_t num_elems) |
void | approximate_distinct_tuples_on_device_overlaps (uint8_t *hll_buffer, const uint32_t b, int32_t *row_counts_buffer, const OverlapsKeyHandler *key_handler, const int64_t num_elems) |
void | compute_bucket_sizes_on_cpu (std::vector< double > &bucket_sizes_for_dimension, const JoinColumn &join_column, const JoinColumnTypeInfo &type_info, const std::vector< double > &bucket_size_thresholds, const int thread_count) |
void | approximate_distinct_tuples_on_device_range (uint8_t *hll_buffer, const uint32_t b, int32_t *row_counts_buffer, const RangeKeyHandler *key_handler, const size_t num_elems, const size_t block_size_x, const size_t grid_size_x) |
void | compute_bucket_sizes_on_device (double *bucket_sizes_buffer, const JoinColumn *join_column, const JoinColumnTypeInfo *type_info, const double *bucket_size_thresholds) |
Variables | |
const size_t | g_maximum_conditions_to_coalesce {8} |
enum ColumnType |
Enumerator | |
---|---|
SmallDate | |
Signed | |
Unsigned | |
Double |
Definition at line 120 of file HashJoinRuntime.h.
void approximate_distinct_tuples | ( | uint8_t * | hll_buffer_all_cpus, |
const uint32_t | b, | ||
const size_t | padded_size_bytes, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const int | thread_count | ||
) |
Definition at line 2196 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, and CHECK_EQ.
Referenced by BaselineJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_on_device | ( | uint8_t * | hll_buffer, |
const uint32_t | b, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 625 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by BaselineJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_on_device_overlaps | ( | uint8_t * | hll_buffer, |
const uint32_t | b, | ||
int32_t * | row_counts_buffer, | ||
const OverlapsKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 591 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and inclusive_scan().
Referenced by OverlapsJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_on_device_range | ( | uint8_t * | hll_buffer, |
const uint32_t | b, | ||
int32_t * | row_counts_buffer, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems, | ||
const size_t | block_size_x, | ||
const size_t | grid_size_x | ||
) |
Definition at line 608 of file HashJoinRuntimeGpu.cu.
References checkCudaErrors, getQueryEngineCudaStream(), and inclusive_scan().
Referenced by RangeJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_overlaps | ( | uint8_t * | hll_buffer_all_cpus, |
std::vector< int32_t > & | row_counts, | ||
const uint32_t | b, | ||
const size_t | padded_size_bytes, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_buckets_per_key, | ||
const int | thread_count | ||
) |
Definition at line 2238 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, CHECK_EQ, and inclusive_scan().
Referenced by OverlapsJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_range | ( | uint8_t * | hll_buffer_all_cpus, |
std::vector< int32_t > & | row_counts, | ||
const uint32_t | b, | ||
const size_t | padded_size_bytes, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_buckets_per_key, | ||
const bool | is_compressed, | ||
const int | thread_count | ||
) |
Definition at line 2286 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, CHECK_EQ, and inclusive_scan().
Referenced by RangeJoinHashTable::approximateTupleCount().
void compute_bucket_sizes_on_cpu | ( | std::vector< double > & | bucket_sizes_for_dimension, |
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const std::vector< double > & | bucket_size_thresholds, | ||
const int | thread_count | ||
) |
Definition at line 2337 of file HashJoinRuntime.cpp.
References threading_serial::async().
Referenced by anonymous_namespace{OverlapsJoinHashTable.cpp}::compute_bucket_sizes().
void compute_bucket_sizes_on_device | ( | double * | bucket_sizes_buffer, |
const JoinColumn * | join_column, | ||
const JoinColumnTypeInfo * | type_info, | ||
const double * | bucket_size_thresholds | ||
) |
Definition at line 637 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by anonymous_namespace{OverlapsJoinHashTable.cpp}::compute_bucket_sizes().
int fill_baseline_hash_join_buff_32 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1795 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int fill_baseline_hash_join_buff_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1859 of file HashJoinRuntime.cpp.
void fill_baseline_hash_join_buff_on_device_32 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 453 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by fill_baseline_hash_join_buff_on_device().
void fill_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 475 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
int fill_hash_join_buff | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info, | ||
const int32_t * | sd_inner_to_outer_translation_map, | ||
const int32_t | min_inner_elem, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 199 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_hash_slot(), and SUFFIX.
Referenced by fill_hash_join_buff_wrapper().
int fill_hash_join_buff_bucketized | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info, | ||
const int32_t * | sd_inner_to_outer_translation_map, | ||
const int32_t | min_inner_elem, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count, | ||
const int64_t | bucket_normalization | ||
) |
Definition at line 166 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_bucketized_hash_slot(), and SUFFIX.
Referenced by fill_hash_join_buff_bucketized_wrapper(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
void fill_hash_join_buff_on_device | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
int * | dev_err_buff, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info | ||
) |
Definition at line 85 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_wrapper().
void fill_hash_join_buff_on_device_bucketized | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
int * | dev_err_buff, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info, | ||
const int64_t | bucket_normalization | ||
) |
Definition at line 68 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_bucketized_wrapper().
void fill_hash_join_buff_on_device_sharded | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
int * | dev_err_buff, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info, | ||
const ShardInfo | shard_info | ||
) |
Definition at line 163 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_wrapper_sharded().
void fill_hash_join_buff_on_device_sharded_bucketized | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
int * | dev_err_buff, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info, | ||
const ShardInfo | shard_info, | ||
const int64_t | bucket_normalization | ||
) |
Definition at line 143 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and fill_hash_join_buff_wrapper_sharded_bucketized().
void fill_one_to_many_baseline_hash_table_32 | ( | int32_t * | buff, |
const int32_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const size_t | key_component_count, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_bucket_info, | ||
const std::vector< const int32_t * > & | sd_inner_to_outer_translation_maps, | ||
const std::vector< int32_t > & | sd_min_inner_elems, | ||
const int32_t | cpu_thread_count, | ||
const bool | is_range_join = false , |
||
const bool | is_geo_compressed = false , |
||
const bool | for_window_framing = false |
||
) |
Definition at line 2138 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void fill_one_to_many_baseline_hash_table_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const size_t | key_component_count, | ||
const std::vector< JoinColumn > & | join_column_per_key, | ||
const std::vector< JoinColumnTypeInfo > & | type_info_per_key, | ||
const std::vector< JoinBucketInfo > & | join_bucket_info, | ||
const std::vector< const int32_t * > & | sd_inner_to_outer_translation_maps, | ||
const std::vector< int32_t > & | sd_min_inner_elems, | ||
const int32_t | cpu_thread_count, | ||
const bool | is_range_join = false , |
||
const bool | is_geo_compressed = false , |
||
const bool | for_window_framing = false |
||
) |
Definition at line 2167 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void fill_one_to_many_baseline_hash_table_on_device_32 | ( | int32_t * | buff, |
const int32_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const size_t | key_component_count, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const bool | for_window_framing | ||
) |
Definition at line 540 of file HashJoinRuntimeGpu.cu.
Referenced by fill_one_to_many_baseline_hash_table_on_device().
void fill_one_to_many_baseline_hash_table_on_device_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const GenericKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const bool | for_window_framing | ||
) |
Definition at line 556 of file HashJoinRuntimeGpu.cu.
void fill_one_to_many_hash_table | ( | int32_t * | buff, |
const BucketizedHashEntryInfo | hash_entry_info, | ||
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const int32_t * | sd_inner_to_outer_translation_map, | ||
const int32_t | min_inner_elem, | ||
const unsigned | cpu_thread_count, | ||
const bool | for_window_framing | ||
) |
Definition at line 1490 of file HashJoinRuntime.cpp.
References BucketizedHashEntryInfo::bucketized_hash_entry_count, count_matches(), DEBUG_TIMER, fill_one_to_many_hash_table_impl(), fill_row_ids(), and SUFFIX.
Referenced by PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu().
void fill_one_to_many_hash_table_bucketized | ( | int32_t * | buff, |
const BucketizedHashEntryInfo | hash_entry_info, | ||
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const int32_t * | sd_inner_to_outer_translation_map, | ||
const int32_t | min_inner_elem, | ||
const unsigned | cpu_thread_count | ||
) |
Definition at line 1546 of file HashJoinRuntime.cpp.
References BucketizedHashEntryInfo::bucket_normalization, count_matches_bucketized(), DEBUG_TIMER, fill_one_to_many_hash_table_impl(), fill_row_ids_bucketized(), BucketizedHashEntryInfo::getNormalizedHashEntryCount(), and SUFFIX.
Referenced by PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu().
void fill_one_to_many_hash_table_on_device | ( | int32_t * | buff, |
const BucketizedHashEntryInfo | hash_entry_info, | ||
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const bool | for_window_framing | ||
) |
Definition at line 247 of file HashJoinRuntimeGpu.cu.
References BucketizedHashEntryInfo::bucketized_hash_entry_count, count_matches(), cuda_kernel_launch_wrapper(), fill_one_to_many_hash_table_on_device_impl(), fill_row_ids(), and SUFFIX.
void fill_one_to_many_hash_table_on_device_bucketized | ( | int32_t * | buff, |
const BucketizedHashEntryInfo | hash_entry_info, | ||
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info | ||
) |
Definition at line 277 of file HashJoinRuntimeGpu.cu.
References BucketizedHashEntryInfo::bucket_normalization, count_matches_bucketized(), cuda_kernel_launch_wrapper(), fill_one_to_many_hash_table_on_device_impl(), fill_row_ids_bucketized(), BucketizedHashEntryInfo::getNormalizedHashEntryCount(), and SUFFIX.
void fill_one_to_many_hash_table_on_device_sharded | ( | int32_t * | buff, |
const BucketizedHashEntryInfo | hash_entry_info, | ||
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const ShardInfo & | shard_info | ||
) |
Definition at line 317 of file HashJoinRuntimeGpu.cu.
References BucketizedHashEntryInfo::bucketized_hash_entry_count, checkCudaErrors, count_matches_sharded(), cuda_kernel_launch_wrapper(), fill_row_ids_sharded(), getQueryEngineCudaStream(), inclusive_scan(), set_valid_pos(), set_valid_pos_flag(), and SUFFIX.
void fill_one_to_many_hash_table_sharded_bucketized | ( | int32_t * | buff, |
const BucketizedHashEntryInfo | hash_entry_info, | ||
const int32_t | invalid_slot_val, | ||
const JoinColumn & | join_column, | ||
const JoinColumnTypeInfo & | type_info, | ||
const ShardInfo & | shard_info, | ||
const int32_t * | sd_inner_to_outer_translation_map, | ||
const int32_t | min_inner_elem, | ||
const unsigned | cpu_thread_count | ||
) |
|
inline |
Definition at line 147 of file HashJoinRuntime.h.
References SQLTypeInfo::is_date_in_days(), is_unsigned_type(), Signed, SmallDate, and Unsigned.
Referenced by OverlapsJoinHashTable::fetchColumnsForDevice(), PerfectJoinHashTable::fetchColumnsForDevice(), BaselineJoinHashTable::fetchColumnsForDevice(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
void init_baseline_hash_join_buff_32 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1739 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void init_baseline_hash_join_buff_64 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1755 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void init_baseline_hash_join_buff_on_device_32 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val | ||
) |
Definition at line 404 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by BaselineJoinHashTableBuilder::initHashTableOnGpu().
void init_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_join_buff, |
const int64_t | entry_count, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val | ||
) |
Definition at line 417 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
Referenced by BaselineJoinHashTableBuilder::initHashTableOnGpu().
void init_hash_join_buff | ( | int32_t * | buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 70 of file HashJoinRuntime.cpp.
Referenced by init_hash_join_buff_wrapper(), BaselineJoinHashTableBuilder::initHashTableOnCpu(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
void init_hash_join_buff_on_device | ( | int32_t * | buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val | ||
) |
Definition at line 186 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper(), and init_hash_join_buff_wrapper().
Referenced by BaselineJoinHashTableBuilder::initHashTableOnGpu().
int overlaps_fill_baseline_hash_join_buff_32 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const OverlapsKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1817 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int overlaps_fill_baseline_hash_join_buff_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const OverlapsKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1881 of file HashJoinRuntime.cpp.
void overlaps_fill_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const OverlapsKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 497 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
void overlaps_fill_one_to_many_baseline_hash_table_on_device_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const OverlapsKeyHandler * | key_handler, | ||
const int64_t | num_elems | ||
) |
Definition at line 571 of file HashJoinRuntimeGpu.cu.
int range_fill_baseline_hash_join_buff_32 | ( | int8_t * | hash_buff, |
const size_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1838 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int range_fill_baseline_hash_join_buff_64 | ( | int8_t * | hash_buff, |
const size_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1902 of file HashJoinRuntime.cpp.
void range_fill_baseline_hash_join_buff_on_device_64 | ( | int8_t * | hash_buff, |
const int64_t | entry_count, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
int * | dev_err_buff, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems | ||
) |
Definition at line 519 of file HashJoinRuntimeGpu.cu.
References cuda_kernel_launch_wrapper().
void range_fill_one_to_many_baseline_hash_table_on_device_64 | ( | int32_t * | buff, |
const int64_t * | composite_key_dict, | ||
const size_t | hash_entry_count, | ||
const RangeKeyHandler * | key_handler, | ||
const size_t | num_elems | ||
) |
Definition at line 581 of file HashJoinRuntimeGpu.cu.
const size_t g_maximum_conditions_to_coalesce {8} |
Definition at line 52 of file HashJoinRuntime.h.
Referenced by approximate_distinct_tuples_impl(), combine_equi_join_conditions(), count_matches_baseline(), fill_baseline_hash_join_buff(), fill_row_ids_baseline(), and JoinColumnTupleIterator::JoinColumnTupleIterator().