![]() |
mutable
A Database System for Research and Fast Prototyping
|
Implements the cassical, widely used cost function C_out from Sophie Cluet and Guido Moerkotte. More...
#include <CostFunctionCout.hpp>
Public Types | |
using | Subproblem = SmallBitset |
Public Member Functions | |
template<typename PlanTable > | |
double | operator() (calculate_filter_cost_tag, const PlanTable &PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem sub, const cnf::CNF &condition) const |
template<typename PlanTable > | |
double | operator() (calculate_join_cost_tag, const PlanTable &PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem left, Subproblem right, const cnf::CNF &condition) const |
template<typename PlanTable > | |
double | operator() (calculate_grouping_cost_tag, const PlanTable &PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem sub, const std::vector< const ast::Expr * > &group_by) const |
template<typename PlanTable > | |
double | calculate_filter_cost (const QueryGraph &G, const PlanTable &PT, const CardinalityEstimator &CE, Subproblem sub, const cnf::CNF &condition) const |
Returns the total cost of performing a Filter operation. | |
template<typename PlanTable > | |
double | calculate_join_cost (const QueryGraph &G, const PlanTable &PT, const CardinalityEstimator &CE, Subproblem left, Subproblem right, const cnf::CNF &condition) const |
Returns the total cost of performing a Join operation. | |
template<typename PlanTable > | |
double | calculate_grouping_cost (const QueryGraph &G, const PlanTable &PT, const CardinalityEstimator &CE, Subproblem sub, const std::vector< const ast::Expr * > &group_by) const |
Returns the total cost of performing a Grouping operation. | |
Implements the cassical, widely used cost function C_out from Sophie Cluet and Guido Moerkotte.
"On the complexity of generating optimal left-deep processing trees with cross products." 1995. C_out provides the adjacent sequence interchange (ASI) property.
Definition at line 14 of file CostFunctionCout.hpp.
|
inherited |
Definition at line 41 of file CostFunction.hpp.
|
inlineinherited |
Returns the total cost of performing a Filter operation.
Definition at line 53 of file CostFunction.hpp.
|
inlineinherited |
Returns the total cost of performing a Grouping operation.
Definition at line 70 of file CostFunction.hpp.
|
inlineinherited |
Returns the total cost of performing a Join operation.
Definition at line 61 of file CostFunction.hpp.
Referenced by m::pe::hs::goo_path_completion(), m::pe::hs::heuristics::bottomup_lookahead_cheapest< PlanTable, State >::operator()(), m::pe::hs::heuristics::GOO< PlanTable, State, BottomUp >::operator()(), m::pe::hs::expansions::BottomUpComplete::operator()(), and m::PlanTableBase< Actual >::update().
|
inline |
Definition at line 17 of file CostFunctionCout.hpp.
References m::CardinalityEstimator::predict_cardinality().
|
inline |
Definition at line 33 of file CostFunctionCout.hpp.
References m::CardinalityEstimator::predict_cardinality().
|
inline |
Definition at line 24 of file CostFunctionCout.hpp.
References m::CardinalityEstimator::predict_cardinality().