POEM Internals

The metadata tables

This section describes in detail the structure of the metadata tables tableinfo and columninfo as an aid to the understanding POEM's (and the admin system's) workings, and for the benefit of anyone undertaking repair work on a damaged database. For a discussion of their function and relationship with the DSD and the JDBC metadata, see the user guide.

tableinfo

The tableinfo table describes the properties of each table in the database (including itself). It comprises the following columns:

id    Like every other record in a POEM database, each tableinfo has to have a troid (table row ID, or table-unique non-nullable integer primary key); and like the troids of other POEM special tables, this one is called id. It is not related to the order in which the tables appear in the database, or to anything else: it's just a convenient arbitrary identifier for the table.
 
name    The programmatic name of the table, identical with its name in the DSD (if the table was defined there) and in the RDBMS itself. You can't change this through the normal POEM channels, and if you do change it your application will at best fail to start next time. So don't do that.
 
displayname    The descriptive name of the table. POEM itself doesn't use this, but it's available to applications and Melati's generic admin system as a default label for the table and caption for its records.
 
displayorder    An integer defining where the table should appear in lists of all tables in the database (used by Melati's generic admin system).
 
defaultcanread    ...