![]() |
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::Identifier s 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::Identifier s 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.