casacore
Public Member Functions | Private Attributes | List of all members
casacore::TableExprId Class Reference

The identification of a TaQL selection subject. More...

#include <TableExprId.h>

Public Member Functions

 TableExprId ()
 Default constructor sets rownr to -1. More...
 
 TableExprId (uInt rowNumber)
 Construct it from a row number. More...
 
 TableExprId (const RecordInterface &)
 Construct it from a Record object. More...
 
 TableExprId (const TableExprData &data)
 Construct it from pointers to data. More...
 
 ~TableExprId ()
 
Bool byRow () const
 Is the id given by row number? More...
 
Bool byRecord () const
 Is the id given as a RecordInterface? More...
 
Bool byData () const
 Is the id given as a TableExprData? More...
 
Int64 rownr () const
 Get the row number. More...
 
const RecordInterfacerecord () const
 Get the Record reference. More...
 
const TableExprDatadata () const
 Get the data reference. More...
 
void setRownr (uInt rownr)
 Set the row number. More...
 
void setRecord (const RecordInterface &)
 Set the record. More...
 

Private Attributes

Int type_p
 
union {
   Int64   row_p
 
   const RecordInterface *   record_p
 
   const TableExprData *   data_p
 
}; 
 

Detailed Description

The identification of a TaQL selection subject.

Intended use:

Public interface

Review Status

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

Prerequisite

Synopsis

This class provides the user the ability to identify the data objects to test in a TaQL expression. In this way a TaQL expression is not limited to tables, but can be used for any set of data. Three types are available:

  1. A row number giving the row to test in a table. It also contains a sequence number (0..n) which is used to get the result calculated by aggregate functions.
  2. A RecordInterface object giving the record to test.
  3. A TableExprData object giving the abstract base class of an object holding the data to test. In this way any data can be used.

The TaQL expression must be setup with this in mind by constructing the appropriate TableExprNode leaf objects.
When used for tables, the function Table::col should be used to create the TableExprNode objects for the table columns to be used in the expression.
For the other cases class TableExprNodeRecordField has to be used to know the index of the fields in the expression. It uses a record (description) for this purpose.

Example

Motivation

This class makes it possible that TaQL can be used in a very versatile way.

Definition at line 98 of file TableExprId.h.

Constructor & Destructor Documentation

◆ TableExprId() [1/4]

casacore::TableExprId::TableExprId ( )
inline

Default constructor sets rownr to -1.

Definition at line 151 of file TableExprId.h.

◆ TableExprId() [2/4]

casacore::TableExprId::TableExprId ( uInt  rowNumber)
inline

Construct it from a row number.

Definition at line 156 of file TableExprId.h.

◆ TableExprId() [3/4]

casacore::TableExprId::TableExprId ( const RecordInterface record)
inline

Construct it from a Record object.

Definition at line 161 of file TableExprId.h.

◆ TableExprId() [4/4]

casacore::TableExprId::TableExprId ( const TableExprData data)
inline

Construct it from pointers to data.

Definition at line 166 of file TableExprId.h.

◆ ~TableExprId()

casacore::TableExprId::~TableExprId ( )
inline

Definition at line 113 of file TableExprId.h.

References byData(), byRecord(), byRow(), data(), record(), rownr(), setRecord(), and setRownr().

Member Function Documentation

◆ byData()

Bool casacore::TableExprId::byData ( ) const
inline

Is the id given as a TableExprData?

Definition at line 206 of file TableExprId.h.

References type_p.

Referenced by ~TableExprId().

◆ byRecord()

Bool casacore::TableExprId::byRecord ( ) const
inline

Is the id given as a RecordInterface?

Definition at line 201 of file TableExprId.h.

References type_p.

Referenced by ~TableExprId().

◆ byRow()

Bool casacore::TableExprId::byRow ( ) const
inline

Is the id given by row number?

Definition at line 196 of file TableExprId.h.

References type_p.

Referenced by ~TableExprId().

◆ data()

const TableExprData & casacore::TableExprId::data ( ) const
inline

Get the data reference.

Definition at line 181 of file TableExprId.h.

References data_p.

Referenced by ~TableExprId().

◆ record()

const RecordInterface & casacore::TableExprId::record ( ) const
inline

Get the Record reference.

Definition at line 176 of file TableExprId.h.

References record_p.

Referenced by setRecord(), and ~TableExprId().

◆ rownr()

Int64 casacore::TableExprId::rownr ( ) const
inline

Get the row number.

Definition at line 171 of file TableExprId.h.

References row_p.

Referenced by setRownr(), and ~TableExprId().

◆ setRecord()

void casacore::TableExprId::setRecord ( const RecordInterface record)
inline

Set the record.

Definition at line 191 of file TableExprId.h.

References record(), and record_p.

Referenced by ~TableExprId().

◆ setRownr()

void casacore::TableExprId::setRownr ( uInt  rownr)
inline

Set the row number.

Definition at line 186 of file TableExprId.h.

References row_p, and rownr().

Referenced by casacore::TableParseSelect::doGroupByAggrSingleKey(), and ~TableExprId().

Member Data Documentation

◆ @58

union { ... }

◆ data_p

const TableExprData* casacore::TableExprId::data_p

Definition at line 145 of file TableExprId.h.

Referenced by data().

◆ record_p

const RecordInterface* casacore::TableExprId::record_p

Definition at line 144 of file TableExprId.h.

Referenced by record(), and setRecord().

◆ row_p

Int64 casacore::TableExprId::row_p

Definition at line 143 of file TableExprId.h.

Referenced by rownr(), and setRownr().

◆ type_p

Int casacore::TableExprId::type_p
private

Definition at line 141 of file TableExprId.h.

Referenced by byData(), byRecord(), and byRow().


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