Loading...
Searching...
No Matches
casacore::TableExprNodeIndex Class Reference
tables package (libcasa_tables) » TaQL_module » TaQL_module_internal_classes

The index of an array element in a table select expression. More...

`#include <ExprNodeArray.h>`

## Public Member Functions

| TableExprNodeIndex (const TableExprNodeSet &indices, const TaQLStyle &=TaQLStyle(0))
| Constructor.
| ~TableExprNodeIndex () override=default
| Destructor.
void | fillIndex (const TableExprNodeSet &indices)
| Link all the operands and check datatype.
void | checkIndexValues (const TENShPtr &arrayNode)
| Check if the index values match the dimensionality and shape of fixed-shaped array.
const Slicer & | getConstantSlicer () const
| Get the Slicer value for a constant index.
const Slicer & | getSlicer (const TableExprId &id)
| Get the Slicer value for the slice.
Bool | isSingle () const
| Does it index a single element?
Public Member Functions inherited from casacore::TableExprNodeMulti
| TableExprNodeMulti (NodeDataType, ValueType, OperType, const TableExprNodeRep &source)
| Constructor.
| ~TableExprNodeMulti () override=default
| Destructor.
void | show (ostream &, uInt indent) const override
| Show the expression tree.
void | flattenTree (std::vector< TableExprNodeRep * > &) override
| Flatten the node tree by adding the node and its children to the vector.
const std::vector< TENShPtr > & | getChildren () const
| Get the child nodes.
Public Member Functions inherited from casacore::TableExprNodeRep
| TableExprNodeRep (NodeDataType, ValueType, OperType, ArgType, ExprType, Int ndim, const IPosition &shape)
| Construct a node.
| TableExprNodeRep (NodeDataType, ValueType, OperType, ExprType)
| This constructor is called from the derived TableExprNodeRep.
| TableExprNodeRep (const TableExprNodeRep &)=default
| Copy constructor.
TableExprNodeRep & | operator= (const TableExprNodeRep &)=delete
| Assign to a TableExprNodeRep cannot be done.
virtual | ~TableExprNodeRep ()=default
| The destructor deletes all the underlying TableExprNode objects.
virtual Bool | isAggregate () const
| Is the node an aggegation node.
virtual TableExprInfo | getTableInfo () const
| Get the table info.
virtual void | optimize ()
| Try to optimize the node (meant for the right hand of the IN operator).
virtual void | disableApplySelection ()
| Do not apply the selection.
virtual void | applySelection (const Vector< rownr_t > &rownrs)
| Re-create the column object for a selection of rows.
virtual Double | getUnitFactor () const
| Get the unit conversion factor.
virtual std::shared_ptr< TableExprGroupFuncBase > | makeGroupAggrFunc ()
| Create the correct immediate aggregate function object.
virtual Bool | isLazyAggregate () const
| Is the aggregate function a lazy or an immediate one?
virtual Bool | getBool (const TableExprId &id)
| Get a scalar value for this node in the given row.
virtual Int64 | getInt (const TableExprId &id)
virtual Double | getDouble (const TableExprId &id)
virtual DComplex | getDComplex (const TableExprId &id)
virtual String | getString (const TableExprId &id)
virtual TaqlRegex | getRegex (const TableExprId &id)
virtual MVTime | getDate (const TableExprId &id)
virtual MArray< Bool > | getArrayBool (const TableExprId &id)
| Get an array value for this node in the given row.
virtual MArray< Int64 > | getArrayInt (const TableExprId &id)
virtual MArray< Double > | getArrayDouble (const TableExprId &id)
virtual MArray< DComplex > | getArrayDComplex (const TableExprId &id)
virtual MArray< String > | getArrayString (const TableExprId &id)
virtual MArray< MVTime > | getArrayDate (const TableExprId &id)
void | get (const TableExprId &id, Bool &value)
| General get functions for template purposes.
void | get (const TableExprId &id, Int64 &value)
void | get (const TableExprId &id, Double &value)
void | get (const TableExprId &id, DComplex &value)
void | get (const TableExprId &id, MVTime &value)
void | get (const TableExprId &id, String &value)
void | get (const TableExprId &id, MArray< Bool > &value)
void | get (const TableExprId &id, MArray< Int64 > &value)
void | get (const TableExprId &id, MArray< Double > &value)
void | get (const TableExprId &id, MArray< DComplex > &value)
void | get (const TableExprId &id, MArray< MVTime > &value)
void | get (const TableExprId &id, MArray< String > &value)
MArray< Bool > | getBoolAS (const TableExprId &id)
| Get a value as an array, even it it is a scalar.
MArray< Int64 > | getIntAS (const TableExprId &id)
MArray< Double > | getDoubleAS (const TableExprId &id)
MArray< DComplex > | getDComplexAS (const TableExprId &id)
MArray< String > | getStringAS (const TableExprId &id)
MArray< MVTime > | getDateAS (const TableExprId &id)
virtual Bool | contains (const TableExprId &id, Bool value)
| Does a set or array contain the value?
virtual Bool | contains (const TableExprId &id, Int64 value)
virtual Bool | contains (const TableExprId &id, Double value)
virtual Bool | contains (const TableExprId &id, DComplex value)
virtual Bool | contains (const TableExprId &id, String value)
virtual Bool | contains (const TableExprId &id, MVTime value)
virtual MArray< Bool > | contains (const TableExprId &id, const MArray< Bool > &value)
virtual MArray< Bool > | contains (const TableExprId &id, const MArray< Int64 > &value)
virtual MArray< Bool > | contains (const TableExprId &id, const MArray< Double > &value)
virtual MArray< Bool > | contains (const TableExprId &id, const MArray< DComplex > &value)
virtual MArray< Bool > | contains (const TableExprId &id, const MArray< String > &value)
virtual MArray< Bool > | contains (const TableExprId &id, const MArray< MVTime > &value)
rownr_t | nrow ()
| Get the number of rows in the table associated with this expression.
virtual Bool | getColumnDataType (DataType &) const
| Get the data type of the column.
virtual Array< Bool > | getColumnBool (const Vector< rownr_t > &rownrs)
| Get the value of the expression evaluated for the entire column.
virtual Array< uChar > | getColumnuChar (const Vector< rownr_t > &rownrs)
virtual Array< Short > | getColumnShort (const Vector< rownr_t > &rownrs)
virtual Array< uShort > | getColumnuShort (const Vector< rownr_t > &rownrs)
virtual Array< Int > | getColumnInt (const Vector< rownr_t > &rownrs)
virtual Array< uInt > | getColumnuInt (const Vector< rownr_t > &rownrs)
virtual Array< Int64 > | getColumnInt64 (const Vector< rownr_t > &rownrs)
virtual Array< Float > | getColumnFloat (const Vector< rownr_t > &rownrs)
virtual Array< Double > | getColumnDouble (const Vector< rownr_t > &rownrs)
virtual Array< Complex > | getColumnComplex (const Vector< rownr_t > &rownrs)
virtual Array< DComplex > | getColumnDComplex (const Vector< rownr_t > &rownrs)
virtual Array< String > | getColumnString (const Vector< rownr_t > &rownrs)
virtual void | ranges (Block< TableExprRange > &)
| Convert the tree to a number of range vectors which at least select the same things.
NodeDataType | dataType () const
| Get the data type of the derived TableExprNode object.
Bool | isReal () const
| Is the data type real (i.e., integer or double)?
ValueType | valueType () const
| Get the value type.
void | setValueType (ValueType vtype)
| Set the value type.
OperType | operType () const
| Get the operator type.
ExprType | exprType () const
| Get the expression type.
Bool | isConstant () const
| Is the expression a constant?
const Unit & | unit () const
| Get the unit.
void | setUnit (const Unit &unit)
| Set the unit.
const Record & | attributes () const
| Get the attributes.
void | setAttributes (const Record &)
| Set the attributes.
Int | ndim () const
| Get the fixed dimensionality (same for all rows).
const IPosition & | shape () const
| Get the fixed shape (same for all rows).
const IPosition & | shape (const TableExprId &id)
| Get the shape for the given row.
virtual Bool | isDefined (const TableExprId &id)
| Is the value in the given row defined?
virtual void | adaptSetUnits (const Unit &)
| Let a set node convert itself to the given unit.

