16 #ifndef IMPALA_EXEC_HASH_JOIN_NODE_H
17 #define IMPALA_EXEC_HASH_JOIN_NODE_H
19 #include <boost/scoped_ptr.hpp>
20 #include <boost/thread.hpp>
28 #include "gen-cpp/PlanNodes_types.h"
62 virtual void AddToDebugString(
int indentation_level, std::stringstream* out)
const;
stl-like iterator interface.
virtual void AddToDebugString(int indentation_level, std::stringstream *out) const
RuntimeProfile::Counter * hash_tbl_load_factor_counter_
static const char * LLVM_CLASS_NAME
OldHashTable::Iterator hash_tbl_iterator_
llvm::Function * CodegenProcessProbeBatch(RuntimeState *state, llvm::Function *hash_fn)
HashJoinNode(ObjectPool *pool, const TPlanNode &tnode, const DescriptorTbl &descs)
std::vector< ExprContext * > probe_expr_ctxs_
void(* ProcessBuildBatchFn)(HashJoinNode *, RowBatch *)
llvm::Function * CodegenProcessBuildBatch(RuntimeState *state, llvm::Function *hash_fn)
int(* ProcessProbeBatchFn)(HashJoinNode *, RowBatch *, RowBatch *, int)
HashJoinNode::ProcessProbeBatch() exactly.
boost::scoped_ptr< OldHashTable > hash_tbl_
virtual Status Reset(RuntimeState *state)
LLVM code generator. This is the top level object to generate jitted code.
virtual Status Prepare(RuntimeState *state)
int ProcessProbeBatch(RowBatch *out_batch, RowBatch *probe_batch, int max_added_rows)
virtual Status Init(const TPlanNode &tnode)
RuntimeProfile::Counter * build_buckets_counter_
ProcessProbeBatchFn process_probe_batch_fn_
Jitted ProcessProbeBatch function pointer. Null if codegen is disabled.
std::vector< ExprContext * > other_join_conjunct_ctxs_
non-equi-join conjuncts from the JOIN clause
void ProcessBuildBatch(RowBatch *build_batch)
Construct the build hash table, adding all the rows in 'build_batch'.
llvm::Function * codegen_process_build_batch_fn_
llvm function for build batch
llvm::Function * CodegenCreateOutputRow(LlvmCodeGen *codegen)
Codegen function to create output row.
virtual Status InitGetNext(TupleRow *first_probe_row)
virtual Status GetNext(RuntimeState *state, RowBatch *row_batch, bool *eos)
std::vector< ExprContext * > build_expr_ctxs_
virtual Status ConstructBuildSide(RuntimeState *state)
virtual void Close(RuntimeState *state)
Status LeftJoinGetNext(RuntimeState *state, RowBatch *row_batch, bool *eos)
ProcessBuildBatchFn process_build_batch_fn_
bool match_one_build_
Match at most one build row to each probe row. Used in LEFT_SEMI_JOIN.