TypeErrorType,PrimitiveType,FnType, ...
AttributeTableSchemaSchema::Identifier
PositionTokenExprand subclasses
StoreStore::Row(?)
cnfnamespacecnf::CNF,cnf::Clause,cnf::Predicate
QueryGraphDataSource,BaseTable,QueryJoin
AdjacencyMatrix
PlanEnumeratorCostFunctionPlanTableSmallBitset
Operator,Consumer,ProducerCallbackOperatorPrintOperatorNoOpOperatorScanOperatorFilterOperatorJoinOperatorProjectionOperatorLimitOperatorGroupingOperatorSortingOperator
OperatorDataOperatorVisitor,ConstOperatorVisitor
Backend
-
type_check()(?)- only required by the
Store::Rowinterface
- only required by the
-
cnfoperators (operator&&,operator||,operator!) -
to_CNF(Expr&),get_CNF(Clause&)
- Create subclass of
Storewith suitable fields - Create nested subclass of
Store::Row - Implement c'tor and d'tor for your store (allocate
Memoryand initializeLinearization) - Implement virtual methods for your store
- Implement virtual methods for your row
- Register your store in the
Catalogand 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) { ... }
};