mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Functions
Interpreter.cpp File Reference
#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>
Include dependency graph for Interpreter.cpp:

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()
 

Function Documentation

◆ __attribute__()

__attribute__ ( (constructor(202))  )

◆ compile_data_layout()

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 
)
static

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

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