Class HashJoin¶
-
class
HashJoin
¶ Subclassed by BaselineJoinHashTable, OverlapsJoinHashTable, PerfectJoinHashTable
Public Functions
-
virtual std::string
toString
(const ExecutorDeviceType device_type, const int device_id = 0, bool raw = false) const = 0¶
-
std::string
toStringFlat64
(const ExecutorDeviceType device_type, const int device_id) const¶
-
std::string
toStringFlat32
(const ExecutorDeviceType device_type, const int device_id) const¶
-
virtual DecodedJoinHashBufferSet
toSet
(const ExecutorDeviceType device_type, const int device_id) const = 0¶
-
virtual llvm::Value *
codegenSlot
(const CompilationOptions&, const size_t) = 0¶
-
virtual HashJoinMatchingSet
codegenMatchingSet
(const CompilationOptions&, const size_t) = 0¶
-
virtual int
getInnerTableId
() const = 0¶
-
virtual int
getInnerTableRteIdx
() const = 0¶
-
virtual HashType
getHashType
() const = 0¶
-
virtual Data_Namespace::MemoryLevel
getMemoryLevel
() const = 0¶
-
virtual int
getDeviceCount
() const = 0¶
-
virtual size_t
offsetBufferOff
() const = 0¶
-
virtual size_t
countBufferOff
() const = 0¶
-
virtual size_t
payloadBufferOff
() const = 0¶
-
virtual std::string
getHashJoinType
() const = 0¶
-
virtual bool
isBitwiseEq
() const = 0¶
fetchJoinColumn() calls ColumnFetcher::makeJoinColumn(), then copies the JoinColumn’s col_chunks_buff memory onto the GPU if required by the effective_memory_level parameter. The dev_buff_owner parameter will manage the GPU memory.
-
size_t
getJoinHashBufferSize
(const ExecutorDeviceType device_type)¶
-
size_t
getJoinHashBufferSize
(const ExecutorDeviceType device_type, const int device_id) const¶
-
int8_t *
getJoinHashBuffer
(const ExecutorDeviceType device_type, const int device_id) const¶
-
void
freeHashBufferMemory
()¶
Public Static Functions
-
static bool
layoutRequiresAdditionalBuffers
(HashType layout)¶
-
static std::string
getHashTypeString
(HashType ht)¶
-
HashJoinMatchingSet
codegenMatchingSet
(const std::vector<llvm::Value *> &hash_join_idx_args_in, const bool is_sharded, const bool col_is_nullable, const bool is_bw_eq, const int64_t sub_buff_size, Executor *executor, const bool is_bucketized = false)¶
Make hash table from an in-flight SQL query’s parse tree etc.
-
std::shared_ptr<HashJoin>
getSyntheticInstance
(std::string_view table1, std::string_view column1, std::string_view table2, std::string_view column2, const Data_Namespace::MemoryLevel memory_level, const HashType preferred_hash_type, const int device_count, ColumnCacheMap &column_cache, Executor *executor)¶ Make hash table from named tables and columns (such as for testing).
Make hash table from named tables and columns (such as for testing).
-
static int
getInnerTableId
(const std::vector<InnerOuter> &inner_outer_pairs)¶
-
void
checkHashJoinReplicationConstraint
(const int table_id, const size_t shard_count, const Executor *executor)¶
-
InnerOuter
normalizeColumnPair
(const Analyzer::Expr *lhs, const Analyzer::Expr *rhs, const Catalog_Namespace::Catalog &cat, const TemporaryTables *temporary_tables, const bool is_overlaps_join = false)¶
-
std::vector<InnerOuter>
normalizeColumnPairs
(const Analyzer::BinOper *condition, const Catalog_Namespace::Catalog &cat, const TemporaryTables *temporary_tables)¶
-
CompositeKeyInfo
getCompositeKeyInfo
(const std::vector<InnerOuter> &inner_outer_pairs, const Executor *executor)¶
-
std::vector<const StringDictionaryProxy::IdMap *>
translateCompositeStrDictProxies
(const CompositeKeyInfo &composite_key_info, const Executor *executor)¶
-
std::pair<const StringDictionaryProxy *, const StringDictionaryProxy *>
getStrDictProxies
(const InnerOuter &cols, const Executor *executor)¶
-
const StringDictionaryProxy::IdMap *
translateInnerToOuterStrDictProxies
(const InnerOuter &cols, const Executor *executor)¶
Protected Functions
-
virtual size_t
getComponentBufferSize
() const = 0¶
-
virtual std::string