OmniSciDB
a5dc49c757
|
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) |
bool | is_none_encoded_text (TargetMetaInfo const &target_meta_info) |
std::pair< size_t, shared::TableKey > | 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) |
std::string | get_table_name_from_table_key (shared::TableKey const &table_key) |
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 4664 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 3488 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 3645 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 1745 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 449 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 796 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 1602 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 3545 of file RelAlgExecutor.cpp.
References g_preflight_count_query_threshold, is_projection(), RegisteredQueryHint::isHintRegistered(), kPreflightCountQueryThreshold, RegisteredQueryHint::preflight_count_query_threshold, RelAlgExecutionUnit::query_hint, RelAlgExecutionUnit::scan_limit, RelAlgExecutionUnit::target_exprs, and VLOG.
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 3571 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 4455 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 3566 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 3222 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 4370 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 4417 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 1397 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 1684 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 1633 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 1535 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 5361 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 1558 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 4358 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 4491 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 3209 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::executeSort(), and get_scan_limit().
|
inline |
Definition at line 1972 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 77 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 4839 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 1697 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 1701 of file RelAlgExecutor.cpp.
References RelProject::size().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelTableFunction * | table_func | ) |
Definition at line 1705 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 3213 of file RelAlgExecutor.cpp.
References get_limit_value().
Referenced by RelAlgExecutor::createSortInputWorkUnit().
std::string anonymous_namespace{RelAlgExecutor.cpp}::get_table_name_from_table_key | ( | shared::TableKey const & | table_key | ) |
Definition at line 4054 of file RelAlgExecutor.cpp.
References CHECK, shared::TableKey::db_id, Catalog_Namespace::SysCatalog::getCatalog(), Catalog_Namespace::SysCatalog::instance(), and shared::TableKey::table_id.
Referenced by RelAlgExecutor::getFilteredCountAll().
std::vector<TargetMetaInfo> anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta | ( | const RA * | ra_node, |
const std::vector< Analyzer::Expr * > & | target_exprs | ||
) |
Definition at line 1982 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 1998 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 1415 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 1430 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 1456 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 1468 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 1480 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 1507 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 4301 of file RelAlgExecutor.cpp.
References report::error_code(), and to_string().
Referenced by RelAlgExecutor::getErrorMessageFromCode().
std::pair<size_t, shared::TableKey> 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 3469 of file RelAlgExecutor.cpp.
References CHECK.
Referenced by RelAlgExecutor::executeWorkUnit(), and RelAlgExecutor::getFilteredCountAll().
void anonymous_namespace{RelAlgExecutor.cpp}::handle_query_hint | ( | RegisteredQueryHint const & | query_hints, |
ExecutionOptions & | eo, | ||
CompilationOptions & | co | ||
) |
Definition at line 1037 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, kTableReorderingOff, 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, ExecutionOptions::table_reordering, 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 221 of file RelAlgExecutor.cpp.
References EMPTY_HASHED_PLAN_DAG_KEY, and RelAlgNode::getQueryPlanDagHash().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::executeRelAlgStep(), RelAlgExecutor::executeSort(), RelAlgExecutor::executeTableFunction(), and RelAlgExecutor::executeWorkUnit().
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 2805 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 2841 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 1957 of file RelAlgExecutor.cpp.
References Analyzer::AggExpr::get_aggtype(), shared::is_any(), 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 1952 of file RelAlgExecutor.cpp.
References Analyzer::AggExpr::get_is_distinct().
Referenced by get_logical_type_for_expr().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_none_encoded_text | ( | TargetMetaInfo const & | target_meta_info | ) |
Definition at line 3226 of file RelAlgExecutor.cpp.
References TargetMetaInfo::get_type_info(), and SQLTypeInfo::is_none_encoded_string().
Referenced by RelAlgExecutor::executeSort().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_projection | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 3484 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs.
Referenced by can_output_columnar(), compute_output_buffer_size(), RelAlgExecutor::getFilteredCountAll(), and RelAlgTranslator::translateGeoFunctionArg().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_window_execution_unit | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 2321 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 4438 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 4676 of file RelAlgExecutor.cpp.
Referenced by reverse_logical_distribution().
bool anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate | ( | const RelAlgNode * | ra | ) |
Definition at line 71 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 156 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 148 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 136 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 4689 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 4501 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 4649 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 1709 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 1713 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 1717 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputAt().
void anonymous_namespace{RelAlgExecutor.cpp}::set_parallelism_hints | ( | const RelAlgNode & | ra_node | ) |
Definition at line 90 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 1721 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 1735 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 3528 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 4814 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 1523 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 5027 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 2474 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 1821 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 1834 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 1844 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 1755 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 1788 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 1875 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 1925 of file RelAlgExecutor.cpp.
References CHECK, fold_expr(), RelAggregate::getAggExprs(), Analyzer::Var::kGROUPBY, RelAlgTranslator::translateAggregateRex(), and var_ref().