souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
48 class ParallelIndexAggregate :
public IndexAggregate,
public AbstractParallel {
58 pattern.first.emplace_back(
i->clone());
61 pattern.second.emplace_back(
i->clone());
68 void print(std::ostream& os,
int tabpos)
const override {
69 os <<
times(
" ", tabpos);
const Condition & getCondition() const
Get condition.
AggregateOp
Types of aggregation functions.
Operation & getOperation() const
Get nested operation.
ParallelIndexAggregate(Own< Operation > nested, AggregateOp fun, std::string rel, Own< Expression > expression, Own< Condition > condition, RamPattern queryPattern, int ident)
void print(std::ostream &os, int) const
void print(std::ostream &os, int tabpos) const override
Pretty print with indentation.
const std::string relation
Search relation.
auto clone(const std::vector< A * > &xs)
detail::multiplying_printer< T > times(const T &value, unsigned num)
A utility printing a given value multiple times.
ParallelIndexAggregate * clone() const override
Create a clone (i.e.
Aggregate over values of a relation using an index in parallel.
Own< Expression > expression
Aggregation expression.
Indexed aggregation on a relation. The index allows us to iterate over a restricted range.
int getTupleId() const
Get identifier.
void printIndex(std::ostream &os) const
Helper method for printing.
bool isTrue(const Condition *cond)
Determines if a condition represents true.
RamPattern queryPattern
Values of index per column of table (if indexable)
std::pair< RamBound, RamBound > RamPattern
void rel(size_t limit, bool showLimit=true)
void print(std::ostream &os, int tabpos) const override
Pretty print with indentation.
Own< Condition > condition
Aggregation tuple condition.