![]() |
mutable
A Database System for Research and Fast Prototyping
|
#include "backend/Interpreter.hpp"#include "util/container/RefCountingHashMap.hpp"#include <algorithm>#include <cerrno>#include <cstdlib>#include <iterator>#include <mutable/catalog/Catalog.hpp>#include <mutable/Options.hpp>#include <mutable/parse/AST.hpp>#include <mutable/util/fn.hpp>#include <numeric>#include <type_traits>Go to the source code of this file.
Functions | |
| template<bool IsStore> | |
| static StackMachine | compile_data_layout (const Schema &tuple_schema, void *address, const DataLayout &layout, const Schema &layout_schema, std::size_t row_id, std::size_t tuple_id) |
Compile a StackMachine to load or store a tuple of Schema tuple_schema using a given memory address and a given DataLayout. | |
| __attribute__ ((constructor(202))) static void register_interpreter() | |
| __attribute__ | ( | (constructor(202)) | ) |
Definition at line 1657 of file Interpreter.cpp.
References m::Catalog::Get(), m::Catalog::pool(), and m::Catalog::register_backend().
|
static |
Compile a StackMachine to load or store a tuple of Schema tuple_schema using a given memory address and a given DataLayout.
| tuple_schema | the Schema of the tuple to load/store, specifying the Schema::Identifiers to load/store |
| address | the memory address of the Store we are loading from / storing to |
| layout | the DataLayout of the Table we are loading from / storing to |
| layout_schema | the Schema of layout, specifying the Schema::Identifiers present in layout |
| row_id | the ID of the first row to load/store |
| tuple_id | the ID of the tuple used for loading/storing |
< context id
< id to keep track of current adjustable bit offset in case of a bit stride
< fixed offset, in bits
< stride in bits
< number of tuples of the linearization in which the null bitmap is stored
< the row id within the linearization in which the null bitmap is stored
Definition at line 35 of file Interpreter.cpp.
References m::StackMachine::add(), m::StackMachine::add_and_emit_load(), m::and, m::Schema::begin(), m::StackMachine::emit_Ld(), m::StackMachine::emit_St(), m::StackMachine::emit_St_Tup(), m::Schema::end(), m::Schema::find(), m::storage::layout_schema, M_insist, m::Schema::num_entries(), and m::storage::tuple_schema.