Was this helpful?
QBF System Catalogs
The QBF system requires the following extended system catalogs:
ii_joindefs
ii_qbfnames
ii_joindefs Catalog
The ii_joindefs catalog contains additional information about join definitions (JoinDefs) used in QBF. Basic information about the JoinDef is contained in a row in the ii_objects catalog. Each JoinDef can have several rows in ii_joindefs associated with it. There are four type of records in ii_joindefs, identified by the qtype column. The ii_joindefs catalog is structured as compressed btree unique on the object_id and qtype columns:
Column Name
Data Type
Description
object_id
integer
Unique identifier (object ID) for identifying this JoinDef in the ii_objects catalog. Other information about the JoinDef (such as its name, owner, and object class) is stored in the ii_objects catalog.
qtype
integer
The low order byte of this column indicates the record type of this row, as follows:
0-Indicates if a table field is used in the JoinDef.
1-Table information.
2-Column information.
3-Join information.
The high order byte is used as a sequence number for multiple entries of a particular record type.
Each JoinDef has exactly one row with qtype = 0; it has one row with qtype = 1 for each table used in the JoinDef; it has one row with qtype = 2 for each field displayed in the JoinDef; it has one row with qtype = 3 for each pair of columns joined in the JoinDef.
qinfo1
varchar(32)
If qtype = 0, qinfo1 indicates if the JoinDef is built with a table field format
(Y = yes, N = no). If qtype = 1, qinfo1 contains the name of a table used in the JoinDef.
If qtype = 2, qinfo1 contains a correlation name (range variable) for the table used in the JoinDef that contains the column named in qinfo2. If qtype = 3, qinfo1 contains a correlation name (range variable) for a column named in qinfo2 that is joined to the column referenced in qinfo3 and qinfo4.
qinfo2
varchar(32)
If qtype = 0, qinfo2 is not used. If qtype = 1, qinfo2 indicates whether the table named in qinfo1 is a Master (0) or Detail (1) table. If qtype = 2, qinfo2 contains the name of the column to be used in conjunction with the correlation name in qinfo1. If qtype = 3, qinfo2 contains the name of the column to be joined to the column referenced in qinfo3 and qinfo4.
qinfo3
varchar(32)
If qtype = 0, qinfo3 is not used. If qtype = 1, qinfo3 contains a correlation name (range variable) for the table named in qinfo1. If qtype = 2, qinfo3 contains the field name in the form corresponding to the column identified by qinfo2. If qtype = 3, qinfo3 contains a correlation name (range variable) for a column named in qinfo4 that is joined to the column referenced in qinfo1 and qinfo2.
qinfo4
varchar(32)
If qtype = 0, qinfo4 is not used. If qtype = 1, qinfo4 contains the delete rules for the table named in qinfo1 (0 = no, 1 = yes). If qtype = 2, qinfo4 contains the status codes for the column identified by qinfo1 and qinfo2. These status codes are expressed as a 3-character text string; the first character denotes update rules for values in this column (0 = no, 1 = yes); the second character denotes whether this column is part of a join (0 = no, 1 = yes); the third character denotes whether this column is a displayed column (0 = no, 1 = yes). Typically, if the column is not part of a join the third character is not used by QBF. If qtype = 3, qinfo4 contains the name of the column to be joined to the column referenced in qinfo1 and qinfo2.
qinfo5
varchar(32)
The owner of the table referenced by the joindef.
ii_qbfnames Catalog
The ii_qbfnames catalog contains information used by QBF on the mapping between a form and a corresponding table or JoinDef.
The ii_qbfnames catalog is structured as compressed btree unique on the object_id column:
Column Name
Data Type
Description
object_id
integer
Unique identifier (object ID) for identifying this QBFName in the ii_objects catalog. Other information about this QBFName (such as its name, owner, and object class) is stored in the ii_objects catalog.
relname
varchar(32)
The name of a table or JoinDef.
relowner
varchar(32)
the owner of the table referenced in the QBFName.
frname
varchar(32)
The name of a form corresponding to the table or JoinDef.
qbftype
smallint
Indicates if the QBFName is mapping a form to a table (value 0) or JoinDef (value 1).
Last modified date: 11/28/2023