mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
CardinalityEstimator.cpp File Reference
#include <mutable/catalog/CardinalityEstimator.hpp>
#include "backend/Interpreter.hpp"
#include "catalog/SpnWrapper.hpp"
#include "util/Spn.hpp"
#include <algorithm>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <filesystem>
#include <mutable/catalog/Catalog.hpp>
#include <mutable/IR/CNF.hpp>
#include <mutable/IR/Operator.hpp>
#include <mutable/IR/PlanTable.hpp>
#include <mutable/IR/QueryGraph.hpp>
#include <mutable/Options.hpp>
#include <mutable/util/Diagnostic.hpp>
#include <mutable/util/Pool.hpp>
#include <nlohmann/json.hpp>
Include dependency graph for CardinalityEstimator.cpp:

Go to the source code of this file.

Namespaces

namespace  options
 

‍command-line options for the HeuristicSearchPlanEnumerator


 

Macros

#define LIST_CE(X)
 
#define INSTANTIATE(TYPE, _1, _2)
 
#define REGISTER(TYPE, NAME, DESCRIPTION)    C.register_cardinality_estimator<TYPE>(C.pool(NAME), DESCRIPTION);
 

Functions

 LIST_CE (INSTANTIATE) __attribute__((constructor(202))) static void register_cardinality_estimators()
 

Macro Definition Documentation

◆ INSTANTIATE

#define INSTANTIATE (   TYPE,
  _1,
  _2 
)
Value:
template std::unique_ptr<DataModel> TYPE::operator()(estimate_join_all_tag, PlanTableSmallOrDense &&PT, \
const QueryGraph &G, Subproblem to_join, \
const cnf::CNF &condition) const; \
template std::unique_ptr<DataModel> TYPE::operator()(estimate_join_all_tag, PlanTableLargeAndSparse &&PT, \
const QueryGraph &G, Subproblem to_join, \
const cnf::CNF &condition) const;
This table represents all explored plans with their sub-plans, estimated size, cost,...
Definition: PlanTable.hpp:284
This table represents all explored plans with their sub-plans, estimated size, cost,...
Definition: PlanTable.hpp:180
The query graph represents all data sources and joins in a graph structure.
Definition: QueryGraph.hpp:172
Implements a small and efficient set over integers in the range of 0 to 63 (including).
Definition: ADT.hpp:26
A CNF represents a conjunction of cnf::Clauses.
Definition: CNF.hpp:134

Definition at line 806 of file CardinalityEstimator.cpp.

◆ LIST_CE

#define LIST_CE (   X)
Value:
X(CartesianProductEstimator, "CartesianProduct", "estimates cardinalities as Cartesian product") \
X(InjectionCardinalityEstimator, "Injected", "estimates cardinalities based on a JSON file") \
X(SpnEstimator, "Spn", "estimates cardinalities based on Sum-Product Networks")
#define X(Kind)
Definition: Operator.hpp:621
DummyEstimator that always returns the size of the cartesian product of the given subproblems.
InjectionCardinalityEstimator that estimates cardinalities based on a table that contains sizes for t...
SpnEstimator that estimates cardinalities based on Sum-Product Networks.

Definition at line 801 of file CardinalityEstimator.cpp.

◆ REGISTER

#define REGISTER (   TYPE,
  NAME,
  DESCRIPTION 
)     C.register_cardinality_estimator<TYPE>(C.pool(NAME), DESCRIPTION);

Function Documentation

◆ LIST_CE()

LIST_CE ( INSTANTIATE  )