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

#include <PhysicalPlanTable.hpp>

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

Public Types

using super = PhysicalPlanTableEntry< ConcretePhysicalPlanTableEntry, detail::PhysicalPlanTableEntryChildIterator >
 
using const_child_iterator = super::const_child_iterator
 
using cost_type = super::cost_type
 
using child_iterator_type = detail::PhysicalPlanTableEntryChildIterator< C >
 
using actual_type = ConcreteType
 

Public Member Functions

template<typename It >
requires requires { typename detail::the_condition_entry_iterator<It, true, entry_type>; }
 ConcretePhysicalPlanTableEntry (std::unique_ptr< MatchBase > &&match, const std::vector< It > &children, cost_type cost)
 
 ConcretePhysicalPlanTableEntry ()=default
 
 ConcretePhysicalPlanTableEntry (ConcretePhysicalPlanTableEntry &&other)
 
ConcretePhysicalPlanTableEntryoperator= (ConcretePhysicalPlanTableEntry other)
 
const MatchBasematch () const
 
unsharable_shared_ptr< MatchBaseshare_match () const
 
unsharable_shared_ptr< MatchBaseextract_match ()
 
cost_type cost () const
 
const_child_iterator begin_children () const
 
const_child_iterator end_children () const
 
const_child_iterator cbegin_children () const
 
const_child_iterator cend_children () const
 
range< const_child_iteratorchildren () const
 
actual_typeactual ()
 
const actual_typeactual () const
 

Private Types

using entry_type = ConcretePhysicalPlanTableEntry
 

Private Attributes

unsharable_shared_ptr< MatchBasematch_
 

‍the found match; as unsharable shared pointer to share sub-matches between entries while being able to transform exclusive matches into unique pointer


 
std::vector< std::reference_wrapper< const detail::condition_entry_t< entry_type > > > children_
 

‍all children, i.e. condition and entry per child


 
cost_type cost_
 cumulative cost, i.e. cost of the physical operator itself plus costs of its children
 
friend CRTPBaseType< actual_type, It, TParams... >
 

Friends

void swap (ConcretePhysicalPlanTableEntry &first, ConcretePhysicalPlanTableEntry &second)
 

Detailed Description

Definition at line 88 of file PhysicalPlanTable.hpp.

Member Typedef Documentation

◆ actual_type

template<typename ConcreteType , template< typename, template< bool > typename, typename... > typename CRTPBaseType, template< bool > typename It, typename... TParams>
using m::crtp_boolean_templated< ConcreteType, CRTPBaseType, It, TParams >::actual_type = ConcreteType
inherited

Definition at line 81 of file crtp.hpp.

◆ child_iterator_type

Definition at line 82 of file PhysicalPlanTable.hpp.

◆ const_child_iterator

Definition at line 92 of file PhysicalPlanTable.hpp.

◆ cost_type

Definition at line 93 of file PhysicalPlanTable.hpp.

◆ entry_type

Definition at line 103 of file PhysicalPlanTable.hpp.

◆ super

Definition at line 91 of file PhysicalPlanTable.hpp.

Constructor & Destructor Documentation

◆ ConcretePhysicalPlanTableEntry() [1/3]

template<typename It >
requires requires { typename detail::the_condition_entry_iterator<It, true, entry_type>; }
m::ConcretePhysicalPlanTableEntry::ConcretePhysicalPlanTableEntry ( std::unique_ptr< MatchBase > &&  match,
const std::vector< It > &  children,
cost_type  cost 
)
inline

◆ ConcretePhysicalPlanTableEntry() [2/3]

m::ConcretePhysicalPlanTableEntry::ConcretePhysicalPlanTableEntry ( )
default

◆ ConcretePhysicalPlanTableEntry() [3/3]

m::ConcretePhysicalPlanTableEntry::ConcretePhysicalPlanTableEntry ( ConcretePhysicalPlanTableEntry &&  other)
inline

Definition at line 124 of file PhysicalPlanTable.hpp.

References swap.

Member Function Documentation

◆ actual() [1/2]

template<typename ConcreteType , template< typename, template< bool > typename, typename... > typename CRTPBaseType, template< bool > typename It, typename... TParams>
actual_type & m::crtp_boolean_templated< ConcreteType, CRTPBaseType, It, TParams >::actual ( )
inlineinherited