## Protected Member Functions

void | convertConstIndex ()
| Precalculate the constant indices and store them.
void | fillSlicer (const TableExprId &id)
| Fill the slicer for this row.
IPosition | getNodeShape (const TENShPtr &arrayNode) const
| Get the shape of the node involved.
Protected Member Functions inherited from casacore::TableExprNodeRep
virtual const IPosition & | getShape (const TableExprId &id)
| Get the shape for the given row.
void | fillExprType (const TableExprNodeRep *node)
| Set expression type to Variable if node is Variable.

## Protected Attributes

Int | origin_p
Int | endMinus_p
Bool | isCOrder_p
IPosition | start_p
IPosition | end_p
IPosition | incr_p
Slicer | slicer_p
Block< Bool > | varIndex_p
Bool | isSingle_p
Protected Attributes inherited from casacore::TableExprNodeMulti
std::vector< TENShPtr > | operands_p
Protected Attributes inherited from casacore::TableExprNodeRep
NodeDataType | dtype_p
ValueType | vtype_p
OperType | optype_p
ArgType | argtype_p
ExprType | exprtype_p
Int | ndim_p
IPosition | shape_p
Unit | unit_p
Record | attributes_p

## Additional Inherited Members

Public Types inherited from casacore::TableExprNodeRep
enum | NodeDataType { NTBool , NTInt , NTDouble , NTComplex , NTString , NTRegex , NTDate , NTReal , NTDouCom , NTNumeric , NTAny }
| Define the data types of a node. More...
enum | ValueType { VTScalar , VTArray , VTRecord , VTSetElem , VTSet , VTIndex }
| Define the value types. More...
enum | OperType { OtPlus , OtMinus , OtTimes , OtDivide , OtModulo , OtBitAnd , OtBitOr , OtBitXor , OtBitNegate , OtEQ , OtGE , OtGT , OtNE , OtIN , OtAND , OtOR , OtNOT , OtMIN , OtColumn , OtField , OtLiteral , OtFunc , OtSlice , OtUndef , OtRownr , OtRandom }
| Define the operator types. More...
enum | ArgType { NoArr , ArrArr , ArrSca , ScaArr }
| Define the value types of the 2 arguments when arrays are involved. More...
enum | ExprType { Constant , Variable }
| Define (sub-)expression type. More...
Static Public Member Functions inherited from casacore::TableExprNodeMulti
static uInt | checkNumOfArg (uInt low, uInt high, const std::vector< TENShPtr > &nodes)
| Check number of arguments low <= number_of_args <= high It throws an exception if wrong number of arguments.
static NodeDataType | checkDT (Block< Int > &dtypeOper, NodeDataType dtIn, NodeDataType dtOut, const std::vector< TENShPtr > &nodes, Bool dateConv=True)
| Check datatype of nodes and return output type.
Static Public Member Functions inherited from casacore::TableExprNodeRep
static TENShPtr | replaceConstNode (const TENShPtr &node)
| Replace a node with a constant expression by node with its value.
static void | createRange (Block< TableExprRange > &, TableExprNodeColumn *, Double start, Double end)
| Create a range object from a column and an interval.
static void | createRange (Block< TableExprRange > &)
| Create a empty range object.
static String | typeString (NodeDataType)
| Convert a NodeDataType to a string.
static String | typeString (ValueType)
| Convert a ValueType to a string.
Static Protected Member Functions inherited from casacore::TableExprNodeRep
static TENShPtr | convertNode (const TENShPtr &thisNode, Bool convertConstType)
| If the node is constant, it is evaluated and replaced by the appropriate TableExprNodeConst object.

