#include <Relation.h>
Definition at line 26 of file Relation.h.
 
◆ Relation()
◆ ~Relation()
  
  | 
        
          | virtual souffle::synthesiser::Relation::~Relation | ( |  | ) |  |  | virtualdefault | 
 
 
◆ computeIndices()
  
  | 
        
          | virtual void souffle::synthesiser::Relation::computeIndices | ( |  | ) |  |  | pure virtual | 
 
Compute the final list of indices to be used. 
 
 
◆ generateTypeStruct()
  
  | 
        
          | virtual void souffle::synthesiser::Relation::generateTypeStruct | ( | std::ostream & | out | ) |  |  | pure virtual | 
 
Generate relation type struct. 
 
 
◆ getArity()
  
  | 
        
          | size_t souffle::synthesiser::Relation::getArity | ( |  | ) | const |  | inline | 
 
 
◆ getDataStructure()
  
  | 
        
          | const std::string& souffle::synthesiser::Relation::getDataStructure | ( |  | ) | const |  | inline | 
 
 
◆ getIndices()
Get list of indices used for relation, guaranteed that original indices in analysis::MinIndexSelection come before any generated indices. 
Definition at line 49 of file Relation.h.
References computedIndices.
 
 
◆ getMinIndexSelection()
  
  | 
        
          | const MinIndexSelection& souffle::synthesiser::Relation::getMinIndexSelection | ( |  | ) | const |  | inline | 
 
Get stored analysis::MinIndexSelection. 
Definition at line 58 of file Relation.h.
References indices.
 
 
◆ getProvenenceIndexNumbers()
  
  | 
        
          | std::set<int> souffle::synthesiser::Relation::getProvenenceIndexNumbers | ( |  | ) | const |  | inline | 
 
 
◆ getRelation()
  
  | 
        
          | const ram::Relation& souffle::synthesiser::Relation::getRelation | ( |  | ) | const |  | inline | 
 
 
◆ getSynthesiserRelation()
Factory method to generate a SynthesiserRelation. 
Definition at line 45 of file Relation.cpp.
   51         rel = 
new DirectRelation(ramRel, indexSet, isProvenance);
 
   52     } 
else if (ramRel.isNullary()) {
 
   53         rel = 
new NullaryRelation(ramRel, indexSet, isProvenance);
 
   55         rel = 
new DirectRelation(ramRel, indexSet, isProvenance);
 
   57         rel = 
new BrieRelation(ramRel, indexSet, isProvenance);
 
   59         rel = 
new EqrelRelation(ramRel, indexSet, isProvenance);
 
   61         rel = 
new InfoRelation(ramRel, indexSet, isProvenance);
 
   64         if (ramRel.getArity() > 6) {
 
   65             rel = 
new IndirectRelation(ramRel, indexSet, isProvenance);
 
   67             rel = 
new DirectRelation(ramRel, indexSet, isProvenance);
 
   71     assert(
rel != 
nullptr && 
"relation type not specified");
 
   73     rel->computeIndices();
 
   75     return Own<Relation>(
rel);
 
 
References souffle::BRIE, souffle::BTREE, souffle::EQREL, souffle::ram::Relation::getArity(), souffle::ram::Relation::getRepresentation(), souffle::INFO, souffle::ram::Relation::isNullary(), and rel().
 
 
◆ getTypeAttributeString()
      
        
          | std::string souffle::synthesiser::Relation::getTypeAttributeString | ( | const std::vector< std::string > & | attributeTypes, | 
        
          |  |  | const std::unordered_set< uint32_t > & | attributesUsed | 
        
          |  | ) |  | const | 
      
 
Helper function to convert attribute types to a single string. 
Definition at line 29 of file Relation.cpp.
   31     std::stringstream 
type;
 
   34         if (attributesUsed.find(
i) != attributesUsed.end()) {
 
   36                 case 'f': 
type << 
'f'; 
break;
 
   37                 case 'u': 
type << 
'u'; 
break;
 
 
References i.
 
 
◆ getTypeName()
  
  | 
        
          | virtual std::string souffle::synthesiser::Relation::getTypeName | ( |  | ) |  |  | pure virtual | 
 
 
◆ computedIndices
◆ dataStructure
  
  | 
        
          | std::string souffle::synthesiser::Relation::dataStructure |  | protected | 
 
 
◆ indices
◆ isProvenance
  
  | 
        
          | const bool souffle::synthesiser::Relation::isProvenance |  | protected | 
 
 
◆ masterIndex
  
  | 
        
          | size_t souffle::synthesiser::Relation::masterIndex = -1 |  | protected | 
 
The number of the master index. 
Definition at line 98 of file Relation.h.
 
 
◆ provenanceIndexNumbers
  
  | 
        
          | std::set<int> souffle::synthesiser::Relation::provenanceIndexNumbers |  | protected | 
 
 
◆ relation
Ram relation referred to by this. 
Definition at line 83 of file Relation.h.
 
 
The documentation for this class was generated from the following files:
 
Relation(std::string name, size_t arity, size_t auxiliaryArity, std::vector< std::string > attributeNames, std::vector< std::string > attributeTypes, RelationRepresentation representation)