19 #include <unordered_set>
28 JoinInfo(
const std::vector<std::shared_ptr<Analyzer::BinOper>>& equi_join_tautologies,
29 const std::vector<std::shared_ptr<HashJoin>>& join_hash_tables)
33 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>>{}, {}})
63 std::unordered_map<size_t, std::vector<std::shared_ptr<Analyzer::Expr>>>
73 const std::list<std::shared_ptr<const InputColDescriptor>>& global_col_ids);
90 return deleted_cols_it->second;
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< InputColDescriptor, size_t > global_to_local_col_ids_
std::set< std::pair< TableId, ColumnId > > columns_to_fetch_
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)
void addNonHashtableQualForLeftJoin(size_t idx, std::shared_ptr< Analyzer::Expr > expr)
std::unordered_set< size_t > sharded_range_table_indices_
const Executor * executor_
std::vector< int64_t > init_agg_vals_
std::set< std::pair< TableId, ColumnId > > columns_to_not_fetch_
std::vector< std::shared_ptr< Analyzer::BinOper > > equi_join_tautologies_
int getLocalColumnId(const Analyzer::ColumnVar *col_var, const bool fetch_column)
bool isLazyFetchColumn(const Analyzer::Expr *target_expr) const
std::unordered_map< TableId, const ColumnDescriptor * > DeletedColumnsMap
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)
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)
const ColumnDescriptor * getDeletedColForTable(const TableId table_id)
void addSimpleQual(std::shared_ptr< Analyzer::Expr > simple_qual)
const DeletedColumnsMap deleted_columns_
HoistedFiltersSet hoisted_filters_
std::list< std::shared_ptr< Analyzer::Expr > > getSimpleQuals() const
std::vector< Analyzer::Expr * > target_exprs_
std::vector< std::shared_ptr< HashJoin > > join_hash_tables_