Struct TargetExprCodegenBuilder

struct TargetExprCodegenBuilder

Public Functions

TargetExprCodegenBuilder(const RelAlgExecutionUnit &ra_exe_unit, const bool is_group_by)
void operator()(const Analyzer::Expr *target_expr, const Executor *executor, QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co)
void codegen(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const GpuSharedMemoryContext &gpu_smem_context, const std::tuple<llvm::Value *, llvm::Value *> &agg_out_ptr_w_idx, const std::vector<llvm::Value *> &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, llvm::Value *varlen_output_buffer, DiamondCodegen &diamond_codegen) const
void codegenSampleExpressions(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::tuple<llvm::Value *, llvm::Value *> &agg_out_ptr_w_idx, const std::vector<llvm::Value *> &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, DiamondCodegen &diamond_codegen) const
void codegenSingleSlotSampleExpression(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::tuple<llvm::Value *, llvm::Value *> &agg_out_ptr_w_idx, const std::vector<llvm::Value *> &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, DiamondCodegen &diamond_codegen) const
void codegenMultiSlotSampleExpressions(GroupByAndAggregate *group_by_and_agg, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const CompilationOptions &co, const std::tuple<llvm::Value *, llvm::Value *> &agg_out_ptr_w_idx, const std::vector<llvm::Value *> &agg_out_vec, llvm::Value *output_buffer_byte_stream, llvm::Value *out_row_idx, DiamondCodegen &diamond_codegen) const
llvm::Value *codegenSlotEmptyKey(llvm::Value *agg_col_ptr, std::vector<llvm::Value *> &target_lvs, Executor *executor, const QueryMemoryDescriptor &query_mem_desc, const int64_t init_val) const

Public Members

size_t target_index_counter = {0}
size_t slot_index_counter = {0}
const RelAlgExecutionUnit &ra_exe_unit
std::vector<TargetExprCodegen> target_exprs_to_codegen
std::vector<TargetExprCodegen> sample_exprs_to_codegen
bool is_group_by