OmniSciDB
72c90bc290
|
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 4688 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 3481 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 3638 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 1739 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 448 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 795 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 1596 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 3538 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 3564 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 4479 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 3559 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 3214 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 4394 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 4441 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 1391 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 1678 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 1627 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 1529 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 5385 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 1552 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 4382 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 4515 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 3201 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::executeSort(), and get_scan_limit().
|
inline |
Definition at line 1966 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 76 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 4863 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 1691 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 1695 of file RelAlgExecutor.cpp.
References RelProject::size().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelTableFunction * | table_func | ) |
Definition at line 1699 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 3205 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 4036 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 1976 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 1992 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 1409 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 1424 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 1450 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 1462 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 1474 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 1501 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 4283 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().
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 3462 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 1036 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 220 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 2797 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 2833 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 1951 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 1946 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 3218 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 3477 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 2315 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 4462 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 4700 of file RelAlgExecutor.cpp.
Referenced by reverse_logical_distribution().
bool anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate | ( | const RelAlgNode * | ra | ) |
Definition at line 70 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 155 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 147 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 135 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 4713 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 4525 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 4673 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 1703 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 1707 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 1711 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputAt().
void anonymous_namespace{RelAlgExecutor.cpp}::set_parallelism_hints | ( | const RelAlgNode & | ra_node | ) |
Definition at line 89 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 1715 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 1729 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 3521 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 4838 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 1517 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 5051 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 2465 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 1815 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 1828 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 1838 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 1749 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 1782 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 1869 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 1919 of file RelAlgExecutor.cpp.
References CHECK, fold_expr(), RelAggregate::getAggExprs(), Analyzer::Var::kGROUPBY, RelAlgTranslator::translateAggregateRex(), and var_ref().