Definition at line 82 of file crtp.hpp.

◆ actual() [2/2]

template<typename ConcreteType , template< typename, template< bool > typename, typename... > typename CRTPBaseType, template< bool > typename It, typename... TParams>
const actual_type & m::crtp_boolean_templated< ConcreteType, CRTPBaseType, It, TParams >::actual ( ) const
inlineinherited

Definition at line 83 of file crtp.hpp.

◆ begin_children()

const_child_iterator m::ConcretePhysicalPlanTableEntry::begin_children ( ) const
inline

Definition at line 139 of file PhysicalPlanTable.hpp.

References children_.

Referenced by cbegin_children().

◆ cbegin_children()

const_child_iterator m::ConcretePhysicalPlanTableEntry::cbegin_children ( ) const
inline

Definition at line 141 of file PhysicalPlanTable.hpp.

References begin_children().

◆ cend_children()

const_child_iterator m::ConcretePhysicalPlanTableEntry::cend_children ( ) const
inline

Definition at line 142 of file PhysicalPlanTable.hpp.

References end_children().

◆ children()

Definition at line 114 of file PhysicalPlanTable.hpp.

◆ cost()

cost_type m::ConcretePhysicalPlanTableEntry::cost ( ) const
inline

Definition at line 137 of file PhysicalPlanTable.hpp.

References cost_.

◆ end_children()

const_child_iterator m::ConcretePhysicalPlanTableEntry::end_children ( ) const
inline

Definition at line 140 of file PhysicalPlanTable.hpp.

References children_.

Referenced by cend_children().

◆ extract_match()

unsharable_shared_ptr< MatchBase > m::ConcretePhysicalPlanTableEntry::extract_match ( )
inline

Definition at line 135 of file PhysicalPlanTable.hpp.

References match_.

◆ match()

const MatchBase & m::ConcretePhysicalPlanTableEntry::match ( ) const
inline

Definition at line 133 of file PhysicalPlanTable.hpp.

References match_.

◆ operator=()

ConcretePhysicalPlanTableEntry & m::ConcretePhysicalPlanTableEntry::operator= ( ConcretePhysicalPlanTableEntry  other)
inline

Definition at line 128 of file PhysicalPlanTable.hpp.

References swap.

◆ share_match()

unsharable_shared_ptr< MatchBase > m::ConcretePhysicalPlanTableEntry::share_match ( ) const
inline

Definition at line 134 of file PhysicalPlanTable.hpp.

References match_.

Friends And Related Function Documentation

◆ swap

void swap ( ConcretePhysicalPlanTableEntry first,
ConcretePhysicalPlanTableEntry second 
)
friend

Definition at line 95 of file PhysicalPlanTable.hpp.

Referenced by ConcretePhysicalPlanTableEntry(), and operator=().

Field Documentation

◆ children_

std::vector<std::reference_wrapper<const detail::condition_entry_t<entry_type> > > m::ConcretePhysicalPlanTableEntry::children_
private

‍all children, i.e. condition and entry per child

Definition at line 108 of file PhysicalPlanTable.hpp.

Referenced by begin_children(), ConcretePhysicalPlanTableEntry(), and end_children().

◆ cost_

cost_type m::ConcretePhysicalPlanTableEntry::cost_
private

cumulative cost, i.e. cost of the physical operator itself plus costs of its children

Definition at line 109 of file PhysicalPlanTable.hpp.

Referenced by cost().

◆ CRTPBaseType< actual_type, It, TParams... >

template<typename ConcreteType , template< typename, template< bool > typename, typename... > typename CRTPBaseType, template< bool > typename It, typename... TParams>
friend m::crtp_boolean_templated< ConcreteType, CRTPBaseType, It, TParams >::CRTPBaseType< actual_type, It, TParams... >
privateinherited

Definition at line 87 of file crtp.hpp.

◆ match_

unsharable_shared_ptr<MatchBase> m::ConcretePhysicalPlanTableEntry::match_
private

‍the found match; as unsharable shared pointer to share sub-matches between entries while being able to transform exclusive matches into unique pointer

Definition at line 106 of file PhysicalPlanTable.hpp.

Referenced by extract_match(), match(), and share_match().


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