OmniSciDB
a5dc49c757
|
#include "HashJoinRuntime.h"
#include "QueryEngine/CompareKeysInl.h"
#include "QueryEngine/HyperLogLogRank.h"
#include "QueryEngine/JoinHashTable/Runtime/HashJoinKeyHandlers.h"
#include "QueryEngine/JoinHashTable/Runtime/JoinColumnIterator.h"
#include "QueryEngine/MurmurHash1Inl.h"
#include "Shared/shard_key.h"
#include "Logger/Logger.h"
#include "QueryEngine/RuntimeFunctions.h"
#include "Shared/likely.h"
#include "StringDictionary/StringDictionary.h"
#include "StringDictionary/StringDictionaryProxy.h"
#include <future>
#include "Shared/funcannotations.h"
#include <cmath>
#include <numeric>
Go to the source code of this file.
Namespaces | |
anonymous_namespace{HashJoinRuntime.cpp} | |
Macros | |
#define | mapd_cas(address, compare, val) __sync_val_compare_and_swap(address, compare, val) |
#define | cas_cst(ptr, expected, desired) |
#define | store_cst(ptr, val) __atomic_store_n(ptr, val, __ATOMIC_SEQ_CST) |
#define | load_cst(ptr) __atomic_load_n(ptr, __ATOMIC_SEQ_CST) |
#define | mapd_add(address, val) __sync_fetch_and_add(address, val) |
Functions | |
int64_t | anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict (const int64_t inner_elem, const int64_t min_inner_elem, const int64_t min_outer_elem, const int64_t max_outer_elem, const int32_t *inner_to_outer_translation_map) |
DEVICE void SUFFIX() | init_hash_join_buff (int32_t *groups_buffer, const int64_t hash_entry_count, const int32_t invalid_slot_val, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename HASHTABLE_FILLING_FUNC > | |
DEVICE auto | fill_hash_join_buff_impl (OneToOnePerfectJoinHashTableFillFuncArgs const args, const int32_t cpu_thread_idx, const int32_t cpu_thread_count, HASHTABLE_FILLING_FUNC filling_func) |
DEVICE int SUFFIX() | fill_hash_join_buff_bucketized (OneToOnePerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_idx, int32_t const cpu_thread_count) |
DEVICE int SUFFIX() | fill_hash_join_buff_bitwise_eq (OneToOnePerfectJoinHashTableFillFuncArgs const args, int32_t const cpu_thread_idx, int32_t const cpu_thread_count) |
DEVICE int SUFFIX() | fill_hash_join_buff (OneToOnePerfectJoinHashTableFillFuncArgs const args, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename HASHTABLE_FILLING_FUNC > | |
DEVICE int | fill_hash_join_buff_sharded_impl (int32_t *buff, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count, HASHTABLE_FILLING_FUNC filling_func) |
DEVICE int SUFFIX() | fill_hash_join_buff_sharded_bucketized (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count, const int64_t bucket_normalization) |
DEVICE int SUFFIX() | fill_hash_join_buff_sharded (int32_t *buff, const int32_t invalid_slot_val, const bool for_semi_join, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename T > | |
DEVICE void SUFFIX() | init_baseline_hash_join_buff (int8_t *hash_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) |
template<typename T > | |
T * | get_matching_baseline_hash_slot_at (int8_t *hash_buff, const uint32_t h, const T *key, const size_t key_component_count, const int64_t hash_entry_size) |
template<typename T > | |
DEVICE int | write_baseline_hash_slot (const int32_t val, int8_t *hash_buff, const int64_t entry_count, const T *key, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val, const size_t key_size_in_bytes, const size_t hash_entry_size) |
template<typename T > | |
DEVICE int | write_baseline_hash_slot_for_semi_join (const int32_t val, int8_t *hash_buff, const int64_t entry_count, const T *key, const size_t key_component_count, const bool with_val_slot, const int32_t invalid_slot_val, const size_t key_size_in_bytes, const size_t hash_entry_size) |
template<typename T , typename FILL_HANDLER > | |
DEVICE int SUFFIX() | fill_baseline_hash_join_buff (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 FILL_HANDLER *f, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename SLOT_SELECTOR > | |
DEVICE void | count_matches_impl (int32_t *count_buff, 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, SLOT_SELECTOR slot_selector) |
GLOBAL void SUFFIX() | count_matches (int32_t *count_buff, 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) |
GLOBAL void SUFFIX() | count_matches_bucketized (int32_t *count_buff, 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) |
GLOBAL void SUFFIX() | count_matches_sharded (int32_t *count_buff, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename T > | |
DEVICE NEVER_INLINE const T *SUFFIX() | get_matching_baseline_hash_slot_readonly (const T *key, const size_t key_component_count, const T *composite_key_dict, const int64_t entry_count, const size_t key_size_in_bytes) |
template<typename T , typename KEY_HANDLER > | |
GLOBAL void SUFFIX() | count_matches_baseline (int32_t *count_buff, const T *composite_key_dict, const int64_t entry_count, const KEY_HANDLER *f, const int64_t num_elems, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename SLOT_SELECTOR > | |
DEVICE void | fill_row_ids_impl (int32_t *buff, const int64_t hash_entry_count, 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, SLOT_SELECTOR slot_selector) |
template<typename SLOT_SELECTOR > | |
DEVICE void | fill_row_ids_for_window_framing_impl (int32_t *buff, const int64_t hash_entry_count, 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, SLOT_SELECTOR slot_selector) |
GLOBAL void SUFFIX() | fill_row_ids (int32_t *buff, const int64_t hash_entry_count, const JoinColumn join_column, const JoinColumnTypeInfo type_info, const bool for_window_framing, 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) |
GLOBAL void SUFFIX() | fill_row_ids_bucketized (int32_t *buff, const int64_t hash_entry_count, 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) |
template<typename SLOT_SELECTOR > | |
DEVICE void | fill_row_ids_sharded_impl (int32_t *buff, const int64_t hash_entry_count, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count, SLOT_SELECTOR slot_selector) |
GLOBAL void SUFFIX() | fill_row_ids_sharded (int32_t *buff, const int64_t hash_entry_count, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
GLOBAL void SUFFIX() | fill_row_ids_sharded_bucketized (int32_t *buff, const int64_t hash_entry_count, 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 int32_t cpu_thread_idx, const int32_t cpu_thread_count, const int64_t bucket_normalization) |
template<typename T , typename KEY_HANDLER > | |
GLOBAL void SUFFIX() | fill_row_ids_baseline (int32_t *buff, const T *composite_key_dict, const int64_t hash_entry_count, const KEY_HANDLER *f, const int64_t num_elems, const bool for_window_framing, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename KEY_HANDLER > | |
GLOBAL void SUFFIX() | approximate_distinct_tuples_impl (uint8_t *hll_buffer, int32_t *row_count_buffer, const uint32_t b, const int64_t num_elems, const KEY_HANDLER *f, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<size_t N> | |
GLOBAL void SUFFIX() | compute_bucket_sizes_impl (double *bucket_sizes_for_thread, const JoinColumn *join_column, const JoinColumnTypeInfo *type_info, const double *bucket_size_thresholds, const int32_t cpu_thread_idx, const int32_t cpu_thread_count) |
template<typename InputIterator , typename OutputIterator > | |
void | inclusive_scan (InputIterator first, InputIterator last, OutputIterator out, const size_t thread_count) |
template<typename COUNT_MATCHES_LAUNCH_FUNCTOR , typename FILL_ROW_IDS_LAUNCH_FUNCTOR > | |
void | fill_one_to_many_hash_table_impl (int32_t *buff, const int64_t hash_entry_count, 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_count, const bool for_window_framing, COUNT_MATCHES_LAUNCH_FUNCTOR count_matches_func, FILL_ROW_IDS_LAUNCH_FUNCTOR fill_row_ids_func) |
void | fill_one_to_many_hash_table (OneToManyPerfectJoinHashTableFillFuncArgs const args, const int32_t cpu_thread_count) |
void | fill_one_to_many_hash_table_bucketized (OneToManyPerfectJoinHashTableFillFuncArgs const args, const int32_t cpu_thread_count) |
template<typename COUNT_MATCHES_LAUNCH_FUNCTOR , typename FILL_ROW_IDS_LAUNCH_FUNCTOR > | |
void | fill_one_to_many_hash_table_sharded_impl (int32_t *buff, const int64_t hash_entry_count, 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 int32_t cpu_thread_count, COUNT_MATCHES_LAUNCH_FUNCTOR count_matches_launcher, FILL_ROW_IDS_LAUNCH_FUNCTOR fill_row_ids_launcher) |
void | fill_one_to_many_hash_table_sharded (int32_t *buff, const int64_t hash_entry_count, 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 int32_t cpu_thread_count) |
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) |
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 | bbox_intersect_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 BoundingBoxIntersectKeyHandler *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 | bbox_intersect_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 BoundingBoxIntersectKeyHandler *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) |
template<typename T > | |
void | fill_one_to_many_baseline_hash_table (int32_t *buff, const 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_buckets_per_key, const std::vector< const int32_t * > &sd_inner_to_outer_translation_maps, const std::vector< int32_t > &sd_min_inner_elems, const size_t cpu_thread_count, const bool is_range_join, const bool is_geo_compressed, const bool for_window_framing) |
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, const bool is_geo_compressed, const bool for_window_framing) |
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, const bool is_geo_compressed, const bool for_window_framing) |
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_bbox_intersect (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 | 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) |
#define cas_cst | ( | ptr, | |
expected, | |||
desired | |||
) |
Definition at line 458 of file HashJoinRuntime.cpp.
Referenced by get_matching_baseline_hash_slot_at().
#define load_cst | ( | ptr | ) | __atomic_load_n(ptr, __ATOMIC_SEQ_CST) |
Definition at line 462 of file HashJoinRuntime.cpp.
Referenced by get_matching_baseline_hash_slot_at().
#define mapd_add | ( | address, | |
val | |||
) | __sync_fetch_and_add(address, val) |
Definition at line 650 of file HashJoinRuntime.cpp.
Referenced by count_matches_baseline(), count_matches_impl(), count_matches_sharded(), fill_row_ids_baseline(), fill_row_ids_for_window_framing_impl(), fill_row_ids_impl(), and fill_row_ids_sharded_impl().
#define mapd_cas | ( | address, | |
compare, | |||
val | |||
) | __sync_val_compare_and_swap(address, compare, val) |
Definition at line 116 of file HashJoinRuntime.cpp.
Referenced by write_baseline_hash_slot(), and write_baseline_hash_slot_for_semi_join().
#define store_cst | ( | ptr, | |
val | |||
) | __atomic_store_n(ptr, val, __ATOMIC_SEQ_CST) |
Definition at line 461 of file HashJoinRuntime.cpp.
Referenced by get_matching_baseline_hash_slot_at().
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 2247 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, and CHECK_EQ.
Referenced by BaselineJoinHashTable::approximateTupleCount().
void approximate_distinct_tuples_bbox_intersect | ( | 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 2289 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, CHECK_EQ, and inclusive_scan().
Referenced by BoundingBoxIntersectJoinHashTable::approximateTupleCount().
GLOBAL void SUFFIX() approximate_distinct_tuples_impl | ( | uint8_t * | hll_buffer, |
int32_t * | row_count_buffer, | ||
const uint32_t | b, | ||
const int64_t | num_elems, | ||
const KEY_HANDLER * | f, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1318 of file HashJoinRuntime.cpp.
References atomicMax(), g_maximum_conditions_to_coalesce, get_rank(), and MurmurHash64AImpl().
Referenced by approximate_distinct_tuples(), approximate_distinct_tuples_bbox_intersect(), and approximate_distinct_tuples_range().
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 2337 of file HashJoinRuntime.cpp.
References approximate_distinct_tuples_impl(), threading_serial::async(), CHECK, CHECK_EQ, and inclusive_scan().
Referenced by RangeJoinHashTable::approximateTupleCount().
int bbox_intersect_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 BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1866 of file HashJoinRuntime.cpp.
Referenced by fill_baseline_hash_join_buff().
int bbox_intersect_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 BoundingBoxIntersectKeyHandler * | key_handler, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1931 of file HashJoinRuntime.cpp.
GLOBAL void SUFFIX() compute_bucket_sizes_impl | ( | double * | bucket_sizes_for_thread, |
const JoinColumn * | join_column, | ||
const JoinColumnTypeInfo * | type_info, | ||
const double * | bucket_size_thresholds, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1388 of file HashJoinRuntime.cpp.
References atomicMin(), fixed_width_double_decode_noinline(), anonymous_namespace{Utm.h}::N, JoinColumnIterator::ptr(), and SUFFIX.
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 2388 of file HashJoinRuntime.cpp.
References threading_serial::async().
Referenced by anonymous_namespace{BoundingBoxIntersectJoinHashTable.cpp}::compute_bucket_sizes().
GLOBAL void SUFFIX() count_matches | ( | int32_t * | count_buff, |
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 702 of file HashJoinRuntime.cpp.
References count_matches_impl(), get_hash_slot(), and SUFFIX.
Referenced by fill_one_to_many_hash_table(), and fill_one_to_many_hash_table_on_device().
GLOBAL void SUFFIX() count_matches_baseline | ( | int32_t * | count_buff, |
const T * | composite_key_dict, | ||
const int64_t | entry_count, | ||
const KEY_HANDLER * | f, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 847 of file HashJoinRuntime.cpp.
References g_maximum_conditions_to_coalesce, get_matching_baseline_hash_slot_readonly(), mapd_add, SUFFIX, and heavydb.dtypes::T.
Referenced by fill_one_to_many_baseline_hash_table().
GLOBAL void SUFFIX() count_matches_bucketized | ( | int32_t * | count_buff, |
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 730 of file HashJoinRuntime.cpp.
References count_matches_impl(), get_bucketized_hash_slot(), and SUFFIX.
Referenced by fill_one_to_many_hash_table_bucketized(), and fill_one_to_many_hash_table_on_device_bucketized().
DEVICE void count_matches_impl | ( | int32_t * | count_buff, |
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, | ||
SLOT_SELECTOR | slot_selector | ||
) |
Definition at line 654 of file HashJoinRuntime.cpp.
References StringDictionary::INVALID_STR_ID, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), and mapd_add.
Referenced by count_matches(), and count_matches_bucketized().
GLOBAL void SUFFIX() count_matches_sharded | ( | int32_t * | count_buff, |
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 764 of file HashJoinRuntime.cpp.
References get_hash_slot_sharded(), StringDictionary::INVALID_STR_ID, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), mapd_add, and SUFFIX.
Referenced by fill_one_to_many_hash_table_on_device_sharded(), and fill_one_to_many_hash_table_sharded().
DEVICE int SUFFIX() fill_baseline_hash_join_buff | ( | 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 FILL_HANDLER * | f, | ||
const int64_t | num_elems, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 576 of file HashJoinRuntime.cpp.
References g_maximum_conditions_to_coalesce, and heavydb.dtypes::T.
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 1844 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 1909 of file HashJoinRuntime.cpp.
DEVICE int SUFFIX() fill_hash_join_buff | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 203 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(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
DEVICE int SUFFIX() fill_hash_join_buff_bitwise_eq | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_idx, | ||
int32_t const | cpu_thread_count | ||
) |
Definition at line 187 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_hash_slot_bitwise_eq(), and SUFFIX.
Referenced by fill_hash_join_buff_wrapper(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
DEVICE int SUFFIX() fill_hash_join_buff_bucketized | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
int32_t const | cpu_thread_idx, | ||
int32_t const | cpu_thread_count | ||
) |
Definition at line 167 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().
DEVICE auto fill_hash_join_buff_impl | ( | OneToOnePerfectJoinHashTableFillFuncArgs const | args, |
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count, | ||
HASHTABLE_FILLING_FUNC | filling_func | ||
) |
Definition at line 120 of file HashJoinRuntime.cpp.
References StringDictionary::INVALID_STR_ID, OneToOnePerfectJoinHashTableFillFuncArgs::join_column, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), OneToOnePerfectJoinHashTableFillFuncArgs::min_inner_elem, OneToOnePerfectJoinHashTableFillFuncArgs::sd_inner_to_outer_translation_map, and OneToOnePerfectJoinHashTableFillFuncArgs::type_info.
Referenced by fill_hash_join_buff(), fill_hash_join_buff_bitwise_eq(), and fill_hash_join_buff_bucketized().
DEVICE int SUFFIX() fill_hash_join_buff_sharded | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 311 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_sharded_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_hash_slot_sharded_opt(), and SUFFIX.
Referenced by fill_hash_join_buff_wrapper_sharded().
DEVICE int SUFFIX() fill_hash_join_buff_sharded_bucketized | ( | int32_t * | buff, |
const int32_t | invalid_slot_val, | ||
const bool | for_semi_join, | ||
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count, | ||
const int64_t | bucket_normalization | ||
) |
Definition at line 272 of file HashJoinRuntime.cpp.
References fill_hash_join_buff_sharded_impl(), fill_hashtable_for_semi_join(), fill_one_to_one_hashtable(), get_bucketized_hash_slot_sharded_opt(), and SUFFIX.
Referenced by fill_hash_join_buff_wrapper_sharded_bucketized().
DEVICE int fill_hash_join_buff_sharded_impl | ( | int32_t * | buff, |
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count, | ||
HASHTABLE_FILLING_FUNC | filling_func | ||
) |
Definition at line 219 of file HashJoinRuntime.cpp.
References StringDictionary::INVALID_STR_ID, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), JoinColumnTypeInfo::max_val, JoinColumnTypeInfo::min_val, JoinColumnTypeInfo::null_val, ShardInfo::num_shards, ShardInfo::shard, SHARD_FOR_KEY, JoinColumnTypeInfo::translated_null_val, and JoinColumnTypeInfo::uses_bw_eq.
Referenced by fill_hash_join_buff_sharded(), and fill_hash_join_buff_sharded_bucketized().
void fill_one_to_many_baseline_hash_table | ( | int32_t * | buff, |
const 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_buckets_per_key, | ||
const std::vector< const int32_t * > & | sd_inner_to_outer_translation_maps, | ||
const std::vector< int32_t > & | sd_min_inner_elems, | ||
const size_t | cpu_thread_count, | ||
const bool | is_range_join, | ||
const bool | is_geo_compressed, | ||
const bool | for_window_framing | ||
) |
Definition at line 1975 of file HashJoinRuntime.cpp.
References threading_serial::async(), CHECK_GT, count_matches_baseline(), fill_row_ids_baseline(), inclusive_scan(), and SUFFIX.
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, | ||
const bool | is_geo_compressed, | ||
const bool | for_window_framing | ||
) |
Definition at line 2189 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, | ||
const bool | is_geo_compressed, | ||
const bool | for_window_framing | ||
) |
Definition at line 2218 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
void fill_one_to_many_hash_table | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args, |
const int32_t | cpu_thread_count | ||
) |
Definition at line 1564 of file HashJoinRuntime.cpp.
References run_benchmark_import::args, OneToManyPerfectJoinHashTableFillFuncArgs::buff, count_matches(), DEBUG_TIMER, fill_one_to_many_hash_table_impl(), fill_row_ids(), OneToManyPerfectJoinHashTableFillFuncArgs::for_window_framing, OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, OneToManyPerfectJoinHashTableFillFuncArgs::join_column, OneToManyPerfectJoinHashTableFillFuncArgs::min_inner_elem, OneToManyPerfectJoinHashTableFillFuncArgs::sd_inner_to_outer_translation_map, SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
Referenced by PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu().
void fill_one_to_many_hash_table_bucketized | ( | OneToManyPerfectJoinHashTableFillFuncArgs const | args, |
const int32_t | cpu_thread_count | ||
) |
Definition at line 1608 of file HashJoinRuntime.cpp.
References run_benchmark_import::args, BucketizedHashEntryInfo::bucket_normalization, OneToManyPerfectJoinHashTableFillFuncArgs::buff, count_matches_bucketized(), DEBUG_TIMER, fill_one_to_many_hash_table_impl(), fill_row_ids_bucketized(), OneToManyPerfectJoinHashTableFillFuncArgs::hash_entry_info, OneToManyPerfectJoinHashTableFillFuncArgs::join_column, OneToManyPerfectJoinHashTableFillFuncArgs::min_inner_elem, OneToManyPerfectJoinHashTableFillFuncArgs::sd_inner_to_outer_translation_map, SUFFIX, and OneToManyPerfectJoinHashTableFillFuncArgs::type_info.
Referenced by PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu().
void fill_one_to_many_hash_table_impl | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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_count, | ||
const bool | for_window_framing, | ||
COUNT_MATCHES_LAUNCH_FUNCTOR | count_matches_func, | ||
FILL_ROW_IDS_LAUNCH_FUNCTOR | fill_row_ids_func | ||
) |
Definition at line 1503 of file HashJoinRuntime.cpp.
References threading_serial::async(), CHECK_GT, DEBUG_TIMER, and inclusive_scan().
Referenced by fill_one_to_many_hash_table(), and fill_one_to_many_hash_table_bucketized().
void fill_one_to_many_hash_table_sharded | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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 int32_t | cpu_thread_count | ||
) |
Definition at line 1715 of file HashJoinRuntime.cpp.
References count_matches_sharded(), fill_one_to_many_hash_table_sharded_impl(), fill_row_ids_sharded(), and SUFFIX.
void fill_one_to_many_hash_table_sharded_impl | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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 int32_t | cpu_thread_count, | ||
COUNT_MATCHES_LAUNCH_FUNCTOR | count_matches_launcher, | ||
FILL_ROW_IDS_LAUNCH_FUNCTOR | fill_row_ids_launcher | ||
) |
Definition at line 1656 of file HashJoinRuntime.cpp.
References threading_serial::async(), CHECK_GT, DEBUG_TIMER, and inclusive_scan().
Referenced by fill_one_to_many_hash_table_sharded().
GLOBAL void SUFFIX() fill_row_ids | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
const JoinColumn | join_column, | ||
const JoinColumnTypeInfo | type_info, | ||
const bool | for_window_framing, | ||
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 1027 of file HashJoinRuntime.cpp.
References fill_row_ids_for_window_framing_impl(), fill_row_ids_impl(), get_hash_slot(), and SUFFIX.
Referenced by fill_one_to_many_hash_table(), and fill_one_to_many_hash_table_on_device().
GLOBAL void SUFFIX() fill_row_ids_baseline | ( | int32_t * | buff, |
const T * | composite_key_dict, | ||
const int64_t | hash_entry_count, | ||
const KEY_HANDLER * | f, | ||
const int64_t | num_elems, | ||
const bool | for_window_framing, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1251 of file HashJoinRuntime.cpp.
References g_maximum_conditions_to_coalesce, get_matching_baseline_hash_slot_readonly(), mapd_add, SUFFIX, and heavydb.dtypes::T.
Referenced by fill_one_to_many_baseline_hash_table().
GLOBAL void SUFFIX() fill_row_ids_bucketized | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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 1075 of file HashJoinRuntime.cpp.
References fill_row_ids_impl(), get_bucketized_hash_slot(), and SUFFIX.
Referenced by fill_one_to_many_hash_table_bucketized(), and fill_one_to_many_hash_table_on_device_bucketized().
DEVICE void fill_row_ids_for_window_framing_impl | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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, | ||
SLOT_SELECTOR | slot_selector | ||
) |
Definition at line 951 of file HashJoinRuntime.cpp.
References StringDictionary::INVALID_STR_ID, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), mapd_add, and JoinColumn::num_elems.
Referenced by fill_row_ids().
DEVICE void fill_row_ids_impl | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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, | ||
SLOT_SELECTOR | slot_selector | ||
) |
Definition at line 895 of file HashJoinRuntime.cpp.
References StringDictionary::INVALID_STR_ID, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), and mapd_add.
Referenced by fill_row_ids(), fill_row_ids_bucketized(), fill_row_ids_sharded(), and fill_row_ids_sharded_bucketized().
GLOBAL void SUFFIX() fill_row_ids_sharded | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 1171 of file HashJoinRuntime.cpp.
References fill_row_ids_impl(), get_hash_slot_sharded(), and SUFFIX.
Referenced by fill_one_to_many_hash_table_on_device_sharded(), and fill_one_to_many_hash_table_sharded().
GLOBAL void SUFFIX() fill_row_ids_sharded_bucketized | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count, | ||
const int64_t | bucket_normalization | ||
) |
Definition at line 1207 of file HashJoinRuntime.cpp.
References fill_row_ids_impl(), get_bucketized_hash_slot_sharded(), and SUFFIX.
DEVICE void fill_row_ids_sharded_impl | ( | int32_t * | buff, |
const int64_t | hash_entry_count, | ||
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 int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count, | ||
SLOT_SELECTOR | slot_selector | ||
) |
Definition at line 1113 of file HashJoinRuntime.cpp.
References StringDictionary::INVALID_STR_ID, anonymous_namespace{HashJoinRuntime.cpp}::map_str_id_to_outer_dict(), mapd_add, JoinColumnTypeInfo::max_val, JoinColumnTypeInfo::min_val, JoinColumnTypeInfo::null_val, JoinColumnTypeInfo::translated_null_val, and JoinColumnTypeInfo::uses_bw_eq.
T* get_matching_baseline_hash_slot_at | ( | int8_t * | hash_buff, |
const uint32_t | h, | ||
const T * | key, | ||
const size_t | key_component_count, | ||
const int64_t | hash_entry_size | ||
) |
Definition at line 466 of file HashJoinRuntime.cpp.
References cas_cst, get_invalid_key(), load_cst, store_cst, SUFFIX, heavydb.dtypes::T, and UNLIKELY.
Referenced by write_baseline_hash_slot(), and write_baseline_hash_slot_for_semi_join().
DEVICE NEVER_INLINE const T* SUFFIX() get_matching_baseline_hash_slot_readonly | ( | const T * | key, |
const size_t | key_component_count, | ||
const T * | composite_key_dict, | ||
const int64_t | entry_count, | ||
const size_t | key_size_in_bytes | ||
) |
Definition at line 819 of file HashJoinRuntime.cpp.
References CHECK, keys_are_equal(), and MurmurHash1Impl().
Referenced by count_matches_baseline(), and fill_row_ids_baseline().
void inclusive_scan | ( | InputIterator | first, |
InputIterator | last, | ||
OutputIterator | out, | ||
const size_t | thread_count | ||
) |
Definition at line 1431 of file HashJoinRuntime.cpp.
References threading_serial::async(), and gpu_enabled::partial_sum().
Referenced by approximate_distinct_tuples_bbox_intersect(), approximate_distinct_tuples_on_device_bbox_intersect(), approximate_distinct_tuples_on_device_range(), approximate_distinct_tuples_range(), fill_one_to_many_baseline_hash_table(), fill_one_to_many_baseline_hash_table_on_device(), fill_one_to_many_hash_table_impl(), fill_one_to_many_hash_table_on_device_impl(), fill_one_to_many_hash_table_on_device_sharded(), fill_one_to_many_hash_table_sharded_impl(), and gpu_enabled::partial_sum().
DEVICE void SUFFIX() init_baseline_hash_join_buff | ( | int8_t * | hash_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 347 of file HashJoinRuntime.cpp.
References get_invalid_key(), SUFFIX, and heavydb.dtypes::T.
Referenced by init_baseline_hash_join_buff_wrapper().
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 1788 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 1804 of file HashJoinRuntime.cpp.
Referenced by BaselineJoinHashTableBuilder::initHashTableOnCpu().
DEVICE void SUFFIX() init_hash_join_buff | ( | int32_t * | groups_buffer, |
const int64_t | hash_entry_count, | ||
const int32_t | invalid_slot_val, | ||
const int32_t | cpu_thread_idx, | ||
const int32_t | cpu_thread_count | ||
) |
Definition at line 71 of file HashJoinRuntime.cpp.
Referenced by init_hash_join_buff_wrapper(), BaselineJoinHashTableBuilder::initHashTableOnCpu(), PerfectJoinHashTableBuilder::initOneToManyHashTableOnCpu(), and PerfectJoinHashTableBuilder::initOneToOneHashTableOnCpu().
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 1888 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 1953 of file HashJoinRuntime.cpp.
DEVICE int write_baseline_hash_slot | ( | const int32_t | val, |
int8_t * | hash_buff, | ||
const int64_t | entry_count, | ||
const T * | key, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_size_in_bytes, | ||
const size_t | hash_entry_size | ||
) |
Definition at line 506 of file HashJoinRuntime.cpp.
References get_matching_baseline_hash_slot_at(), mapd_cas, MurmurHash1Impl(), and heavydb.dtypes::T.
DEVICE int write_baseline_hash_slot_for_semi_join | ( | const int32_t | val, |
int8_t * | hash_buff, | ||
const int64_t | entry_count, | ||
const T * | key, | ||
const size_t | key_component_count, | ||
const bool | with_val_slot, | ||
const int32_t | invalid_slot_val, | ||
const size_t | key_size_in_bytes, | ||
const size_t | hash_entry_size | ||
) |
Definition at line 542 of file HashJoinRuntime.cpp.
References get_matching_baseline_hash_slot_at(), mapd_cas, MurmurHash1Impl(), and heavydb.dtypes::T.