26#ifndef TABLES_TABLEPARSEUPDATE_H
27#define TABLES_TABLEPARSEUPDATE_H
30#include <casacore/casa/aips.h>
31#include <casacore/tables/TaQL/ExprNode.h>
32#include <casacore/casa/BasicSL/String.h>
38 class TableExprNodeSet;
39 class TableExprNodeIndex;
43 template<
class T>
class ArrayColumn;
139 template<
typename TCOL,
typename TNODE>
145 template<
typename TCOL,
typename TNODE>
149 template<
typename TCOL,
typename TNODE>
154 template<
typename TCOL,
typename TNODE>
160 template<
typename TCOL,
typename TNODE>
String: the storage and methods of handling collections of characters.
The index of an array element in a table select expression.
void adaptUnit(const Unit &)
Adapt the unit of the expression to the given unit (if not empty).
void checkMaskColumn(Bool hasMask, const ArrayColumn< Bool > &maskCol, const TableColumn &col)
const String & columnNameMask() const
Get the possible column name for the mask.
TableParseUpdate(const String &columnName, const String &columnNameMask, const TableExprNodeSet &indices, const TableExprNode &, const TaQLStyle &)
Construct from a column name, subscripts or mask, and expression.
void setNode(const TableExprNode &node)
Set the node expression (used by TableParseQuery::doInsert).
void adaptUnit(const Unit &columnUnit)
Adapt the possible unit of the expression to the possible unit of the column.
TableExprNode indexNode_p
void updateArray(rownr_t row, const TableExprId &rowid, const TableExprNode &node, const Array< TNODE > &res, ArrayColumn< TCOL > &col)
void check(const Table &origTable, const Table &updTable) const
Check if the update column and expression specifications match.
void updateColumn(TableColumn &col, ArrayColumn< Bool > &maskCol, rownr_t row, const TableExprId &rowid)
Update the values in the column with the values of the node_p expression.
TableParseUpdate(const String &columnName, const String &columnNameMask, const TableExprNode &, Bool checkAggr=True)
Construct from a column name and expression.
void updateSlice(rownr_t row, const TableExprId &rowid, const TableExprNode &node, const Array< TNODE > &res, const Slicer &slice, ArrayColumn< TCOL > &col)
void setColumnName(const String &name)
Set the column name.
Array< Bool > makeMaskSlice(const Array< Bool > &mask, const IPosition &shapeCol, const Slicer *slicerPtr)
void updateValue(rownr_t row, const TableExprId &rowid, Bool isScalarCol, const TableExprNode &node, const Array< Bool > &mask, TableColumn &col, const Slicer *slicerPtr, ArrayColumn< Bool > &maskCol)
Update the values in the columns (helpers of updateColumn).
TableExprNodeIndex * indexPtr_p
const String & columnName() const
Get the column name.
void updateScalar(rownr_t row, const TableExprId &rowid, const TableExprNode &node, TableColumn &col)
void handleIndices(const TableExprNodeSet &indices, const TaQLStyle &style)
Handle the subscripts or mask.
TableParseUpdate(const String &columnName, const String &columnNameMask, const TableExprNodeSet &indices1, const TableExprNodeSet &indices2, const TableExprNode &, const TaQLStyle &)
Construct from a column name, subscripts and mask, and expression.
void setColumnNameMask(const String &name)
Set the column name for the mask.
void copyMaskedValue(rownr_t row, ArrayColumn< TCOL > &acol, const Slicer *slicerPtr, const TNODE *val, size_t incr, const Array< Bool > &mask)
this file contains all the compiler specific defines
LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
bool Bool
Define the standard types used by Casacore.
uInt64 rownr_t
Define the type of a row number in a table.