| Getting Started | Documentation | Glish | Learn More | Programming | Contact Us |
| Version 1.9 Build 392 |
|
The AIPS++ table system is designed to be the main data system used in the AIPS++ software. It is based on the ideas of Allen Farris.
A table consists of a number of keywords and columns. A column can be a filled one (i.e. actually stored in a file) or it can be a virtual one (i.e. calculated on the fly). Filled columns are stored using a storage manager. A table can have more than one storage manager; in fact, each column can have its own storage manager. A table can therefore consist of multiple files. The table name is the name of the main file.
Virtual columns are handled by so-called virtual column engines. These engine classes have to be written by the application programmer, since each virtual column will be calculated in a dedicated way.
A column can contain scalar values of any data type, arrays of any shape and any data type, or tables. The latter allows for a hierarchy of tables.
Only standard data types can be used in filled columns. These are: Bool, uChar, Int, uInt, float, double, Complex, DComplex, and String. Arrays can be direct or indirect. Direct arrays have to have the same shape in all cells of a column and are stored in the main storage manager data file. Indirect arrays can have varying shapes in the column cells and are stored in a separate file. Direct columns are meant for small, fixed sized arrays.
The table keywords make use of the keyword module (i.e. class KeywordSet and related classes).