casacore
Loading...
Searching...
No Matches
Functions
casacore::TableParseUtil Namespace Reference

More...

Functions

Table getTable (Int tabnr, const String &name, const Table &ftab, const std::vector< const Table * > &tempTables, const std::vector< TableParseQuery * > &stack, Bool alwaysOpen=True)
 Make a Table object for given name, seqnr or so.
 
Table openParentTable (const String &fullName, const String &subTableName, const std::vector< const Table * > &tempTables, const std::vector< TableParseQuery * > &stack)
 Open the parent table of a subtable.
 
Bool splitName (String &shorthand, String &columnName, Vector< String > &fieldNames, const String &name, Bool checkError, Bool isKeyword, Bool allowNoKey)
 Split a name into its parts (shorthand, column and field names).
 
void setRecFld (RecordInterface &rec, const String &name, const String &dtype, const ValueHolder &vh)
 Define a field with the given data type in the Record.
 
String getTypeString (const String &typeStr, DataType type)
 Get the type string.
 
Block< StringgetStoredColumns (const Table &tab)
 Find the names of all stored columns in a table.
 
TableExprNode getColSet (const Table &table)
 Make an array from the contents of a column in a subquery.
 

Detailed Description

Convenience functions for TableParse classes

Intended use:

Internal

Review Status

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

Synopsis

This file contains several static helper functions for TableParse. They handle splitting a name into its shorthand, column and/or keyword parts. A name can be given as shorthand.column::key.subkey1.subkey2... where each part is optional. It also has functions to find the given table, column and keyword.

Function Documentation

◆ getColSet()

TableExprNode casacore::TableParseUtil::getColSet ( const Table table)

Make an array from the contents of a column in a subquery.

◆ getStoredColumns()

Block< String > casacore::TableParseUtil::getStoredColumns ( const Table tab)

Find the names of all stored columns in a table.

◆ getTable()

Table casacore::TableParseUtil::getTable ( Int  tabnr,
const String name,
const Table ftab,
const std::vector< const Table * > &  tempTables,
const std::vector< TableParseQuery * > &  stack,
Bool  alwaysOpen = True 
)

Make a Table object for given name, seqnr or so.

If alwaysOpen=False the table will only be looked up, but not opened if not found. This is meant for concatenated tables in TaQLNodeHandler.

◆ getTypeString()

String casacore::TableParseUtil::getTypeString ( const String typeStr,
DataType  type 
)

Get the type string.

If empty, it is made from the given data type.

◆ openParentTable()

Table casacore::TableParseUtil::openParentTable ( const String fullName,
const String subTableName,
const std::vector< const Table * > &  tempTables,
const std::vector< TableParseQuery * > &  stack 
)

Open the parent table of a subtable.

◆ setRecFld()

void casacore::TableParseUtil::setRecFld ( RecordInterface rec,
const String name,
const String dtype,
const ValueHolder vh 
)

Define a field with the given data type in the Record.

◆ splitName()

Bool casacore::TableParseUtil::splitName ( String shorthand,
String columnName,
Vector< String > &  fieldNames,
const String name,
Bool  checkError,
Bool  isKeyword,
Bool  allowNoKey 
)

Split a name into its parts (shorthand, column and field names).

A name can be given as [shorthand][column][::key1.key2.key3...] where the square brackets indicate optional parts. Note that a single name given before :: is interpreted as a shorthand unless preceded by a period.
True is returned if the name contains a keyword part. In that case fieldNames contains the keyword name and the possible subfields. The possible shorthand and the column name are filled in if it is a column keyword. If the name contains a column, fieldNames is filled with the subfields of the column (for the case where the column contains records).
If isKeyword is True, the first part of name is a keyword, even if no :: is given. If allowNoKey is True, a single :: is allowed, otherwise the name is invalid. If the name is invalid, exceptions are only thrown if checkError=True. Otherwise the name is treated as a normal name without keyword.