casacore
|
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< String > | getStoredColumns (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. | |
Convenience functions for TableParse classes
Internal
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.
TableExprNode casacore::TableParseUtil::getColSet | ( | const Table & | table | ) |
Make an array from the contents of a column in a subquery.
Find the names of all stored columns in a table.
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.
Get the type string.
If empty, it is made from the given data type.
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.
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.
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.