TableCopy.h

Classes

TableCopy -- Class with static functions for copying a table. (full description)

class TableCopy

Interface

Public Members
static Table makeEmptyTable (const String& newName, const Record& dataManagerInfo, const Table& tab, Table::TableOption option, Bool replaceTSM = True, Bool noRows = False)
static Table makeEmptyMemoryTable (const String& newName, const Table& tab, Bool noRows = False)
static void copyRows (Table& out, const Table& in)
static void copyRows (Table& out, const Table& in, uInt startout, uInt startin, uInt nrrow)
static void copyInfo (Table& out, const Table& in)
static void copySubTables (Table& out, const Table& in)
static void copySubTables (TableRecord& outKeys, const TableRecord& inKeys, const String& outName, Table::TableType outType, const Table& in)
static void adjustTSM (TableDesc& tabDesc, Record& dminfo)

Description

Prerequisite

Synopsis

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:
  1. 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.
  2. copyRows copies the data of one to another table. It is possible to specify where to start in the input and output.
  3. CopyInfo copies the table info data.
  4. copySubTables copies all the subtables in table and column keywords. It is done recursively.

Member Description

static Table makeEmptyTable (const String& newName, const Record& dataManagerInfo, const Table& tab, Table::TableOption option, Bool replaceTSM = True, Bool noRows = False)

Make an (empty) table with the same layout as the input one. It has the same keywords, columns, and data managers as the input one. 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.

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. 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 void copyRows (Table& out, const Table& in)
static void copyRows (Table& out, const Table& in, uInt startout, uInt startin, uInt nrrow)

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.

static void copyInfo (Table& out, const Table& in)

Copy the table info block from input to output table.

static void copySubTables (Table& out, const Table& in)

Copy all subtables (in table and column keywords) from input to output table.

static void copySubTables (TableRecord& outKeys, const TableRecord& inKeys, const String& outName, Table::TableType outType, const Table& in)

Copy the subtables in the given keywordset to the output keywordset in the table with the given name.

static void adjustTSM (TableDesc& tabDesc, Record& dminfo)

Replace TiledDataStMan by TiledShapeStMan in the DataManagerInfo record. Since TiledShapeStMan does not support ID columns, they are adjusted as well in tabDesc and dminfo.