mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes
m::TrainedCostFunction Struct Reference

#include <TrainedCostFunction.hpp>

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

Public Types

using Subproblem = SmallBitset
 

Public Member Functions

 TrainedCostFunction (std::unique_ptr< CostModel > filter_model, std::unique_ptr< CostModel > join_model, std::unique_ptr< CostModel > grouping_model)
 
template<typename PlanTable >
double operator() (calculate_filter_cost_tag, PlanTable &&PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem sub, const cnf::CNF &condition) const
 
template<typename PlanTable >
double operator() (calculate_join_cost_tag, PlanTable &&PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem left, Subproblem right, const cnf::CNF &condition) const
 
template<typename PlanTable >
double operator() (calculate_grouping_cost_tag, PlanTable &&PT, const QueryGraph &G, const CardinalityEstimator &CE, Subproblem sub, const std::vector< const ast::Expr * > &group_by) const
 
template<typename PlanTable >
double calculate_filter_cost (const QueryGraph &G, const PlanTable &PT, const CardinalityEstimator &CE, Subproblem sub, const cnf::CNF &condition) const
 Returns the total cost of performing a Filter operation.
 
template<typename PlanTable >
double calculate_join_cost (const QueryGraph &G, const PlanTable &PT, const CardinalityEstimator &CE, Subproblem left, Subproblem right, const cnf::CNF &condition) const
 Returns the total cost of performing a Join operation.
 
template<typename PlanTable >
double calculate_grouping_cost (const QueryGraph &G, const PlanTable &PT, const CardinalityEstimator &CE, Subproblem sub, const std::vector< const ast::Expr * > &group_by) const
 Returns the total cost of performing a Grouping operation.
 

Private Attributes

std::unique_ptr< CostModelfilter_model_
 
std::unique_ptr< CostModeljoin_model_
 
std::unique_ptr< CostModelgrouping_model_
 

Detailed Description

Definition at line 9 of file TrainedCostFunction.hpp.

Member Typedef Documentation

◆ Subproblem

Definition at line 41 of file CostFunction.hpp.

Constructor & Destructor Documentation

◆ TrainedCostFunction()

m::TrainedCostFunction::TrainedCostFunction ( std::unique_ptr< CostModel filter_model,
std::unique_ptr< CostModel join_model,
std::unique_ptr< CostModel grouping_model 
)
inline

Definition at line 17 of file TrainedCostFunction.hpp.

Member Function Documentation

◆ calculate_filter_cost()

template<typename PlanTable >
double m::CostFunction::calculate_filter_cost ( const QueryGraph G,
const PlanTable &  PT,
const CardinalityEstimator CE,
Subproblem  sub,
const cnf::CNF condition 
) const
inlineinherited

Returns the total cost of performing a Filter operation.

Definition at line 53 of file CostFunction.hpp.

◆ calculate_grouping_cost()

template<typename PlanTable >
double m::CostFunction::calculate_grouping_cost ( const QueryGraph G,
const PlanTable &  PT,
const CardinalityEstimator CE,
Subproblem  sub,
const std::vector< const ast::Expr * > &  group_by 
) const
inlineinherited

Returns the total cost of performing a Grouping operation.

Definition at line 70 of file CostFunction.hpp.

◆ calculate_join_cost()

template<typename PlanTable >
double m::CostFunction::calculate_join_cost ( const QueryGraph G,
const PlanTable &  PT,
const CardinalityEstimator CE,
Subproblem  left,
Subproblem  right,
const cnf::CNF condition 
) const
inlineinherited

◆ operator()() [1/3]

template<typename PlanTable >
double TrainedCostFunction::operator() ( calculate_filter_cost_tag  ,
PlanTable &&  PT,
const QueryGraph G,
const CardinalityEstimator CE,
Subproblem  sub,
const cnf::CNF condition 
) const

◆ operator()() [2/3]

template<typename PlanTable >
double TrainedCostFunction::operator() ( calculate_grouping_cost_tag  ,
PlanTable &&  PT,
const QueryGraph G,
const CardinalityEstimator CE,
Subproblem  sub,
const std::vector< const ast::Expr * > &  group_by 
) const

◆ operator()() [3/3]

template<typename PlanTable >
double TrainedCostFunction::operator() ( calculate_join_cost_tag  ,
PlanTable &&  PT,
const QueryGraph G,
const CardinalityEstimator CE,
Subproblem  left,
Subproblem  right,
const cnf::CNF condition 
) const

Field Documentation

◆ filter_model_

std::unique_ptr<CostModel> m::TrainedCostFunction::filter_model_
private

Definition at line 12 of file TrainedCostFunction.hpp.

Referenced by operator()().

◆ grouping_model_

std::unique_ptr<CostModel> m::TrainedCostFunction::grouping_model_
private

Definition at line 14 of file TrainedCostFunction.hpp.

Referenced by operator()().

◆ join_model_

std::unique_ptr<CostModel> m::TrainedCostFunction::join_model_
private

Definition at line 13 of file TrainedCostFunction.hpp.

Referenced by operator()().


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