19 #include <unordered_set>
30 JoinInfo(
const std::vector<std::shared_ptr<Analyzer::BinOper>>& equi_join_tautologies,
31 const std::vector<std::shared_ptr<HashJoin>>& join_hash_tables)
35 std::vector<std::shared_ptr<Analyzer::BinOper>>
48 const std::vector<InputTableInfo>& query_infos,
50 const Executor* executor)
52 ,
join_info_({std::vector<std::shared_ptr<Analyzer::BinOper>>{}, {}})
60 std::unordered_map<size_t, std::vector<std::shared_ptr<Analyzer::Expr>>>
71 const std::list<std::shared_ptr<const InputColDescriptor>>& global_col_ids);
88 return deleted_cols_it->second;
108 bool unmark_lazy_fetch =
false);
111 const std::vector<TargetExprCodegen>& target_exprs_to_codegen)
const;
113 const std::vector<TargetExprCodegen>& target_exprs_to_codegen);
Defines data structures for the semantic analysis phase of query processing.
std::list< std::shared_ptr< Analyzer::Expr > > simple_quals_
std::unordered_map< size_t, std::vector< std::shared_ptr< Analyzer::Expr > > > left_join_non_hashtable_quals_
std::unordered_map< shared::TableKey, const ColumnDescriptor * > DeletedColumnsMap
std::unordered_map< InputColDescriptor, size_t > global_to_local_col_ids_
void addColumnToFetch(const shared::ColumnKey &column_key, bool unmark_lazy_fetch=false)
std::unordered_set< std::shared_ptr< Analyzer::Expr >> HoistedFiltersSet
JoinInfo(const std::vector< std::shared_ptr< Analyzer::BinOper >> &equi_join_tautologies, const std::vector< std::shared_ptr< HashJoin >> &join_hash_tables)
std::unordered_set< shared::ColumnKey > columns_to_not_fetch_
void addNonHashtableQualForLeftJoin(size_t idx, std::shared_ptr< Analyzer::Expr > expr)
std::unordered_set< size_t > sharded_range_table_indices_
bool hasExpressionNeedsLazyFetch(const std::vector< TargetExprCodegen > &target_exprs_to_codegen) const
const Executor * executor_
std::vector< int64_t > init_agg_vals_
Helpers for codegen of target expressions.
void addColumnToNotFetch(const shared::ColumnKey &column_key)
std::vector< std::shared_ptr< Analyzer::BinOper > > equi_join_tautologies_
bool isColumnToFetch(const shared::ColumnKey &column_key) const
int getLocalColumnId(const Analyzer::ColumnVar *col_var, const bool fetch_column)
bool isLazyFetchColumn(const Analyzer::Expr *target_expr) const
bool isLazyFetchColumn(const InputColDescriptor &col_desc)
PlanState(const bool allow_lazy_fetch, const std::vector< InputTableInfo > &query_infos, const DeletedColumnsMap &deleted_columns, const Executor *executor)
const std::vector< InputTableInfo > & query_infos_
specifies the content in-memory of a row in the column metadata table
void allocateLocalColumnIds(const std::list< std::shared_ptr< const InputColDescriptor >> &global_col_ids)
const ColumnDescriptor * getDeletedColForTable(const shared::TableKey &table_key)
const std::unordered_set< shared::ColumnKey > & getColumnsToFetch() const
Executor(const ExecutorId id, Data_Namespace::DataMgr *data_mgr, const size_t block_size_x, const size_t grid_size_x, const size_t max_gpu_slab_size, const std::string &debug_dir, const std::string &debug_file)
void addSimpleQual(std::shared_ptr< Analyzer::Expr > simple_qual)
const DeletedColumnsMap deleted_columns_
bool isColumnToNotFetch(const shared::ColumnKey &column_key) const
HoistedFiltersSet hoisted_filters_
std::list< std::shared_ptr< Analyzer::Expr > > getSimpleQuals() const
const std::unordered_set< shared::ColumnKey > & getColumnsToNotFetch() const
std::vector< std::shared_ptr< HashJoin > > join_hash_tables_
std::unordered_set< shared::ColumnKey > columns_to_fetch_
void registerNonLazyFetchExpression(const std::vector< TargetExprCodegen > &target_exprs_to_codegen)