souffle
2.0.2-371-g6315b36
|
This class help generator reordering tuple access based on the index oder. More...
Public Member Functions | |
void | addNewTuple (size_t tupleId, size_t arity) |
Bind tuple with a natural full order. More... | |
template<class RamNode > | |
void | addTupleWithDefaultOrder (size_t tupleId, const RamNode &node) |
Bind tuple with the default order. More... | |
template<class RamNode > | |
void | addTupleWithIndexOrder (size_t tupleId, const RamNode &node) |
Bind tuple with the corresponding index order. More... | |
size_t | mapOrder (size_t tupleId, size_t elementId) const |
Map the decoded order of elementId based on current context. More... | |
OrderingContext (NodeGenerator &generator) | |
Private Member Functions | |
void | insertOrder (size_t tupleId, const Order &order) |
Private Attributes | |
NodeGenerator & | generator |
std::vector< Order > | tupleOrders |
This class help generator reordering tuple access based on the index oder.
Definition at line 242 of file Generator.h.
souffle::interpreter::NodeGenerator::OrderingContext::OrderingContext | ( | NodeGenerator & | generator | ) |
Definition at line 711 of file Generator.cpp.
void souffle::interpreter::NodeGenerator::OrderingContext::addNewTuple | ( | size_t | tupleId, |
size_t | arity | ||
) |
Bind tuple with a natural full order.
This is usually used when an operation implicitly introduce a runtime tuple, such as UnpackRecord NestedIntrinsicOperator, and nested operation in Aggregate.
Definition at line 713 of file Generator.cpp.
void souffle::interpreter::NodeGenerator::OrderingContext::addTupleWithDefaultOrder | ( | size_t | tupleId, |
const RamNode & | node | ||
) |
Bind tuple with the default order.
This is usually used for tuples created by non-indexed operations. Such as Scan, Aggregate, Choice.
Definition at line 722 of file Generator.cpp.
void souffle::interpreter::NodeGenerator::OrderingContext::addTupleWithIndexOrder | ( | size_t | tupleId, |
const RamNode & | node | ||
) |
Bind tuple with the corresponding index order.
This is usually used for tuples created by indexed operations. Such as IndexScan, IndexAggregate, IndexChoice.
Definition at line 728 of file Generator.cpp.
|
private |
Definition at line 739 of file Generator.cpp.
size_t souffle::interpreter::NodeGenerator::OrderingContext::mapOrder | ( | size_t | tupleId, |
size_t | elementId | ||
) | const |
Map the decoded order of elementId based on current context.
Definition at line 735 of file Generator.cpp.
|
private |
Definition at line 274 of file Generator.h.
|
private |
Definition at line 273 of file Generator.h.