OmniSciDB
f17484ade4
|
Namespaces | |
anonymous_namespace{RelAlgExecutor.cpp} | |
Classes | |
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) |
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) |
void | handle_query_hint (RegisteredQueryHint const &query_hints, ExecutionOptions &eo, CompilationOptions &co) |
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_limit_value (std::optional< size_t > limit) |
size_t | get_scan_limit (const RelAlgNode *ra, std::optional< 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 4609 of file RelAlgExecutor.cpp.
References CHECK, kONE, and Parser::OperExpr::normalize().
Referenced by reverse_logical_distribution().
bool anonymous_namespace{RelAlgExecutor.cpp}::can_output_columnar | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const RenderInfo * | render_info, | ||
const RelAlgNode * | body | ||
) |
Definition at line 3483 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 3630 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 1738 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 447 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 794 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 1595 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 3540 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 3558 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 4400 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 3553 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 3211 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 4315 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 4362 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 1390 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 1677 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 1626 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 1528 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 5306 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 1551 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 4303 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 4436 of file RelAlgExecutor.cpp.
References get_node_output(), RelAlgNode::getInput(), and RelAlgNode::inputCount().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), and RelAlgExecutor::createProjectWorkUnit().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_limit_value | ( | std::optional< size_t > | limit | ) |
Definition at line 3198 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::executeSort(), and get_scan_limit().
|
inline |
Definition at line 1963 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::unordered_set<PhysicalInput> anonymous_namespace{RelAlgExecutor.cpp}::get_physical_inputs_with_spi_col_id | ( | const RelAlgNode * | ra | ) |
Definition at line 75 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 4784 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 1690 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 1694 of file RelAlgExecutor.cpp.
References RelProject::size().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelTableFunction * | table_func | ) |
Definition at line 1698 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputsSize().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scan_limit | ( | const RelAlgNode * | ra, |
std::optional< size_t > | limit | ||
) |
Definition at line 3202 of file RelAlgExecutor.cpp.
References get_limit_value().
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 1973 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 1989 of file RelAlgExecutor.cpp.
References RelRexToStringConfig::defaults(), get_targets_meta(), RelAlgNode::getInput(), RelAlgNode::toString(), and UNREACHABLE.
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 1408 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 1423 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 1449 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 1461 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 1473 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 1500 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 4204 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 3467 of file RelAlgExecutor.cpp.
References CHECK.
Referenced by RelAlgExecutor::executeWorkUnit().
void anonymous_namespace{RelAlgExecutor.cpp}::handle_query_hint | ( | RegisteredQueryHint const & | query_hints, |
ExecutionOptions & | eo, | ||
CompilationOptions & | co | ||
) |
Definition at line 1035 of file RelAlgExecutor.cpp.
References ExecutionOptions::allow_loop_joins, CPU, CompilationOptions::device_type, ExecutionOptions::dynamic_watchdog_time_limit, g_cluster, g_enable_data_recycler, g_use_query_resultset_cache, logger::INFO, RegisteredQueryHint::isHintRegistered(), kAllowLoopJoin, kColumnarOutput, kCpuMode, kCudaBlockSize, kCudaGridSize, kDisableLoopJoin, kDynamicWatchdog, kDynamicWatchdogOff, ExecutionOptions::keep_result, kKeepResult, kKeepTableFuncResult, kMaxJoinHashTableSize, kOptCudaBlockAndGridSizes, kQueryTimeLimit, kRowwiseOutput, kWatchdog, kWatchdogOff, LOG, ExecutionOptions::max_join_hash_table_size, RegisteredQueryHint::max_join_hash_table_size, ExecutionOptions::optimize_cuda_block_and_grid_sizes, ExecutionOptions::output_columnar_hint, RegisteredQueryHint::query_time_limit, VLOG, ExecutionOptions::with_dynamic_watchdog, and ExecutionOptions::with_watchdog.
bool anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag | ( | const RelAlgNode * | node | ) |
Definition at line 219 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 2794 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 2830 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 1950 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 1945 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 3479 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs.
Referenced by can_output_columnar(), and RelAlgTranslator::translateGeoFunctionArg().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_window_execution_unit | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 2312 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 4383 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 4621 of file RelAlgExecutor.cpp.
Referenced by reverse_logical_distribution().
bool anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate | ( | const RelAlgNode * | ra | ) |
Definition at line 69 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 154 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 146 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 134 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 4634 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 4446 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 4594 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 1702 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 1706 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 1710 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputAt().
void anonymous_namespace{RelAlgExecutor.cpp}::set_parallelism_hints | ( | const RelAlgNode & | ra_node | ) |
Definition at line 88 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 1714 of file RelAlgExecutor.cpp.
References kENCODING_DICT, kENCODING_NONE, shared::StringDictKey::kTransientDictKey, 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 1728 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 3523 of file RelAlgExecutor.cpp.
References g_columnar_large_projections, g_columnar_large_projections_threshold, RelAlgExecutionUnit::scan_limit, and RelAlgExecutionUnit::target_exprs.
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 4759 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 1516 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 4972 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 2462 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 1814 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 1827 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 1837 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 1748 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 1781 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 1868 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 1918 of file RelAlgExecutor.cpp.
References CHECK, fold_expr(), RelAggregate::getAggExprs(), Analyzer::Var::kGROUPBY, RelAlgTranslator::translateAggregateRex(), and var_ref().