OmniSciDB
a5dc49c757
|
Classes | |
class | SchedulingDependencyTracking |
struct | TraversalEdge |
Typedefs | |
using | cost_t = unsigned |
using | node_t = size_t |
Functions | |
const Analyzer::ColumnVar * | get_geo_cv (std::vector< const Analyzer::ColumnVar * > const &geo_args, shared::TableKey const &table_key) |
static std::unordered_map < SQLTypes, cost_t > static bool | force_table_reordering_st_contain_func (std::string_view target_func_name) |
static bool | force_table_reordering_st_intersects_func (std::string_view target_func_name) |
bool | should_force_table_reordering (shared::TableKey const &inner_arg_key, SQLTypes const inner_type, shared::TableKey const &outer_arg_key, SQLTypes const outer_type, std::string const &geo_func_name, const std::vector< InputTableInfo > &table_infos) |
std::tuple< cost_t, cost_t, InnerQualDecision > | get_join_qual_cost (const Analyzer::Expr *qual, const std::vector< InputTableInfo > &table_infos, const Executor *executor) |
std::vector< std::map< node_t, cost_t > > | build_join_cost_graph (const JoinQualsPerNestingLevel &left_deep_join_quals, const std::vector< InputTableInfo > &table_infos, const Executor *executor, std::vector< std::map< node_t, InnerQualDecision >> &qual_detection_res) |
SchedulingDependencyTracking | build_dependency_tracking (const JoinQualsPerNestingLevel &left_deep_join_quals, const std::vector< std::map< node_t, cost_t >> &join_cost_graph) |
std::vector< node_t > | traverse_join_cost_graph (const std::vector< std::map< node_t, cost_t >> &join_cost_graph, const std::vector< InputTableInfo > &table_infos, const std::function< bool(const node_t lhs_nest_level, const node_t rhs_nest_level)> &compare_node, const std::function< bool(const TraversalEdge &, const TraversalEdge &)> &compare_edge, const JoinQualsPerNestingLevel &left_deep_join_quals, std::vector< std::map< node_t, InnerQualDecision >> &qual_normalization_res) |
Variables | |
static std::unordered_map < SQLTypes, cost_t > | GEO_TYPE_COSTS {kPOINT, 60} |
using anonymous_namespace{FromTableReordering.cpp}::cost_t = typedef unsigned |
Definition at line 29 of file FromTableReordering.cpp.
using anonymous_namespace{FromTableReordering.cpp}::node_t = typedef size_t |
Definition at line 30 of file FromTableReordering.cpp.
SchedulingDependencyTracking anonymous_namespace{FromTableReordering.cpp}::build_dependency_tracking | ( | const JoinQualsPerNestingLevel & | left_deep_join_quals, |
const std::vector< std::map< node_t, cost_t >> & | join_cost_graph | ||
) |
Definition at line 356 of file FromTableReordering.cpp.
References anonymous_namespace{FromTableReordering.cpp}::SchedulingDependencyTracking::addEdge(), LEFT, and run_benchmark_import::type.
Referenced by traverse_join_cost_graph().
std::vector<std::map<node_t, cost_t> > anonymous_namespace{FromTableReordering.cpp}::build_join_cost_graph | ( | const JoinQualsPerNestingLevel & | left_deep_join_quals, |
const std::vector< InputTableInfo > & | table_infos, | ||
const Executor * | executor, | ||
std::vector< std::map< node_t, InnerQualDecision >> & | qual_detection_res | ||
) |
Definition at line 281 of file FromTableReordering.cpp.
References CHECK_EQ, CHECK_GE, get_join_qual_cost(), and ScalarExprVisitor< T >::visit().
Referenced by get_node_input_permutation().
|
static |
Definition at line 48 of file FromTableReordering.cpp.
References anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), and BoundingBoxIntersectJoinSupportedFunction::ST_CONTAIN_FORCE_TABLE_REORDERING_TARGET_FUNC.
Referenced by should_force_table_reordering().
|
static |
Definition at line 58 of file FromTableReordering.cpp.
References anonymous_namespace{QueryMemoryDescriptor.cpp}::any_of(), and BoundingBoxIntersectJoinSupportedFunction::ST_INTERSECTS_FORCE_TABLE_REORDERING_TARGET_FUNC.
Referenced by should_force_table_reordering().
const Analyzer::ColumnVar* anonymous_namespace{FromTableReordering.cpp}::get_geo_cv | ( | std::vector< const Analyzer::ColumnVar * > const & | geo_args, |
shared::TableKey const & | table_key | ||
) |
Definition at line 32 of file FromTableReordering.cpp.
Referenced by get_join_qual_cost().
std::tuple<cost_t, cost_t, InnerQualDecision> anonymous_namespace{FromTableReordering.cpp}::get_join_qual_cost | ( | const Analyzer::Expr * | qual, |
const std::vector< InputTableInfo > & | table_infos, | ||
const Executor * | executor | ||
) |
Definition at line 118 of file FromTableReordering.cpp.
References CHECK, CHECK_NE, GEO_TYPE_COSTS, get_geo_cv(), get_table_cardinality(), Analyzer::Expr::get_type_info(), Analyzer::FunctionOper::getArg(), GeospatialFunctionFinder::getGeoArgCvs(), GeospatialFunctionFinder::getGeoFunctionName(), GeospatialFunctionFinder::getJoinTableKeyPair(), IGNORE, HashJoinFail::inner_qual_decision, is_constructed_point(), IS_EQUIVALENCE, BoundingBoxIntersectJoinSupportedFunction::is_point_poly_rewrite_target_func(), BoundingBoxIntersectJoinSupportedFunction::is_poly_point_rewrite_target_func(), kPOINT, LHS, HashJoin::normalizeColumnPairs(), RHS, should_force_table_reordering(), UNKNOWN, ScalarExprVisitor< T >::visit(), and VLOG.
Referenced by build_join_cost_graph().
bool anonymous_namespace{FromTableReordering.cpp}::should_force_table_reordering | ( | shared::TableKey const & | inner_arg_key, |
SQLTypes const | inner_type, | ||
shared::TableKey const & | outer_arg_key, | ||
SQLTypes const | outer_type, | ||
std::string const & | geo_func_name, | ||
const std::vector< InputTableInfo > & | table_infos | ||
) |
Definition at line 68 of file FromTableReordering.cpp.
References CHECK_EQ, force_table_reordering_st_contain_func(), force_table_reordering_st_intersects_func(), and kPOINT.
Referenced by get_join_qual_cost().
std::vector<node_t> anonymous_namespace{FromTableReordering.cpp}::traverse_join_cost_graph | ( | const std::vector< std::map< node_t, cost_t >> & | join_cost_graph, |
const std::vector< InputTableInfo > & | table_infos, | ||
const std::function< bool(const node_t lhs_nest_level, const node_t rhs_nest_level)> & | compare_node, | ||
const std::function< bool(const TraversalEdge &, const TraversalEdge &)> & | compare_edge, | ||
const JoinQualsPerNestingLevel & | left_deep_join_quals, | ||
std::vector< std::map< node_t, InnerQualDecision >> & | qual_normalization_res | ||
) |
Definition at line 375 of file FromTableReordering.cpp.
References build_dependency_tracking(), CHECK, CHECK_EQ, Analyzer::ColumnVar::colvar_comp(), g_trivial_loop_join_threshold, Analyzer::BinOper::get_own_left_operand(), IGNORE, gpu_enabled::iota(), anonymous_namespace{FromTableReordering.cpp}::TraversalEdge::join_cost, LHS, anonymous_namespace{FromTableReordering.cpp}::TraversalEdge::nest_level, RHS, and VLOG.
Referenced by get_node_input_permutation().
|
static |
Definition at line 42 of file FromTableReordering.cpp.
Referenced by get_join_qual_cost().