You can add or delete rows at the end of a table that has a row selector in effect, but you cannot add or delete rows before the last row. When you add a row beyond the last selected row, the new row is actually written after the last row in the underlying table. If a row selector is in effect, inserting rows before the end is not allowed because it can be ambiguous as to where they should be inserted. The option of row and column selectors with read-write tables can be very useful with such tasks as tedit or tcalc, but it should be used with caution when reordering the table, such as with tsort. Any program linked with the current version of the tables library can use the column and row selector.
Programmers can also call the selector library directly.
The interface which evaluates the expression for an entire table returns a set containing the row numbers for which the expression is true. The set can then be accessed and manipulated by other procedures in the row selector interface. The column selector expression is a comma separated list of column patterns. A column pattern is either a column name, a file name containing a list of column names, or a pattern using the usual Iraf pattern matching syntax. If the column list is entirely whitespace, the array of column descriptors will include all the columns in the table, as this seems the most reasonable default.