mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions
m::Interpreter Struct Reference

Evaluates SQL operator trees on the database. More...

#include <Interpreter.hpp>

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

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.
 

Detailed Description

Evaluates SQL operator trees on the database.

Definition at line 215 of file Interpreter.hpp.

Constructor & Destructor Documentation

◆ Interpreter()

m::Interpreter::Interpreter ( )
default

Member Function Documentation

◆ compile_load()

StackMachine Interpreter::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 
)
static

Compile a StackMachine to load a tuple of Schema tuple_schema using a given memory address and a given DataLayout.

Parameters
tuple_schemathe Schema of the tuple to load, specifying the Schema::Identifiers to load
addressthe memory address of the Store we are loading from
layoutthe DataLayout of the Table we are loading from
layout_schemathe Schema of layout, specifying the Schema::Identifiers present in layout
row_idthe ID of the first row to load
tuple_idthe 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().

◆ compile_store()

StackMachine Interpreter::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 
)
static

Compile a StackMachine to store a tuple of Schema tuple_schema using a given memory address and a given DataLayout.

Parameters
tuple_schemathe Schema of the tuple to store, specifying the Schema::Identifiers to store
addressthe memory address of the Store we are storing to
layoutthe DataLayout of the Table we are storing to
layout_schemathe Schema of layout, specifying the Schema::Identifiers present in layout
row_idthe ID of the first row to store
tuple_idthe 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()().

◆ execute()

void m::Interpreter::execute ( const MatchBase plan) const
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().

◆ M_OPERATOR_LIST()

m::Interpreter::M_OPERATOR_LIST ( DECLARE  ) const
inline

◆ register_operators()

void m::Interpreter::register_operators ( PhysicalOptimizer phys_opt) const
inlineoverridevirtual

Registers all physical operators of this Backend in phys_opt.

Implements m::Backend.

Definition at line 220 of file Interpreter.hpp.


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