OmniSciDB
cde582ebc3
|
Namespaces | |
anonymous_namespace{RelAlgExecutor.cpp} | |
Classes | |
class | RelLeftDeepTreeIdsCollector |
struct | TextEncodingCastCounts |
class | TextEncodingCastCountVisitor |
class | RexUsedInputsVisitor |
struct | ErrorInfo |
Functions | |
bool | node_is_aggregate (const RelAlgNode *ra) |
std::unordered_set< PhysicalInput > | get_physical_inputs (const Catalog_Namespace::Catalog &cat, const RelAlgNode *ra) |
void | set_parallelism_hints (const RelAlgNode &ra_node, const Catalog_Namespace::Catalog &catalog) |
void | prepare_string_dictionaries (const RelAlgNode &ra_node, const Catalog_Namespace::Catalog &catalog) |
void | prepare_foreign_table_for_execution (const RelAlgNode &ra_node, const Catalog_Namespace::Catalog &catalog) |
void | prepare_for_system_table_execution (const RelAlgNode &ra_node, const Catalog_Namespace::Catalog &catalog, const CompilationOptions &co) |
bool | has_valid_query_plan_dag (const RelAlgNode *node) |
std::list< Analyzer::OrderEntry > | get_order_entries (const RelSort *sort) |
void | build_render_targets (RenderInfo &render_info, const std::vector< Analyzer::Expr * > &work_unit_target_exprs, const std::vector< TargetMetaInfo > &targets_meta) |
bool | is_validate_or_explain_query (const ExecutionOptions &eo) |
TextEncodingCastCounts | get_text_cast_counts (const RelAlgExecutionUnit &ra_exe_unit) |
void | check_none_encoded_string_cast_tuple_limit (const std::vector< InputTableInfo > &query_infos, const RelAlgExecutionUnit &ra_exe_unit) |
void | check_sort_node_source_constraint (const RelSort *sort) |
const RelAlgNode * | get_data_sink (const RelAlgNode *ra_node) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelCompound *compound, const Catalog_Namespace::Catalog &cat) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelAggregate *aggregate, const Catalog_Namespace::Catalog &cat) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelProject *project, const Catalog_Namespace::Catalog &cat) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelTableFunction *table_func, const Catalog_Namespace::Catalog &cat) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelFilter *filter, const Catalog_Namespace::Catalog &cat) |
std::pair< std::unordered_set < const RexInput * > , std::vector< std::shared_ptr < RexInput > > > | get_used_inputs (const RelLogicalUnion *logical_union, const Catalog_Namespace::Catalog &) |
int | table_id_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, const Catalog_Namespace::Catalog &cat) |
void | collect_used_input_desc (std::vector< InputDescriptor > &input_descs, const Catalog_Namespace::Catalog &cat, 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, const Catalog_Namespace::Catalog &cat) |
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, const Catalog_Namespace::Catalog &cat) |
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, 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, const std::vector< std::shared_ptr< Analyzer::Expr >> &scalar_sources, const std::list< std::shared_ptr< Analyzer::Expr >> &groupby_exprs, const RelAggregate *aggregate, const RelAlgTranslator &translator) |
bool | is_count_distinct (const Analyzer::Expr *expr) |
bool | is_agg (const Analyzer::Expr *expr) |
SQLTypeInfo | get_logical_type_for_expr (const Analyzer::Expr &expr) |
template<class RA > | |
std::vector< TargetMetaInfo > | get_targets_meta (const RA *ra_node, const std::vector< Analyzer::Expr * > &target_exprs) |
template<> | |
std::vector< TargetMetaInfo > | get_targets_meta (const RelFilter *filter, const std::vector< Analyzer::Expr * > &target_exprs) |
bool | is_window_execution_unit (const RelAlgExecutionUnit &ra_exe_unit) |
std::shared_ptr< Analyzer::Expr > | transform_to_inner (const Analyzer::Expr *expr) |
template<class T > | |
int64_t | insert_one_dict_str (T *col_data, const std::string &columnName, const SQLTypeInfo &columnType, const Analyzer::Constant *col_cv, const Catalog_Namespace::Catalog &catalog) |
template<class T > | |
int64_t | insert_one_dict_str (T *col_data, const ColumnDescriptor *cd, const Analyzer::Constant *col_cv, const Catalog_Namespace::Catalog &catalog) |
size_t | get_scan_limit (const RelAlgNode *ra, const size_t limit) |
bool | first_oe_is_desc (const std::list< Analyzer::OrderEntry > &order_entries) |
size_t | groups_approx_upper_bound (const std::vector< InputTableInfo > &table_infos) |
bool | is_projection (const RelAlgExecutionUnit &ra_exe_unit) |
bool | can_output_columnar (const RelAlgExecutionUnit &ra_exe_unit, const RenderInfo *render_info, const RelAlgNode *body) |
bool | should_output_columnar (const RelAlgExecutionUnit &ra_exe_unit) |
bool | compute_output_buffer_size (const RelAlgExecutionUnit &ra_exe_unit) |
bool | exe_unit_has_quals (const RelAlgExecutionUnit ra_exe_unit) |
RelAlgExecutionUnit | decide_approx_count_distinct_implementation (const RelAlgExecutionUnit &ra_exe_unit_in, const std::vector< InputTableInfo > &table_infos, const Executor *executor, const ExecutorDeviceType device_type_in, std::vector< std::shared_ptr< Analyzer::Expr >> &target_exprs_owned) |
bool | can_use_bump_allocator (const RelAlgExecutionUnit &ra_exe_unit, const CompilationOptions &co, const ExecutionOptions &eo) |
ErrorInfo | getErrorDescription (const int32_t error_code) |
JoinType | get_join_type (const RelAlgNode *ra) |
std::unique_ptr< const RexOperator > | get_bitwise_equals (const RexScalar *scalar) |
std::unique_ptr< const RexOperator > | get_bitwise_equals_conjunction (const RexScalar *scalar) |
std::vector< JoinType > | left_deep_join_types (const RelLeftDeepInnerJoin *left_deep_join) |
template<class RA > | |
std::vector< size_t > | do_table_reordering (std::vector< InputDescriptor > &input_descs, std::list< std::shared_ptr< const InputColDescriptor >> &input_col_descs, const JoinQualsPerNestingLevel &left_deep_join_quals, std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const RA *node, const std::vector< InputTableInfo > &query_infos, const Executor *executor) |
std::vector< size_t > | get_left_deep_join_input_sizes (const RelLeftDeepInnerJoin *left_deep_join) |
std::list< std::shared_ptr < Analyzer::Expr > > | rewrite_quals (const std::list< std::shared_ptr< Analyzer::Expr >> &quals) |
std::vector< const RexScalar * > | rex_to_conjunctive_form (const RexScalar *qual_expr) |
std::shared_ptr< Analyzer::Expr > | build_logical_expression (const std::vector< std::shared_ptr< Analyzer::Expr >> &factors, const SQLOps sql_op) |
template<class QualsList > | |
bool | list_contains_expression (const QualsList &haystack, const std::shared_ptr< Analyzer::Expr > &needle) |
std::shared_ptr< Analyzer::Expr > | reverse_logical_distribution (const std::shared_ptr< Analyzer::Expr > &expr) |
std::vector< std::shared_ptr < Analyzer::Expr > > | synthesize_inputs (const RelAlgNode *ra_node, const size_t nest_level, const std::vector< TargetMetaInfo > &in_metainfo, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level) |
std::vector< Analyzer::Expr * > | get_raw_pointers (std::vector< std::shared_ptr< Analyzer::Expr >> const &input) |
std::vector< std::shared_ptr < Analyzer::Expr > > | target_exprs_for_union (RelAlgNode const *input_node) |
std::pair< std::vector < TargetMetaInfo > , std::vector< std::shared_ptr < Analyzer::Expr > > > | get_inputs_meta (const RelFilter *filter, const RelAlgTranslator &translator, const std::vector< std::shared_ptr< RexInput >> &inputs_owned, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level) |
std::shared_ptr<Analyzer::Expr> anonymous_namespace{RelAlgExecutor.cpp}::build_logical_expression | ( | const std::vector< std::shared_ptr< Analyzer::Expr >> & | factors, |
const SQLOps | sql_op | ||
) |
Definition at line 4443 of file RelAlgExecutor.cpp.
References CHECK, kONE, and Parser::OperExpr::normalize().
Referenced by reverse_logical_distribution().
void anonymous_namespace{RelAlgExecutor.cpp}::build_render_targets | ( | RenderInfo & | render_info, |
const std::vector< Analyzer::Expr * > & | work_unit_target_exprs, | ||
const std::vector< TargetMetaInfo > & | targets_meta | ||
) |
Definition at line 216 of file RelAlgExecutor.cpp.
References CHECK_EQ, and RenderInfo::targets.
Referenced by RelAlgExecutor::executeRelAlgStep(), RelAlgExecutor::executeSort(), and RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::can_output_columnar | ( | const RelAlgExecutionUnit & | ra_exe_unit, |
const RenderInfo * | render_info, | ||
const RelAlgNode * | body | ||
) |
Definition at line 3407 of file RelAlgExecutor.cpp.
References is_projection(), RenderInfo::isPotentialInSituRender(), SortInfo::order_entries, RelAlgExecutionUnit::sort_info, and RelAlgExecutionUnit::target_exprs.
Referenced by RelAlgExecutor::executeWorkUnit().
|
inline |
Definition at line 3533 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 1705 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 421 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 786 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, |
const Catalog_Namespace::Catalog & | cat, | ||
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 1558 of file RelAlgExecutor.cpp.
References RelRexToStringConfig::defaults(), Catalog_Namespace::Catalog::getColumnIdBySpi(), table_id_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 3446 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 3464 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 4253 of file RelAlgExecutor.cpp.
References cat(), CHECK, g_cluster, get_input_desc(), get_input_nest_levels(), get_node_input_permutation(), and table_is_replicated().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), and RelAlgExecutor::createProjectWorkUnit().
|
inline |
Definition at line 3459 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 3138 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 4168 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 4215 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 1353 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, | ||
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1644 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, | ||
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1590 of file RelAlgExecutor.cpp.
References collect_used_input_desc(), get_data_sink(), get_join_source_used_inputs(), gpu_enabled::sort(), and table_id_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 1490 of file RelAlgExecutor.cpp.
References CHECK, RelRexToStringConfig::defaults(), get_data_sink(), logger::INFO, 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 5092 of file RelAlgExecutor.cpp.
References CHECK, get_data_sink(), get_raw_pointers(), get_targets_meta(), synthesize_inputs(), and RelAlgTranslator::translateScalarRex().
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, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1513 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, RelAlgNode::toString(), and RexVisitorBase< T >::visit().
Referenced by get_input_desc_impl().
JoinType anonymous_namespace{RelAlgExecutor.cpp}::get_join_type | ( | const RelAlgNode * | ra | ) |
Definition at line 4156 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 4285 of file RelAlgExecutor.cpp.
References get_node_output(), RelAlgNode::getInput(), and RelAlgNode::inputCount().
Referenced by RelAlgExecutor::createCompoundWorkUnit(), and RelAlgExecutor::createProjectWorkUnit().
|
inline |
Definition at line 1920 of file RelAlgExecutor.cpp.
References get_logical_type_info(), get_nullable_logical_type_info(), Analyzer::Expr::get_type_info(), is_agg(), is_count_distinct(), and kBIGINT.
Referenced by get_targets_meta().
std::list<Analyzer::OrderEntry> anonymous_namespace{RelAlgExecutor.cpp}::get_order_entries | ( | const RelSort * | sort | ) |
Definition at line 205 of file RelAlgExecutor.cpp.
References RelSort::collationCount(), Descending, First, RelSort::getCollation(), and run_benchmark_import::result.
Referenced by RelAlgExecutor::executeRelAlgQuerySingleStep(), and RelAlgExecutor::executeSort().
std::unordered_set<PhysicalInput> anonymous_namespace{RelAlgExecutor.cpp}::get_physical_inputs | ( | const Catalog_Namespace::Catalog & | cat, |
const RelAlgNode * | ra | ||
) |
Definition at line 74 of file RelAlgExecutor.cpp.
References get_physical_inputs(), and Catalog_Namespace::Catalog::getColumnIdBySpi().
std::vector<Analyzer::Expr*> anonymous_namespace{RelAlgExecutor.cpp}::get_raw_pointers | ( | std::vector< std::shared_ptr< Analyzer::Expr >> const & | input | ) |
Definition at line 4620 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 1658 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 1662 of file RelAlgExecutor.cpp.
References RelProject::size().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scalar_sources_size | ( | const RelTableFunction * | table_func | ) |
Definition at line 1666 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputsSize().
size_t anonymous_namespace{RelAlgExecutor.cpp}::get_scan_limit | ( | const RelAlgNode * | ra, |
const size_t | limit | ||
) |
Definition at line 3129 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::createSortInputWorkUnit().
std::vector<TargetMetaInfo> anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta | ( | const RA * | ra_node, |
const std::vector< Analyzer::Expr * > & | target_exprs | ||
) |
Definition at line 1930 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 1946 of file RelAlgExecutor.cpp.
References RelRexToStringConfig::defaults(), get_targets_meta(), RelAlgNode::getInput(), RelAlgNode::toString(), and UNREACHABLE.
TextEncodingCastCounts anonymous_namespace{RelAlgExecutor.cpp}::get_text_cast_counts | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 380 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs, RelAlgExecutionUnit::join_quals, RelAlgExecutionUnit::quals, RelAlgExecutionUnit::simple_quals, RelAlgExecutionUnit::target_exprs, anonymous_namespace{RelAlgExecutor.cpp}::TextEncodingCastCounts::text_decoding_casts, anonymous_namespace{RelAlgExecutor.cpp}::TextEncodingCastCounts::text_encoding_casts, and ScalarExprVisitor< T >::visit().
Referenced by check_none_encoded_string_cast_tuple_limit().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelCompound * | compound, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1371 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelCompound::getFilterExpr(), RelCompound::getScalarSource(), RelCompound::getScalarSourcesSize(), and RexVisitorBase< T >::visit().
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, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1386 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, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1412 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelProject::getProjectAt(), RelProject::size(), and RexVisitorBase< T >::visit().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelTableFunction * | table_func, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1424 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::RexUsedInputsVisitor::get_inputs_owned(), RelTableFunction::getTableFuncInputAt(), RelTableFunction::getTableFuncInputsSize(), and RexVisitorBase< T >::visit().
std::pair<std::unordered_set<const RexInput*>, std::vector<std::shared_ptr<RexInput> > > anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs | ( | const RelFilter * | filter, |
const Catalog_Namespace::Catalog & | cat | ||
) |
Definition at line 1437 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, |
const Catalog_Namespace::Catalog & | |||
) |
Definition at line 1464 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 4057 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 3391 of file RelAlgExecutor.cpp.
References CHECK.
Referenced by RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag | ( | const RelAlgNode * | node | ) |
Definition at line 199 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 2728 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 2764 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 1908 of file RelAlgExecutor.cpp.
References Analyzer::AggExpr::get_aggtype(), kAVG, kMAX, kMIN, and kSUM.
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 1903 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 3403 of file RelAlgExecutor.cpp.
References RelAlgExecutionUnit::groupby_exprs.
Referenced by can_output_columnar(), and RelAlgTranslator::translateGeoFunctionArg().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_validate_or_explain_query | ( | const ExecutionOptions & | eo | ) |
Definition at line 229 of file RelAlgExecutor.cpp.
References ExecutionOptions::just_calcite_explain, ExecutionOptions::just_explain, and ExecutionOptions::just_validate.
Referenced by RelAlgExecutor::canUseResultsetCache(), RelAlgExecutor::executeTableFunction(), and RelAlgExecutor::executeWorkUnit().
bool anonymous_namespace{RelAlgExecutor.cpp}::is_window_execution_unit | ( | const RelAlgExecutionUnit & | ra_exe_unit | ) |
Definition at line 2240 of file RelAlgExecutor.cpp.
References 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 4236 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 4455 of file RelAlgExecutor.cpp.
Referenced by reverse_logical_distribution().
bool anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate | ( | const RelAlgNode * | ra | ) |
Definition at line 68 of file RelAlgExecutor.cpp.
Referenced by RelAlgExecutor::executeRelAlgQuerySingleStep(), and RelAlgExecutor::executeSort().
void anonymous_namespace{RelAlgExecutor.cpp}::prepare_for_system_table_execution | ( | const RelAlgNode & | ra_node, |
const Catalog_Namespace::Catalog & | catalog, | ||
const CompilationOptions & | co | ||
) |
Definition at line 148 of file RelAlgExecutor.cpp.
References CHECK, CHECK_LE, CPU, Data_Namespace::CPU_LEVEL, Data_Namespace::DataMgr::deleteChunksWithPrefix(), CompilationOptions::device_type, g_enable_system_tables, get_physical_inputs(), Chunk_NS::Chunk::getChunk(), Catalog_Namespace::Catalog::getColumnIdBySpi(), Catalog_Namespace::Catalog::getDatabaseId(), Catalog_Namespace::Catalog::getDataMgr(), Catalog_Namespace::Catalog::getMetadataForColumn(), and Catalog_Namespace::Catalog::getMetadataForTable().
Referenced by RelAlgExecutor::executeRelAlgQueryNoRetry(), and RelAlgExecutor::prepareForSystemTableExecution().
void anonymous_namespace{RelAlgExecutor.cpp}::prepare_foreign_table_for_execution | ( | const RelAlgNode & | ra_node, |
const Catalog_Namespace::Catalog & | catalog | ||
) |
Definition at line 139 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, |
const Catalog_Namespace::Catalog & | catalog | ||
) |
Definition at line 128 of file RelAlgExecutor.cpp.
References StorageType::FOREIGN_TABLE, get_physical_inputs(), Catalog_Namespace::Catalog::getColumnIdBySpi(), Catalog_Namespace::Catalog::getMetadataForTable(), 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 4468 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 4295 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 4428 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 1670 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 1674 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 1678 of file RelAlgExecutor.cpp.
References RelTableFunction::getTableFuncInputAt().
void anonymous_namespace{RelAlgExecutor.cpp}::set_parallelism_hints | ( | const RelAlgNode & | ra_node, |
const Catalog_Namespace::Catalog & | catalog | ||
) |
Definition at line 86 of file RelAlgExecutor.cpp.
References CHECK, Data_Namespace::CPU_LEVEL, StorageType::FOREIGN_TABLE, get_physical_inputs(), Catalog_Namespace::Catalog::getColumnIdBySpi(), Catalog_Namespace::Catalog::getDatabaseId(), Catalog_Namespace::Catalog::getDataMgr(), PersistentStorageMgr::getForeignStorageMgr(), Catalog_Namespace::Catalog::getForeignTable(), Catalog_Namespace::Catalog::getMetadataForColumn(), Catalog_Namespace::Catalog::getMetadataForTable(), Data_Namespace::DataMgr::getPersistentStorageMgr(), 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 1682 of file RelAlgExecutor.cpp.
References kENCODING_DICT, kENCODING_NONE, and TRANSIENT_DICT_ID.
Referenced by set_transient_dict_maybe(), translate_groupby_exprs(), and translate_targets().
void anonymous_namespace{RelAlgExecutor.cpp}::set_transient_dict_maybe | ( | std::vector< std::shared_ptr< Analyzer::Expr >> & | scalar_sources, |
const std::shared_ptr< Analyzer::Expr > & | expr | ||
) |
Definition at line 1695 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 3435 of file RelAlgExecutor.cpp.
References g_columnar_large_projections, g_columnar_large_projections_threshold, and RelAlgExecutionUnit::scan_limit.
Referenced by RelAlgExecutor::executeWorkUnit().
std::vector<std::shared_ptr<Analyzer::Expr> > anonymous_namespace{RelAlgExecutor.cpp}::synthesize_inputs | ( | const RelAlgNode * | ra_node, |
const size_t | nest_level, | ||
const std::vector< TargetMetaInfo > & | in_metainfo, | ||
const std::unordered_map< const RelAlgNode *, int > & | input_to_nest_level | ||
) |
Definition at line 4594 of file RelAlgExecutor.cpp.
References CHECK, CHECK_GE, CHECK_LE, RelAlgNode::getInput(), RelAlgNode::inputCount(), and table_id_from_ra().
Referenced by RelAlgExecutor::createAggregateWorkUnit(), and get_inputs_meta().
int anonymous_namespace{RelAlgExecutor.cpp}::table_id_from_ra | ( | const RelAlgNode * | ra_node | ) |
Definition at line 1480 of file RelAlgExecutor.cpp.
References CHECK, RelAlgNode::getId(), and RelScan::getTableDescriptor().
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 4796 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 2391 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 1781 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 1794 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 1804 of file RelAlgExecutor.cpp.
References fold_expr(), RelCompound::getFilterExpr(), qual_to_conjunctive_form(), and RelAlgTranslator::translateScalarRex().
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 1715 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::translateScalarRex(), 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 1748 of file RelAlgExecutor.cpp.
References cat(), get_scalar_sources_size(), rewrite_array_elements(), rewrite_expr(), scalar_at(), set_transient_dict_maybe(), and RelAlgTranslator::translateScalarRex().
std::vector<Analyzer::Expr*> anonymous_namespace{RelAlgExecutor.cpp}::translate_targets | ( | std::vector< std::shared_ptr< Analyzer::Expr >> & | target_exprs_owned, |
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 1830 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_expr(), set_transient_dict(), RelCompound::size(), RelAlgTranslator::translateAggregateRex(), RelAlgTranslator::translateScalarRex(), 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, |
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 1877 of file RelAlgExecutor.cpp.
References CHECK, fold_expr(), RelAggregate::getAggExprs(), Analyzer::Var::kGROUPBY, RelAlgTranslator::translateAggregateRex(), and var_ref().