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

#include <PhysicalOptimizer.hpp>

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

Public Types

using pattern = Pattern
 
using actual_type = Actual
 

Public Member Functions

actual_typeactual ()
 
const actual_typeactual () const
 

Static Public Member Functions

static void execute (const Match< Actual > &M, setup_t setup, pipeline_t pipeline, teardown_t teardown)
 Executes this physical operator given the match M and three callbacks: Setup for some initializations, Pipeline for the actual computation, and Teardown for post-processing.
 
static double cost (const Match< Actual > &M)
 Returns the cost of this physical operator given the match M.
 
static ConditionSet pre_condition (std::size_t, const get_nodes_t< Pattern > &)
 Overwrite this to implement custom pre-conditions.
 
static ConditionSet post_condition (const Match< Actual > &)
 Overwrite this to implement a custom post-condition.
 
static ConditionSet adapt_post_condition (const Match< Actual > &, const ConditionSet &post_cond_child)
 Overwrite this to implement custom adaptation of a single post-condition.
 
static ConditionSet adapt_post_conditions (const Match< Actual > &, std::vector< std::reference_wrapper< const ConditionSet > > &&)
 Overwrite this to implement custom adaptation of multiple post-conditions.
 
template<typename It >
static std::unique_ptr< Match< Actual > > instantiate (get_nodes_t< Pattern > inner_nodes, const std::vector< It > &children)
 Instantiates this physical operator given the matched logical operators inner_nodes in pre-order and the children entries children by returning a corresponding match.
 

Static Private Member Functions

