![]() |
mutable
A Database System for Research and Fast Prototyping
|
#include "backend/WasmUtil.hpp"
#include <mutable/IR/PhysicalOptimizer.hpp>
#include <mutable/storage/DataLayoutFactory.hpp>
#include <mutable/util/enum_ops.hpp>
Go to the source code of this file.
Namespaces | |
namespace | m |
| |
namespace | m::wasm |
namespace | m::option_configs |
namespace | m::options |
Macros | |
#define | M_WASM_OPERATOR_LIST_NON_TEMPLATED(X) |
#define | M_WASM_OPERATOR_LIST_TEMPLATED(X) |
#define | M_WASM_OPERATOR_LIST(X) |
#define | MAKE_WASM_MATCH_(OP) m::Match<m::wasm::OP> |
#define | M_WASM_MATCH_LIST_NON_TEMPLATED(X) M_TRANSFORM_X_MACRO(X, M_WASM_OPERATOR_LIST_NON_TEMPLATED, MAKE_WASM_MATCH_) |
#define | M_WASM_MATCH_LIST_TEMPLATED(X) |
#define | M_WASM_MATCH_LIST(X) |
#define | DECLARE(OP) |
#define | M_WASM_VISITABLE_MATCH_LIST(X) |
#define | ACCEPT(CLASS) |
#define | ACCEPT(CLASS) |
#define | DECLARE(CLASS) |
Typedefs | |
using | m::wasm::RecursiveConstMatchBaseVisitorBase = TheRecursiveMatchBaseVisitorBase< true > |
using | m::wasm::ConstPreOrderMatchBaseVisitor = ThePreOrderMatchBaseVisitor< true > |
using | m::wasm::ConstPostOrderMatchBaseVisitor = ThePostOrderMatchBaseVisitor< true > |
Functions | |
m::M_WASM_OPERATOR_LIST_NON_TEMPLATED (DECLARE) namespace wasm | |
void | m::register_wasm_operators (PhysicalOptimizer &phys_opt) |
Registers physical Wasm operators in phys_opt depending on the set CLI options. | |
template<typename T > | |
void | m::execute_buffered (const Match< T > &M, const Schema &schema, const std::unique_ptr< const storage::DataLayoutFactory > &buffer_factory, std::size_t buffer_num_tuples, setup_t setup, pipeline_t pipeline, teardown_t teardown) |
m::wasm::M_DECLARE_VISITOR (MatchBaseVisitor, wasm::MatchBase, M_WASM_VISITABLE_MATCH_LIST) M_DECLARE_VISITOR(ConstMatchBaseVisitor | |
m::wasm::M_MAKE_STL_VISITABLE (ConstPreOrderMatchBaseVisitor, const wasm::MatchBase, M_WASM_VISITABLE_MATCH_LIST) M_MAKE_STL_VISITABLE(ConstPostOrderMatchBaseVisitor | |
Variables | |
option_configs::ScanImplementation | m::options::scan_implementations = option_configs::ScanImplementation::ALL |
Which implementations should be considered for a ScanOperator . | |
option_configs::GroupingImplementation | m::options::grouping_implementations = option_configs::GroupingImplementation::ALL |
Which implementations should be considered for a GroupingOperator . | |
option_configs::SortingImplementation | m::options::sorting_implementations = option_configs::SortingImplementation::ALL |
Which implementations should be considered for a SortingOperator . | |
option_configs::JoinImplementation | m::options::join_implementations = option_configs::JoinImplementation::ALL |
Which implementations should be considered for a JoinOperator . | |
option_configs::IndexImplementation | m::options::index_implementations = option_configs::IndexImplementation::ALL |
Which index implementations should be considered for an IndexScan . | |
option_configs::IndexScanStrategy | m::options::index_scan_strategy = option_configs::IndexScanStrategy::INTERPRETATION |
Which index scan strategy should be used for wasm::IndexScan . | |
option_configs::IndexScanCompilationStrategy | m::options::index_scan_compilation_strategy |
Which compilation strategy should be used for wasm::IndexScan . | |
option_configs::IndexScanMaterializationStrategy | m::options::index_scan_materialization_strategy |
Which materialization strategy should be used for wasm::IndexScan . | |
option_configs::SelectionStrategy | m::options::filter_selection_strategy = option_configs::SelectionStrategy::AUTO |
Which selection strategy should be used for wasm::Filter . | |
option_configs::SelectionStrategy | m::options::quicksort_cmp_selection_strategy = option_configs::SelectionStrategy::AUTO |
Which selection strategy should be used for comparisons in wasm::Quicksort . | |
option_configs::SelectionStrategy | m::options::nested_loops_join_selection_strategy = option_configs::SelectionStrategy::AUTO |
Which selection strategy should be used for wasm::NestedLoopsJoin . | |
option_configs::SelectionStrategy | m::options::simple_hash_join_selection_strategy = option_configs::SelectionStrategy::AUTO |
Which selection strategy should be used for wasm::SimpleHashJoin . | |
option_configs::OrderingStrategy | m::options::simple_hash_join_ordering_strategy = option_configs::OrderingStrategy::AUTO |
Which ordering strategy should be used for wasm::SimpleHashJoin . | |
option_configs::SelectionStrategy | m::options::sort_merge_join_selection_strategy = option_configs::SelectionStrategy::AUTO |
Which selection strategy should be used for wasm::SortMergeJoin . | |
option_configs::SelectionStrategy | m::options::sort_merge_join_cmp_selection_strategy |
Which selection strategy should be used for comparisons while sorting in wasm::SortMergeJoin . | |
option_configs::HashTableImplementation | m::options::hash_table_implementation = option_configs::HashTableImplementation::ALL |
Which implementation should be used for wasm::HashTable s. | |
option_configs::ProbingStrategy | m::options::hash_table_probing_strategy = option_configs::ProbingStrategy::AUTO |
Which probing strategy should be used for wasm::OpenAddressingHashTable s. | |
option_configs::StoringStrategy | m::options::hash_table_storing_strategy = option_configs::StoringStrategy::AUTO |
Which storing strategy should be used for wasm::OpenAddressingHashTable s. | |
double | m::options::load_factor_open_addressing = 0.8 |
Which maximal load factor should be used for wasm::OpenAddressingHashTable s. | |
double | m::options::load_factor_chained = 1.5 |
Which maximal load factor should be used for wasm::ChainedHashTable s. | |
std::optional< uint32_t > | m::options::hash_table_initial_capacity |
Which initial capacity should be used for wasm::HashTable s. | |
bool | m::options::hash_based_group_join = true |
Whether to use wasm::HashBasedGroupJoin if possible. | |
std::unique_ptr< const m::storage::DataLayoutFactory > | m::options::hard_pipeline_breaker_layout |
Which layout factory should be used for hard pipeline breakers. | |
option_configs::SoftPipelineBreakerStrategy | m::options::soft_pipeline_breaker |
Where soft pipeline breakers should be added. | |
std::unique_ptr< const m::storage::DataLayoutFactory > | m::options::soft_pipeline_breaker_layout |
Which layout factory should be used for soft pipeline breakers. | |
std::size_t | m::options::soft_pipeline_breaker_num_tuples = 0 |
Which size in tuples should be used for soft pipeline breakers. | |
std::size_t | m::options::index_sequential_scan_batch_size = 1 |
The number of results from index sequential scan to be communicated between host and v8 per batch. | |
std::size_t | m::options::result_set_window_size = 0 |
Which window size should be used for the result set. | |
bool | m::options::exploit_unique_build = true |
Whether to exploit uniqueness of build key in hash joins. | |
bool | m::options::simd = true |
Whether to use SIMDfication. | |
bool | m::options::double_pumping = true |
Whether to use double pumping if SIMDfication is enabled. | |
std::size_t | m::options::simd_lanes = 1 |
Which number of SIMD lanes to prefer. | |
std::vector< std::pair< m::Schema::Identifier, bool > > | m::options::sorted_attributes |
Which attributes are assumed to be sorted. | |
#define ACCEPT | ( | CLASS | ) |
Definition at line 1282 of file WasmOperator.hpp.
#define ACCEPT | ( | CLASS | ) |
Definition at line 1282 of file WasmOperator.hpp.
#define DECLARE | ( | CLASS | ) |
Definition at line 1298 of file WasmOperator.hpp.
#define DECLARE | ( | OP | ) |
Definition at line 1298 of file WasmOperator.hpp.
#define M_WASM_MATCH_LIST | ( | X | ) |
Definition at line 321 of file WasmOperator.hpp.
#define M_WASM_MATCH_LIST_NON_TEMPLATED | ( | X | ) | M_TRANSFORM_X_MACRO(X, M_WASM_OPERATOR_LIST_NON_TEMPLATED, MAKE_WASM_MATCH_) |
Definition at line 285 of file WasmOperator.hpp.
#define M_WASM_MATCH_LIST_TEMPLATED | ( | X | ) |
Definition at line 286 of file WasmOperator.hpp.
#define M_WASM_OPERATOR_LIST | ( | X | ) |
Definition at line 279 of file WasmOperator.hpp.
#define M_WASM_OPERATOR_LIST_NON_TEMPLATED | ( | X | ) |
Definition at line 234 of file WasmOperator.hpp.
#define M_WASM_OPERATOR_LIST_TEMPLATED | ( | X | ) |
Definition at line 244 of file WasmOperator.hpp.
#define M_WASM_VISITABLE_MATCH_LIST | ( | X | ) |
Definition at line 1221 of file WasmOperator.hpp.
#define MAKE_WASM_MATCH_ | ( | OP | ) | m::Match<m::wasm::OP> |
Definition at line 284 of file WasmOperator.hpp.