souffle  2.0.2-371-g6315b36
Namespaces | Data Structures | Typedefs | Enumerations | Functions
souffle::interpreter Namespace Reference

Namespaces

 index_utils
 A namespace enclosing utilities required by indices.
 
 test
 

Data Structures

class  AbstractParallel
 node that utilizes parallel execution should inherit from this class. Enable node with its own view context for parallel execution. More...
 
class  Aggregate
 
class  AutoIncrement
 
class  BinaryNode
 Binary node represents interpreter node with two children. More...
 
class  BinRelOperation
 operation that involves with two relations should inherit from this class. E.g. Swap, Extend More...
 
class  Break
 
class  Call
 
class  Choice
 
class  Clear
 
class  CompoundNode
 Compound node represents interpreter node with a list of children. More...
 
class  ConditionalOperation
 Encode a conditional operation for the interpreter node. E.g. Exit, Filter. More...
 
class  Conjunction
 
class  Constant
 
class  Constraint
 
class  Context
 Evaluation context for Interpreter operations. More...
 
class  DebugInfo
 
class  EmptinessCheck
 
class  Engine
 This class translate the RAM Program into executable format and interpreter it. More...
 
class  EqrelIndex
 For EqrelIndex we do inheritence since EqrelIndex only diff with one extra function. More...
 
class  EqrelRelation
 
class  ExistenceCheck
 
class  Exit
 
class  Extend
 
class  False
 
class  Filter
 
struct  index
 The index class is utilized as a template-meta-programming structure to specify and realize indices. More...
 
class  Index
 An index is an abstraction of a data structure. More...
 
class  Index< 0, Structure >
 A partial specialize template for nullary indexes. More...
 
class  IndexAggregate
 
class  IndexChoice
 
class  IndexScan
 
class  IntrinsicOperator
 
class  IO
 
class  LogRelationTimer
 
class  LogSize
 
class  LogTimer
 
class  Loop
 
class  Negation
 
class  NestedIntrinsicOperator
 
class  NestedOperation
 Encode a nested operation for the interpreter node. E.g. Loop, IndexScan. More...
 
class  Node
 This is a shadow node for a ram::Node that is enriched for with local information so that the interpreter is executing quickly. More...
 
class  NodeGenerator
 
class  Order
 An order to be enforced for storing tuples within indexes. More...
 
class  PackRecord
 
class  Parallel
 
class  ParallelAggregate
 
class  ParallelChoice
 
class  ParallelIndexAggregate
 
class  ParallelIndexChoice
 
class  ParallelIndexScan
 
class  ParallelScan
 
class  ProgInterface
 Implementation of SouffleProgram interface for an interpreter instance. More...
 
class  Project
 
class  ProvenanceExistenceCheck
 
struct  ProvenanceUpdater
 
class  Query
 
class  Relation
 A relation, composed of a collection of indexes. More...
 
class  RelationSize
 
struct  RelationWrapper
 Wrapper for InterpreterRelation. More...
 
class  RelInterface
 Wrapper class for interpreter relations. More...
 
class  Scan
 
class  Sequence
 
class  SubroutineArgument
 
class  SubroutineReturn
 
class  SuperInstruction
 This class encodes information for a super-instruction, which is used to eliminate Number and TupleElement in index/project/existence operation. More...
 
class  SuperOperation
 node that utilizes the super instruction optimization should inherit from this class. E.g. ExistenceCheck, Project More...
 
class  Swap
 
class  True
 
class  TupleElement
 
class  TupleOperation
 
class  UnaryNode
 Unary node represents interpreter node with a single child. More...
 
class  UnpackRecord
 
class  UserDefinedOperator
 
class  ViewContext
 This class contains information for views (Hints) creation for ram::Query and ram::Parallel operation. More...
 
class  ViewOperation
 operation that utilizes the index view from underlying relation should inherit from this class. More...
 
struct  ViewWrapper
 A dummy wrapper for indexViews. More...
 

Typedefs

template<size_t Arity>
using Brie = Trie< Arity >
 
template<size_t Arity>
using Btree = btree_set< t_tuple< Arity >, comparator< Arity > >
 
template<size_t Arity>
using comparator = typename index_utils::get_full_index< Arity >::type::comparator
 
template<size_t Arity>
using Eqrel = EquivalenceRelation< t_tuple< Arity > >
 
using NodePtr = Own< Node >
 
using NodePtrVec = std::vector< NodePtr >
 
template<size_t Arity>
using Provenance = btree_set< t_tuple< Arity >, comparator< Arity >, std::allocator< t_tuple< Arity > >, 256, typename detail::default_strategy< t_tuple< Arity > >::type, comparator< Arity - 2 >, ProvenanceUpdater< Arity > >
 
using RelationFactory = Own< RelationWrapper >(*)(const ram::Relation &id, const ram::analysis::MinIndexSelection &orderSet)
 
using RelationHandle = Own< RelationWrapper >
 
