#include <mutable/IR/PlanEnumerator.hpp>
#include <algorithm>
#include <cstring>
#include <execution>
#include <functional>
#include <iostream>
#include <iterator>
#include <memory>
#include <mutable/catalog/Catalog.hpp>
#include <mutable/catalog/CostFunction.hpp>
#include <mutable/util/ADT.hpp>
#include <mutable/util/fn.hpp>
#include <mutable/util/list_allocator.hpp>
#include <mutable/util/malloc_allocator.hpp>
#include <queue>
#include <set>
#include <type_traits>
Go to the source code of this file.
|
#define | LIST_PE(X) |
|
#define | INSTANTIATE(NAME, _) |
|
#define | REGISTER(NAME, DESCRIPTION) C.register_plan_enumerator(C.pool(#NAME), std::make_unique<NAME>(), DESCRIPTION); |
|
◆ INSTANTIATE
#define INSTANTIATE |
( |
|
NAME, |
|
|
|
_ |
|
) |
| |
Value:
This table represents all explored plans with their sub-plans, estimated size, cost,...
This table represents all explored plans with their sub-plans, estimated size, cost,...
The query graph represents all data sources and joins in a graph structure.
Definition at line 740 of file PlanEnumerator.cpp.
◆ LIST_PE
Value: X(
DPccp,
"enumerates connected subgraph complement pairs") \
X(
DPsize,
"size-based subproblem enumeration") \
X(
DPsizeOpt,
"optimized DPsize: does not enumerate symmetric subproblems") \
X(
DPsizeSub,
"DPsize with enumeration of subset complement pairs") \
X(
DPsub,
"subset-based subproblem enumeration") \
X(
DPsubOpt,
"optimized DPsub: does not enumerate symmetric subproblems") \
X(
GOO,
"Greedy Operator Ordering") \
X(
TDGOO,
"Top-down variant of Greedy Operator Ordering") \
X(
IKKBZ,
"greedy algorithm by IK/KBZ, ordering joins by rank") \
X(
LinearizedDP,
"DP with search space linearization based on IK/KBZ") \
X(
TDbasic,
"basic top-down join enumeration using generate-and-test partitioning") \
X(
TDMinCutAGaT,
"top-down join enumeration using minimal graph cuts and advanced generate-and-test partitioning") \
X(
PEall,
"enumerates ALL join orders, inclding Cartesian products")
Computes the join order using size-based dynamic programming.
Computes the join order using size-based dynamic programming.
Computes the join order using size-based dynamic programming.
Computes the join order using subset-based dynamic programming.
Computes the join order using subset-based dynamic programming.
Implements join ordering using the IK/KBZ algorithm.
Computes the join order by enumerating all join orders, including Cartesian products.
Computes the join order using connected subgraph complement pairs (CCP).
Greedy operator ordering.
Top-down version of greedy operator ordering.
Definition at line 725 of file PlanEnumerator.cpp.
◆ REGISTER
#define REGISTER |
( |
|
NAME, |
|
|
|
DESCRIPTION |
|
) |
| C.register_plan_enumerator(C.pool(#NAME), std::make_unique<NAME>(), DESCRIPTION); |
◆ LIST_PE()