Class BaselineJoinHashTable¶
-
class
BaselineJoinHashTable: public HashJoin¶ Public Functions
-
std::string
toString(const ExecutorDeviceType device_type, const int device_id = 0, bool raw = false) const¶
-
std::set<DecodedJoinHashBufferEntry>
toSet(const ExecutorDeviceType device_type, const int device_id) const¶
-
llvm::Value *
codegenSlot(const CompilationOptions &co, const size_t index)¶
-
HashJoinMatchingSet
codegenMatchingSet(const CompilationOptions &co, const size_t index)¶
-
int
getInnerTableId() const¶
-
int
getInnerTableRteIdx() const¶
-
HashType
getHashType() const¶
-
Data_Namespace::MemoryLevel
getMemoryLevel() const¶
-
int
getDeviceCount() const¶
-
size_t
offsetBufferOff() const¶
-
size_t
countBufferOff() const¶
-
size_t
payloadBufferOff() const¶
-
std::string
getHashJoinType() const¶
-
virtual
~BaselineJoinHashTable()¶
Public Static Functions
Make hash table from an in-flight SQL query’s parse tree etc.
-
size_t
getShardCountForCondition(const Analyzer::BinOper *condition, const Executor *executor, const std::vector<InnerOuter> &inner_outer_pairs)¶
-
static void
invalidateCache()¶
-
static void
markCachedItemAsDirty(size_t table_key)¶
-
static HashtableRecycler *
getHashTableCache()¶
-
static HashingSchemeRecycler *
getHashingSchemeCache()¶
Protected Functions
-
size_t
getComponentBufferSize() const¶
-
size_t
getKeyBufferSize() const¶
-
void
reifyWithLayout(const HashType layout)¶
-
ColumnsForDevice
fetchColumnsForDevice(const std::vector<Fragmenter_Namespace::FragmentInfo> &fragments, const int device_id, DeviceAllocator *dev_buff_owner)¶
-
std::pair<size_t, size_t>
approximateTupleCount(const std::vector<ColumnsForDevice> &columns_per_device, QueryPlanHash key, CacheItemType item_type, DeviceIdentifier device_identifier) const¶
-
size_t
getKeyComponentWidth() const¶
-
size_t
getKeyComponentCount() const¶
-
llvm::Value *
codegenKey(const CompilationOptions &co)¶
-
size_t
shardCount() const¶
-
Data_Namespace::MemoryLevel
getEffectiveMemoryLevel(const std::vector<InnerOuter> &inner_outer_pairs) const¶
-
void
reify(const HashType preferred_layout)¶
-
void
reifyForDevice(const ColumnsForDevice &columns_for_device, const HashType layout, const int device_id, const size_t entry_count, const size_t emitted_keys_count, const logger::ThreadId parent_thread_id)¶
-
int
initHashTableForDevice(const std::vector<JoinColumn> &join_columns, const std::vector<JoinColumnTypeInfo> &join_column_types, const std::vector<JoinBucketInfo> &join_buckets, const HashType layout, const Data_Namespace::MemoryLevel effective_memory_level, const size_t entry_count, const size_t emitted_keys_count, const int device_id)¶
-
llvm::Value *
hashPtr(const size_t index)¶
-
std::shared_ptr<HashTable>
initHashTableOnCpuFromCache(QueryPlanHash key, CacheItemType item_type, DeviceIdentifier device_identifier)¶
-
std::pair<std::optional<size_t>, size_t>
getApproximateTupleCountFromCache(QueryPlanHash key, CacheItemType item_type, DeviceIdentifier device_identifier) const¶
-
bool
isBitwiseEq() const¶
Protected Attributes
-
const JoinType
join_type_¶
-
const std::vector<InputTableInfo> &
query_infos_¶
-
const Data_Namespace::MemoryLevel
memory_level_¶
-
ColumnCacheMap &
column_cache_¶
-
std::mutex
cpu_hash_table_buff_mutex_¶
-
std::mutex
str_proxy_translation_mutex_¶
-
std::vector<const StringDictionaryProxy::IdMap *>
str_proxy_translation_maps_¶
-
std::vector<InnerOuter>
inner_outer_pairs_¶
-
const int
device_count_¶
-
bool
needs_dict_translation_¶
-
std::optional<HashType>
layout_override_¶
-
QueryPlanHash
hashtable_cache_key_¶
-
HashtableCacheMetaInfo
hashtable_cache_meta_info_¶
-
std::unordered_set<size_t>
table_keys_¶
-
const TableIdToNodeMap
table_id_to_node_map_¶
Protected Static Functions
-
int
getInnerTableId(const std::vector<InnerOuter> &inner_outer_pairs)¶
-
static QueryPlanHash
getAlternativeCacheKey(AlternativeCacheKeyForBaselineHashJoin &info)¶
Protected Static Attributes
-
std::unique_ptr<HashtableRecycler>
hash_table_cache_= std::make_unique<HashtableRecycler>(CacheItemType::BASELINE_HT, )¶
-
std::unique_ptr<HashingSchemeRecycler>
hash_table_layout_cache_= std::make_unique<HashingSchemeRecycler>()¶
-
struct
AlternativeCacheKeyForBaselineHashJoin¶
-
std::string