## Detailed Description

The index of an array element in a table select expression.

### Intended use:

Internal

### Review Status

Reviewed By:
  UNKNOWN
Date Reviewed:
  before2004/08/25

### Prerequisite

- TableExprNodeMulti

### Etymology

TableExprNodeIndex is used to store an index. All the operands must be Int.

### Synopsis

TableExprNodeIndex is a derivation of TableExprNodeMulti expression tree that represents an index.

### Motivation

All operands of TableExprNodeIndex must be Int, therefore it is a derivation of TableExprNodeMulti.

### To Do

- to be filled in

Definition at line 752 of file ExprNodeArray.h.

## Constructor & Destructor Documentation

## TableExprNodeIndex()

casacore::TableExprNodeIndex::TableExprNodeIndex | ( | const TableExprNodeSet & | indices,
|  | const TaQLStyle & | = TaQLStyle(0) )

explicit

Constructor.

## ~TableExprNodeIndex()

casacore::TableExprNodeIndex::~TableExprNodeIndex | ( |  | ) |

override default

Destructor.

## Member Function Documentation

## checkIndexValues()

void casacore::TableExprNodeIndex::checkIndexValues | ( | const TENShPtr & | arrayNode | ) |

Check if the index values match the dimensionality and shape of fixed-shaped array.

