![]() |
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< HashBasedGroupJoin > &M, setup_t setup, pipeline_t pipeline, teardown_t teardown) |
static double | cost (const Match< HashBasedGroupJoin > &) |
static ConditionSet | pre_condition (std::size_t child_idx, const std::tuple< const GroupingOperator *, const JoinOperator *, const Wildcard *, const Wildcard * > &partial_inner_nodes) |
static ConditionSet | post_condition (const Match< HashBasedGroupJoin > &M) |
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. | |
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 568 of file WasmOperator.hpp.
|
inherited |
Definition at line 414 of file PhysicalOptimizer.hpp.
|
inlinestaticinherited |
Overwrite this to implement custom adaptation of a single post-condition.
Definition at line 461 of file PhysicalOptimizer.hpp.
|
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 5395 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 |
< flag whether additional COUNT per group during build phase must be emitted
< local dummy slot
Helper function to compute aggregates to be stored in entry
given the arguments contained in environment env
for the phase (i.e. build or probe) with the schema schema
. The flag build_phase
determines which phase is currently active.
Returns three code blocks: the first one initializes all aggregates, the second one updates all but the AVG aggregates, and the third one updates the AVG aggregates.
< flag to indicate whether aggregate function is MIN
Definition at line 5414 of file WasmOperator.cpp.
References m::Schema::add(), m::wasm::and, BLOCK_OPEN, m::wasm::can_be_null(), compute_aggregate_info(), compute_initial_ht_capacity(), decompose_equi_predicate(), m::wasm::discard(), ELSE, m::wasm::CodeGenContext::env(), m::wasm::HashTable::the_entry< IsConst >::extract(), m::Schema::find(), FUNCTION, m::Catalog::Get(), m::wasm::CodeGenContext::Get(), m::wasm::HashTable::the_entry< IsConst >::get(), m::wasm::Environment::get(), m::Type::Get_Integer(), IF, m::wasm::is_null(), M_insist, M_unreachable, m::setup_t::Make_Without_Parent(), m::teardown_t::Make_Without_Parent(), m::wasm::max(), m::wasm::min(), m::wasm::not_null(), m::Schema::entry_type::NOT_NULLABLE, m::Catalog::pool(), m::wasm::CodeGenContext::scoped_environment(), m::wasm::Select(), m::T(), and m::wasm::value.
|
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.
|
static |
Definition at line 5401 of file WasmOperator.cpp.
References m::ConditionSet::add_condition().
|
inlinestaticprivateinherited |
Returns the post-condition of this physical operator given the match M
.
Definition at line 440 of file PhysicalOptimizer.hpp.
|
static |
Definition at line 5352 of file WasmOperator.cpp.
References m::ConditionSet::add_condition(), m::wasm::and, m::contains(), decompose_equi_predicate(), M_insist, and m::ConditionSet::Make_Unsatisfiable().
|
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.