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

Greedy operator ordering. More...

#include <PlanEnumerator.hpp>

Inheritance diagram for m::pe::GOO:
[legend]
Collaboration diagram for m::pe::GOO:
[legend]

Data Structures

struct  node
 

Public Types

using base_type = PlanEnumeratorCRTP< GOO >
 
using Subproblem = QueryGraph::Subproblem
 

Public Member Functions

template<typename Callback , typename PlanTable >
void for_each_join (Callback &&callback, PlanTable &PT, const QueryGraph &G, const AdjacencyMatrix &M, const CostFunction &, const CardinalityEstimator &CE, node *begin, node *end) const
 Enumerate the sequence of joins that yield the smallest subproblem in each step.
 
template<typename PlanTable >
void compute_plan (PlanTable &PT, const QueryGraph &G, const AdjacencyMatrix &M, const CostFunction &CF, const CardinalityEstimator &CE, node *begin, node *end) const
 
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.
 

Detailed Description

Greedy operator ordering.

Definition at line 58 of file PlanEnumerator.hpp.

Member Typedef Documentation

◆ base_type

Definition at line 60 of file PlanEnumerator.hpp.

◆ Subproblem

Definition at line 28 of file PlanEnumerator.hpp.

Member Function Documentation

◆ compute_plan()

template<typename PlanTable >
void m::pe::GOO::compute_plan ( PlanTable &  PT,
const QueryGraph G,
const AdjacencyMatrix M,
const CostFunction CF,
const CardinalityEstimator CE,
node begin,
node end 
) const
inline

Starting at the state described by the node array, we greedyly enumerate joins and thereby compute a plan.

Definition at line 140 of file PlanEnumerator.hpp.

Referenced by m::pe::hs::heuristic_search(), and operator()().

◆ for_each_join()

template<typename Callback , typename PlanTable >
void m::pe::GOO::for_each_join ( Callback &&  callback,
PlanTable &  PT,
const QueryGraph G,
const AdjacencyMatrix M,
const CostFunction ,
const CardinalityEstimator CE,
node begin,
node end 
) const
inline

◆ operator()() [1/2]

template<typename PlanTable >
void m::pe::PlanEnumerator::operator() ( const QueryGraph G,
const CostFunction CF,
PlanTable &  PT 
) const
inlineinherited

Enumerate subplans and fill plan table.

Definition at line 35 of file PlanEnumerator.hpp.

◆ operator()() [2/2]

template<typename PlanTable >
void GOO::operator() ( enumerate_tag  ,
PlanTable &  PT,
const QueryGraph G,
const CostFunction CF 
) const

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