## convertConstIndex()

void casacore::TableExprNodeIndex::convertConstIndex | ( |  | ) |

protected

Precalculate the constant indices and store them.

## fillIndex()

void casacore::TableExprNodeIndex::fillIndex | ( | const TableExprNodeSet & | indices | ) |

Link all the operands and check datatype.

Calculate the IPosition values for the const operands.

## fillSlicer()

void casacore::TableExprNodeIndex::fillSlicer | ( | const TableExprId & | id | ) |

protected

Fill the slicer for this row.

Referenced by getSlicer().

## getConstantSlicer()

const Slicer & casacore::TableExprNodeIndex::getConstantSlicer | ( |  | ) | const

inline

Get the Slicer value for a constant index.

Definition at line 887 of file ExprNodeArray.h.

References slicer_p.

## getNodeShape()

IPosition casacore::TableExprNodeIndex::getNodeShape | ( | const TENShPtr & | arrayNode | ) | const

protected

Get the shape of the node involved.

Reverse axes if needed.

## getSlicer()

const Slicer & casacore::TableExprNodeIndex::getSlicer | ( | const TableExprId & | id | ) |

inline

Get the Slicer value for the slice.

Definition at line 891 of file ExprNodeArray.h.

References fillSlicer(), casacore::TableExprNodeRep::isConstant(), and slicer_p.

## isSingle()

Bool casacore::TableExprNodeIndex::isSingle | ( |  | ) | const

inline

Does it index a single element?

Definition at line 883 of file ExprNodeArray.h.

References isSingle_p.

## Member Data Documentation

## end_p

IPosition casacore::TableExprNodeIndex::end_p

protected

Definition at line 784 of file ExprNodeArray.h.

## endMinus_p

Int casacore::TableExprNodeIndex::endMinus_p

protected

Definition at line 781 of file ExprNodeArray.h.

## incr_p

IPosition casacore::TableExprNodeIndex::incr_p

protected

Definition at line 785 of file ExprNodeArray.h.

## isCOrder_p

Bool casacore::TableExprNodeIndex::isCOrder_p

protected

Definition at line 782 of file ExprNodeArray.h.

## isSingle_p

Bool casacore::TableExprNodeIndex::isSingle_p

protected

Definition at line 788 of file ExprNodeArray.h.

Referenced by isSingle().

## origin_p

Int casacore::TableExprNodeIndex::origin_p

protected

Definition at line 780 of file ExprNodeArray.h.

## slicer_p

Slicer casacore::TableExprNodeIndex::slicer_p

protected

Definition at line 786 of file ExprNodeArray.h.

Referenced by getConstantSlicer(), and getSlicer().

## start_p

IPosition casacore::TableExprNodeIndex::start_p

protected

Definition at line 783 of file ExprNodeArray.h.

## varIndex_p

Block<Bool> casacore::TableExprNodeIndex::varIndex_p

protected

Definition at line 787 of file ExprNodeArray.h.

The documentation for this class was generated from the following file:

- tables/TaQL/ExprNodeArray.h