souffle
2.0.2-371-g6315b36
interpreter
ProvenanceIndex.cpp
Go to the documentation of this file.
1
/*
2
* Souffle - A Datalog Compiler
3
* Copyright (c) 2019, The Souffle Developers. All rights reserved.
4
* Licensed under the Universal Permissive License v 1.0 as shown at:
5
* - https://opensource.org/licenses/UPL
6
* - <souffle root>/licenses/SOUFFLE-UPL.txt
7
*/
8
9
/************************************************************************
10
*
11
* @file ProvenanceIndex.cpp
12
*
13
* Interpreter index with generic interface.
14
*
15
***********************************************************************/
16
17
#include "
interpreter/Relation.h
"
18
19
namespace
souffle::interpreter
{
20
21
#define CREATE_PROVENANCE_REL(Structure, Arity, ...) \
22
case (Arity): { \
23
return mk<Relation<Arity, interpreter::Provenance>>(id.getAuxiliaryArity(), id.getName(), orderSet); \
24
}
25
26
Own<RelationWrapper>
createProvenanceRelation
(
27
const
ram::Relation&
id
,
const
ram::analysis::MinIndexSelection& orderSet) {
28
switch
(
id
.getArity()) {
29
FOR_EACH_PROVENANCE
(
CREATE_PROVENANCE_REL
);
30
31
default
:
fatal
(
"Requested arity not yet supported. Feel free to add it."
);
32
}
33
}
34
35
}
// namespace souffle::interpreter
CREATE_PROVENANCE_REL
#define CREATE_PROVENANCE_REL(Structure, Arity,...)
Definition:
ProvenanceIndex.cpp:27
Relation.h
souffle::interpreter::createProvenanceRelation
Own< RelationWrapper > createProvenanceRelation(const ram::Relation &id, const ram::analysis::MinIndexSelection &orderSet)
Definition:
ProvenanceIndex.cpp:32
souffle::interpreter
Definition:
BrieIndex.cpp:22
FOR_EACH_PROVENANCE
#define FOR_EACH_PROVENANCE(func,...)
Definition:
Util.h:34
souffle::fatal
void fatal(const char *format, const Args &... args)
Definition:
MiscUtil.h:198
Generated by
1.8.17