OmniSciDB
c1a53651b2
|
Namespaces | |
anonymous_namespace{RelAlgExecutor.cpp} | |
Classes | |
class | RelLeftDeepTreeIdsCollector |
struct | TextEncodingCastCounts |
class | TextEncodingCastCountVisitor |
class | RexUsedInputsVisitor |
struct | ErrorInfo |
Functions | |
bool | node_is_aggregate (const RelAlgNode *ra) |
std::unordered_set< PhysicalInput > | get_physical_inputs_with_spi_col_id (const RelAlgNode *ra) |
void | set_parallelism_hints (const RelAlgNode &ra_node) |
void | prepare_string_dictionaries (const RelAlgNode &ra_node) |
void | prepare_foreign_table_for_execution (const RelAlgNode &ra_node) |
void | prepare_for_system_table_execution (const RelAlgNode &ra_node, const CompilationOptions &co) |
bool | has_valid_query_plan_dag (const RelAlgNode *node) |
std::list< Analyzer::OrderEntry > | get_order_entries (const RelSort *sort) |
void | build_render_targets (RenderInfo &render_info, const std::vector< Analyzer::Expr * > &work_unit_target_exprs, const std::vector< TargetMetaInfo > &targets_meta) |
bool | is_validate_or_explain_query (const ExecutionOptions &eo) |
TextEncodingCastCounts | get_text_cast_counts (const RelAlgExecutionUnit &ra_exe_unit) |
void | check_none_encoded_string_cast_tuple_limit (const std::vector< InputTableInfo > &query_infos, const RelAlgExecutionUnit &ra_exe_unit) |
void | check_sort_node_source_constraint (const RelSort *sort) |
const RelAlgNode * | get_data_sink (const RelAlgNode *ra_node) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelCompound *compound) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelAggregate *aggregate) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelProject *project) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelTableFunction *table_func) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelFilter *filter) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelLogicalUnion *logical_union) |
shared::TableKey | table_key_from_ra (const RelAlgNode *ra_node) |
std::unordered_map< const RelAlgNode *, int > | get_input_nest_levels (const RelAlgNode *ra_node, const std::vector< size_t > &input_permutation) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_join_source_used_inputs (const RelAlgNode *ra_node) |
void | collect_used_input_desc (std::vector< InputDescriptor > &input_descs, std::unordered_set< std::shared_ptr< const InputColDescriptor >> &input_col_descs_unique, const RelAlgNode *ra_node, const std::unordered_set< const RexInput * > &source_used_inputs, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level) |
template<class RA > | |
std::pair< std::vector < InputDescriptor >, std::list < std::shared_ptr< const InputColDescriptor > > > | get_input_desc_impl (const RA *ra_node, const std::unordered_set< const RexInput * > &used_inputs, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const std::vector< size_t > &input_permutation) |
template<class RA > | |
std::tuple< std::vector < InputDescriptor >, std::list < std::shared_ptr< const InputColDescriptor > >, std::vector < std::shared_ptr< RexInput > > > | get_input_desc (const RA *ra_node, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const std::vector< size_t > &input_permutation) |
size_t | get_scalar_sources_size (const RelCompound *compound) |
size_t | get_scalar_sources_size (const RelProject *project) |
size_t | get_scalar_sources_size (const RelTableFunction *table_func) |
const RexScalar * | scalar_at (const size_t i, const RelCompound *compound) |
const RexScalar * | scalar_at (const size_t i, const RelProject *project) |
const RexScalar * | scalar_at (const size_t i, const RelTableFunction *table_func) |
std::shared_ptr< Analyzer::Expr > | set_transient_dict (const std::shared_ptr< Analyzer::Expr > expr) |
void | set_transient_dict_maybe (std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources, const std::shared_ptr< Analyzer::Expr > &expr) |
std::shared_ptr< Analyzer::Expr > | cast_dict_to_none (const std::shared_ptr< Analyzer::Expr > &input) |
template<class RA > | |
std::vector< std::shared_ptr < Analyzer::Expr > > | translate_scalar_sources (const RA *ra_node, const RelAlgTranslator &translator, const ::ExecutorType executor_type) |
template<class RA > | |
std::vector< std::shared_ptr < Analyzer::Expr > > | translate_scalar_sources_for_update (const RA *ra_node, const RelAlgTranslator &translator, int32_t tableId, const Catalog_Namespace::Catalog &cat, const ColumnNameList &colNames, size_t starting_projection_column_idx) |
std::list< std::shared_ptr < Analyzer::Expr > > | translate_groupby_exprs (const RelCompound *compound, const std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources) |
std::list< std::shared_ptr < Analyzer::Expr > > | translate_groupby_exprs (const RelAggregate *aggregate, const std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources) |
QualsConjunctiveForm | translate_quals (const RelCompound *compound, const RelAlgTranslator &translator) |
std::vector< Analyzer::Expr * > | translate_targets (std::vector< std::shared_ptr< Analyzer::Expr >> &target_exprs_owned, std::unordered_map< size_t, SQLTypeInfo > &target_exprs_type_infos, const std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources, const std::list< std::shared_ptr< Analyzer::Expr >> &groupby_exprs, const RelCompound *compound, const RelAlgTranslator &translator, const ExecutorType executor_type) |
std::vector< Analyzer::Expr * > | translate_targets (std::vector< std::shared_ptr< Analyzer::Expr >> &target_exprs_owned, std::unordered_map< size_t, SQLTypeInfo > &target_exprs_type_infos, const std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources, const std::list< std::shared_ptr< Analyzer::Expr >> &groupby_exprs, const RelAggregate *aggregate, const RelAlgTranslator &translator) |
bool | is_count_distinct (const Analyzer::Expr *expr) |
bool | is_agg (const Analyzer::Expr *expr) |
SQLTypeInfo | get_logical_type_for_expr (const Analyzer::Expr &expr) |
template<class RA > | |
std::vector< TargetMetaInfo > | get_targets_meta (const RA *ra_node, const std::vector< Analyzer::Expr * > &target_exprs) |
template<> | |
std::vector< TargetMetaInfo > | get_targets_meta (const RelFilter *filter, const std::vector< Analyzer::Expr * > &target_exprs) |
bool | is_window_execution_unit (const RelAlgExecutionUnit &ra_exe_unit) |
std::shared_ptr< Analyzer::Expr > | transform_to_inner (const Analyzer::Expr *expr) |
template<class T > | |
int64_t | insert_one_dict_str (T *col_data, const std::string &columnName, const SQLTypeInfo &columnType, const Analyzer::Constant *col_cv, const Catalog_Namespace::Catalog &catalog) |
template<class T > | |
int64_t | insert_one_dict_str (T *col_data, const ColumnDescriptor *cd, const Analyzer::Constant *col_cv, const Catalog_Namespace::Catalog &catalog) |
size_t | get_scan_limit (const RelAlgNode *ra, const size_t limit) |
bool | first_oe_is_desc (const std::list< Analyzer::OrderEntry > &order_entries) |
size_t | groups_approx_upper_bound (const std::vector< InputTableInfo > &table_infos) |
bool | is_projection (const RelAlgExecutionUnit &ra_exe_unit) |
bool | can_output_columnar (const RelAlgExecutionUnit &ra_exe_unit, const RenderInfo *render_info, const RelAlgNode *body) |
bool | should_output_columnar (const RelAlgExecutionUnit &ra_exe_unit) |
bool | compute_output_buffer_size (const RelAlgExecutionUnit &ra_exe_unit) |
bool | exe_unit_has_quals (const RelAlgExecutionUnit ra_exe_unit) |
RelAlgExecutionUnit | decide_approx_count_distinct_implementation (const RelAlgExecutionUnit &ra_exe_unit_in, const std::vector< InputTableInfo > &table_infos, const Executor *executor, const ExecutorDeviceType device_type_in, std::vector< std::shared_ptr< Analyzer::Expr >> &target_exprs_owned) |
bool | can_use_bump_allocator (const RelAlgExecutionUnit &ra_exe_unit, const CompilationOptions &co, const ExecutionOptions &eo) |
ErrorInfo | getErrorDescription (const int32_t error_code) |
JoinType | get_join_type (const RelAlgNode *ra) |
std::unique_ptr< const RexOperator > | get_bitwise_equals (const RexScalar *scalar) |
std::unique_ptr< const RexOperator > | get_bitwise_equals_conjunction (const RexScalar *scalar) |
std::vector< JoinType > | left_deep_join_types (const RelLeftDeepInnerJoin *left_deep_join) |
template<class RA > | |
std::vector< size_t > | do_table_reordering (std::vector< InputDescriptor > &input_descs, std::list< std::shared_ptr< const InputColDescriptor >> &input_col_descs, const JoinQualsPerNestingLevel &left_deep_join_quals, std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const RA *node, const std::vector< InputTableInfo > &query_infos, const Executor *executor) |
std::vector< size_t > | get_left_deep_join_input_sizes (const RelLeftDeepInnerJoin *left_deep_join) |
std::list< std::shared_ptr < Analyzer::Expr > > | rewrite_quals (const std::list< std::shared_ptr< Analyzer::Expr >> &quals) |
std::vector< const RexScalar * > | rex_to_conjunctive_form (const RexScalar *qual_expr) |
std::shared_ptr< Analyzer::Expr > | build_logical_expression (const std::vector< std::shared_ptr< Analyzer::Expr >> &factors, const SQLOps sql_op) |
template<class QualsList > | |
bool | list_contains_expression (const QualsList &haystack, const std::shared_ptr< Analyzer::Expr > &needle) |
std::shared_ptr< Analyzer::Expr > | reverse_logical_distribution (const std::shared_ptr< Analyzer::Expr > &expr) |
std::vector< std::shared_ptr < Analyzer::Expr > > | synthesize_inputs (const RelAlgNode *ra_node, const size_t nest_level, const std::vector< TargetMetaInfo > &in_metainfo, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level) |
std::vector< Analyzer::Expr * > | get_raw_pointers (std::vector< std::shared_ptr< Analyzer::Expr >> const &input) |
std::vector< std::shared_ptr < Analyzer::Expr > > | target_exprs_for_union (RelAlgNode const *input_node) |
std::pair< std::vector < TargetMetaInfo > , std::vector< std::shared_ptr < Analyzer::Expr > > > | get_inputs_meta (const RelFilter *filter, const RelAlgTranslator &translator, const std::vector< std::shared_ptr< RexInput >> &inputs_owned, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level) |
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgExecutor.cpp}::build_logical_expression | ( | const std::vector< std::shared_ptr< Analyzer::Expr >> & | factors, |
const SQLOps | sql_op | ||
) |
Definition at line 4607 of file RelAlgExecutor.cpp.
References CHECK, kONE, and Parser::OperExpr::normalize().
Referenced by reverse_logical_distribution().
void anonymous_namespace{RelAlgExecutor.cpp}::build_render_targets | ( | RenderInfo & | render_info, |
const std::vector< Analyzer::Expr * > & | work_unit_target_exprs, | ||
const std::vector< TargetMetaInfo > & | targets_meta | ||
) |
Definition at line 235 of file RelAlgExecutor.cpp.
References CHECK_EQ, and RenderInfo::targets.
Referenced by RelAlgExecutor::executeRelAlgStep(), RelAlgExecutor::executeSort(), and RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::can_output_columnar | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const RenderInfo * | render_info, | ||
const RelAlgNode * | body | ||
) |
Definition at line 3526 of file RelAlgExecutor.cpp.
References is_projection(), heavyai::InSituFlagsOwnerInterface::isInSitu(), SortInfo::order_entries, RelAlgExecutionUnit::sort_info, and RelAlgExecutionUnit::target_exprs.
Referenced by RelAlgExecutor::executeWorkUnit().
|
inline |
Definition at line 3655 of file RelAlgExecutor.cpp.
References CompilationOptions::device_type, g_enable_bump_allocator, GPU, SortInfo::order_entries, ExecutionOptions::output_columnar_hint, and RelAlgExecutionUnit::sort_info.
Referenced by RelAlgExecutor::executeWorkUnit().
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgExecutor.cpp}::cast_dict_to_none | ( | const std::shared_ptr< Analyzer::Expr > & | input | ) |
Definition at line 1780 of file RelAlgExecutor.cpp.
References kENCODING_DICT, and kTEXT.
Referenced by translate_scalar_sources(), and translate_targets().
void anonymous_namespace{RelAlgExecutor.cpp}::check_none_encoded_string_cast_tuple_limit | ( | const std::vector< InputTableInfo > & | query_infos, |
const RelAlgExecutionUnit & | ra_exe_unit | ||
) |
Definition at line 456 of file RelAlgExecutor.cpp.
References gpu_enabled::accumulate(), g_enable_watchdog, g_watchdog_none_encoded_string_translation_limit, and get_text_cast_counts().
Referenced by RelAlgExecutor::executeWorkUnit().
|
inline |
Definition at line 831 of file RelAlgExecutor.cpp.
References CHECK_EQ, RelAlgNode::getInput(), and RelAlgNode::inputCount().
Referenced by RelAlgExecutor::executeRelAlgQuerySingleStep(), and RelAlgExecutor::executeSort().
void anonymous_namespace{RelAlgExecutor.cpp}::collect_used_input_desc | ( | std::vector< InputDescriptor > & | input_descs, |
std::unordered_set< std::shared_ptr< const InputColDescriptor >> & | input_col_descs_unique, | ||
const RelAlgNode * | ra_node, | ||
const std::unordered_set< const RexInput * > & | source_used_inputs, | ||
const std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level | ||
) |
Definition at line 1638 of file RelAlgExecutor.cpp.
References RelRexToStringConfig::defaults(), table_key_from_ra(), RelAlgNode::toString(), and VLOG.
Referenced by get_input_desc_impl().
bool anonymous_namespace{RelAlgExecutor.cpp}::compute_output_buffer_size | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Determines whether a query needs to compute the size of its output buffer. Returns true for projection queries with no LIMIT or a LIMIT that exceeds the high scan limit threshold (meaning it would be cheaper to compute the number of rows passing or use the bump allocator than allocate the current scan limit per GPU)
Definition at line 3565 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs, Executor::high_scan_limit, RelAlgExecutionUnit::scan_limit, and RelAlgExecutionUnit::target_exprs.
Referenced by RelAlgExecutor::executeWorkUnit().
RelAlgExecutionUnit anonymous_namespace{RelAlgExecutor.cpp}::decide_approx_count_distinct_implementation | ( | const RelAlgExecutionUnit & | ra_exe_unit_in, |
const std::vector< InputTableInfo > & | table_infos, | ||
const Executor * | executor, | ||
const ExecutorDeviceType | device_type_in, | ||
std::vector< std::shared_ptr< Analyzer::Expr >> & | target_exprs_owned | ||
) |
Definition at line 3583 of file RelAlgExecutor.cpp.
References Bitmap, CHECK, CHECK_GE, g_bigint_count, g_cluster, g_hll_precision_bits, get_agg_type(), get_count_distinct_sub_bitmap_count(), get_target_info(), getExpressionRange(), GPU, hll_size_for_rate(), Integer, kAPPROX_COUNT_DISTINCT, kCOUNT, kENCODING_DICT, kINT, and RelAlgExecutionUnit::target_exprs.
Referenced by RelAlgExecutor::executeWorkUnit(), and RelAlgExecutor::handleOutOfMemoryRetry().
std::vector<size_t> anonymous_namespace{RelAlgExecutor.cpp}::do_table_reordering | ( | std::vector< InputDescriptor > & | input_descs, |
std::list< std::shared_ptr< const InputColDescriptor >> & | input_col_descs, | ||
const JoinQualsPerNestingLevel & | left_deep_join_quals, | ||
std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level, | ||
const RA * | node, | ||
const std::vector< InputTableInfo > & | query_infos, | ||
const Executor * | executor | ||
) |
Definition at line 4420 of file RelAlgExecutor.cpp.
References CHECK, g_cluster, get_input_desc(), get_input_nest_levels(), Catalog_Namespace::get_metadata_for_table(), get_node_input_permutation(), and table_is_replicated().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), and RelAlgExecutor::createProjectWorkUnit().
|
inline |
Definition at line 3578 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::join_quals, RelAlgExecutionUnit::quals, and RelAlgExecutionUnit::simple_quals.
Referenced by RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::first_oe_is_desc | ( | const std::list< Analyzer::OrderEntry > & | order_entries | ) |
Definition at line 3254 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::createSortInputWorkUnit(), and RelAlgExecutor::executeSort().
std::unique_ptr<const RexOperator> anonymous_namespace{RelAlgExecutor.cpp}::get_bitwise_equals | ( | const RexScalar * | scalar | ) |
Definition at line 4335 of file RelAlgExecutor.cpp.
References CHECK_EQ, kAND, kBW_EQ, kEQ, kISNULL, kOR, and RexVisitorBase< T >::visit().
Referenced by get_bitwise_equals_conjunction().
std::unique_ptr<const RexOperator> anonymous_namespace{RelAlgExecutor.cpp}::get_bitwise_equals_conjunction | ( | const RexScalar * | scalar | ) |
Definition at line 4382 of file RelAlgExecutor.cpp.
References CHECK_GE, get_bitwise_equals(), and kAND.
Referenced by RelAlgExecutor::makeJoinQuals().
const RelAlgNode* anonymous_namespace{RelAlgExecutor.cpp}::get_data_sink | ( | const RelAlgNode * | ra_node | ) |
Definition at line 1433 of file RelAlgExecutor.cpp.
References CHECK_EQ, RelAlgNode::getInput(), RelAlgNode::inputCount(), and join().
Referenced by get_input_desc_impl(), get_input_nest_levels(), get_inputs_meta(), get_join_source_used_inputs(), get_join_type(), and get_used_inputs().
std::tuple<std::vector<InputDescriptor>, std::list<std::shared_ptr<const InputColDescriptor> >, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc | ( | const RA * | ra_node, |
const std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level, | ||
const std::vector< size_t > & | input_permutation | ||
) |
Definition at line 1720 of file RelAlgExecutor.cpp.
References get_input_desc_impl(), get_used_inputs(), and VLOG.
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), and do_table_reordering().
std::pair<std::vector<InputDescriptor>, std::list<std::shared_ptr<const InputColDescriptor> > > anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc_impl | ( | const RA * | ra_node, |
const std::unordered_set< const RexInput * > & | used_inputs, | ||
const std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level, | ||
const std::vector< size_t > & | input_permutation | ||
) |
Definition at line 1669 of file RelAlgExecutor.cpp.
References collect_used_input_desc(), get_data_sink(), get_join_source_used_inputs(), gpu_enabled::sort(), and table_key_from_ra().
Referenced by get_input_desc().
std::unordered_map<const RelAlgNode*, int> anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels | ( | const RelAlgNode * | ra_node, |
const std::vector< size_t > & | input_permutation | ||
) |
Definition at line 1571 of file RelAlgExecutor.cpp.
References CHECK, logger::DEBUG1, RelRexToStringConfig::defaults(), get_data_sink(), and LOG_IF.
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), do_table_reordering(), and RelAlgExecutor::getRelAlgTranslator().
std::pair<std::vector<TargetMetaInfo>, std::vector<std::shared_ptr<Analyzer::Expr> > > anonymous_namespace{RelAlgExecutor.cpp}::get_inputs_meta | ( | const RelFilter * | filter, |
const RelAlgTranslator & | translator, | ||
const std::vector< std::shared_ptr< RexInput >> & | inputs_owned, | ||
const std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level | ||
) |
Definition at line 5267 of file RelAlgExecutor.cpp.
References CHECK, get_data_sink(), get_raw_pointers(), get_targets_meta(), synthesize_inputs(), and RelAlgTranslator::translate().
Referenced by RelAlgExecutor::createFilterWorkUnit().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_join_source_used_inputs | ( | const RelAlgNode * | ra_node | ) |
Definition at line 1594 of file RelAlgExecutor.cpp.
References CHECK_EQ, CHECK_GE, CHECK_GT, RelRexToStringConfig::defaults(), get_data_sink(), anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelAlgNode::inputCount(), join(), run_benchmark_import::result, and RelAlgNode::toString().
Referenced by get_input_desc_impl().
JoinType anonymous_namespace{RelAlgExecutor.cpp}::get_join_type | ( | const RelAlgNode * | ra | ) |
Definition at line 4323 of file RelAlgExecutor.cpp.
References get_data_sink(), INNER, INVALID, and join().
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), and RelAlgExecutor::getRelAlgTranslator().
std::vector<size_t> anonymous_namespace{RelAlgExecutor.cpp}::get_left_deep_join_input_sizes | ( | const RelLeftDeepInnerJoin * | left_deep_join | ) |
Definition at line 4451 of file RelAlgExecutor.cpp.
References get_node_output(), RelAlgNode::getInput(), and RelAlgNode::inputCount().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), and RelAlgExecutor::createProjectWorkUnit().
|
inline |
Definition at line 2005 of file RelAlgExecutor.cpp.
References get_logical_type_info(), get_nullable_logical_type_info(), Analyzer::Expr::get_type_info(), is_agg(), is_count_distinct(), and kBIGINT.
Referenced by get_targets_meta().
std::list<Analyzer::OrderEntry> anonymous_namespace{RelAlgExecutor.cpp}::get_order_entries | ( | const RelSort * | sort | ) |
Definition at line 224 of file RelAlgExecutor.cpp.
References RelSort::collationCount(), Descending, First, RelSort::getCollation(), and run_benchmark_import::result.
Referenced by RelAlgExecutor::executeRelAlgQuerySingleStep(), and RelAlgExecutor::executeSort().
std::unordered_set<PhysicalInput> anonymous_namespace{RelAlgExecutor.cpp}::get_physical_inputs_with_spi_col_id | ( | const RelAlgNode * | ra | ) |
Definition at line 74 of file RelAlgExecutor.cpp.
References CHECK, get_physical_inputs(), Catalog_Namespace::SysCatalog::getCatalog(), Catalog_Namespace::SysCatalog::instance(), and PhysicalInput::table_id.
Referenced by RelAlgExecutor::computeColRangesCache(), RelAlgExecutor::computeStringDictionaryGenerations(), and RelAlgExecutor::setupCaching().
std::vector<Analyzer::Expr*> anonymous_namespace{RelAlgExecutor.cpp}::get_raw_pointers | ( | std::vector< std::shared_ptr< Analyzer::Expr >> const & | input | ) |
Definition at line 4782 of file RelAlgExecutor.cpp.
References shared::transform().
Referenced by RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), and get_inputs_meta().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelCompound * | compound | ) |
Definition at line 1733 of file RelAlgExecutor.cpp.
References RelCompound::getScalarSourcesSize().
Referenced by translate_scalar_sources(), and translate_scalar_sources_for_update().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelProject * | project | ) |
Definition at line 1737 of file RelAlgExecutor.cpp.
References RelProject::size().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelTableFunction * | table_func | ) |
Definition at line 1741 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputsSize().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scan_limit | ( | const RelAlgNode * | ra, |
const size_t | limit | ||
) |
Definition at line 3245 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::createSortInputWorkUnit().
std::vector<TargetMetaInfo> anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta | ( | const RA * | ra_node, |
const std::vector< Analyzer::Expr * > & | target_exprs | ||
) |
Definition at line 2015 of file RelAlgExecutor.cpp.
References CHECK, CHECK_EQ, and get_logical_type_for_expr().
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), get_inputs_meta(), and get_targets_meta().
std::vector<TargetMetaInfo> anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta | ( | const RelFilter * | filter, |
const std::vector< Analyzer::Expr * > & | target_exprs | ||
) |
Definition at line 2031 of file RelAlgExecutor.cpp.
References RelRexToStringConfig::defaults(), get_targets_meta(), RelAlgNode::getInput(), RelAlgNode::toString(), and UNREACHABLE.
TextEncodingCastCounts anonymous_namespace{RelAlgExecutor.cpp}::get_text_cast_counts | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 415 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs, RelAlgExecutionUnit::join_quals, RelAlgExecutionUnit::quals, RelAlgExecutionUnit::simple_quals, RelAlgExecutionUnit::target_exprs, anonymous_namespace{RelAlgExecutor.cpp}::TextEncodingCastCounts::text_decoding_casts, anonymous_namespace{RelAlgExecutor.cpp}::TextEncodingCastCounts::text_encoding_casts, and ScalarExprVisitor< T >::visit().
Referenced by check_none_encoded_string_cast_tuple_limit().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelCompound * | compound | ) |
Definition at line 1451 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelCompound::getFilterExpr(), RelCompound::getScalarSource(), and RelCompound::getScalarSourcesSize().
Referenced by get_input_desc().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelAggregate * | aggregate | ) |
Definition at line 1466 of file RelAlgExecutor.cpp.
References CHECK_EQ, CHECK_GE, RelAggregate::getAggExprs(), RelAggregate::getGroupByCount(), RelAlgNode::getInput(), RelAlgNode::getOutputMetainfo(), and RelAlgNode::inputCount().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelProject * | project | ) |
Definition at line 1492 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelProject::getProjectAt(), and RelProject::size().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelTableFunction * | table_func | ) |
Definition at line 1504 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelTableFunction::getTableFuncInputAt(), and RelTableFunction::getTableFuncInputsSize().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelFilter * | filter | ) |
Definition at line 1516 of file RelAlgExecutor.cpp.
References CHECK, and get_data_sink().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelLogicalUnion * | logical_union | ) |
Definition at line 1543 of file RelAlgExecutor.cpp.
References RelAlgNode::getInput(), RelAlgNode::inputCount(), and VLOG.
ErrorInfo anonymous_namespace{RelAlgExecutor.cpp}::getErrorDescription | ( | const int32_t | error_code | ) |
Definition at line 4224 of file RelAlgExecutor.cpp.
References Executor::ERR_COLUMNAR_CONVERSION_NOT_SUPPORTED, Executor::ERR_DIV_BY_ZERO, Executor::ERR_GEOS, Executor::ERR_INTERRUPTED, Executor::ERR_OUT_OF_CPU_MEM, Executor::ERR_OUT_OF_GPU_MEM, Executor::ERR_OUT_OF_RENDER_MEM, Executor::ERR_OUT_OF_TIME, Executor::ERR_OVERFLOW_OR_UNDERFLOW, Executor::ERR_SINGLE_VALUE_FOUND_MULTIPLE_VALUES, Executor::ERR_STREAMING_TOP_N_NOT_SUPPORTED_IN_RENDER_QUERY, Executor::ERR_STRING_CONST_IN_RESULTSET, Executor::ERR_TOO_MANY_LITERALS, Executor::ERR_UNSUPPORTED_SELF_JOIN, and Executor::ERR_WIDTH_BUCKET_INVALID_ARGUMENT.
Referenced by RelAlgExecutor::getErrorMessageFromCode().
size_t anonymous_namespace{RelAlgExecutor.cpp}::groups_approx_upper_bound | ( | const std::vector< InputTableInfo > & | table_infos | ) |
Upper bound estimation for the number of groups. Not strictly correct and not tight, but if the tables involved are really small we shouldn't waste time doing the NDV estimation. We don't account for cross-joins and / or group by unnested array, which is the reason this estimation isn't entirely reliable.
Definition at line 3510 of file RelAlgExecutor.cpp.
References CHECK.
Referenced by RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag | ( | const RelAlgNode * | node | ) |
Definition at line 218 of file RelAlgExecutor.cpp.
References EMPTY_HASHED_PLAN_DAG_KEY, and RelAlgNode::getQueryPlanDagHash().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::executeRelAlgStep(), RelAlgExecutor::executeSort(), and RelAlgExecutor::executeTableFunction().
int64_t anonymous_namespace{RelAlgExecutor.cpp}::insert_one_dict_str | ( | T * | col_data, |
const std::string & | columnName, | ||
const SQLTypeInfo & | columnType, | ||
const Analyzer::Constant * | col_cv, | ||
const Catalog_Namespace::Catalog & | catalog | ||
) |
Definition at line 2843 of file RelAlgExecutor.cpp.
References CHECK, logger::ERROR, SQLTypeInfo::get_comp_param(), Analyzer::Constant::get_constval(), Analyzer::Constant::get_is_null(), Catalog_Namespace::Catalog::getMetadataForDict(), inline_fixed_encoding_null_val(), LOG, Datum::stringval, and heavydb.dtypes::T.
Referenced by RelAlgExecutor::executeSimpleInsert(), and insert_one_dict_str().
int64_t anonymous_namespace{RelAlgExecutor.cpp}::insert_one_dict_str | ( | T * | col_data, |
const ColumnDescriptor * | cd, | ||
const Analyzer::Constant * | col_cv, | ||
const Catalog_Namespace::Catalog & | catalog | ||
) |
Definition at line 2879 of file RelAlgExecutor.cpp.
References ColumnDescriptor::columnName, ColumnDescriptor::columnType, and insert_one_dict_str().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_agg | ( | const Analyzer::Expr * | expr | ) |
Definition at line 1992 of file RelAlgExecutor.cpp.
References Analyzer::AggExpr::get_aggtype(), kAVG, kMAX, kMIN, kSUM, and kSUM_IF.
Referenced by anonymous_namespace{RelAlgDag.cpp}::create_compound(), RelAlgExecutor::executeWorkUnit(), get_logical_type_for_expr(), and ResultSet::getSingleSlotTargetBitmap().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_count_distinct | ( | const Analyzer::Expr * | expr | ) |
Definition at line 1987 of file RelAlgExecutor.cpp.
References Analyzer::AggExpr::get_is_distinct().
Referenced by get_logical_type_for_expr().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_projection | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 3522 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs.
Referenced by can_output_columnar(), and RelAlgTranslator::translateGeoFunctionArg().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_validate_or_explain_query | ( | const ExecutionOptions & | eo | ) |
Definition at line 248 of file RelAlgExecutor.cpp.
References ExecutionOptions::just_calcite_explain, ExecutionOptions::just_explain, and ExecutionOptions::just_validate.
Referenced by RelAlgExecutor::canUseResultsetCache(), RelAlgExecutor::executeTableFunction(), and RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_window_execution_unit | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 2360 of file RelAlgExecutor.cpp.
References anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), and RelAlgExecutionUnit::target_exprs.
Referenced by RelAlgExecutor::executeWorkUnit().
std::vector<JoinType> anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types | ( | const RelLeftDeepInnerJoin * | left_deep_join | ) |
Definition at line 4403 of file RelAlgExecutor.cpp.
References ANTI, CHECK_GE, RelLeftDeepInnerJoin::getJoinType(), RelLeftDeepInnerJoin::getOuterCondition(), INNER, RelAlgNode::inputCount(), LEFT, and SEMI.
Referenced by RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::getRelAlgTranslator(), and RelAlgExecutor::translateLeftDeepJoinFilter().
bool anonymous_namespace{RelAlgExecutor.cpp}::list_contains_expression | ( | const QualsList & | haystack, |
const std::shared_ptr< Analyzer::Expr > & | needle | ||
) |
Definition at line 4619 of file RelAlgExecutor.cpp.
Referenced by reverse_logical_distribution().
bool anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate | ( | const RelAlgNode * | ra | ) |
Definition at line 68 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::executeRelAlgQuerySingleStep(), and RelAlgExecutor::executeSort().
void anonymous_namespace{RelAlgExecutor.cpp}::prepare_for_system_table_execution | ( | const RelAlgNode & | ra_node, |
const CompilationOptions & | co | ||
) |
Definition at line 153 of file RelAlgExecutor.cpp.
References CHECK, CHECK_LE, CPU, Data_Namespace::CPU_LEVEL, CompilationOptions::device_type, g_enable_system_tables, get_physical_inputs(), Catalog_Namespace::SysCatalog::getCatalog(), Chunk_NS::Chunk::getChunk(), Catalog_Namespace::SysCatalog::instance(), and shared::kInfoSchemaDbName.
Referenced by RelAlgExecutor::executeRelAlgQueryNoRetry(), and RelAlgExecutor::prepareForSystemTableExecution().
void anonymous_namespace{RelAlgExecutor.cpp}::prepare_foreign_table_for_execution | ( | const RelAlgNode & | ra_node | ) |
Definition at line 145 of file RelAlgExecutor.cpp.
References anonymous_namespace{Execute.cpp}::prepare_string_dictionaries(), and set_parallelism_hints().
Referenced by RelAlgExecutor::executeRelAlgQueryNoRetry(), and RelAlgExecutor::prepareForeignTables().
void anonymous_namespace{RelAlgExecutor.cpp}::prepare_string_dictionaries | ( | const RelAlgNode & | ra_node | ) |
Definition at line 133 of file RelAlgExecutor.cpp.
References CHECK, StorageType::FOREIGN_TABLE, get_physical_inputs(), Catalog_Namespace::SysCatalog::getCatalog(), Catalog_Namespace::SysCatalog::instance(), and foreign_storage::populate_string_dictionary().
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgExecutor.cpp}::reverse_logical_distribution | ( | const std::shared_ptr< Analyzer::Expr > & | expr | ) |
Definition at line 4632 of file RelAlgExecutor.cpp.
References build_logical_expression(), CHECK_GE, kAND, kONE, kOR, list_contains_expression(), Parser::OperExpr::normalize(), qual_to_conjunctive_form(), and qual_to_disjunctive_form().
Referenced by RelAlgExecutor::makeJoinQuals().
std::list<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::rewrite_quals | ( | const std::list< std::shared_ptr< Analyzer::Expr >> & | quals | ) |
Definition at line 4461 of file RelAlgExecutor.cpp.
References rewrite_expr().
Referenced by RelAlgExecutor::createCompoundWorkUnit().
std::vector<const RexScalar*> anonymous_namespace{RelAlgExecutor.cpp}::rex_to_conjunctive_form | ( | const RexScalar * | qual_expr | ) |
Definition at line 4592 of file RelAlgExecutor.cpp.
References CHECK, CHECK_GE, and kAND.
Referenced by RelAlgExecutor::makeJoinQuals().
const RexScalar* anonymous_namespace{RelAlgExecutor.cpp}::scalar_at | ( | const size_t | i, |
const RelCompound * | compound | ||
) |
Definition at line 1745 of file RelAlgExecutor.cpp.
References RelCompound::getScalarSource().
Referenced by translate_scalar_sources(), and translate_scalar_sources_for_update().
const RexScalar* anonymous_namespace{RelAlgExecutor.cpp}::scalar_at | ( | const size_t | i, |
const RelProject * | project | ||
) |
Definition at line 1749 of file RelAlgExecutor.cpp.
References RelProject::getProjectAt().
const RexScalar* anonymous_namespace{RelAlgExecutor.cpp}::scalar_at | ( | const size_t | i, |
const RelTableFunction * | table_func | ||
) |
Definition at line 1753 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputAt().
void anonymous_namespace{RelAlgExecutor.cpp}::set_parallelism_hints | ( | const RelAlgNode & | ra_node | ) |
Definition at line 87 of file RelAlgExecutor.cpp.
References CHECK, Data_Namespace::CPU_LEVEL, StorageType::FOREIGN_TABLE, get_physical_inputs(), Catalog_Namespace::SysCatalog::getCatalog(), Catalog_Namespace::SysCatalog::getDataMgr(), PersistentStorageMgr::getForeignStorageMgr(), Data_Namespace::DataMgr::getPersistentStorageMgr(), Catalog_Namespace::SysCatalog::instance(), and foreign_storage::key_does_not_shard_to_leaf().
Referenced by prepare_foreign_table_for_execution().
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgExecutor.cpp}::set_transient_dict | ( | const std::shared_ptr< Analyzer::Expr > | expr | ) |
Definition at line 1757 of file RelAlgExecutor.cpp.
References kENCODING_DICT, kENCODING_NONE, and TRANSIENT_DICT_ID.
Referenced by set_transient_dict_maybe(), translate_groupby_exprs(), and translate_targets().
void anonymous_namespace{RelAlgExecutor.cpp}::set_transient_dict_maybe | ( | std::vector< std::shared_ptr< Analyzer::Expr >> & | scalar_sources, |
const std::shared_ptr< Analyzer::Expr > & | expr | ||
) |
Definition at line 1770 of file RelAlgExecutor.cpp.
References fold_expr(), and set_transient_dict().
Referenced by translate_scalar_sources(), and translate_scalar_sources_for_update().
bool anonymous_namespace{RelAlgExecutor.cpp}::should_output_columnar | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 3554 of file RelAlgExecutor.cpp.
References g_columnar_large_projections, g_columnar_large_projections_threshold, and RelAlgExecutionUnit::scan_limit.
Referenced by RelAlgExecutor::executeWorkUnit().
std::vector<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::synthesize_inputs | ( | const RelAlgNode * | ra_node, |
const size_t | nest_level, | ||
const std::vector< TargetMetaInfo > & | in_metainfo, | ||
const std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level | ||
) |
Definition at line 4757 of file RelAlgExecutor.cpp.
References CHECK, CHECK_GE, CHECK_LE, RelAlgNode::getInput(), RelAlgNode::inputCount(), and table_key_from_ra().
Referenced by RelAlgExecutor::createAggregateWorkUnit(), and get_inputs_meta().
shared::TableKey anonymous_namespace{RelAlgExecutor.cpp}::table_key_from_ra | ( | const RelAlgNode * | ra_node | ) |
Definition at line 1559 of file RelAlgExecutor.cpp.
References CHECK, shared::TableKey::db_id, and RelAlgNode::getId().
Referenced by collect_used_input_desc(), get_input_desc_impl(), and synthesize_inputs().
std::vector<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::target_exprs_for_union | ( | RelAlgNode const * | input_node | ) |
Definition at line 4955 of file RelAlgExecutor.cpp.
References RelAlgNode::getId(), RelAlgNode::getOutputMetainfo(), shared::printContainer(), and VLOG.
Referenced by RelAlgExecutor::createUnionWorkUnit().
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgExecutor.cpp}::transform_to_inner | ( | const Analyzer::Expr * | expr | ) |
Definition at line 2510 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::computeWindow().
std::list<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::translate_groupby_exprs | ( | const RelCompound * | compound, |
const std::vector< std::shared_ptr< Analyzer::Expr >> & | scalar_sources | ||
) |
Definition at line 1856 of file RelAlgExecutor.cpp.
References RelCompound::getGroupByCount(), RelCompound::isAggregate(), and set_transient_dict().
Referenced by RelAlgExecutor::createAggregateWorkUnit(), and RelAlgExecutor::createCompoundWorkUnit().
std::list<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::translate_groupby_exprs | ( | const RelAggregate * | aggregate, |
const std::vector< std::shared_ptr< Analyzer::Expr >> & | scalar_sources | ||
) |
Definition at line 1869 of file RelAlgExecutor.cpp.
References RelAggregate::getGroupByCount(), and set_transient_dict().
QualsConjunctiveForm anonymous_namespace{RelAlgExecutor.cpp}::translate_quals | ( | const RelCompound * | compound, |
const RelAlgTranslator & | translator | ||
) |
Definition at line 1879 of file RelAlgExecutor.cpp.
References fold_expr(), RelCompound::getFilterExpr(), qual_to_conjunctive_form(), and RelAlgTranslator::translate().
Referenced by RelAlgExecutor::createCompoundWorkUnit().
std::vector<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources | ( | const RA * | ra_node, |
const RelAlgTranslator & | translator, | ||
const ::ExecutorType | executor_type | ||
) |
Definition at line 1790 of file RelAlgExecutor.cpp.
References cast_dict_to_none(), RelRexToStringConfig::defaults(), fold_expr(), get_scalar_sources_size(), Native, rewrite_array_elements(), rewrite_expr(), scalar_at(), set_transient_dict_maybe(), TableFunctions, RelAlgTranslator::translate(), and VLOG.
Referenced by RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), and RelAlgExecutor::createTableFunctionWorkUnit().
std::vector<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources_for_update | ( | const RA * | ra_node, |
const RelAlgTranslator & | translator, | ||
int32_t | tableId, | ||
const Catalog_Namespace::Catalog & | cat, | ||
const ColumnNameList & | colNames, | ||
size_t | starting_projection_column_idx | ||
) |
Definition at line 1823 of file RelAlgExecutor.cpp.
References cat(), get_scalar_sources_size(), rewrite_array_elements(), rewrite_expr(), scalar_at(), set_transient_dict_maybe(), and RelAlgTranslator::translate().
std::vector<Analyzer::Expr*> anonymous_namespace{RelAlgExecutor.cpp}::translate_targets | ( | std::vector< std::shared_ptr< Analyzer::Expr >> & | target_exprs_owned, |
std::unordered_map< size_t, SQLTypeInfo > & | target_exprs_type_infos, | ||
const std::vector< std::shared_ptr< Analyzer::Expr >> & | scalar_sources, | ||
const std::list< std::shared_ptr< Analyzer::Expr >> & | groupby_exprs, | ||
const RelCompound * | compound, | ||
const RelAlgTranslator & | translator, | ||
const ExecutorType | executor_type | ||
) |
Definition at line 1910 of file RelAlgExecutor.cpp.
References cast_dict_to_none(), CHECK, CHECK_GE, CHECK_LE, anonymous_namespace{RelAlgExecutor.cpp}::anonymous_namespace{RelAlgExecutor.cpp}::conditionally_change_arg_to_int_type(), fold_expr(), RexRef::getIndex(), RelCompound::getTargetExpr(), Analyzer::Var::kGROUPBY, Native, rewrite_array_elements(), rewrite_expr(), set_transient_dict(), RelCompound::size(), RelAlgTranslator::translate(), RelAlgTranslator::translateAggregateRex(), and var_ref().
Referenced by RelAlgExecutor::createAggregateWorkUnit(), and RelAlgExecutor::createCompoundWorkUnit().
std::vector<Analyzer::Expr*> anonymous_namespace{RelAlgExecutor.cpp}::translate_targets | ( | std::vector< std::shared_ptr< Analyzer::Expr >> & | target_exprs_owned, |
std::unordered_map< size_t, SQLTypeInfo > & | target_exprs_type_infos, | ||
const std::vector< std::shared_ptr< Analyzer::Expr >> & | scalar_sources, | ||
const std::list< std::shared_ptr< Analyzer::Expr >> & | groupby_exprs, | ||
const RelAggregate * | aggregate, | ||
const RelAlgTranslator & | translator | ||
) |
Definition at line 1960 of file RelAlgExecutor.cpp.
References CHECK, fold_expr(), RelAggregate::getAggExprs(), Analyzer::Var::kGROUPBY, RelAlgTranslator::translateAggregateRex(), and var_ref().