casacore
|
#include <BaseTable.h>
Public Member Functions | |
BaseTable (const String &tableName, int tableOption, rownr_t nrrow) | |
Initialize the object. More... | |
BaseTable (MPI_Comm mpiComm, const String &tableName, int tableOption, rownr_t nrrow) | |
MPI version of the constructor. More... | |
void | BaseTableCommon (const String &tableName, int tableOption, rownr_t nrrow) |
Common code shared by the MPI constructor and non-MPI constructor. More... | |
virtual | ~BaseTable () |
void | link () |
Link to this BaseTable object (i.e. More... | |
virtual Bool | isNull () const |
Is the table a null table? By default it is not. More... | |
virtual void | reopenRW ()=0 |
Reopen the table for read/write. More... | |
virtual Bool | asBigEndian () const =0 |
Is the table stored in big or little endian format? More... | |
virtual const StorageOption & | storageOption () const =0 |
Get the storage option used for the table. More... | |
virtual Bool | isMultiUsed (Bool checkSubTables) const =0 |
Is the table in use (i.e. More... | |
virtual const TableLock & | lockOptions () const =0 |
Get the locking info. More... | |
virtual void | mergeLock (const TableLock &lockOptions)=0 |
Merge the given lock info with the existing one. More... | |
virtual Bool | hasLock (FileLocker::LockType) const =0 |
Has this process the read or write lock, thus can the table be read or written safely? More... | |
virtual Bool | lock (FileLocker::LockType, uInt nattempts)=0 |
Try to lock the table for read or write access. More... | |
virtual void | unlock ()=0 |
Unlock the table. More... | |
virtual void | flush (Bool fsync, Bool recursive)=0 |
Flush the table, i.e. More... | |
virtual void | resync ()=0 |
Resync the Table object with the table file. More... | |
virtual uInt | getModifyCounter () const =0 |
Get the modify counter. More... | |
virtual void | setTableChanged () |
Set the table to being changed. More... | |
void | doNotWrite () |
Do not write the table (used in in case of exceptions). More... | |
virtual Bool | isWritable () const =0 |
Test if this table is writable. More... | |
Bool | isColumnWritable (const String &columnName) const |
Test if the given column is writable. More... | |
Bool | isColumnWritable (uInt columnIndex) const |
Bool | isColumnStored (const String &columnName) const |
Test if the given column is stored (otherwise it is virtual). More... | |
Bool | isColumnStored (uInt columnIndex) const |
const String & | tableName () const |
Get the table name. More... | |
virtual void | getPartNames (Block< String > &names, Bool recursive) const |
Get the names of the tables this table consists of. More... | |
virtual void | rename (const String &newName, int tableOption) |
Rename the table. More... | |
virtual void | copy (const String &newName, int tableOption) const |
Copy the table and all its subtables. More... | |
virtual void | deepCopy (const String &newName, const Record &dataManagerInfo, const StorageOption &, int tableOption, Bool valueCopy, int endianFormat, Bool noRows) const |
virtual int | tableType () const |
Get the table type. More... | |
int | tableOption () const |
Get the table option. More... | |
void | markForDelete (Bool callback, const String &oldName) |
Mark the table for delete. More... | |
void | unmarkForDelete (Bool callback, const String &oldName) |
Unmark the table for delete. More... | |
Bool | isMarkedForDelete () const |
Test if the table is marked for delete. More... | |
const TableDesc & | tableDesc () const |
Get the table description. More... | |
virtual TableDesc | actualTableDesc () const =0 |
Get the actual table description. More... | |
virtual Record | dataManagerInfo () const =0 |
Get the data manager info. More... | |
void | showStructure (std::ostream &, Bool showDataMan, Bool showColumns, Bool showSubTables, Bool sortColumns, Bool cOrder) |
Show the table structure (implementation of Table::showStructure). More... | |
virtual TableRecord & | keywordSet ()=0 |
Get readonly access to the table keyword set. More... | |
virtual TableRecord & | rwKeywordSet ()=0 |
Get read/write access to the table keyword set. More... | |
TableInfo & | tableInfo () |
Get access to the TableInfo object. More... | |
virtual void | flushTableInfo () |
Write the TableInfo object. More... | |
rownr_t | nrow () const |
Get number of rows. More... | |
virtual BaseColumn * | getColumn (uInt columnIndex) const =0 |
Get a column object using its index. More... | |
virtual BaseColumn * | getColumn (const String &columnName) const =0 |
Get a column object using its name. More... | |
virtual Bool | canAddRow () const |
Test if it is possible to add a row to this table. More... | |
virtual void | addRow (rownr_t nrrow=1, Bool initialize=True) |
Add one or more rows and possibly initialize them. More... | |
virtual Bool | canRemoveRow () const |
Test if it is possible to remove a row from this table. More... | |
virtual void | removeRow (rownr_t rownr) |
Remove rows. More... | |
void | removeRow (const Vector< rownr_t > &rownrs) |
void | removeRow (const Vector< uInt > &rownrs) |
virtual DataManager * | findDataManager (const String &name, Bool byColumn) const =0 |
Find the data manager with the given name or for the given column. More... | |
BaseTable * | select (const TableExprNode &, rownr_t maxRow, rownr_t offset) |
Select rows using the given expression (which can be null). More... | |
BaseTable * | select (rownr_t maxRow, rownr_t offset) |
Select maxRow rows and skip first offset rows. More... | |
BaseTable * | select (const Vector< rownr_t > &rownrs) |
Select rows using a vector of row numbers. More... | |
BaseTable * | select (const Block< Bool > &mask) |
Select rows using a mask block. More... | |
BaseTable * | project (const Block< String > &columnNames) |
Project the given columns (i.e. More... | |
BaseTable * | tabAnd (BaseTable *) |
Do logical operations on a table. More... | |
BaseTable * | tabOr (BaseTable *) |
union with another table More... | |
BaseTable * | tabSub (BaseTable *) |
subtract another table More... | |
BaseTable * | tabXor (BaseTable *) |
xor with another table More... | |
BaseTable * | tabNot () |
take complement More... | |
BaseTable * | sort (const Block< String > &columnNames, const Block< CountedPtr< BaseCompare > > &compareObjects, const Block< Int > &sortOrder, int sortOption, std::shared_ptr< Vector< rownr_t >> sortIterBoundaries=nullptr, std::shared_ptr< Vector< size_t >> sortIterKeyIdxChange=nullptr) |
Sort a table on one or more columns of scalars. More... | |
BaseTableIterator * | makeIterator (const Block< String > &columnNames, const Block< CountedPtr< BaseCompare > > &, const Block< Int > &orders, int option, bool cacheIterationBoundaries=false) |
Create an iterator. More... | |
virtual void | addColumn (const ColumnDesc &columnDesc, Bool addToParent) |
Add one or more columns to the table. More... | |
virtual void | addColumn (const ColumnDesc &columnDesc, const String &dataManager, Bool byName, Bool addToParent) |
virtual void | addColumn (const ColumnDesc &columnDesc, const DataManager &dataManager, Bool addToParent) |
virtual void | addColumn (const TableDesc &tableDesc, const DataManager &dataManager, Bool addToParent) |
void | addColumns (const TableDesc &tableDesc, const Record &dmInfo, Bool addToParent) |
Add one or more columns to the table. More... | |
virtual Bool | canRemoveColumn (const Vector< String > &columnNames) const =0 |
Test if columns can be removed. More... | |
virtual void | removeColumn (const Vector< String > &columnNames)=0 |
Remove columns. More... | |
Bool | checkRemoveColumn (const Vector< String > &columnNames, Bool throwException) const |
Check if the set of columns can be removed. More... | |
virtual Bool | canRenameColumn (const String &columnName) const =0 |
Test if a column can be renamed. More... | |
virtual void | renameColumn (const String &newName, const String &oldName)=0 |
Rename a column. More... | |
virtual void | renameHypercolumn (const String &newName, const String &oldName)=0 |
Rename a hypercolumn. More... | |
virtual Vector< rownr_t > | rowNumbers () const |
Get a vector of row numbers. More... | |
virtual BaseTable * | root () |
Get pointer to root table (i.e. More... | |
virtual Bool | rowOrder () const |
Tell if the table is in row order. More... | |
virtual Vector< rownr_t > * | rowStorage () |
By the default the table cannot return the storage of rownrs. More... | |
virtual Bool | adjustRownrs (rownr_t nrrow, Vector< rownr_t > &rownrs, Bool determineOrder) const |
Adjust the row numbers to be the actual row numbers in the root table. More... | |
virtual BaseTable * | doSort (PtrBlock< BaseColumn * > &, const Block< CountedPtr< BaseCompare > > &, const Block< Int > &sortOrder, int sortOption, std::shared_ptr< Vector< rownr_t >> sortIterBoundaries, std::shared_ptr< Vector< size_t >> sortIterKeyIdxChange) |
Do the actual sort. More... | |
RefTable * | makeRefTable (Bool rowOrder, rownr_t initialNrrow) |
Create a RefTable object. More... | |
void | checkRowNumber (rownr_t rownr) const |
Check if the row number is valid. More... | |
int | traceId () const |
Get the table's trace-id. More... | |
Static Public Member Functions | |
static void | unlink (BaseTable *) |
Unlink from a BaseTable. More... | |
static TableInfo | tableInfo (const String &tableName) |
Get the table info of the table with the given name. More... | |
Protected Member Functions | |
void | scratchCallback (Bool isScratch, const String &oldName) const |
Do the callback for scratch tables (if callback is set). More... | |
Bool | makeTableDir () |
Create the table directory when needed (and possible). More... | |
void | trueDeepCopy (const String &newName, const Record &dataManagerInfo, const StorageOption &, int tableOption, int endianFormat, Bool noRows) const |
Make a true deep copy of the table. More... | |
void | prepareCopyRename (const String &newName, int tableOption) const |
Prepare for copying or renaming a table. More... | |
virtual void | renameSubTables (const String &newName, const String &oldName) |
Rename the subtables (used by rename function). More... | |
void | throwIfTableExists () |
Check if the table already exists. More... | |
Bool | openedForWrite () const |
Test if the table is opened for write. More... | |
void | writeStart (AipsIO &, Bool bigEndian) |
Start writing a table. More... | |
void | writeEnd (AipsIO &) |
End writing a table. More... | |
Bool | shouldNotWrite () const |
Should the table be written. More... | |
void | getTableInfo () |
Read the TableInfo object. More... | |
Protected Attributes | |
uInt | nrlink_p |
rownr_t | nrrow_p |
rownr_t | nrrowToAdd_p |
CountedPtr< TableDesc > | tdescPtr_p |
String | name_p |
int | option_p |
Bool | noWrite_p |
Bool | delete_p |
TableInfo | info_p |
Bool | madeDir_p |
int | itsTraceId |
Private Member Functions | |
BaseTable (const BaseTable &) | |
Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result). More... | |
BaseTable & | operator= (const BaseTable &) |
Assignment is forbidden, because copying a table requires some more knowledge (like table name of result). More... | |
virtual void | showStructureExtra (std::ostream &) const |
Show a possible extra table structure header. More... | |
void | showColumnInfo (ostream &os, const TableDesc &, uInt maxNameLength, const Array< String > &columnNames, Bool sort, Bool cOrder) const |
Show the info of the given columns. More... | |
void | checkRowNumberThrow (rownr_t rownr) const |
Throw an exception for checkRowNumber. More... | |
void | logicCheck (BaseTable *that) |
Check if the tables combined in a logical operation have the same root. More... | |
rownr_t | logicRows (rownr_t *&rownrs, Bool &allocated) |
Get the rownrs of the table in ascending order to be used in the logical operation on the table. More... | |
const TableDesc & | makeEmptyTableDesc () const |
Make an empty table description. More... | |
String | makeAbsoluteName (const String &name) const |
Make the name absolute. More... | |
Private Attributes | |
MPI_Comm | itsMpiComm |
MPI communicator for parallel I/O. More... | |
Abstract base class for tables
Internal
BaseTable is the (abstract) base class for different kind of tables.
BaseTables defines many virtual functions, which are actually implemented in the underlying table classes like PlainTable and RefTable. Other functions like sort and select are implemented in BaseTable itself.
The functions in BaseTable and its derived classes can only be used by the table system classes. All user access is via the envelope class Table, which references (counted) BaseTable.
Definition at line 103 of file BaseTable.h.
Initialize the object.
casacore::BaseTable::BaseTable | ( | MPI_Comm | mpiComm, |
const String & | tableName, | ||
int | tableOption, | ||
rownr_t | nrrow | ||
) |
MPI version of the constructor.
|
virtual |
|
private |
Copy constructor is forbidden, because copying a table requires some more knowledge (like table name of result).
Declaring it private, makes it unusable.
|
pure virtual |
Get the actual table description.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Add one or more columns to the table.
The default implementation throws an "invalid operation" exception.
Reimplemented in casacore::PlainTable, casacore::NullTable, casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Reimplemented in casacore::PlainTable, casacore::NullTable, casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Reimplemented in casacore::PlainTable, casacore::NullTable, casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Reimplemented in casacore::PlainTable, casacore::NullTable, casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
void casacore::BaseTable::addColumns | ( | const TableDesc & | tableDesc, |
const Record & | dmInfo, | ||
Bool | addToParent | ||
) |
Add one or more columns to the table.
The data manager to use is described in the record.
Add one or more rows and possibly initialize them.
This will fail for tables not supporting addition of rows.
Reimplemented in casacore::MemoryTable, casacore::NullTable, and casacore::PlainTable.
|
virtual |
Adjust the row numbers to be the actual row numbers in the root table.
This is, for instance, used when a RefTable is sorted. Optionally it also determines if the resulting rows are in order.
Reimplemented in casacore::NullTable, and casacore::RefTable.
|
pure virtual |
Is the table stored in big or little endian format?
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
void casacore::BaseTable::BaseTableCommon | ( | const String & | tableName, |
int | tableOption, | ||
rownr_t | nrrow | ||
) |
Common code shared by the MPI constructor and non-MPI constructor.
|
virtual |
Test if it is possible to add a row to this table.
Reimplemented in casacore::NullTable, casacore::PlainTable, and casacore::MemoryTable.
|
pure virtual |
Test if columns can be removed.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Test if it is possible to remove a row from this table.
Reimplemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Test if a column can be renamed.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Bool casacore::BaseTable::checkRemoveColumn | ( | const Vector< String > & | columnNames, |
Bool | throwException | ||
) | const |
Check if the set of columns can be removed.
It checks if columns have not been specified twice and it checks if they exist. If the flag is set an exception is thrown if errors are found.
|
inline |
Check if the row number is valid.
It throws an exception if out of range.
Definition at line 488 of file BaseTable.h.
References checkRowNumberThrow(), nrrow_p, and nrrowToAdd_p.
Referenced by casacore::TableColumn::checkRowNumber().
|
private |
Throw an exception for checkRowNumber.
Referenced by checkRowNumber().
|
virtual |
Copy the table and all its subtables.
The default implementation of deepCopy is to call copy. The following options can be given:
Reimplemented in casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Get the data manager info.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Reimplemented in casacore::RefTable, casacore::MemoryTable, casacore::ConcatTable, and casacore::NullTable.
|
inline |
Do not write the table (used in in case of exceptions).
Definition at line 175 of file BaseTable.h.
References noWrite_p, and casacore::True.
|
virtual |
Do the actual sort.
The default implementation is suitable for almost all cases. Only in RefTable a smarter implementation is provided.
Reimplemented in casacore::NullTable.
|
pure virtual |
Find the data manager with the given name or for the given column.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Flush the table, i.e.
write it to disk.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Write the TableInfo object.
Reimplemented in casacore::MemoryTable.
|
pure virtual |
Get a column object using its name.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Get a column object using its index.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Get the modify counter.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Get the names of the tables this table consists of.
The default implementation adds the name of this table to the block.
Reimplemented in casacore::RefTable, and casacore::ConcatTable.
|
protected |
Read the TableInfo object.
|
pure virtual |
Has this process the read or write lock, thus can the table be read or written safely?
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Test if the given column is stored (otherwise it is virtual).
Test if the given column is writable.
|
inline |
Test if the table is marked for delete.
Definition at line 268 of file BaseTable.h.
References delete_p.
Is the table in use (i.e.
open) in another process? If checkSubTables
is set, it is also checked if a subtable is used in another process.
Implemented in casacore::PlainTable, casacore::NullTable, casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Is the table a null table? By default it is not.
Reimplemented in casacore::NullTable.
|
pure virtual |
Test if this table is writable.
This tells if values can be put into a column.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Referenced by casacore::TableColumn::isWritable().
|
pure virtual |
Get readonly access to the table keyword set.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Try to lock the table for read or write access.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Get the locking info.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
private |
Check if the tables combined in a logical operation have the same root.
Get the rownrs of the table in ascending order to be used in the logical operation on the table.
Make the name absolute.
It first checks if the name contains valid characters (not only. and /).
|
private |
Make an empty table description.
This is used if one asks for the description of a NullTable. Creating an empty TableDesc in the NullTable takes too much time. Furthermore it causes static initialization order problems.
Referenced by tableDesc().
BaseTableIterator* casacore::BaseTable::makeIterator | ( | const Block< String > & | columnNames, |
const Block< CountedPtr< BaseCompare > > & | , | ||
const Block< Int > & | orders, | ||
int | option, | ||
bool | cacheIterationBoundaries = false |
||
) |
Create an iterator.
Create a RefTable object.
|
protected |
Create the table directory when needed (and possible).
When the file already exists, check if it is a directory. It returns True when it actually created the directory.
Mark the table for delete.
This means that the underlying table gets deleted when it is actually destructed. The scratchCallback function is called when needed.
|
pure virtual |
Merge the given lock info with the existing one.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
inline |
|
protected |
Test if the table is opened for write.
Assignment is forbidden, because copying a table requires some more knowledge (like table name of result).
Declaring it private, makes it unusable.
|
protected |
Prepare for copying or renaming a table.
It checks if the target table already exists and removes it when necessary.
Project the given columns (i.e.
select the columns).
Remove columns.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Remove rows.
This will fail for tables not supporting removal of rows.
Tip: The following code fragments do NOT have the same result:
because in the first fragment removing row 10 turns the former row 21 into row 20;
Reimplemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Rename the table.
The following options can be given:
The rename function in this base class renames the table file. In a derived class (e.g. PlainTable) the function should also be implemented to rename subtables in its keywords.
Reimplemented in casacore::MemoryTable.
|
pure virtual |
Rename a column.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Rename a hypercolumn.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
protectedvirtual |
Rename the subtables (used by rename function).
Reimplemented in casacore::NullTable, and casacore::PlainTable.
|
pure virtual |
Reopen the table for read/write.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
pure virtual |
Resync the Table object with the table file.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
virtual |
Get pointer to root table (i.e.
parent of a RefTable). Default it is this table. It is meant for the reference tables after a select or sort which can then still name their parent as the root.
Reimplemented in casacore::NullTable, and casacore::RefTable.
Get a vector of row numbers.
By default it returns the row numbers 0..nrrow()-1. It needs to be implemented for RefTable only.
Reimplemented in casacore::NullTable, and casacore::RefTable.
|
virtual |
Tell if the table is in row order.
By default it is, since normally a table is always in row order. It is meant for RefTable-s, where the rows can be in another (sorted) order.
Reimplemented in casacore::NullTable, and casacore::RefTable.
By the default the table cannot return the storage of rownrs.
That can only be done by a RefTable, where it is implemented.
Reimplemented in casacore::NullTable, and casacore::RefTable.
|
pure virtual |
Get read/write access to the table keyword set.
This requires that the table is locked (or it gets locked when using AutoLocking mode).
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
|
protected |
Do the callback for scratch tables (if callback is set).
Select rows using a mask block.
The length of the block must match the number of rows in the table. If True, the corresponding row will be selected.
BaseTable* casacore::BaseTable::select | ( | const TableExprNode & | , |
rownr_t | maxRow, | ||
rownr_t | offset | ||
) |
Select rows using the given expression (which can be null).
Skip first offset
matching rows. Return at most maxRow
matching rows.
Select rows using a vector of row numbers.
Select maxRow rows and skip first offset rows.
maxRow=0 means all.
|
virtual |
Set the table to being changed.
By default it does nothing.
Reimplemented in casacore::PlainTable.
Referenced by casacore::ColumnSet::setTableChanged().
|
inlineprotected |
Should the table be written.
This flag is False if an exception was thrown.
Definition at line 551 of file BaseTable.h.
References noWrite_p.
|
private |
Show the info of the given columns.
Sort the columns if needed.
void casacore::BaseTable::showStructure | ( | std::ostream & | , |
Bool | showDataMan, | ||
Bool | showColumns, | ||
Bool | showSubTables, | ||
Bool | sortColumns, | ||
Bool | cOrder | ||
) |
Show the table structure (implementation of Table::showStructure).
|
privatevirtual |
Show a possible extra table structure header.
It is used by e.g. RefTable to show which table is referenced.
Reimplemented in casacore::RefTable, and casacore::ConcatTable.
BaseTable* casacore::BaseTable::sort | ( | const Block< String > & | columnNames, |
const Block< CountedPtr< BaseCompare > > & | compareObjects, | ||
const Block< Int > & | sortOrder, | ||
int | sortOption, | ||
std::shared_ptr< Vector< rownr_t >> | sortIterBoundaries = nullptr , |
||
std::shared_ptr< Vector< size_t >> | sortIterKeyIdxChange = nullptr |
||
) |
Sort a table on one or more columns of scalars.
|
pure virtual |
Get the storage option used for the table.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Do logical operations on a table.
intersection with another table
|
inline |
Get the table description.
Definition at line 272 of file BaseTable.h.
References makeEmptyTableDesc(), and tdescPtr_p.
|
inline |
Get the table info of the table with the given name.
An empty object is returned when the table is unknown.
|
inline |
|
inline |
|
virtual |
Get the table type.
By default it returns Table::Plain.
Reimplemented in casacore::RefTable, casacore::MemoryTable, and casacore::ConcatTable.
BaseTable* casacore::BaseTable::tabNot | ( | ) |
take complement
|
protected |
Check if the table already exists.
Throw an exception if so.
|
inline |
Get the table's trace-id.
Definition at line 492 of file BaseTable.h.
References itsTraceId.
Referenced by casacore::ColumnSet::traceId().
|
protected |
Make a true deep copy of the table.
|
static |
Unlink from a BaseTable.
Delete it if no more references.
|
pure virtual |
Unlock the table.
This will also synchronize the table data, thus force the data to be written to disk.
Implemented in casacore::NullTable, casacore::RefTable, casacore::PlainTable, casacore::MemoryTable, and casacore::ConcatTable.
Unmark the table for delete.
This means the underlying table does not get deleted when destructed. The scratchCallback function is called when needed.
|
protected |
End writing a table.
Start writing a table.
It does a putstart and writes nrrow_p
. It should be ended by calling writeEnd
.
|
protected |
Definition at line 504 of file BaseTable.h.
Referenced by isMarkedForDelete().
|
protected |
Definition at line 505 of file BaseTable.h.
Referenced by tableInfo().
|
private |
MPI communicator for parallel I/O.
When using an MPI-disabled casacore, MPI applications have always been able to create Tables from each rank independently. Defaulting this communicator to MPI_COMM_SELF preserves that expectation.
Definition at line 604 of file BaseTable.h.
|
protected |
Definition at line 507 of file BaseTable.h.
Referenced by traceId().
|
protected |
Definition at line 506 of file BaseTable.h.
|
protected |
Definition at line 501 of file BaseTable.h.
Referenced by tableName().
|
protected |
Definition at line 503 of file BaseTable.h.
Referenced by doNotWrite(), and shouldNotWrite().
|
protected |
Definition at line 497 of file BaseTable.h.
|
protected |
Definition at line 498 of file BaseTable.h.
Referenced by checkRowNumber(), and nrow().
|
protected |
Definition at line 499 of file BaseTable.h.
Referenced by checkRowNumber().
|
protected |
Definition at line 502 of file BaseTable.h.
Referenced by tableOption().
|
protected |
Definition at line 500 of file BaseTable.h.
Referenced by tableDesc().