souffle
2.0.2-371-g6315b36
|
Use an index to find a tuple in a relation such that a given condition holds. More...
#include <IndexChoice.h>
Public Member Functions | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
IndexChoice * | clone () const override |
Create a clone (i.e. More... | |
std::vector< const Node * > | getChildNodes () const override |
Obtain list of all embedded child nodes. More... | |
IndexChoice (std::string rel, int ident, Own< Condition > cond, RamPattern queryPattern, Own< Operation > nested, std::string profileText="") | |
Public Member Functions inherited from souffle::ram::IndexOperation | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
IndexOperation * | clone () const override |
Create a clone (i.e. More... | |
std::vector< const Node * > | getChildNodes () const override |
Obtain list of all embedded child nodes. More... | |
std::pair< std::vector< Expression * >, std::vector< Expression * > > | getRangePattern () const |
Get range pattern. More... | |
IndexOperation (std::string rel, int ident, RamPattern queryPattern, Own< Operation > nested, std::string profileText="") | |
void | printIndex (std::ostream &os) const |
Helper method for printing. More... | |
Public Member Functions inherited from souffle::ram::RelationOperation | |
const std::string & | getRelation () const |
Get search relation. More... | |
RelationOperation (std::string rel, int ident, Own< Operation > nested, std::string profileText="") | |
Public Member Functions inherited from souffle::ram::TupleOperation | |
std::vector< const Node * > | getChildNodes () const override |
Obtain list of all embedded child nodes. More... | |
int | getTupleId () const |
Get identifier. More... | |
void | setTupleId (int id) |
Set identifier. More... | |
TupleOperation (int ident, Own< Operation > nested, std::string profileText="") | |
Public Member Functions inherited from souffle::ram::NestedOperation | |
void | apply (const NodeMapper &map) override |
Apply the mapper to all child nodes. More... | |
Operation & | getOperation () const |
Get nested operation. More... | |
const std::string & | getProfileText () const |
Get profile text. More... | |
NestedOperation (Own< Operation > nested, std::string profileText="") | |
Public Member Functions inherited from souffle::ram::Node | |
bool | operator!= (const Node &other) const |
Inequality check for two RAM nodes. More... | |
bool | operator== (const Node &other) const |
Equivalence check for two RAM nodes. More... | |
virtual void | rewrite (const Node *oldNode, Own< Node > newNode) |
Rewrite a child node. More... | |
virtual | ~Node ()=default |
Public Member Functions inherited from souffle::ram::AbstractChoice | |
AbstractChoice (Own< Condition > cond) | |
void | apply (const NodeMapper &map) |
std::vector< const Node * > | getChildNodes () const |
const Condition & | getCondition () const |
Getter for the condition. More... | |
Protected Member Functions | |
bool | equal (const Node &node) const override |
Equality check for two RAM nodes. More... | |
void | print (std::ostream &os, int tabpos) const override |
Pretty print with indentation. More... | |
Protected Member Functions inherited from souffle::ram::IndexOperation | |
bool | equal (const Node &node) const override |
Equality check for two RAM nodes. More... | |
Protected Member Functions inherited from souffle::ram::RelationOperation | |
bool | equal (const Node &node) const override |
Equality check for two RAM nodes. More... | |
Protected Member Functions inherited from souffle::ram::TupleOperation | |
bool | equal (const Node &node) const override |
Equality check for two RAM nodes. More... | |
Protected Member Functions inherited from souffle::ram::NestedOperation | |
void | print (std::ostream &os, int tabpos) const override |
Pretty print with indentation. More... | |
Protected Member Functions inherited from souffle::ram::Operation | |
void | print (std::ostream &os) const override |
Print RAM node. More... | |
Protected Member Functions inherited from souffle::ram::AbstractChoice | |
bool | equal (const Node &node) const |
Additional Inherited Members | |
Static Protected Member Functions inherited from souffle::ram::Operation | |
static void | print (const Operation *operation, std::ostream &os, int tabpos) |
Pretty print jump-bed. More... | |
Protected Attributes inherited from souffle::ram::IndexOperation | |
RamPattern | queryPattern |
Values of index per column of table (if indexable) More... | |
Protected Attributes inherited from souffle::ram::RelationOperation | |
const std::string | relation |
Search relation. More... | |
Protected Attributes inherited from souffle::ram::TupleOperation | |
int | identifier |
Identifier for the tuple, corresponding to its position in the loop nest. More... | |
Protected Attributes inherited from souffle::ram::NestedOperation | |
Own< Operation > | nestedOperation |
Nested operation. More... | |
const std::string | profileText |
Text used by the profiler. More... | |
Protected Attributes inherited from souffle::ram::AbstractChoice | |
Own< Condition > | condition |
Condition for which a tuple in the relation may hold. More... | |
Use an index to find a tuple in a relation such that a given condition holds.
Only one tuple is returned (if one exists), even if multiple tuples satisfying the condition exist.
For example:
Definition at line 58 of file IndexChoice.h.
|
inline |
Definition at line 60 of file IndexChoice.h.
References souffle::ram::IndexOperation::getRangePattern().
|
inlineoverridevirtual |
Apply the mapper to all child nodes.
Reimplemented from souffle::ram::Node.
Definition at line 68 of file IndexChoice.h.
|
inlineoverridevirtual |
Create a clone (i.e.
deep copy) of this node
Implements souffle::ram::RelationOperation.
Reimplemented in souffle::ram::ParallelIndexChoice.
Definition at line 85 of file IndexChoice.h.
|
inlineoverrideprotectedvirtual |
Equality check for two RAM nodes.
Default action is that nothing needs to be checked.
Reimplemented from souffle::ram::Node.
Definition at line 108 of file IndexChoice.h.
|
inlineoverridevirtual |
Obtain list of all embedded child nodes.
Reimplemented from souffle::ram::Node.
Definition at line 79 of file IndexChoice.h.
|
inlineoverrideprotectedvirtual |
Pretty print with indentation.
Implements souffle::ram::Operation.
Reimplemented in souffle::ram::ParallelIndexChoice.
Definition at line 99 of file IndexChoice.h.