![]() |
mutable
A Database System for Research and Fast Prototyping
|
Computes the join order using subset-based dynamic programming. More...
Public Types | |
| using | base_type = PlanEnumeratorCRTP< DPsubOpt > |
| using | Subproblem = QueryGraph::Subproblem |
Public Member Functions | |
| 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. | |
Computes the join order using subset-based dynamic programming.
In comparison to DPsub, do not enumerate symmetric subproblems.
Definition at line 236 of file PlanEnumerator.cpp.
Definition at line 238 of file PlanEnumerator.cpp.
|
inherited |
Definition at line 28 of file PlanEnumerator.hpp.
|
inlineinherited |
Enumerate subplans and fill plan table.
Definition at line 35 of file PlanEnumerator.hpp.
|
inline |
Definition at line 242 of file PlanEnumerator.cpp.
References m::QueryGraph::adjacency_matrix(), m::SmallBitset::capacity(), m::Database::cardinality_estimator(), m::Catalog::Get(), m::Catalog::get_database_in_use(), m::AdjacencyMatrix::is_connected(), m::least_subset(), M_insist, m::next_subset(), m::SmallBitset::Singleton(), m::SmallBitset::size(), and m::QueryGraph::sources().