26#ifndef TABLES_EXPRAGGRNODE_H
27#define TABLES_EXPRAGGRNODE_H
30#include <casacore/casa/aips.h>
31#include <casacore/tables/TaQL/ExprFuncNode.h>
37 class TableExprGroupFuncBase;
38 class TableExprGroupFuncSet;
87 const vector<TENShPtr>& nodes,
97 std::vector<TENShPtr>& nodes);
125 std::shared_ptr<TableExprGroupFuncBase>
itsFunc;
String: the storage and methods of handling collections of characters.
virtual Double getDouble(const TableExprId &id)
TENShPtr operand()
Get the operand node.
virtual Bool getBool(const TableExprId &id)
Functions to get the result of an aggregate function.
TableExprGroupFuncBase * doMakeGroupAggrFunc()
Do the actual creation of the correct aggregate function object.
virtual Bool isAggregate() const
This node does aggregation.
virtual Int64 getInt(const TableExprId &id)
TableExprAggrNode(FunctionType, NodeDataType, ValueType, const TableExprNodeSet &source, const vector< TENShPtr > &nodes, const Block< Int > &dtypeOper)
Constructor.
std::shared_ptr< TableExprGroupFuncBase > itsFunc
virtual String getString(const TableExprId &id)
virtual MVTime getDate(const TableExprId &id)
virtual DComplex getDComplex(const TableExprId &id)
virtual std::shared_ptr< TableExprGroupFuncBase > makeGroupAggrFunc()
Create the correct aggregate function object.
static NodeDataType checkOperands(Block< Int > &dtypeOper, ValueType &resVT, FunctionType ftype, std::vector< TENShPtr > &nodes)
Check the operands of the aggregate function and return the result's data type.
virtual Bool isLazyAggregate() const
Is the aggregate function a lazy or an immediate one?
const std::vector< TENShPtr > & operands() const
Some functions to be used by TableExprNodeFuncArray.
Abstract base class for classes calculating an aggregated group result.
NodeDataType
Define the data types of a node.
ValueType
Define the value types.
this file contains all the compiler specific defines
long long Int64
Define the extra non-standard types used by Casacore (like proposed uSize, Size)
std::shared_ptr< TableExprNodeRep > TENShPtr
bool Bool
Define the standard types used by Casacore.