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