#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)