![]() |
mutable
A Database System for Research and Fast Prototyping
|
Evaluates SQL operator trees on the database. More...
#include <Interpreter.hpp>
Public Member Functions | |
Interpreter ()=default | |
void | register_operators (PhysicalOptimizer &phys_opt) const override |
Registers all physical operators of this Backend in phys_opt . | |
void | execute (const MatchBase &plan) const override |
Executes the already computed physical covering represented by plan using this Backend . | |
M_OPERATOR_LIST (DECLARE) static Value eval(const ast | |
Static Public Member Functions | |
static StackMachine | compile_load (const Schema &tuple_schema, void *address, const storage::DataLayout &layout, const Schema &layout_schema, std::size_t row_id=0, std::size_t tuple_id=0) |
Compile a StackMachine to load a tuple of Schema tuple_schema using a given memory address and a given DataLayout . | |
static StackMachine | compile_store (const Schema &tuple_schema, void *address, const storage::DataLayout &layout, const Schema &layout_schema, std::size_t row_id=0, std::size_t tuple_id=0) |
Compile a StackMachine to store a tuple of Schema tuple_schema using a given memory address and a given DataLayout . | |
Evaluates SQL operator trees on the database.
Definition at line 215 of file Interpreter.hpp.
|
default |
|
static |
Compile a StackMachine
to load a tuple of Schema
tuple_schema
using a given memory address and a given DataLayout
.
tuple_schema | the Schema of the tuple to load, specifying the Schema::Identifier s to load |
address | the memory address of the Store we are loading from |
layout | the DataLayout of the Table we are loading from |
layout_schema | the Schema of layout , specifying the Schema::Identifier s present in layout |
row_id | the ID of the first row to load |
tuple_id | the ID of the tuple used for loading |
Definition at line 544 of file Interpreter.cpp.
References m::storage::layout_schema, and m::storage::tuple_schema.
Referenced by m::wasm::detail::read_result_set().
|
static |
Compile a StackMachine
to store a tuple of Schema
tuple_schema
using a given memory address and a given DataLayout
.
tuple_schema | the Schema of the tuple to store, specifying the Schema::Identifier s to store |
address | the memory address of the Store we are storing to |
layout | the DataLayout of the Table we are storing to |
layout_schema | the Schema of layout , specifying the Schema::Identifier s present in layout |
row_id | the ID of the first row to store |
tuple_id | the ID of the tuple used for storing |
Definition at line 550 of file Interpreter.cpp.
References m::storage::layout_schema, and m::storage::tuple_schema.
Referenced by m::StoreWriter::append(), and m::DSVReader::operator()().
|
inlineoverridevirtual |
Executes the already computed physical covering represented by plan
using this Backend
.
Implements m::Backend.
Definition at line 222 of file Interpreter.hpp.
References m::MatchBase::get_matched_root().
|
inline |
Definition at line 228 of file Interpreter.hpp.
References m::Catalog::Get(), m::interpret(), M_insist, M_unreachable, m::Catalog::pool(), m::ast::Token::text, m::ast::Expr::tok, and m::ast::Token::type.
|
inlineoverridevirtual |
Registers all physical operators of this Backend
in phys_opt
.
Implements m::Backend.
Definition at line 220 of file Interpreter.hpp.