26 std::shared_ptr<Analyzer::ColumnVar> inner_col_expr,
27 const std::vector<InputTableInfo>& query_infos,
31 const std::vector<InnerOuter>& inner_outer_pairs,
32 const int device_count,
45 hashtable_build_dag_map,
52 static std::shared_ptr<RangeJoinHashTable>
getInstance(
53 const std::shared_ptr<Analyzer::BinOper> condition,
55 const std::vector<InputTableInfo>& query_infos,
58 const int device_count,
70 const size_t entry_count,
71 const size_t emitted_keys_count,
76 const std::vector<JoinColumn>& join_columns,
77 const std::vector<JoinColumnTypeInfo>& join_column_types,
78 const std::vector<JoinBucketInfo>& join_bucket_info,
82 std::shared_ptr<BaselineHashTable> initHashTableOnGpu(
83 const std::vector<JoinColumn>& join_columns,
84 const std::vector<JoinColumnTypeInfo>& join_column_types,
85 const std::vector<JoinBucketInfo>& join_bucket_info,
87 const size_t device_id);
95 const std::vector<double>& inverse_bucket_sizes_for_dimension,
96 std::vector<ColumnsForDevice>& columns_per_device,
97 const size_t chosen_max_hashtable_size,
98 const double chosen_bucket_threshold)
override;
101 const size_t shard_count,
102 std::vector<ColumnsForDevice>& columns_per_device);
119 const auto outer_col = inner_outer_pair.second;
120 const auto outer_col_ti = outer_col->get_type_info();
llvm::Value * codegenKey(const CompilationOptions &co, llvm::Value *offset)
HashType getHashType() const noexceptoverride
void reifyWithLayout(const HashType layout) override
const Expr * get_left_operand() const
std::shared_ptr< Analyzer::ColumnVar > inner_col_expr_
const std::vector< InnerOuter > & getInnerOuterPairs() const
std::unordered_map< size_t, HashTableBuildDag > HashTableBuildDagMap
std::pair< size_t, size_t > approximateTupleCount(const std::vector< double > &inverse_bucket_sizes_for_dimension, std::vector< ColumnsForDevice > &columns_per_device, const size_t chosen_max_hashtable_size, const double chosen_bucket_threshold) override
std::pair< size_t, size_t > computeRangeHashTableCounts(const size_t shard_count, std::vector< ColumnsForDevice > &columns_per_device)
HashJoinMatchingSet codegenMatchingSetWithOffset(const CompilationOptions &, const size_t, llvm::Value *)
const double bucket_threshold_
const SQLTypeInfo & get_type_info() const
static std::shared_ptr< RangeJoinHashTable > getInstance(const std::shared_ptr< Analyzer::BinOper > condition, const Analyzer::RangeOper *range_expr, const std::vector< InputTableInfo > &query_infos, const Data_Namespace::MemoryLevel memory_level, const JoinType join_type, const int device_count, ColumnCacheMap &column_cache, Executor *executor, const HashTableBuildDagMap &hashtable_build_dag_map, const RegisteredQueryHint &query_hints, const TableIdToNodeMap &table_id_to_node_map)
std::unordered_map< shared::TableKey, const RelAlgNode * > TableIdToNodeMap
bool isProbeCompressed() const
HOST DEVICE EncodingType get_compression() const
std::unordered_map< shared::TableKey, std::unordered_map< int, std::shared_ptr< const ColumnarResults >>> ColumnCacheMap
std::shared_ptr< BaselineHashTable > initHashTableOnCpu(const std::vector< JoinColumn > &join_columns, const std::vector< JoinColumnTypeInfo > &join_column_types, const std::vector< JoinBucketInfo > &join_bucket_info, const BaselineHashTableEntryInfo hash_table_entry_info)
bool isInnerColCompressed() const
void reifyForDevice(const ColumnsForDevice &columns_for_device, const HashType layout, const size_t entry_count, const size_t emitted_keys_count, const int device_id, const logger::ThreadLocalIds parent_thread_local_ids)
Data_Namespace::MemoryLevel effective_memory_level_
const Analyzer::RangeOper * range_expr_
~RangeJoinHashTable() override=default
RangeJoinHashTable(const std::shared_ptr< Analyzer::BinOper > condition, const JoinType join_type, const Analyzer::RangeOper *range_expr, std::shared_ptr< Analyzer::ColumnVar > inner_col_expr, const std::vector< InputTableInfo > &query_infos, const Data_Namespace::MemoryLevel memory_level, ColumnCacheMap &column_cache, Executor *executor, const std::vector< InnerOuter > &inner_outer_pairs, const int device_count, const RegisteredQueryHint &query_hints, const HashTableBuildDagMap &hashtable_build_dag_map, const TableIdToNodeMap &table_id_to_node_map)
const size_t max_hashtable_size_