![]() |
mutable
A Database System for Research and Fast Prototyping
|
#include <WasmOperator.hpp>
Public Types | |
using | pattern = Pattern |
Static Public Member Functions | |
static void | execute (const Match< OrderedGrouping > &M, setup_t setup, pipeline_t pipeline, teardown_t teardown) |
static double | cost (const Match< OrderedGrouping > &) |
static ConditionSet | pre_condition (std::size_t child_idx, const std::tuple< const GroupingOperator * > &partial_inner_nodes) |
static ConditionSet | adapt_post_condition (const Match< OrderedGrouping > &M, const ConditionSet &post_cond_child) |
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. | |
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. | |
Private Types | |
template<bool IsGlobal, typename T > | |
using | var_t_ = std::conditional_t< IsGlobal, Global< T >, Var< T > > |
template<bool IsGlobal> | |
using | agg_t_ = std::variant< var_t_< IsGlobal, I64x1 >, std::pair< var_t_< IsGlobal, I8x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I16x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I32x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I64x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, Floatx1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, Doublex1 >, std::optional< var_t_< IsGlobal, Boolx1 > > > > |
template<bool IsGlobal> | |
using | key_t_ = std::variant< var_t_< IsGlobal, Ptr< Charx1 > >, std::pair< var_t_< IsGlobal, Boolx1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I8x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I16x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I32x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, I64x1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, Floatx1 >, std::optional< var_t_< IsGlobal, Boolx1 > > >, std::pair< var_t_< IsGlobal, Doublex1 >, std::optional< var_t_< IsGlobal, Boolx1 > > > > |
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. | |
Definition at line 443 of file WasmOperator.hpp.
|
private |
Definition at line 449 of file WasmOperator.hpp.
|
private |
Definition at line 459 of file WasmOperator.hpp.
|
inherited |
Definition at line 414 of file PhysicalOptimizer.hpp.
|
private |
Definition at line 447 of file WasmOperator.hpp.
|
inlinestaticinherited |
Overwrite this to implement custom adaptation of a single post-condition.
Definition at line 461 of file PhysicalOptimizer.hpp.
|
static |
Definition at line 2810 of file WasmOperator.cpp.
References m::ConditionPropertyMap< Property, Ordered >::add(), m::ConditionSet::add_condition(), m::ConditionPropertyMap< Property, Ordered >::cend(), m::ConditionPropertyMap< Property, Ordered >::find(), m::ConditionSet::get_condition(), M_insist, and m::Sortedness::orders().
|
inlinestaticprivateinherited |
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.
|
inlinestaticinherited |
Overwrite this to implement custom adaptation of multiple post-conditions.
Definition at line 465 of file PhysicalOptimizer.hpp.
|
inlinestaticprivateinherited |
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.
|
inlinestaticinherited |
Returns the cost of this physical operator given the match M
.
Definition at line 423 of file PhysicalOptimizer.hpp.
|
static |
Definition at line 2805 of file WasmOperator.cpp.
|
inlinestaticinherited |
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.
|
static |
< stores current result tuple
< variable to locally check for first iteration
global flag backup since the following code may be called multiple times
< local values of the computed aggregates
< global value backups of the computed aggregates
< local values of the computed keys
< global value backups of the computed keys
< flag to indicate whether aggregate function is MIN
< flag to indicate whether aggregate function is MIN
Definition at line 2836 of file WasmOperator.cpp.
References m::Schema::add(), m::wasm::Environment::add(), compute_aggregate_info(), m::wasm::is_null(), M_insist, M_notnull, M_unreachable, m::setup_t::Make_Without_Parent(), m::wasm::n, m::wasm::Select(), m::T(), and m::visit().
Referenced by m::Match< wasm::OrderedGrouping >::execute().
|
inlinestaticinherited |
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.
|
inlinestaticinherited |
Overwrite this to implement a custom post-condition.
Definition at line 443 of file PhysicalOptimizer.hpp.
|
inlinestaticprivateinherited |
Returns the post-condition of this physical operator given the match M
.
Definition at line 440 of file PhysicalOptimizer.hpp.
|
static |
|
inlinestaticinherited |
Overwrite this to implement custom pre-conditions.
Definition at line 436 of file PhysicalOptimizer.hpp.
|
inlinestaticprivateinherited |
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.