template<size_t Arity>
using t_tuple = typename souffle::Tuple< RamDomain, Arity >
 

Enumerations

enum  NodeType
 

Functions

NodeType constructNodeType (std::string tokBase, const ram::Relation &rel)
 Construct interpreterNodeType by looking at the representation and the arity of the given rel. More...
 
Own< RelationWrappercreateBrieRelation (const ram::Relation &id, const ram::analysis::MinIndexSelection &)
 
Own< RelationWrappercreateBTreeRelation (const ram::Relation &id, const ram::analysis::MinIndexSelection &orderSet)
 
Own< RelationWrappercreateEqrelRelation (const ram::Relation &id, const ram::analysis::MinIndexSelection &orderSet)
 
Own< RelationWrappercreateProvenanceRelation (const ram::Relation &id, const ram::analysis::MinIndexSelection &orderSet)
 
std::ostream & operator<< (std::ostream &out, const Order &order)
 

Typedef Documentation

◆ Brie

template<size_t Arity>
using souffle::interpreter::Brie = typedef Trie<Arity>

Definition at line 224 of file Util.h.

◆ Btree

template<size_t Arity>
using souffle::interpreter::Btree = typedef btree_set<t_tuple<Arity>, comparator<Arity> >

Definition at line 220 of file Util.h.

◆ comparator

template<size_t Arity>
using souffle::interpreter::comparator = typedef typename index_utils::get_full_index<Arity>::type::comparator

Definition at line 216 of file Util.h.

◆ Eqrel

template<size_t Arity>
using souffle::interpreter::Eqrel = typedef EquivalenceRelation<t_tuple<Arity> >

Definition at line 244 of file Util.h.

◆ NodePtr

Definition at line 26 of file Generator.cpp.

◆ NodePtrVec

using souffle::interpreter::NodePtrVec = typedef std::vector<NodePtr>

Definition at line 27 of file Generator.cpp.

◆ Provenance

template<size_t Arity>
using souffle::interpreter::Provenance = typedef btree_set<t_tuple<Arity>, comparator<Arity>, std::allocator<t_tuple<Arity> >, 256, typename detail::default_strategy<t_tuple<Arity> >::type, comparator<Arity - 2>, ProvenanceUpdater<Arity> >

Definition at line 239 of file Util.h.

◆ RelationFactory

Definition at line 422 of file Relation.h.

◆ RelationHandle

Definition at line 28 of file Generator.cpp.

◆ t_tuple

template<size_t Arity>
using souffle::interpreter::t_tuple = typedef typename souffle::Tuple<RamDomain, Arity>

Definition at line 212 of file Util.h.

Enumeration Type Documentation

◆ NodeType

Definition at line 129 of file Node.h.

Function Documentation

◆ constructNodeType()

NodeType souffle::interpreter::constructNodeType ( std::string  tokBase,
const ram::Relation rel 
)
inline

Construct interpreterNodeType by looking at the representation and the arity of the given rel.

Add reflective from string to NodeType.

Definition at line 146 of file Node.h.

149  : base:%s arity:%s.", tokBase, arity);
150 }
151 
152 #undef __TO_STRING
153 #undef EXPAND_TOKEN_ENTRY
154 #undef SINGLE_TOKEN_ENTRY
155 
156 // clang-format on
157 
158 /**
159  * @class Node
160  * @brief This is a shadow node for a ram::Node that is enriched for
161  * with local information so that the interpreter is executing
162  * quickly.
163  */

◆ createBrieRelation()

Own< RelationWrapper > souffle::interpreter::createBrieRelation ( const ram::Relation id,
const ram::analysis::MinIndexSelection  
)

Definition at line 35 of file BrieIndex.cpp.

◆ createBTreeRelation()

Own< RelationWrapper > souffle::interpreter::createBTreeRelation ( const ram::Relation id,
const ram::analysis::MinIndexSelection orderSet 
)

Definition at line 35 of file BTreeIndex.cpp.

◆ createEqrelRelation()

Own< RelationWrapper > souffle::interpreter::createEqrelRelation ( const ram::Relation id,
const ram::analysis::MinIndexSelection orderSet 
)

Definition at line 29 of file EqrelIndex.cpp.

Referenced by souffle::interpreter::Engine::createRelation().

◆ createProvenanceRelation()

Own< RelationWrapper > souffle::interpreter::createProvenanceRelation ( const ram::Relation id,
const ram::analysis::MinIndexSelection orderSet 
)

Definition at line 32 of file ProvenanceIndex.cpp.

◆ operator<<()

std::ostream& souffle::interpreter::operator<< ( std::ostream &  out,
const Order order 
)
inline

Definition at line 137 of file Index.h.

138  {
139  virtual ~ViewWrapper() = default;

References souffle::interpreter::ViewWrapper::~ViewWrapper().

Here is the call graph for this function:
base
T & base
Definition: Reader.h:60