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.