| souffle
    2.0.2-371-g6315b36
    | 
 
 
 
Go to the documentation of this file.
   38 using RamPattern = std::pair<RamBound, RamBound>;
 
   52             assert(pattern != 
nullptr && 
"pattern is a null-pointer");
 
   55             assert(pattern != 
nullptr && 
"pattern is a null-pointer");
 
   66     std::pair<std::vector<Expression*>, std::vector<Expression*>> 
getRangePattern()
 const {
 
   73             res.push_back(pattern.get());
 
   76             res.push_back(pattern.get());
 
   81     void apply(
const NodeMapper& 
map)
 override {
 
   84             pattern = 
map(std::move(pattern));
 
   87             pattern = 
map(std::move(pattern));
 
   94             resQueryPattern.first.emplace_back(
i->clone());
 
   97             resQueryPattern.second.emplace_back(
i->clone());
 
  149     bool equal(
const Node& node)
 const override {
 
  
const std::string profileText
Text used by the profiler.
VecOwn< Expression > RamBound
Pattern type for lower/upper bound.
bool isUndefValue(const Expression *expr)
Determines if an expression represents an undefined value.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
std::pair< std::vector< Expression * >, std::vector< Expression * > > getRangePattern() const
Get range pattern.
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
Operation & getOperation() const
Get nested operation.
auto map(const std::vector< A > &xs, F &&f)
Applies a function to each element of a vector and returns the results.
const std::string relation
Search relation.
void apply(const NodeMapper &map) override
Apply the mapper to all child nodes.
auto clone(const std::vector< A * > &xs)
IndexOperation * clone() const override
Create a clone (i.e.
const std::string & getProfileText() const
Get profile text.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
bool equal_targets(const Container &a, const Container &b, const Comparator &comp)
A function testing whether two containers are equal with the given Comparator.
bool equal(const Node &node) const override
Equality check for two RAM nodes.
Abstract class for operations on relations.
int getTupleId() const
Get identifier.
void printIndex(std::ostream &os) const
Helper method for printing.
RamPattern queryPattern
Values of index per column of table (if indexable)
std::pair< RamBound, RamBound > RamPattern
void rel(size_t limit, bool showLimit=true)
std::vector< T * > toPtrVector(const std::vector< std::unique_ptr< T >> &v)
A utility function enabling the creation of a vector of pointers.
IndexOperation(std::string rel, int ident, RamPattern queryPattern, Own< Operation > nested, std::string profileText="")