16 template<
typename PlanTable>
23 template<
typename PlanTable>
32 template<
typename PlanTable>
35 const std::vector<const ast::Expr*> &group_by)
const
virtual std::size_t predict_cardinality(const DataModel &data) const =0
Implements the cassical, widely used cost function C_out from Sophie Cluet and Guido Moerkotte.
double operator()(calculate_join_cost_tag, const PlanTable &PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem left, Subproblem right, const cnf::CNF &condition) const
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
double operator()(calculate_filter_cost_tag, const PlanTable &PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem sub, const cnf::CNF &condition) const
The query graph represents all data sources and joins in a graph structure.
Implements a small and efficient set over integers in the range of 0 to 63 (including).
A CNF represents a conjunction of cnf::Clauses.