OmniSciDB
72c90bc290
|
#include <RelAlgExecutor.h>
Classes | |
struct | TableFunctionWorkUnit |
struct | WorkUnit |
Public Types | |
using | TargetInfoList = std::vector< TargetInfo > |
Static Public Member Functions | |
static std::string | getErrorMessageFromCode (const int32_t error_code) |
Private Member Functions | |
void | initializeParallelismHints () |
ExecutionResult | executeRelAlgQueryNoRetry (const CompilationOptions &co, const ExecutionOptions &eo, const bool just_explain_plan, const bool explain_verbose, RenderInfo *render_info) |
void | executeRelAlgStep (const RaExecutionSequence &seq, const size_t step_idx, const CompilationOptions &, const ExecutionOptions &, RenderInfo *, const int64_t queue_time_ms) |
void | executeUpdate (const RelAlgNode *node, const CompilationOptions &co, const ExecutionOptions &eo, const int64_t queue_time_ms) |
void | executeDelete (const RelAlgNode *node, const CompilationOptions &co, const ExecutionOptions &eo_in, const int64_t queue_time_ms) |
ExecutionResult | executeCompound (const RelCompound *, const CompilationOptions &, const ExecutionOptions &, RenderInfo *, const int64_t queue_time_ms) |
ExecutionResult | executeAggregate (const RelAggregate *aggregate, const CompilationOptions &co, const ExecutionOptions &eo, RenderInfo *render_info, const int64_t queue_time_ms) |
ExecutionResult | executeProject (const RelProject *, const CompilationOptions &, const ExecutionOptions &, RenderInfo *, const int64_t queue_time_ms, const std::optional< size_t > previous_count) |
ExecutionResult | executeTableFunction (const RelTableFunction *, const CompilationOptions &, const ExecutionOptions &, const int64_t queue_time_ms) |
ExecutionResult | executeFilter (const RelFilter *, const CompilationOptions &, const ExecutionOptions &, RenderInfo *, const int64_t queue_time_ms) |
ExecutionResult | executeSort (const RelSort *, const CompilationOptions &, const ExecutionOptions &, RenderInfo *, const int64_t queue_time_ms) |
ExecutionResult | executeLogicalValues (const RelLogicalValues *, const ExecutionOptions &) |
ExecutionResult | executeModify (const RelModify *modify, const ExecutionOptions &eo) |
ExecutionResult | executeUnion (const RelLogicalUnion *, const RaExecutionSequence &, const CompilationOptions &, const ExecutionOptions &, RenderInfo *, const int64_t queue_time_ms) |
WorkUnit | createSortInputWorkUnit (const RelSort *, std::list< Analyzer::OrderEntry > &order_entries, const ExecutionOptions &eo) |
ExecutionResult | executeWorkUnit (const WorkUnit &work_unit, const std::vector< TargetMetaInfo > &targets_meta, const bool is_agg, const CompilationOptions &co_in, const ExecutionOptions &eo_in, RenderInfo *, const int64_t queue_time_ms, const std::optional< size_t > previous_count=std::nullopt) |
void | computeWindow (const WorkUnit &work_unit, const CompilationOptions &co, const ExecutionOptions &eo, ColumnCacheMap &column_cache_map, const int64_t queue_time_ms) |
std::unique_ptr < WindowFunctionContext > | createWindowFunctionContext (const Analyzer::WindowFunction *window_func, const std::shared_ptr< Analyzer::BinOper > &partition_key_cond, std::unordered_map< QueryPlanHash, std::shared_ptr< HashJoin >> &partition_cache, std::unordered_map< QueryPlanHash, size_t > &sorted_partition_key_ref_count_map, const WorkUnit &work_unit, const std::vector< InputTableInfo > &query_infos, const CompilationOptions &co, ColumnCacheMap &column_cache_map, std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner) |
size_t | getNDVEstimation (const WorkUnit &work_unit, const int64_t range, const bool is_agg, const CompilationOptions &co, const ExecutionOptions &eo) |
bool | hasDeletedRowInQuery (std::vector< InputTableInfo > const &) const |
std::optional< size_t > | getFilteredCountAll (const RelAlgExecutionUnit &ra_exe_unit, const bool is_agg, const CompilationOptions &co, const ExecutionOptions &eo) |
FilterSelectivity | getFilterSelectivity (const std::vector< std::shared_ptr< Analyzer::Expr >> &filter_expressions, const CompilationOptions &co, const ExecutionOptions &eo) |
std::vector< PushedDownFilterInfo > | selectFiltersToBePushedDown (const RelAlgExecutor::WorkUnit &work_unit, const CompilationOptions &co, const ExecutionOptions &eo) |
bool | isRowidLookup (const WorkUnit &work_unit) |
ExecutionResult | handleOutOfMemoryRetry (const RelAlgExecutor::WorkUnit &work_unit, const std::vector< TargetMetaInfo > &targets_meta, const bool is_agg, const CompilationOptions &co, const ExecutionOptions &eo, RenderInfo *render_info, const bool was_multifrag_kernel_launch, const int64_t queue_time_ms) |
WorkUnit | createWorkUnit (const RelAlgNode *, const SortInfo &, const ExecutionOptions &eo) |
WorkUnit | createCompoundWorkUnit (const RelCompound *, const SortInfo &, const ExecutionOptions &eo) |
WorkUnit | createAggregateWorkUnit (const RelAggregate *, const SortInfo &, const bool just_explain) |
WorkUnit | createProjectWorkUnit (const RelProject *, const SortInfo &, const ExecutionOptions &eo) |
WorkUnit | createFilterWorkUnit (const RelFilter *, const SortInfo &, const bool just_explain) |
WorkUnit | createJoinWorkUnit (const RelJoin *, const SortInfo &, const bool just_explain) |
WorkUnit | createUnionWorkUnit (const RelLogicalUnion *, const SortInfo &, const ExecutionOptions &eo) |
TableFunctionWorkUnit | createTableFunctionWorkUnit (const RelTableFunction *table_func, const bool just_explain, const bool is_gpu) |
void | addTemporaryTable (const int table_id, const ResultSetPtr &result) |
void | eraseFromTemporaryTables (const int table_id) |
void | handleNop (RaExecutionDesc &ed) |
std::unordered_map< unsigned, JoinQualsPerNestingLevel > & | getLeftDeepJoinTreesInfo () |
JoinQualsPerNestingLevel | translateLeftDeepJoinFilter (const RelLeftDeepInnerJoin *join, const std::vector< InputDescriptor > &input_descs, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const bool just_explain) |
std::list< std::shared_ptr < Analyzer::Expr > > | makeJoinQuals (const RexScalar *join_condition, const std::vector< JoinType > &join_types, const std::unordered_map< const RelAlgNode *, int > &input_to_nest_level, const bool just_explain) const |
void | setHasStepForUnion (bool flag) |
bool | hasStepForUnion () const |
bool | canUseResultsetCache (const ExecutionOptions &eo, RenderInfo *render_info) const |
void | setupCaching (const RelAlgNode *ra) |
Private Member Functions inherited from StorageIOFacility | |
StorageIOFacility (Executor *executor) | |
StorageIOFacility::UpdateCallback | yieldUpdateCallback (UpdateTransactionParameters &update_parameters) |
StorageIOFacility::UpdateCallback | yieldDeleteCallback (DeleteTransactionParameters &delete_parameters) |
Static Private Member Functions | |
static void | handlePersistentError (const int32_t error_code) |
Private Attributes | |
Executor * | executor_ |
std::unique_ptr< RelAlgDag > | query_dag_ |
std::shared_ptr< const query_state::QueryState > | query_state_ |
TemporaryTables | temporary_tables_ |
time_t | now_ |
std::unordered_map< unsigned, JoinQualsPerNestingLevel > | left_deep_join_info_ |
std::vector< std::shared_ptr < Analyzer::Expr > > | target_exprs_owned_ |
std::unordered_map< unsigned, AggregatedResult > | leaf_results_ |
int64_t | queue_time_ms_ |
bool | has_step_for_union_ |
std::unique_ptr < TransactionParameters > | dml_transaction_parameters_ |
std::optional< std::function < void()> > | post_execution_callback_ |
Static Private Attributes | |
static SpeculativeTopNBlacklist | speculative_topn_blacklist_ |
Friends | |
class | PendingExecutionClosure |
Additional Inherited Members | |
Private Types inherited from StorageIOFacility | |
using | UpdateCallback = UpdateLogForFragment::Callback |
using | TableDescriptorType = TableDescriptor |
using | DeleteVictimOffsetList = std::vector< uint64_t > |
using | UpdateTargetOffsetList = std::vector< uint64_t > |
using | UpdateTargetTypeList = std::vector< TargetMetaInfo > |
using | UpdateTargetColumnNamesList = std::vector< std::string > |
using | TransactionLog = Fragmenter_Namespace::InsertOrderFragmenter::ModifyTransactionTracker |
using | TransactionLogPtr = std::unique_ptr< TransactionLog > |
using | ColumnValidationFunction = std::function< bool(std::string const &)> |
Definition at line 52 of file RelAlgExecutor.h.
using RelAlgExecutor::TargetInfoList = std::vector<TargetInfo> |
Definition at line 54 of file RelAlgExecutor.h.
|
inline |
Definition at line 56 of file RelAlgExecutor.h.
References initializeParallelismHints().
|
inline |
Definition at line 66 of file RelAlgExecutor.h.
References initializeParallelismHints().
|
inline |
Definition at line 78 of file RelAlgExecutor.h.
References initializeParallelismHints().
|
inline |
Definition at line 129 of file RelAlgExecutor.h.
References CHECK, and leaf_results_.
|
inlineprivate |
Definition at line 400 of file RelAlgExecutor.h.
References CHECK, CHECK_LT, and temporary_tables_.
Referenced by executeRelAlgSeq(), executeRelAlgStep(), executeSort(), executeTableFunction(), and handleNop().
|
private |
Definition at line 482 of file RelAlgExecutor.cpp.
References g_cluster, g_enable_data_recycler, g_use_query_resultset_cache, hasStepForUnion(), is_validate_or_explain_query(), heavyai::InSituFlagsOwnerInterface::isInSitu(), and ExecutionOptions::outer_fragment_indices.
Referenced by executeRelAlgStep(), executeSort(), executeTableFunction(), and executeWorkUnit().
void RelAlgExecutor::cleanupPostExecution | ( | ) |
Definition at line 775 of file RelAlgExecutor.cpp.
References CHECK, and executor_.
Referenced by executeRelAlgQueryNoRetry(), and getOuterFragmentCount().
AggregatedColRange RelAlgExecutor::computeColRangesCache | ( | ) |
Definition at line 755 of file RelAlgExecutor.cpp.
References executor_, anonymous_namespace{RelAlgExecutor.cpp}::get_physical_inputs_with_spi_col_id(), and getRootRelAlgNode().
StringDictionaryGenerations RelAlgExecutor::computeStringDictionaryGenerations | ( | ) |
Definition at line 761 of file RelAlgExecutor.cpp.
References executor_, anonymous_namespace{RelAlgExecutor.cpp}::get_physical_inputs_with_spi_col_id(), and getRootRelAlgNode().
TableGenerations RelAlgExecutor::computeTableGenerations | ( | ) |
Definition at line 766 of file RelAlgExecutor.cpp.
References executor_, get_physical_table_inputs(), and getRootRelAlgNode().
|
private |
Definition at line 2483 of file RelAlgExecutor.cpp.
References CHECK, CHECK_EQ, WindowProjectNodeContext::create(), createWindowFunctionContext(), RelAlgExecutor::WorkUnit::exe_unit, executor_, ExecutionOptions::executor_type, Extern, get_table_infos(), Analyzer::WindowFunction::getPartitionKeys(), RelAlgExecutionUnit::input_descs, kBOOLEAN, kBW_EQ, kONE, RelAlgExecutionUnit::target_exprs, and anonymous_namespace{RelAlgExecutor.cpp}::transform_to_inner().
Referenced by executeUpdate(), and executeWorkUnit().
|
private |
Definition at line 4873 of file RelAlgExecutor.cpp.
References QueryPlanDagExtractor::applyLimitClauseToCacheKey(), CHECK_EQ, RegisteredQueryHint::defaults(), executor_, QueryPlanDagExtractor::extractJoinInfo(), g_default_max_groups_buffer_entry_guess, anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_type(), get_table_infos(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), RelAlgNode::getInput(), getLeftDeepJoinTreesInfo(), RelAlgNode::getOutputMetainfo(), RelAlgNode::getQueryPlanDagHash(), RelAlgNode::inputCount(), now_, query_dag_, query_state_, RelAlgNode::setOutputMetainfo(), anonymous_namespace{RelAlgExecutor.cpp}::synthesize_inputs(), target_exprs_owned_, anonymous_namespace{RelAlgExecutor.cpp}::translate_groupby_exprs(), and anonymous_namespace{RelAlgExecutor.cpp}::translate_targets().
Referenced by createWorkUnit(), and executeAggregate().
|
private |
Definition at line 4537 of file RelAlgExecutor.cpp.
References QueryPlanDagExtractor::applyLimitClauseToCacheKey(), CHECK_EQ, convert_bbox_intersect_join(), RegisteredQueryHint::defaults(), anonymous_namespace{RelAlgExecutor.cpp}::do_table_reordering(), executor_, ExecutionOptions::executor_type, QueryPlanDagExtractor::extractJoinInfo(), g_default_max_groups_buffer_entry_guess, g_from_table_reordering, anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_type(), anonymous_namespace{RelAlgExecutor.cpp}::get_left_deep_join_input_sizes(), get_table_infos(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), RelAlgNode::getInput(), getLeftDeepJoinTreesInfo(), RelAlgNode::getQueryPlanDagHash(), anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag(), RelAlgNode::inputCount(), ExecutionOptions::just_explain, LEFT, anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), now_, shared::printContainer(), query_dag_, query_state_, anonymous_namespace{RelAlgExecutor.cpp}::rewrite_quals(), RelAlgNode::setOutputMetainfo(), RelAlgExecutionUnit::simple_quals, RelCompound::size(), target_exprs_owned_, anonymous_namespace{RelAlgExecutor.cpp}::translate_groupby_exprs(), anonymous_namespace{RelAlgExecutor.cpp}::translate_quals(), anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources(), anonymous_namespace{RelAlgExecutor.cpp}::translate_targets(), translateLeftDeepJoinFilter(), and VLOG.
Referenced by createWorkUnit(), executeCompound(), executeDelete(), executeUpdate(), and getOuterFragmentCount().
|
private |
Definition at line 5424 of file RelAlgExecutor.cpp.
References QueryPlanDagExtractor::applyLimitClauseToCacheKey(), CHECK_EQ, RegisteredQueryHint::defaults(), executor_, QueryPlanDagExtractor::extractJoinInfo(), fold_expr(), g_default_max_groups_buffer_entry_guess, anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_inputs_meta(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_type(), anonymous_namespace{RelAlgExecutor.cpp}::get_raw_pointers(), get_table_infos(), RelFilter::getCondition(), getLeftDeepJoinTreesInfo(), RelAlgNode::getQueryPlanDagHash(), RelAlgNode::inputCount(), now_, query_dag_, query_state_, rewrite_expr(), RelAlgNode::setOutputMetainfo(), and target_exprs_owned_.
Referenced by createWorkUnit(), and executeFilter().
|
private |
|
private |
Definition at line 4938 of file RelAlgExecutor.cpp.
References QueryPlanDagExtractor::applyLimitClauseToCacheKey(), convert_bbox_intersect_join(), RegisteredQueryHint::defaults(), anonymous_namespace{RelAlgExecutor.cpp}::do_table_reordering(), executor_, ExecutionOptions::executor_type, QueryPlanDagExtractor::extractJoinInfo(), g_default_max_groups_buffer_entry_guess, g_from_table_reordering, anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_type(), anonymous_namespace{RelAlgExecutor.cpp}::get_left_deep_join_input_sizes(), anonymous_namespace{RelAlgExecutor.cpp}::get_raw_pointers(), get_table_infos(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), RelAlgNode::getInput(), getLeftDeepJoinTreesInfo(), RelAlgNode::getQueryPlanDagHash(), anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag(), ExecutionOptions::just_explain, anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), now_, shared::printContainer(), query_dag_, query_state_, RelAlgNode::setOutputMetainfo(), target_exprs_owned_, anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources(), translateLeftDeepJoinFilter(), and VLOG.
Referenced by createWorkUnit(), executeDelete(), executeProject(), executeUpdate(), and getOuterFragmentCount().
|
private |
Definition at line 3387 of file RelAlgExecutor.cpp.
References CHECK_GT, RelSort::collationCount(), SpeculativeTopNBlacklist::contains(), createWorkUnit(), Default, anonymous_namespace{RelAlgExecutor.cpp}::first_oe_is_desc(), g_default_max_groups_buffer_entry_guess, anonymous_namespace{RelAlgExecutor.cpp}::get_scan_limit(), get_target_info(), RelAlgNode::getInput(), RelSort::getLimit(), RelSort::getOffset(), RelAlgExecutionUnit::input_descs, RelAlgNode::setOutputMetainfo(), speculative_topn_blacklist_, SpeculativeTopN, and StreamingTopN.
Referenced by executeRelAlgQuerySingleStep(), and executeSort().
|
private |
Definition at line 5180 of file RelAlgExecutor.cpp.
References bind_table_function(), CHECK, CHECK_EQ, CHECK_GT, CHECK_LT, RelTableFunction::countRexLiteralArgs(), DEFAULT_ROW_MULTIPLIER_VALUE, executor_, ext_arg_type_to_type_info(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_raw_pointers(), get_table_infos(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), RelTableFunction::getColInputsSize(), RelTableFunction::getFunctionName(), RelTableFunction::getTableFuncInputAt(), IS_GEO, kENCODING_ARRAY, kENCODING_NONE, kINT, shared::StringDictKey::kTransientDictKey, LOG, now_, query_state_, RelAlgNode::setOutputMetainfo(), TableFunctions, TableFunctionExecutionUnit::target_exprs, target_exprs_owned_, to_string(), TRANSIENT_DICT_ID, anonymous_namespace{RelAlgExecutor.cpp}::translate_scalar_sources(), UNREACHABLE, and logger::WARNING.
Referenced by executeTableFunction().
|
private |
Definition at line 5073 of file RelAlgExecutor.cpp.
References gpu_enabled::accumulate(), shared::append_move(), CHECK, RelRexToStringConfig::defaults(), RegisteredQueryHint::defaults(), EMPTY_HASHED_PLAN_DAG_KEY, executor_, g_default_max_groups_buffer_entry_guess, anonymous_namespace{RelAlgExecutor.cpp}::get_input_desc(), anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_raw_pointers(), get_table_infos(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), RelAlgNode::getInput(), RelAlgNode::getOutputMetainfo(), RelLogicalUnion::isAll(), shared::printContainer(), query_state_, RelAlgNode::setOutputMetainfo(), anonymous_namespace{RelAlgExecutor.cpp}::target_exprs_for_union(), target_exprs_owned_, RelAlgNode::toString(), and VLOG.
Referenced by executeUnion().
|
private |
Definition at line 2559 of file RelAlgExecutor.cpp.
References RegisteredQueryHint::aggregate_tree_fanout, QueryPlanDagExtractor::applyLimitClauseToCacheKey(), RelAlgExecutor::WorkUnit::body, CHECK, CHECK_EQ, Data_Namespace::CPU_LEVEL, CompilationOptions::device_type, RelAlgExecutor::WorkUnit::exe_unit, executor_, g_window_function_aggregation_tree_fanout, Analyzer::WindowFunction::getArgs(), Analyzer::WindowFunction::getCollation(), ColumnFetcher::getOneColumnFragment(), Analyzer::WindowFunction::getOrderKeys(), RelAlgNode::getQueryPlanDagHash(), GPU, Data_Namespace::GPU_LEVEL, RelAlgExecutionUnit::hash_table_build_plan_dag, hash_value(), Analyzer::WindowFunction::isFrameNavigateWindowFunction(), OneToMany, RelAlgExecutionUnit::query_hint, RelAlgExecutionUnit::sort_info, RelAlgExecutionUnit::table_id_to_node_map, VLOG, WINDOW_FUNCTION, and WINDOW_FUNCTION_FRAMING.
Referenced by computeWindow().
|
private |
Definition at line 4356 of file RelAlgExecutor.cpp.
References createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), RelRexToStringConfig::defaults(), logger::FATAL, ExecutionOptions::just_explain, LOG, and RelAlgNode::toString().
Referenced by createSortInputWorkUnit(), and getJoinInfo().
|
inlineprivate |
|
private |
Definition at line 2296 of file RelAlgExecutor.cpp.
References createAggregateWorkUnit(), DEBUG_TIMER, executeWorkUnit(), RelAlgNode::getOutputMetainfo(), and ExecutionOptions::just_explain.
Referenced by executeRelAlgStep().
|
private |
Definition at line 2279 of file RelAlgExecutor.cpp.
References createCompoundWorkUnit(), DEBUG_TIMER, executeWorkUnit(), RelAlgNode::getOutputMetainfo(), and RelCompound::isAggregate().
Referenced by executeRelAlgStep().
|
private |
Definition at line 2174 of file RelAlgExecutor.cpp.
References CHECK, CHECK_EQ, Executor::clearExternalCaches(), createCompoundWorkUnit(), createProjectWorkUnit(), DEBUG_TIMER, RelRexToStringConfig::defaults(), dml_transaction_parameters_, executor_, CompilationOptions::filter_on_deleted_column, get_table_infos(), get_temporary_table(), QueryExecutionError::getErrorCode(), getErrorMessageFromCode(), CompilationOptions::makeCpuOnly(), post_execution_callback_, table_is_temporary(), temporary_tables_, and StorageIOFacility::yieldDeleteCallback().
Referenced by executeRelAlgStep().
|
private |
Definition at line 2698 of file RelAlgExecutor.cpp.
References createFilterWorkUnit(), DEBUG_TIMER, executeWorkUnit(), RelAlgNode::getOutputMetainfo(), and ExecutionOptions::just_explain.
Referenced by executeRelAlgStep().
|
private |
Definition at line 2751 of file RelAlgExecutor.cpp.
References CPU, DEBUG_TIMER, executor_, RelLogicalValues::getNumRows(), RelLogicalValues::getTupleType(), kBIGINT, kCOUNT, kNULLT, Projection, query_mem_desc, and RelAlgNode::setOutputMetainfo().
Referenced by executeRelAlgStep().
|
private |
Definition at line 2842 of file RelAlgExecutor.cpp.
References CPU, DEBUG_TIMER, executor_, and ExecutionOptions::just_explain.
Referenced by executeRelAlgStep().
void RelAlgExecutor::executePostExecutionCallback | ( | ) |
Definition at line 4349 of file RelAlgExecutor.cpp.
References post_execution_callback_, and VLOG.
|
private |
Definition at line 2325 of file RelAlgExecutor.cpp.
References CHECK, CHECK_EQ, CPU, createProjectWorkUnit(), DEBUG_TIMER, CompilationOptions::device_type, executeWorkUnit(), get_temporary_table(), RelAlgNode::getInput(), RelAlgNode::getOutputMetainfo(), RelAlgNode::inputCount(), RelProject::isSimple(), and temporary_tables_.
Referenced by executeRelAlgStep().
ExecutionResult RelAlgExecutor::executeRelAlgQuery | ( | const CompilationOptions & | co, |
const ExecutionOptions & | eo, | ||
const bool | just_explain_plan, | ||
const bool | explain_verbose, | ||
RenderInfo * | render_info | ||
) |
Definition at line 563 of file RelAlgExecutor.cpp.
References CHECK, DEBUG_TIMER, executeRelAlgQueryNoRetry(), RenderInfo::forceNonInSitu(), g_allow_cpu_retry, logger::INFO, INJECT_TIMER, RelAlgDag::kBuiltOptimized, LOG, CompilationOptions::makeCpuOnly(), post_execution_callback_, query_dag_, run_benchmark::run_query(), and VLOG.
|
private |
Definition at line 607 of file RelAlgExecutor.cpp.
References ExecutionOptions::allow_runtime_query_interrupt, CHECK, cleanupPostExecution(), DEBUG_TIMER, Executor::ERR_INTERRUPTED, executeRelAlgQueryWithFilterPushDown(), executeRelAlgSeq(), executor_, ExecutionOptions::find_push_down_candidates, g_enable_dynamic_watchdog, QueryExecutionError::getErrorCode(), getGlobalQueryHint(), RelAlgDag::getNodes(), getParsedQueryHint(), getRelAlgDag(), getRootRelAlgNode(), getSubqueries(), RelAlgDagViewer::handleQueryEngineVector(), INJECT_TIMER, ExecutionOptions::just_calcite_explain, ExecutionOptions::just_explain, ExecutionOptions::just_validate, anonymous_namespace{RelAlgExecutor.cpp}::prepare_for_system_table_execution(), anonymous_namespace{RelAlgExecutor.cpp}::prepare_foreign_table_for_execution(), query_dag_, query_state_, run_benchmark_import::result, RelAlgDag::setGlobalQueryHints(), setupCaching(), timer_start(), and timer_stop().
Referenced by executeRelAlgQuery().
QueryStepExecutionResult RelAlgExecutor::executeRelAlgQuerySingleStep | ( | const RaExecutionSequence & | seq, |
const size_t | step_idx, | ||
const CompilationOptions & | co, | ||
const ExecutionOptions & | eo, | ||
RenderInfo * | render_info | ||
) |
Definition at line 805 of file RelAlgExecutor.cpp.
References CHECK, CHECK_EQ, anonymous_namespace{RelAlgExecutor.cpp}::check_sort_node_source_constraint(), CPU, createSortInputWorkUnit(), CompilationOptions::device_type, executeRelAlgSubSeq(), RaExecutionSequence::getDescriptor(), GPU, logger::INFO, INJECT_TIMER, ExecutionOptions::just_validate, LOG, anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate(), post_execution_callback_, queue_time_ms_, Reduce, GroupByAndAggregate::shard_count_for_top_groups(), gpu_enabled::sort(), Union, and VLOG.
ExecutionResult RelAlgExecutor::executeRelAlgQueryWithFilterPushDown | ( | const RaExecutionSequence & | seq, |
const CompilationOptions & | co, | ||
const ExecutionOptions & | eo, | ||
RenderInfo * | render_info, | ||
const int64_t | queue_time_ms | ||
) |
Definition at line 148 of file JoinFilterPushDown.cpp.
References CHECK, executeRelAlgSeq(), executor_, ExecutionOptions::find_push_down_candidates, getSubqueries(), ExecutionOptions::just_calcite_explain, run_benchmark_import::result, and RaExecutionSequence::size().
Referenced by executeRelAlgQueryNoRetry().
ExecutionResult RelAlgExecutor::executeRelAlgSeq | ( | const RaExecutionSequence & | seq, |
const CompilationOptions & | co, | ||
const ExecutionOptions & | eo, | ||
RenderInfo * | render_info, | ||
const int64_t | queue_time_ms, | ||
const bool | with_existing_temp_tables = false |
||
) |
Definition at line 889 of file RelAlgExecutor.cpp.
References addTemporaryTable(), CHECK, CHECK_GE, DEBUG_TIMER, CompilationOptions::device_type, RaExecutionSequence::empty(), executeRelAlgStep(), executor_, RenderInfo::forceNonInSitu(), g_allow_query_step_cpu_retry, g_allow_query_step_skipping, g_cluster, g_enable_interop, RaExecutionDesc::getBody(), RaExecutionSequence::getDescriptor(), RaExecutionSequence::getSkippedQueryStepCacheKeys(), GPU, RaExecutionSequence::hasQueryStepForUnion(), logger::INFO, INJECT_TIMER, ExecutionOptions::just_explain, ExecutionOptions::keep_result, left_deep_join_info_, LOG, CompilationOptions::makeCpuOnly(), now_, RaExecutionSequence::size(), gpu_enabled::swap(), target_exprs_owned_, temporary_tables_, and VLOG.
Referenced by executeRelAlgQueryNoRetry(), and executeRelAlgQueryWithFilterPushDown().
|
private |
Definition at line 1148 of file RelAlgExecutor.cpp.
References addTemporaryTable(), QueryPlanDagExtractor::applyLimitClauseToCacheKey(), build_render_targets(), canUseResultsetCache(), CHECK, SortInfo::createFromSortNode(), DEBUG_TIMER, RelRexToStringConfig::defaults(), executeAggregate(), executeCompound(), executeDelete(), executeFilter(), executeLogicalValues(), executeModify(), executeProject(), executeSort(), executeTableFunction(), executeUnion(), executeUpdate(), executor_, logger::FATAL, g_cluster, g_skip_intermediate_count, RelAlgNode::getContextData(), RaExecutionSequence::getDescriptor(), RaExecutionSequence::getDescriptorByBodyId(), RelAlgNode::getId(), RelAlgNode::getInput(), getParsedQueryHint(), anonymous_namespace{RelAlgDag.cpp}::handle_query_hint(), handleNop(), anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag(), RelAlgNode::hasContextData(), RaExecutionSequence::hasQueryStepForUnion(), INJECT_TIMER, LOG, ExecutionOptions::outer_fragment_indices, setHasStepForUnion(), gpu_enabled::sort(), VLOG, and ExecutionOptions::with_watchdog.
Referenced by executeRelAlgSeq(), and executeRelAlgSubSeq().
ExecutionResult RelAlgExecutor::executeRelAlgSubSeq | ( | const RaExecutionSequence & | seq, |
const std::pair< size_t, size_t > | interval, | ||
const CompilationOptions & | co, | ||
const ExecutionOptions & | eo, | ||
RenderInfo * | render_info, | ||
const int64_t | queue_time_ms | ||
) |
Definition at line 990 of file RelAlgExecutor.cpp.
References CHECK, CompilationOptions::device_type, executeRelAlgStep(), executor_, RenderInfo::forceNonInSitu(), g_allow_query_step_cpu_retry, g_cluster, RaExecutionSequence::getDescriptor(), GPU, logger::INFO, INJECT_TIMER, left_deep_join_info_, LOG, CompilationOptions::makeCpuOnly(), now_, gpu_enabled::swap(), and temporary_tables_.
Referenced by executeRelAlgQuerySingleStep().
ExecutionResult RelAlgExecutor::executeSimpleInsert | ( | const Analyzer::Query & | insert_query, |
Fragmenter_Namespace::InsertDataLoader & | inserter, | ||
const Catalog_Namespace::SessionInfo & | session | ||
) |
Definition at line 2860 of file RelAlgExecutor.cpp.
References append_datum(), DataBlockPtr::arraysPtr, CHECK, CHECK_EQ, checked_malloc(), Executor::clearExternalCaches(), Fragmenter_Namespace::InsertData::columnIds, ColumnDescriptor::columnType, CPU, Fragmenter_Namespace::InsertData::data, Fragmenter_Namespace::InsertData::databaseId, executor_, import_export::fill_missing_columns(), get_column_descriptor(), SQLTypeInfo::get_compression(), SQLTypeInfo::get_elem_type(), Analyzer::Query::get_result_col_list(), Analyzer::Query::get_result_table_id(), SQLTypeInfo::get_size(), SQLTypeInfo::get_type(), Analyzer::Query::get_values_lists(), Catalog_Namespace::SessionInfo::getCatalog(), Fragmenter_Namespace::InsertDataLoader::getLeafCount(), Catalog_Namespace::Catalog::getMetadataForTable(), inline_fixed_encoding_null_val(), anonymous_namespace{RelAlgExecutor.cpp}::insert_one_dict_str(), Fragmenter_Namespace::InsertDataLoader::insertData(), is_null(), SQLTypeInfo::is_string(), kARRAY, kBIGINT, kBOOLEAN, kCAST, kCHAR, kDATE, kDECIMAL, kDOUBLE, kENCODING_DICT, kENCODING_NONE, kFLOAT, kINT, kLINESTRING, kMULTILINESTRING, kMULTIPOINT, kMULTIPOLYGON, kNUMERIC, kPOINT, kPOLYGON, kSMALLINT, kTEXT, kTIME, kTIMESTAMP, kTINYINT, kVARCHAR, DataBlockPtr::numbersPtr, Fragmenter_Namespace::InsertData::numRows, anonymous_namespace{TypedDataAccessors.h}::put_null(), anonymous_namespace{TypedDataAccessors.h}::put_null_array(), DataBlockPtr::stringsPtr, Fragmenter_Namespace::InsertData::tableId, and to_string().
|
private |
Definition at line 3224 of file RelAlgExecutor.cpp.
References SpeculativeTopNBlacklist::add(), addTemporaryTable(), anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), QueryPlanDagExtractor::applyLimitClauseToCacheKey(), build_render_targets(), canUseResultsetCache(), CHECK, CHECK_EQ, anonymous_namespace{RelAlgExecutor.cpp}::check_sort_node_source_constraint(), RelSort::collationCount(), CPU, createSortInputWorkUnit(), DEBUG_TIMER, CompilationOptions::device_type, executeWorkUnit(), executor_, anonymous_namespace{RelAlgExecutor.cpp}::first_oe_is_desc(), g_cluster, anonymous_namespace{RelAlgExecutor.cpp}::get_limit_value(), ExecutionResult::getDataPtr(), RelAlgNode::getId(), RelAlgNode::getInput(), RelSort::getLimit(), RelSort::getOffset(), RelSort::getOrderEntries(), GPU, anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag(), hasStepForUnion(), anonymous_namespace{RelAlgExecutor.cpp}::is_none_encoded_text(), RelSort::isEmptyResult(), ExecutionOptions::just_validate, leaf_results_, anonymous_namespace{RelAlgExecutor.cpp}::node_is_aggregate(), run_benchmark_import::result, RelAlgNode::setOutputMetainfo(), gpu_enabled::sort(), speculative_topn_blacklist_, SpeculativeTopN, temporary_tables_, use_speculative_top_n(), and VLOG.
Referenced by executeRelAlgStep().
|
private |
Definition at line 2357 of file RelAlgExecutor.cpp.
References addTemporaryTable(), canUseResultsetCache(), CHECK, createTableFunctionWorkUnit(), DEBUG_TIMER, Executor::ERR_OUT_OF_GPU_MEM, executor_, g_allow_auto_resultset_caching, g_auto_resultset_caching_threshold, g_cluster, g_enable_table_functions, get_table_infos(), QueryExecutionError::getErrorCode(), getGlobalQueryHint(), RelAlgNode::getQueryPlanDagHash(), RelAlgNode::getRelNodeDagId(), ScanNodeTableKeyCollector::getScanNodeTableKey(), GPU, handlePersistentError(), anonymous_namespace{RelAlgExecutor.cpp}::has_valid_query_plan_dag(), hasStepForUnion(), INJECT_TIMER, is_validate_or_explain_query(), ExecutionOptions::just_explain, ExecutionOptions::keep_result, kKeepTableFuncResult, run_benchmark_import::result, target_exprs_owned_, timer_start(), timer_stop(), and VLOG.
Referenced by executeRelAlgStep().
|
private |
Definition at line 2726 of file RelAlgExecutor.cpp.
References anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), createUnionWorkUnit(), DEBUG_TIMER, executeWorkUnit(), RelLogicalUnion::getCompatibleMetainfoTypes(), RelAlgNode::getOutputMetainfo(), RelLogicalUnion::isAll(), isGeometry(), CompilationOptions::makeCpuOnly(), and RelAlgNode::setOutputMetainfo().
Referenced by executeRelAlgStep().
|
private |
Definition at line 2016 of file RelAlgExecutor.cpp.
References CompilationOptions::allow_lazy_fetch, CHECK, CHECK_EQ, Executor::clearExternalCaches(), computeWindow(), CPU, createCompoundWorkUnit(), createProjectWorkUnit(), DEBUG_TIMER, RelRexToStringConfig::defaults(), dml_transaction_parameters_, executor_, CompilationOptions::filter_on_deleted_column, get_table_infos(), get_temporary_table(), QueryExecutionError::getErrorCode(), getErrorMessageFromCode(), CompilationOptions::hoist_literals, leaf_results_, CompilationOptions::makeCpuOnly(), post_execution_callback_, StorageIOFacility::TransactionParameters::setInputSourceNode(), temporary_tables_, and StorageIOFacility::yieldUpdateCallback().
Referenced by executeRelAlgStep().
|
private |
Definition at line 3647 of file RelAlgExecutor.cpp.
References RelAlgExecutor::WorkUnit::body, build_render_targets(), anonymous_namespace{RelAlgExecutor.cpp}::can_output_columnar(), anonymous_namespace{RelAlgExecutor.cpp}::can_use_bump_allocator(), canUseResultsetCache(), CHECK, CHECK_EQ, CHECK_GT, anonymous_namespace{RelAlgExecutor.cpp}::check_none_encoded_string_cast_tuple_limit(), anonymous_namespace{RelAlgExecutor.cpp}::compute_output_buffer_size(), computeWindow(), CPU, DEBUG_TIMER, anonymous_namespace{RelAlgExecutor.cpp}::decide_approx_count_distinct_implementation(), RelRexToStringConfig::defaults(), RegisteredQueryHint::defaults(), RelAlgExecutor::WorkUnit::exe_unit, anonymous_namespace{RelAlgExecutor.cpp}::exe_unit_has_quals(), executor_, Extern, g_allow_auto_resultset_caching, g_auto_resultset_caching_threshold, g_big_group_threshold, g_cluster, g_columnar_large_projections_threshold, g_enable_window_functions, g_estimator_failure_max_groupby_size, Catalog_Namespace::get_metadata_for_table(), get_table_infos(), QueryExecutionError::getErrorCode(), getFilteredCountAll(), getNDVEstimation(), ScanNodeTableKeyCollector::getScanNodeTableKey(), GPU, anonymous_namespace{RelAlgExecutor.cpp}::groups_approx_upper_bound(), handleOutOfMemoryRetry(), handlePersistentError(), hasStepForUnion(), INJECT_TIMER, RelAlgExecutionUnit::input_descs, anonymous_namespace{RelAlgExecutor.cpp}::is_agg(), is_validate_or_explain_query(), anonymous_namespace{RelAlgExecutor.cpp}::is_window_execution_unit(), heavyai::InSituFlagsOwnerInterface::isInSitu(), isRowidLookup(), kCudaBlockSize, kCudaGridSize, leaf_results_, RelAlgExecutor::WorkUnit::max_groups_buffer_entry_guess, query_dag_, CardinalityEstimationRequired::range(), run_benchmark_import::res, WindowProjectNodeContext::reset(), run_benchmark_import::result, selectFiltersToBePushedDown(), anonymous_namespace{RelAlgExecutor.cpp}::should_output_columnar(), RelAlgExecutionUnit::target_exprs, target_exprs_owned_, timer_start(), timer_stop(), use_speculative_top_n(), VLOG, and QueryExecutionError::wasMultifragKernelLaunch().
Referenced by executeAggregate(), executeCompound(), executeFilter(), executeProject(), executeSort(), and executeUnion().
|
static |
Definition at line 4336 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::getErrorDescription(), and to_string().
Referenced by executeDelete(), executeUpdate(), getNDVEstimation(), and handlePersistentError().
Executor * RelAlgExecutor::getExecutor | ( | ) | const |
|
private |
Definition at line 4049 of file RelAlgExecutor.cpp.
References CHECK, CHECK_EQ, CHECK_GE, RelAlgExecutionUnit::createCountAllExecutionUnit(), ExecutionOptions::estimate_output_cardinality, executor_, g_bigint_count, get_table_infos(), anonymous_namespace{RelAlgExecutor.cpp}::get_table_name_from_table_key(), anonymous_namespace{RelAlgExecutor.cpp}::groups_approx_upper_bound(), hasDeletedRowInQuery(), anonymous_namespace{RelAlgExecutor.cpp}::is_projection(), RelAlgExecutionUnit::join_quals, kBIGINT, kCOUNT, kINT, LOG, RelAlgExecutionUnit::per_device_cardinality, RelAlgExecutionUnit::quals, RelAlgExecutionUnit::simple_quals, VLOG, and logger::WARNING.
Referenced by executeWorkUnit().
|
private |
Given a set of filter expressions for a table, it launches a new COUNT query to compute the number of passing rows, and then generates a set of statistics related to those filters. Later, these stats are used to decide whether a filter should be pushed down or not.
Definition at line 59 of file JoinFilterPushDown.cpp.
References CHECK, CHECK_EQ, executor_, g_bigint_count, get_table_infos(), kBIGINT, kCOUNT, and kINT.
Referenced by selectFiltersToBePushedDown().
|
inline |
Definition at line 178 of file RelAlgExecutor.h.
References query_dag_.
Referenced by executeRelAlgQueryNoRetry(), executeTableFunction(), and QueryRunner::QueryRunner::getParsedGlobalQueryHints().
std::pair< std::vector< unsigned >, std::unordered_map< unsigned, JoinQualsPerNestingLevel > > RelAlgExecutor::getJoinInfo | ( | const RelAlgNode * | root_node | ) |
Definition at line 781 of file RelAlgExecutor.cpp.
References createWorkUnit(), ExecutionOptions::defaults(), getLeftDeepJoinTreesInfo(), and RelAlgVisitor< T >::visit().
|
inlineprivate |
Definition at line 411 of file RelAlgExecutor.h.
References left_deep_join_info_.
Referenced by createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), and getJoinInfo().
|
private |
Definition at line 54 of file CardinalityEstimator.cpp.
References RelAlgExecutionUnit::createNdvExecutionUnit(), Executor::ERR_INTERRUPTED, Executor::ERR_OUT_OF_TIME, RelAlgExecutor::WorkUnit::exe_unit, executor_, get_table_infos(), QueryExecutionError::getErrorCode(), getErrorMessageFromCode(), and UNREACHABLE.
Referenced by executeWorkUnit().
size_t RelAlgExecutor::getOuterFragmentCount | ( | const CompilationOptions & | co, |
const ExecutionOptions & | eo | ||
) |
Definition at line 492 of file RelAlgExecutor.cpp.
References CHECK, cleanupPostExecution(), createCompoundWorkUnit(), createProjectWorkUnit(), executor_, ExecutionOptions::find_push_down_candidates, get_frag_count_of_table(), getSubqueries(), ExecutionOptions::just_explain, query_dag_, setupCaching(), gpu_enabled::swap(), target_exprs_owned_, and temporary_tables_.
|
inline |
Definition at line 134 of file RelAlgExecutor.h.
References CHECK, and query_dag_.
Referenced by QueryRunner::QueryRunner::getRelAlgDag().
|
inline |
Definition at line 168 of file RelAlgExecutor.h.
References query_dag_.
Referenced by executeRelAlgQueryNoRetry(), executeRelAlgStep(), and QueryRunner::QueryRunner::getParsedQueryHint().
|
inline |
Definition at line 174 of file RelAlgExecutor.h.
References query_dag_.
Referenced by QueryRunner::QueryRunner::getParsedQueryHints().
std::unordered_set< shared::TableKey > RelAlgExecutor::getPhysicalTableIds | ( | ) | const |
Definition at line 5506 of file RelAlgExecutor.cpp.
References get_physical_table_inputs(), and getRootRelAlgNode().
|
inline |
Definition at line 199 of file RelAlgExecutor.h.
References CHECK.
Referenced by QueryRunner::QueryRunner::getRaExecutionSequence().
|
inline |
Definition at line 139 of file RelAlgExecutor.h.
References query_dag_.
Referenced by executeRelAlgQueryNoRetry().
std::shared_ptr< RelAlgTranslator > RelAlgExecutor::getRelAlgTranslator | ( | const RelAlgNode * | root_node | ) |
Definition at line 4660 of file RelAlgExecutor.cpp.
References executor_, anonymous_namespace{RelAlgExecutor.cpp}::get_input_nest_levels(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_type(), RelAlgNode::getInput(), anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), now_, and query_state_.
|
inline |
Definition at line 146 of file RelAlgExecutor.h.
References CHECK, and query_dag_.
Referenced by computeColRangesCache(), computeStringDictionaryGenerations(), computeTableGenerations(), executeRelAlgQueryNoRetry(), getPhysicalTableIds(), and prepareForSystemTableExecution().
|
inline |
Definition at line 153 of file RelAlgExecutor.h.
References CHECK, and query_dag_.
Referenced by QueryRunner::QueryRunner::getQueryInfoForDataRecyclerTest(), and QueryRunner::QueryRunner::getRootNodeFromParsedQuery().
|
inlinenoexcept |
Definition at line 163 of file RelAlgExecutor.h.
References CHECK, and query_dag_.
Referenced by executeRelAlgQueryNoRetry(), executeRelAlgQueryWithFilterPushDown(), and getOuterFragmentCount().
|
private |
Definition at line 1326 of file RelAlgExecutor.cpp.
References addTemporaryTable(), CHECK, CHECK_EQ, RaExecutionDesc::getBody(), and temporary_tables_.
Referenced by executeRelAlgStep().
|
private |
Definition at line 4147 of file RelAlgExecutor.cpp.
References CHECK, anonymous_namespace{RelAlgExecutor.cpp}::decide_approx_count_distinct_implementation(), CompilationOptions::device_type, RelAlgExecutor::WorkUnit::exe_unit, executor_, RenderInfo::forceNonInSitu(), g_enable_watchdog, get_table_infos(), QueryExecutionError::getErrorCode(), handlePersistentError(), LOG, CompilationOptions::makeCpuOnly(), RelAlgExecutor::WorkUnit::max_groups_buffer_entry_guess, run_benchmark_import::result, ExecutionOptions::setNoExplainExecutionOptions(), target_exprs_owned_, RelAlgExecutionUnit::use_bump_allocator, VLOG, and logger::WARNING.
Referenced by executeWorkUnit().
|
staticprivate |
Definition at line 4261 of file RelAlgExecutor.cpp.
References Executor::ERR_OUT_OF_GPU_MEM, logger::ERROR, g_allow_cpu_retry, getErrorMessageFromCode(), logger::INFO, and LOG.
Referenced by executeTableFunction(), executeWorkUnit(), and handleOutOfMemoryRetry().
|
private |
Definition at line 4016 of file RelAlgExecutor.cpp.
References anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), CHECK, Catalog_Namespace::SysCatalog::getCatalog(), and Catalog_Namespace::SysCatalog::instance().
Referenced by getFilteredCountAll().
|
inlineprivate |
Definition at line 431 of file RelAlgExecutor.h.
References has_step_for_union_.
Referenced by canUseResultsetCache(), executeSort(), executeTableFunction(), and executeWorkUnit().
|
private |
Definition at line 5484 of file RelAlgExecutor.cpp.
References executor_.
Referenced by RelAlgExecutor().
|
private |
Definition at line 4111 of file RelAlgExecutor.cpp.
References CHECK_EQ, RelAlgExecutor::WorkUnit::exe_unit, get_column_descriptor(), Analyzer::BinOper::get_left_operand(), RelAlgExecutionUnit::input_descs, kEQ, and TABLE.
Referenced by executeWorkUnit().
|
private |
Definition at line 4765 of file RelAlgExecutor.cpp.
References combine_equi_join_conditions(), executor_, fold_expr(), anonymous_namespace{RelAlgExecutor.cpp}::get_bitwise_equals_conjunction(), now_, qual_to_conjunctive_form(), query_state_, anonymous_namespace{RelAlgExecutor.cpp}::reverse_logical_distribution(), anonymous_namespace{RelAlgExecutor.cpp}::rex_to_conjunctive_form(), and RelAlgTranslator::translate().
Referenced by translateLeftDeepJoinFilter().
void RelAlgExecutor::prepareForeignTable | ( | ) |
void RelAlgExecutor::prepareForeignTables | ( | ) |
Definition at line 5501 of file RelAlgExecutor.cpp.
References anonymous_namespace{RelAlgExecutor.cpp}::prepare_foreign_table_for_execution(), and query_dag_.
void RelAlgExecutor::prepareForSystemTableExecution | ( | const CompilationOptions & | co | ) | const |
Definition at line 5510 of file RelAlgExecutor.cpp.
References getRootRelAlgNode(), and anonymous_namespace{RelAlgExecutor.cpp}::prepare_for_system_table_execution().
void RelAlgExecutor::prepareLeafExecution | ( | const AggregatedColRange & | agg_col_range, |
const StringDictionaryGenerations & | string_dictionary_generations, | ||
const TableGenerations & | table_generations | ||
) |
Definition at line 872 of file RelAlgExecutor.cpp.
References cpu_threads(), executor_, g_enable_dynamic_watchdog, Executor::getArenaBlockSize(), queue_time_ms_, timer_start(), and timer_stop().
|
private |
Goes through all candidate filters and evaluate whether they pass the selectivity criteria or not.
Definition at line 127 of file JoinFilterPushDown.cpp.
References RelAlgExecutor::WorkUnit::exe_unit, executor_, find_push_down_filters(), get_table_infos(), getFilterSelectivity(), RelAlgExecutionUnit::input_descs, RelAlgExecutor::WorkUnit::input_permutation, RelAlgExecutor::WorkUnit::left_deep_join_input_sizes, and to_gather_info_for_filter_selectivity().
Referenced by executeWorkUnit().
|
inlineprivate |
Definition at line 429 of file RelAlgExecutor.h.
References has_step_for_union_.
Referenced by executeRelAlgStep().
|
private |
Definition at line 5494 of file RelAlgExecutor.cpp.
References CHECK, executor_, anonymous_namespace{RelAlgExecutor.cpp}::get_physical_inputs_with_spi_col_id(), and get_physical_table_inputs().
Referenced by executeRelAlgQueryNoRetry(), and getOuterFragmentCount().
|
private |
Definition at line 4795 of file RelAlgExecutor.cpp.
References ANTI, CHECK, CHECK_LE, RelLeftDeepInnerJoin::getInnerCondition(), RelLeftDeepInnerJoin::getOuterCondition(), INNER, LEFT, anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), makeJoinQuals(), run_benchmark_import::result, and SEMI.
Referenced by createCompoundWorkUnit(), and createProjectWorkUnit().
|
friend |
Definition at line 452 of file RelAlgExecutor.h.
|
private |
Definition at line 449 of file RelAlgExecutor.h.
Referenced by executeDelete(), and executeUpdate().
|
private |
Definition at line 437 of file RelAlgExecutor.h.
Referenced by cleanupPostExecution(), computeColRangesCache(), computeStringDictionaryGenerations(), computeTableGenerations(), computeWindow(), createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), createTableFunctionWorkUnit(), createUnionWorkUnit(), createWindowFunctionContext(), executeDelete(), executeLogicalValues(), executeModify(), executeRelAlgQueryNoRetry(), executeRelAlgQueryWithFilterPushDown(), executeRelAlgSeq(), executeRelAlgStep(), executeRelAlgSubSeq(), executeSimpleInsert(), executeSort(), executeTableFunction(), executeUpdate(), executeWorkUnit(), getExecutor(), getFilteredCountAll(), getFilterSelectivity(), getNDVEstimation(), getOuterFragmentCount(), getRelAlgTranslator(), handleOutOfMemoryRetry(), initializeParallelismHints(), makeJoinQuals(), prepareLeafExecution(), selectFiltersToBePushedDown(), and setupCaching().
|
private |
Definition at line 446 of file RelAlgExecutor.h.
Referenced by hasStepForUnion(), and setHasStepForUnion().
|
private |
Definition at line 444 of file RelAlgExecutor.h.
Referenced by addLeafResult(), executeSort(), executeUpdate(), and executeWorkUnit().
|
private |
Definition at line 442 of file RelAlgExecutor.h.
Referenced by executeRelAlgSeq(), executeRelAlgSubSeq(), and getLeftDeepJoinTreesInfo().
|
private |
Definition at line 441 of file RelAlgExecutor.h.
Referenced by createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), createTableFunctionWorkUnit(), executeRelAlgSeq(), executeRelAlgSubSeq(), getRelAlgTranslator(), and makeJoinQuals().
|
private |
Definition at line 450 of file RelAlgExecutor.h.
Referenced by executeDelete(), executePostExecutionCallback(), executeRelAlgQuery(), executeRelAlgQuerySingleStep(), and executeUpdate().
|
private |
Definition at line 438 of file RelAlgExecutor.h.
Referenced by createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), executeRelAlgQuery(), executeRelAlgQueryNoRetry(), executeWorkUnit(), getGlobalQueryHint(), getOuterFragmentCount(), getOwnedRelAlgDag(), getParsedQueryHint(), getParsedQueryHints(), getRelAlgDag(), getRootRelAlgNode(), getRootRelAlgNodeShPtr(), getSubqueries(), and prepareForeignTables().
|
private |
Definition at line 439 of file RelAlgExecutor.h.
Referenced by createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), createTableFunctionWorkUnit(), createUnionWorkUnit(), executeRelAlgQueryNoRetry(), getRelAlgTranslator(), and makeJoinQuals().
|
private |
Definition at line 445 of file RelAlgExecutor.h.
Referenced by executeRelAlgQuerySingleStep(), and prepareLeafExecution().
|
staticprivate |
Definition at line 447 of file RelAlgExecutor.h.
Referenced by createSortInputWorkUnit(), and executeSort().
|
private |
Definition at line 443 of file RelAlgExecutor.h.
Referenced by createAggregateWorkUnit(), createCompoundWorkUnit(), createFilterWorkUnit(), createProjectWorkUnit(), createTableFunctionWorkUnit(), createUnionWorkUnit(), executeRelAlgSeq(), executeTableFunction(), executeWorkUnit(), getOuterFragmentCount(), and handleOutOfMemoryRetry().
|
private |
Definition at line 440 of file RelAlgExecutor.h.
Referenced by addTemporaryTable(), eraseFromTemporaryTables(), executeDelete(), executeProject(), executeRelAlgSeq(), executeRelAlgSubSeq(), executeSort(), executeUpdate(), getOuterFragmentCount(), and handleNop().