casacore
|
Class with static functions for copying a table. More...
#include <TableCopy.h>
Static Public Member Functions | |
static Table | makeEmptyTable (const String &newName, const Record &dataManagerInfo, const Table &tab, Table::TableOption option, Table::EndianFormat endianFormat, Bool replaceTSM=True, Bool noRows=False, const StorageOption &=StorageOption()) |
Make an (empty) table with the given description. More... | |
static Table | makeEmptyMemoryTable (const String &newName, const Table &tab, Bool noRows=False) |
Make an (empty) memory table with the same layout as the input one. More... | |
static void | copyRows (Table &out, const Table &in, Bool flush=True) |
Copy rows from the input to the output. More... | |
static void | copyRows (Table &out, const Table &in, rownr_t startout, rownr_t startin, rownr_t nrrow, Bool flush=True) |
static void | copyInfo (Table &out, const Table &in) |
Copy the table info block from input to output table. More... | |
static void | copySubTables (Table &out, const Table &in, Bool noRows=False, const Block< String > &omit=Block< String >()) |
Copy all subtables (in table and column keywords) from input to output table. More... | |
static void | copySubTables (TableRecord &outKeys, const TableRecord &inKeys, const String &outName, Table::TableType outType, const Table &in, Bool noRows=False, const Block< String > &omit=Block< String >()) |
Copy the subtables in the given keywordset to the output keywordset in the table with the given name. More... | |
static void | cloneColumn (const Table &fromTable, const String &fromColumn, Table &toTable, const String &newColumn, const String &dataManagerName=String(), const Record &newdmInfo=Record()) |
Clone a column in the from table to a new column in the to table. More... | |
template<typename T > | |
static void | cloneColumnTyped (const Table &fromTable, const String &fromColumn, Table &toTable, const String &newColumn, const String &dataManagerName=String(), const Record &newdmInfo=Record()) |
Cloning as above, but the data type is set to the template parameter. More... | |
static void | copyColumnData (const Table &fromTable, const String &fromColumn, Table &toTable, const String &toColumn, Bool preserveTileShape=True) |
Copy the data from one column to another. More... | |
template<typename T > | |
static void | fillArrayColumn (Table &table, const String &column, const Array< T > &value) |
Fill the table column with the given array. More... | |
template<typename T > | |
static void | fillColumnData (Table &table, const String &column, const T &value) |
Fill the table column with the given value. More... | |
static void | fillColumnData (Table &table, const String &column, const char *value) |
Specialization to handle a C-string correctly. More... | |
template<typename T > | |
static void | fillColumnData (Table &table, const String &column, const T &value, const Table &fromTable, const String &fromColumn, Bool preserveTileShape=True) |
Fill the table column with the given value. More... | |
static void | fillColumnData (Table &table, const String &column, const char *value, const Table &fromTable, const String &fromColumn, Bool preserveTileShape=True) |
Specialization to handle a C-string correctly. More... | |
Static Private Member Functions | |
static void | doCloneColumn (const Table &fromTable, const String &fromColumn, Table &toTable, const ColumnDesc &newColumn, const String &dataManagerName, const Record &newdmInfo) |
Class with static functions for copying a table.
Public interface
TableCopy is a class for making a deep copy of a table. The table can be a PlainTable or a RefTable. It contains the following static functions:
makeEmptyTable
creates a new table using the description and storage managers of the input table. By default TiledDataStMan (which is more or less obsolete) will be replaced by TiledShapeStMan. By default the new table contains the same number of rows as the existing table. copyRows
copies the data of one to another table. It is possible to specify where to start in the input and output. CopyInfo
copies the table info data. copySubTables
copies all the subtables in table and column keywords. It is done recursively. Definition at line 78 of file TableCopy.h.
|
static |
Clone a column in the from table to a new column in the to table.
The new column gets the same table description as the source column. If newdmInfo is empty, the same data manager type as the source column is used. It has to have a unique data manager name. If not given, it is the new column name.
|
static |
Cloning as above, but the data type is set to the template parameter.
|
static |
Copy the data from one column to another.
It can be used after function cloneColumn to populate the new column. Note that the data types of the column do not need to match; data type promotion is done if needed.
The preserveTileShape
argument tells if the original tile shape is kept if a tiled data manager is used. If False, the default tile shape of the data manager is used.
Tip: Note that a TaQL command can be used to fill a column in any way; For example, fill toColumn with the real part of a complex fromColumn:
When copying a column in a straightforward way, the TaQL way is about 25% slower than using the function copyColumnData
;
Copy the table info block from input to output table.
|
inlinestatic |
Copy rows from the input to the output.
By default all rows will be copied starting at row 0 of the output. Rows will be added to the output table as needed. The output table will by default be flushed after the rows are copied.
All columns in Table out
will be filled from the column with the same name in table in
. In principle only stored columns will be filled; however if the output table has only one column, it can also be a virtual one.
Definition at line 118 of file TableCopy.h.
References casacore::Table::nrow().
|
static |
|
static |
Copy all subtables (in table and column keywords) from input to output table.
Subtables of which the keyword name matches an omit value are skipped. Optionally the row contents are not copied.
|
static |
Copy the subtables in the given keywordset to the output keywordset in the table with the given name.
Subtables of which the keyword name matches an omit value are skipped. Optionally the row contents are not copied.
|
staticprivate |
|
static |
Fill the table column with the given array.
The template type must match the column data type.
|
static |
Fill the table column with the given value.
If the column contains arrays, the arrays are filled with the value. The template type must match the column data type.
Referenced by fillColumnData().
|
inlinestatic |
Specialization to handle a C-string correctly.
Definition at line 206 of file TableCopy.h.
References fillColumnData().
|
static |
Fill the table column with the given value.
The column must contain arrays. The arrays get the shape of the corresponding row in the fromColumn in the fromTable. It can be used after function cloneColumn to initialize the new column. The template type must match the column data type.
|
inlinestatic |
Specialization to handle a C-string correctly.
Definition at line 221 of file TableCopy.h.
References fillColumnData().
|
static |
Make an (empty) memory table with the same layout as the input one.
It has the same keywords and columns as the input one. By default, the new table has the same nr of rows as the input table. If noRows=True
is given, it does not contain any row.
|
static |
Make an (empty) table with the given description.
If the description contains no columns, the description of the input table is used, so it has the same keywords and columns as the input one. The data managers can be given in the dataManagerInfo record. If it is empty, the info is taken from the input table.
Non-writable storage managers (like LofarStMan) are by default replaced by StandardStMan. If replaceMSM
is set, MemoryStMan is also replaced by StandardStMan.
By default, the TiledDataStMan will be replaced by the TiledShapeStMan.
By default, the new table has the same nr of rows as the input table. If noRows=True
is given, it does not contain any row.