| souffle
    2.0.2-371-g6315b36
    | 
 
 
 
Go to the documentation of this file.
   19 #include <unordered_set> 
   24 using ram::analysis::MinIndexSelection;
 
   34     virtual void computeIndices() = 0;
 
   68     virtual std::string getTypeName() = 0;
 
   71     std::string getTypeAttributeString(
const std::vector<std::string>& 
attributeTypes,
 
   72             const std::unordered_set<uint32_t>& attributesUsed) 
const;
 
   75     virtual void generateTypeStruct(std::ostream& out) = 0;
 
  107             : 
Relation(ramRel, indexSet, isProvenance) {}
 
  117             : 
Relation(ramRel, indexSet, isProvenance) {}
 
  127             : 
Relation(ramRel, indexSet, isProvenance) {}
 
  137             : 
Relation(ramRel, indexSet, isProvenance) {}
 
  147             : 
Relation(ramRel, indexSet, isProvenance) {}
 
  157             : 
Relation(ramRel, indexSet, isProvenance) {}
 
  
MinIndexSelection::OrderCollection computedIndices
The final list of indices used.
void generateTypeStruct(std::ostream &out) override
Generate type struct of a info relation, which is empty, the actual implementation is in CompiledSouf...
std::string getTypeName() override
Generate type name of a info relation.
std::set< int > provenanceIndexNumbers
The list of indices added for provenance computation.
void generateTypeStruct(std::ostream &out) override
Generate type struct of a brie relation.
void generateTypeStruct(std::ostream &out) override
Generate type struct of a nullary relation, which is empty, the actual implementation is in CompiledS...
std::string getTypeName() override
Generate type name of a indirect indexed relation.
void computeIndices() override
Generate index set for a nullary relation, which should be empty.
void generateTypeStruct(std::ostream &out) override
Generate type struct of a eqrel relation.
size_t getArity() const
Get arity of relation.
DirectRelation(const ram::Relation &ramRel, const MinIndexSelection &indexSet, bool isProvenance)
const MinIndexSelection & indices
Indices used for this relation.
IndirectRelation(const ram::Relation &ramRel, const MinIndexSelection &indexSet, bool isProvenance)
std::string getTypeName() override
Generate type name of a direct indexed relation.
BrieRelation(const ram::Relation &ramRel, const MinIndexSelection &indexSet, bool isProvenance)
void computeIndices() override
Generate index set for a info relation, which should be empty.
const bool isProvenance
Is this relation used with provenance.
void computeIndices() override
Generate index set for a direct indexed relation.
const ram::Relation & getRelation() const
Get stored ram::Relation.
An abstract class for performing indexed operations.
InfoRelation(const ram::Relation &ramRel, const MinIndexSelection &indexSet, bool isProvenance)
std::string getTypeName() override
Generate type name of a eqrel relation.
Souffle - A Datalog Compiler Copyright (c) 2013, 2015, Oracle and/or its affiliates.
std::string getTypeName() override
Generate type name of a nullary relation.
void computeIndices() override
Generate index set for a indirect indexed relation.
void generateTypeStruct(std::ostream &out) override
Generate type struct of a indirect indexed relation.
void generateTypeStruct(std::ostream &out) override
Generate type struct of a direct indexed relation.
size_t masterIndex
The number of the master index.
std::string dataStructure
The data structure used for the relation.
const std::vector< std::string > attributeTypes
Type of attributes.
MinIndexSelection::OrderCollection getIndices() const
Get list of indices used for relation, guaranteed that original indices in analysis::MinIndexSelectio...
void computeIndices() override
Generate index set for a brie relation.
std::string getTypeName() override
Generate type name of a brie relation.
std::set< int > getProvenenceIndexNumbers() const
Relation(const ram::Relation &rel, const MinIndexSelection &indices, const bool isProvenance=false)
const ram::Relation & relation
Ram relation referred to by this.
const MinIndexSelection & getMinIndexSelection() const
Get stored analysis::MinIndexSelection.
void computeIndices() override
Generate index set for a eqrel relation.
void rel(size_t limit, bool showLimit=true)
std::vector< LexOrder > OrderCollection
EqrelRelation(const ram::Relation &ramRel, const MinIndexSelection &indexSet, bool isProvenance)
NullaryRelation(const ram::Relation &ramRel, const MinIndexSelection &indexSet, bool isProvenance)
const std::string & getDataStructure() const
Get data structure of relation.