static ConditionSet pre_condition_ (std::size_t child_idx, const get_nodes_t< Pattern > &partial_inner_nodes)
 Returns the pre-condition for the child_idx-th child (indexed from left to right starting with 0) of the pattern (note that children are logical operators which either match to a Wildcard in the pattern or to a child of a non-wildcard operator in the pattern, i.e.
 
static ConditionSet post_condition_ (const Match< Actual > &M)
 Returns the post-condition of this physical operator given the match M.
 
static ConditionSet adapt_post_condition_ (const Match< Actual > &M, const ConditionSet &post_cond_child)
 Returns the adapted post-condition of this physical operator given the match M and the former post-condition of its only child.
 
static ConditionSet adapt_post_conditions_ (const Match< Actual > &M, std::vector< std::reference_wrapper< const ConditionSet > > &&post_cond_children)
 Returns the adapted post-condition of this physical operator given the match M and the former post-conditions of its children.
 

Private Attributes

friend CRTPBaseType< actual_type, TParams... >
 

Friends

template<typename >
struct PhysicalOptimizerImpl
 
template<typename , std::size_t , typename... >
struct pattern_matcher_recursive
 

Detailed Description

Definition at line 408 of file PhysicalOptimizer.hpp.

Member Typedef Documentation

◆ actual_type

using m::crtp< Actual , PhysicalOperator , TParams >::actual_type = Actual
inherited

Definition at line 51 of file crtp.hpp.

◆ pattern

Definition at line 414 of file PhysicalOptimizer.hpp.

Member Function Documentation

◆ actual() [1/2]

actual_type & m::crtp< Actual , PhysicalOperator , TParams >::actual ( )
inlineinherited

Definition at line 52 of file crtp.hpp.

◆ actual() [2/2]

const actual_type & m::crtp< Actual , PhysicalOperator , TParams >::actual ( ) const
inlineinherited

Definition at line 53 of file crtp.hpp.

◆ adapt_post_condition()

static ConditionSet m::PhysicalOperator::adapt_post_condition ( const Match< Actual > &  ,
const ConditionSet post_cond_child 
)
inlinestatic

Overwrite this to implement custom adaptation of a single post-condition.

Definition at line 461 of file PhysicalOptimizer.hpp.

◆ adapt_post_condition_()

static ConditionSet m::PhysicalOperator::adapt_post_condition_ ( const Match< Actual > &  M,
const ConditionSet post_cond_child 
)
inlinestaticprivate

Returns the adapted post-condition of this physical operator given the match M and the former post-condition of its only child.

Definition at line 448 of file PhysicalOptimizer.hpp.

◆ adapt_post_conditions()

static ConditionSet m::PhysicalOperator::adapt_post_conditions ( const Match< Actual > &  ,
std::vector< std::reference_wrapper< const ConditionSet > > &&   
)
inlinestatic

Overwrite this to implement custom adaptation of multiple post-conditions.

Definition at line 465 of file PhysicalOptimizer.hpp.

References M_unreachable.

◆ adapt_post_conditions_()

static ConditionSet m::PhysicalOperator::adapt_post_conditions_ ( const Match< Actual > &  M,
std::vector< std::reference_wrapper< const ConditionSet > > &&  post_cond_children 
)
inlinestaticprivate

Returns the adapted post-condition of this physical operator given the match M and the former post-conditions of its children.

Definition at line 454 of file PhysicalOptimizer.hpp.

◆ cost()

static double m::PhysicalOperator::cost ( const Match< Actual > &  M)
inlinestatic

Returns the cost of this physical operator given the match M.

Definition at line 423 of file PhysicalOptimizer.hpp.

◆ execute()

static void m::PhysicalOperator::execute ( const Match< Actual > &  M,
setup_t  setup,
pipeline_t  pipeline,
teardown_t  teardown 
)
inlinestatic

Executes this physical operator given the match M and three callbacks: Setup for some initializations, Pipeline for the actual computation, and Teardown for post-processing.

Definition at line 418 of file PhysicalOptimizer.hpp.

◆ instantiate()

template<typename It >
static std::unique_ptr< Match< Actual > > m::PhysicalOperator::instantiate ( get_nodes_t< Pattern >  inner_nodes,
const std::vector< It > &  children 
)
inlinestatic

Instantiates this physical operator given the matched logical operators inner_nodes in pre-order and the children entries children by returning a corresponding match.

Definition at line 476 of file PhysicalOptimizer.hpp.

References args.

◆ post_condition()

static ConditionSet m::PhysicalOperator::post_condition ( const Match< Actual > &  )
inlinestatic

Overwrite this to implement a custom post-condition.

Definition at line 443 of file PhysicalOptimizer.hpp.

◆ post_condition_()

static ConditionSet m::PhysicalOperator::post_condition_ ( const Match< Actual > &  M)
inlinestaticprivate

Returns the post-condition of this physical operator given the match M.

Definition at line 440 of file PhysicalOptimizer.hpp.

◆ pre_condition()

static ConditionSet m::PhysicalOperator::pre_condition ( std::size_t  ,
const get_nodes_t< Pattern > &   
)
inlinestatic

Overwrite this to implement custom pre-conditions.

Definition at line 436 of file PhysicalOptimizer.hpp.

◆ pre_condition_()

static ConditionSet m::PhysicalOperator::pre_condition_ ( std::size_t  child_idx,
const get_nodes_t< Pattern > &  partial_inner_nodes 
)
inlinestaticprivate

Returns the pre-condition for the child_idx-th child (indexed from left to right starting with 0) of the pattern (note that children are logical operators which either match to a Wildcard in the pattern or to a child of a non-wildcard operator in the pattern, i.e.

there may be more children than leaves in the pattern) given the (potentially partially) matched logical operators partial_inner_nodes in pre-order (note that the operators not yet matched are nullptr).

Definition at line 431 of file PhysicalOptimizer.hpp.

Friends And Related Function Documentation

◆ pattern_matcher_recursive

template<typename , std::size_t , typename... >
friend struct pattern_matcher_recursive
friend

Definition at line 411 of file PhysicalOptimizer.hpp.

◆ PhysicalOptimizerImpl

template<typename >
friend struct PhysicalOptimizerImpl
friend

Definition at line 410 of file PhysicalOptimizer.hpp.

Field Documentation

◆ CRTPBaseType< actual_type, TParams... >

friend m::crtp< Actual , PhysicalOperator , TParams >::PhysicalOperator < actual_type, TParams... >
privateinherited

Definition at line 57 of file crtp.hpp.


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