![]() |
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().