![]() |
mutable
A Database System for Research and Fast Prototyping
|
Greedy operator ordering. More...
#include <PlanEnumerator.hpp>
Data Structures | |
struct | node |
Public Types | |
using | base_type = PlanEnumeratorCRTP< GOO > |
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, node *begin, node *end) const |
Enumerate the sequence of joins that yield the smallest subproblem in each step. | |
template<typename PlanTable > | |
void | compute_plan (PlanTable &PT, const QueryGraph &G, const AdjacencyMatrix &M, const CostFunction &CF, const CardinalityEstimator &CE, node *begin, node *end) const |
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. | |
Greedy operator ordering.
Definition at line 58 of file PlanEnumerator.hpp.
using m::pe::GOO::base_type = PlanEnumeratorCRTP<GOO> |
Definition at line 60 of file PlanEnumerator.hpp.
|
inherited |
Definition at line 28 of file PlanEnumerator.hpp.
|
inline |
Starting at the state described by the node array, we greedyly enumerate joins and thereby compute a plan.
Definition at line 140 of file PlanEnumerator.hpp.
Referenced by m::pe::hs::heuristic_search(), and operator()().
|
inline |
Enumerate the sequence of joins that yield the smallest subproblem in each step.
Definition at line 97 of file PlanEnumerator.hpp.
References m::CardinalityEstimator::estimate_join(), m::AdjacencyMatrix::is_connected(), M_insist, m::CardinalityEstimator::predict_cardinality(), m::pe::GOO::node::subproblem, and m::swap().
Referenced by m::pe::hs::goo_path_completion(), and m::pe::hs::heuristics::GOO< PlanTable, State, BottomUp >::operator()().
|
inlineinherited |
Enumerate subplans and fill plan table.
Definition at line 35 of file PlanEnumerator.hpp.
void GOO::operator() | ( | enumerate_tag | , |
PlanTable & | PT, | ||
const QueryGraph & | G, | ||
const CostFunction & | CF | ||
) | const |
Definition at line 684 of file PlanEnumerator.cpp.
References m::QueryGraph::adjacency_matrix(), m::Database::cardinality_estimator(), compute_plan(), m::Catalog::Get(), m::Catalog::get_database_in_use(), m::AdjacencyMatrix::neighbors(), m::QueryGraph::num_sources(), and m::SmallBitset::Singleton().