Type
ErrorType
,PrimitiveType
,FnType
, ...
Attribute
Table
Schema
Schema::Identifier
Position
Token
Expr
and subclasses
Store
Store::Row
(?)
cnf
namespacecnf::CNF
,cnf::Clause
,cnf::Predicate
QueryGraph
DataSource
,BaseTable
,Query
Join
AdjacencyMatrix
PlanEnumerator
CostFunction
PlanTable
SmallBitset
Operator
,Consumer
,Producer
CallbackOperator
PrintOperator
NoOpOperator
ScanOperator
FilterOperator
JoinOperator
ProjectionOperator
LimitOperator
GroupingOperator
SortingOperator
OperatorData
OperatorVisitor
,ConstOperatorVisitor
Backend
-
type_check()
(?)- only required by the
Store::Row
interface
- only required by the
-
cnf
operators (operator&&
,operator||
,operator!
) -
to_CNF(Expr&)
,get_CNF(Clause&)
- Create subclass of
Store
with suitable fields - Create nested subclass of
Store::Row
- Implement c'tor and d'tor for your store (allocate
Memory
and initializeLinearization
) - Implement virtual methods for your store
- Implement virtual methods for your row
- Register your store in the
Catalog
and set it as default store
Linearization
: offsets relative to start of virtual address space of allocated memory?Store::accept()
: visitor not needed anymore
struct Foo
{
void bark(int);
};
struct Bar : Foo
{
void bark(int i) { static_cast<Foo*>(this)->bark(i); }
void bark(float) { ... }
};
struct Foo
{
virtual void bark(int);
};
struct Bar : Foo
{
void bark(int i);
void bark(float) { ... }
};