![]() |
mutable
A Database System for Research and Fast Prototyping
|
Top-down version of greedy operator ordering. More...
#include <PlanEnumerator.hpp>
Public Types | |
| using | base_type = PlanEnumeratorCRTP< TDGOO > |
| using | Subproblem = QueryGraph::Subproblem |
Public Member Functions | |
| template<typename Callback , typename PlanTable > | |
| void | for_each_join (Callback &&callback, PlanTable &PT, const QueryGraph &G, const AdjacencyMatrix &M, const CostFunction &, const CardinalityEstimator &CE, std::vector< Subproblem > subproblems) const |
| Enumerate the sequence of graph cuts that yield the smallest subproblems in each step. | |
| template<typename PlanTable > | |
| void | operator() (enumerate_tag, PlanTable &PT, const QueryGraph &G, const CostFunction &CF) const |
| template<typename PlanTable > | |
| void | operator() (const QueryGraph &G, const CostFunction &CF, PlanTable &PT) const |
| Enumerate subplans and fill plan table. | |
Top-down version of greedy operator ordering.
Definition at line 155 of file PlanEnumerator.hpp.
Definition at line 157 of file PlanEnumerator.hpp.
|
inherited |
Definition at line 28 of file PlanEnumerator.hpp.
|
inline |
Enumerate the sequence of graph cuts that yield the smallest subproblems in each step.
Joins are enumerated in bottom-up fashion.
Definition at line 163 of file PlanEnumerator.hpp.
References m::SmallBitset::empty(), m::CardinalityEstimator::estimate_join_all(), m::SmallBitset::is_singleton(), M_insist, m::QueryGraph::num_sources(), m::MinCutAGaT::partition(), and m::CardinalityEstimator::predict_cardinality().
Referenced by m::pe::hs::heuristic_search(), m::pe::hs::heuristics::GOO< PlanTable, State, TopDown >::operator()(), and operator()().
|
inlineinherited |
Enumerate subplans and fill plan table.
Definition at line 35 of file PlanEnumerator.hpp.
| void TDGOO::operator() | ( | enumerate_tag | , |
| PlanTable & | PT, | ||
| const QueryGraph & | G, | ||
| const CostFunction & | CF | ||
| ) | const |
Definition at line 707 of file PlanEnumerator.cpp.
References m::QueryGraph::adjacency_matrix(), m::SmallBitset::All(), m::Database::cardinality_estimator(), for_each_join(), m::Catalog::Get(), m::Catalog::get_database_in_use(), and m::QueryGraph::num_sources().