#include "backend/V8Engine.hpp"
#include "backend/Interpreter.hpp"
#include "backend/WasmOperator.hpp"
#include "backend/WasmUtil.hpp"
#include "mutable/util/macro.hpp"
#include "storage/Store.hpp"
#include <chrono>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <fstream>
#include <libplatform/libplatform.h>
#include <mutable/catalog/Catalog.hpp>
#include <mutable/IR/PhysicalOptimizer.hpp>
#include <mutable/IR/Tuple.hpp>
#include <mutable/Options.hpp>
#include <mutable/storage/DataLayoutFactory.hpp>
#include <mutable/storage/Store.hpp>
#include <mutable/util/DotTool.hpp>
#include <mutable/util/enum_ops.hpp>
#include <mutable/util/memory.hpp>
#include <mutable/util/Timer.hpp>
#include <sstream>
#include <stdexcept>
#include <string_view>
#include <unordered_set>
#include "backend/WasmMacro.hpp"
Go to the source code of this file.
|
namespace | options |
|
command-line options for the HeuristicSearchPlanEnumerator
|
|
|
#define | CREATE_TEMPLATES(IDXTYPE, KEYTYPE, V8TYPE, IDXNAME, SUFFIX) |
|
#define | EMIT_FUNC_IMPORTS(KEYTYPE, IDXNAME, SUFFIX) |
|
#define | ADD_FUNC(FUNC, NAME) |
|
#define | ADD_FUNC_(FUNC) ADD_FUNC(FUNC, #FUNC) |
|
#define | ADD_FUNCS(IDXTYPE, KEYTYPE, V8TYPE, IDXNAME, SUFFIX) |
|
|
using | args_t = v8::Local< v8::Value >[] |
|
◆ ADD_FUNC
#define ADD_FUNC |
( |
|
FUNC, |
|
|
|
NAME |
|
) |
| |
Value: { \
auto func = v8::Function::New(Ctx, (FUNC)).ToLocalChecked(); \
env->Set(Ctx,
mkstr(isolate, NAME), func).Check(); \
}
v8::Local< v8::String > mkstr(v8::Isolate &isolate, const std::string &str)
◆ ADD_FUNC_
#define ADD_FUNC_ |
( |
|
FUNC | ) |
ADD_FUNC(FUNC, #FUNC) |
◆ ADD_FUNCS
#define ADD_FUNCS |
( |
|
IDXTYPE, |
|
|
|
KEYTYPE, |
|
|
|
V8TYPE, |
|
|
|
IDXNAME, |
|
|
|
SUFFIX |
|
) |
| |
Value:
#define ADD_FUNC(FUNC, NAME)
void index_sequential_scan(const v8::FunctionCallbackInfo< v8::Value > &info)
void index_seek(const v8::FunctionCallbackInfo< v8::Value > &info)
◆ CREATE_TEMPLATES
#define CREATE_TEMPLATES |
( |
|
IDXTYPE, |
|
|
|
KEYTYPE, |
|
|
|
V8TYPE, |
|
|
|
IDXNAME, |
|
|
|
SUFFIX |
|
) |
| |
Value: global->Set(isolate_,
M_STR(idx_lower_bound_##IDXNAME##_##SUFFIX), v8::FunctionTemplate::New(isolate_,
index_seek<IDXTYPE<KEYTYPE>, V8TYPE,
true>)); \
global->Set(isolate_,
M_STR(idx_upper_bound_##IDXNAME##_##SUFFIX), v8::FunctionTemplate::New(isolate_,
index_seek<IDXTYPE<KEYTYPE>, V8TYPE,
false>)); \
global->Set(isolate_,
M_STR(idx_scan_##IDXNAME##_##SUFFIX), v8::FunctionTemplate::New(isolate_,
index_sequential_scan<IDXTYPE<KEYTYPE>>))
◆ EMIT_FUNC_IMPORTS
#define EMIT_FUNC_IMPORTS |
( |
|
KEYTYPE, |
|
|
|
IDXNAME, |
|
|
|
SUFFIX |
|
) |
| |
Value:
Module::Get().emit_function_import<uint32_t(std::size_t,KEYTYPE)>(
M_STR(idx_upper_bound_##IDXNAME##_##SUFFIX)); \
Module::Get().emit_function_import<void(std::size_t,uint32_t,
void*,uint32_t)>(
M_STR(idx_scan_##IDXNAME##_##SUFFIX))
void emit_function_import(const char *name)
◆ args_t
using args_t = v8::Local<v8::Value>[] |