mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Data Structures | Public Member Functions | Private Member Functions
m::CartesianProductEstimator Struct Reference

DummyEstimator that always returns the size of the cartesian product of the given subproblems. More...

#include <CardinalityEstimator.hpp>

Inheritance diagram for m::CartesianProductEstimator:
[legend]
Collaboration diagram for m::CartesianProductEstimator:
[legend]

Data Structures

struct  CartesianProductDataModel
 

Public Member Functions

 CartesianProductEstimator ()
 
 CartesianProductEstimator (ThreadSafePooledString)
 
std::unique_ptr< DataModelempty_model () const override
 
std::unique_ptr< DataModelestimate_scan (const QueryGraph &G, Subproblem P) const override
 
std::unique_ptr< DataModelestimate_filter (const QueryGraph &G, const DataModel &data, const cnf::CNF &filter) const override
 
std::unique_ptr< DataModelestimate_limit (const QueryGraph &G, const DataModel &data, std::size_t limit, std::size_t offset) const override
 
std::unique_ptr< DataModelestimate_grouping (const QueryGraph &G, const DataModel &data, const std::vector< group_type > &groups) const override
 
std::unique_ptr< DataModelestimate_join (const QueryGraph &G, const DataModel &left, const DataModel &right, const cnf::CNF &condition) const override
 
template<typename PlanTable >
std::unique_ptr< DataModeloperator() (estimate_join_all_tag, PlanTable &&PT, const QueryGraph &G, Subproblem to_join, const cnf::CNF &condition) const
 
std::size_t predict_cardinality (const DataModel &data) const override
 

Private Member Functions

void print (std::ostream &out) const override
 

Detailed Description

DummyEstimator that always returns the size of the cartesian product of the given subproblems.

Definition at line 173 of file CardinalityEstimator.hpp.

Constructor & Destructor Documentation

◆ CartesianProductEstimator() [1/2]

m::CartesianProductEstimator::CartesianProductEstimator ( )
inline

Definition at line 185 of file CardinalityEstimator.hpp.

◆ CartesianProductEstimator() [2/2]

m::CartesianProductEstimator::CartesianProductEstimator ( ThreadSafePooledString  )
inline

Definition at line 186 of file CardinalityEstimator.hpp.

Member Function Documentation

◆ empty_model()

M_LCOV_EXCL_STOP std::unique_ptr< DataModel > CartesianProductEstimator::empty_model ( ) const
override

Definition at line 63 of file CardinalityEstimator.cpp.

◆ estimate_filter()

std::unique_ptr< DataModel > CartesianProductEstimator::estimate_filter ( const QueryGraph G,
const DataModel data,
const cnf::CNF filter 
) const
override

Definition at line 81 of file CardinalityEstimator.cpp.

◆ estimate_grouping()

std::unique_ptr< DataModel > CartesianProductEstimator::estimate_grouping ( const QueryGraph G,
const DataModel data,
const std::vector< group_type > &  groups 
) const
override

Definition at line 100 of file CardinalityEstimator.cpp.

◆ estimate_join()

std::unique_ptr< DataModel > CartesianProductEstimator::estimate_join ( const QueryGraph G,
const DataModel left,
const DataModel right,
const cnf::CNF condition 
) const
override

◆ estimate_limit()

std::unique_ptr< DataModel > CartesianProductEstimator::estimate_limit ( const QueryGraph G,
const DataModel data,
std::size_t  limit,
std::size_t  offset 
) const
override

Definition at line 89 of file CardinalityEstimator.cpp.

◆ estimate_scan()

std::unique_ptr< DataModel > CartesianProductEstimator::estimate_scan ( const QueryGraph G,
Subproblem  P 
) const
override

◆ operator()()

template<typename PlanTable >
template std::unique_ptr< DataModel > CartesianProductEstimator::operator() ( estimate_join_all_tag  ,
PlanTable &&  PT,
const QueryGraph G,
Subproblem  to_join,
const cnf::CNF condition 
) const

◆ predict_cardinality()

std::size_t CartesianProductEstimator::predict_cardinality ( const DataModel data) const
override

◆ print()

M_LCOV_EXCL_START void CartesianProductEstimator::print ( std::ostream &  out) const
overrideprivate

Definition at line 148 of file CardinalityEstimator.cpp.


The documentation for this struct was generated from the following files: