Extended System catalogs are used by the Ingres tool products, such as ABF, VIFRED, and RBF, to store information on user interface objects such as applications, forms, and reports.
To add or upgrade the catalogs required by a product, you must use the upgradefe command.
For the purpose of installing and upgrading products, extended system catalogs are grouped into modules. Each product requires one or more of these modules. The contents of a module are subject to change with a new release, as catalogs are added or changed.
By default, when you create a database (using the createdb command) or upgrade a product (using the upgradefe command), catalogs are created for all products for which you are authorized. To create catalogs only for specific products, you must specify the products on the createdb command line. Valid products are:
Each of these products requires one or more of the following modules:
Module Name |
Catalogs in Module |
---|---|
APPLICATION_DEVELOPMENT_1 Required by: |
ii_abfclasses |
APPLICATION_DEVELOPMENT_2 Required by: |
ii_applications |
APPLICATION_DEVELOPMENT_3 Required by: |
ii_framevars |
CORE Required by: |
ii_app_cntns_comp |
DATA_MODEL Required by: |
ii_atttype |
METASCHEMA Required by: |
ii_atttype |
PHYSICAL_DATA_MODELLING Required by |
ii_dbd_acl |
Data dictionary catalogs contain the names of the catalogs installed for Ingres tools (such as ABF, QBF, and VIFRED). When you invoke one of these products, the product uses the data dictionary catalogs to determine if the required catalogs are present; if the catalogs are not present, the product cannot run.
The ii_client_dep_mod catalog lists the products that have been installed, and the modules required by the product. The format of ii_client_dep_mod is as follows:
Column Name |
Data Type |
Description |
---|---|---|
client_name |
varchar(32) |
Name of the product (for example, Ingres). |
client_version |
integer |
Release of the product. |
module_name |
varchar(32) |
Module required by the product. |
module_version |
integer |
Release of module required by this release of the product. |
short_remark |
varchar(60) |
Comment regarding product/module information. |
The ii_dict_modules catalog lists the modules that are installed in the database. (A module is a group of catalogs.) The format of ii_dict_modules is as follows:
Column Name |
Data Type |
Description |
---|---|---|
module_name |
varchar(32) |
Name of the installed module (for example, CORE). |
module_version |
integer |
Release number of the installed module. |
short_remark |
varchar(60) |
Comment about the module. |
Every user interface object (form, ABF frame, ABF application, report, QBF JoinDef, and so on) is identified in the extended system catalogs by a unique number, the object ID. The object ID is generated when the object is created. For each database, the largest object ID issued to date is stored in the table ii_id; this value is incremented and issued as the ID for each new object.
An object's name, owner, and other information are stored once only, in the ii_objects catalog. In all other extended system catalogs, objects are identified by their object ID.
User programs that insert objects into the extended system catalogs must generate a unique object ID for each new object by incrementing the object_id column in the ii_id catalog. Be sure to keep the transaction that updates ii_id.object_id as short as possible and to recover properly from errors. For information on handling errors in transactions, see the SQL Reference Guide.
Extended system catalogs must only be copied into new databases, and never into existing databases that contain user interface objects (such as forms or reports).
Copying extended system catalogs with the copy statement does not create new object IDs for the copied objects. If the target database already contains user interface objects, serious problems can result: different objects with the same object ID (for example, both a form and a report with the same object ID). Use the appropriate copy utility (copyform, copyrep) to copy objects to existing databases; the copy utilities generate a new object ID for each object copied into the target database.
The following extended system catalogs are used by all Ingres tools:
The ii_encodings catalog contains 4GL frames and procedures encoded into a compact and portable form. Objects in this catalog are referred to as encoded objects.
This catalog is structured as btree unique on the encode_object and encode_sequence columns:
Column Name |
Data Type |
Description |
---|---|---|
object_id |
integer |
Currently not used. Is set to either 0 or the same value as the encode_object column. |
encode_object |
integer |
The object ID for this encoded object. Various other information about this encoded object (such as name and owner) is kept in the ii_objects catalog. |
encode_sequence |
smallint |
A sequence number, starting from 0, for the rows comprising a single encoded object. Because objects, for example a 4GL frame, can be arbitrarily long, an arbitrary number of ii_encodings rows are required to encode the object. |
encode_estring |
varchar |
A segment of the encoded string. |
The ii_id catalog is a heap table containing one column with a single row. The value in this catalog is the highest object ID currently allocated in this database. For a newly created database, this value is initialized to 10000 and can grow as large as the largest positive integer value. Object IDs below 10000 are reserved for system use:
Column Name |
Data Type |
Description |
---|---|---|
object_id |
integer |
The highest current object ID in this database. |
The ii_locks catalog is used by ABF, Vision, and OpenROAD to manage concurrent user access to applications and application components (such as frames or procedures). The format of ii_locks is as follows:
Column Name |
Data Type |
Description |
---|---|---|
entity_id |
integer |
Object ID of the locked object (application or application component). |
session_id |
integer |
ID of the user session that locked the object. |
locked_by |
varchar(32) |
User ID that locked the object. |
lock_date |
char(25) |
Date locked. |
lock_type |
varchar(16) |
Type of lock: |
The ii_longremarks catalog contains the "long remarks" text associated with user interface objects. Only those objects that have an associated long remark are entered in this catalog. Consequently, unless all objects being selected have a long remark entered, joins between ii_objects and ii_longremarks must be outer joins. For an example of an outer join between the ii_objects and ii_longremarks catalogs, see Sample Queries for the Extended System Catalogs for SQL. The current implementation restricts long remarks to a single row; the sequence column is provided for a future enhancement to allow remarks of arbitrary length.
The ii_longremarks catalog is structured as btree unique on the object_id and remark_sequence columns:
Column Name |
Data Type |
Description |
---|---|---|
object_id |
integer |
Object ID of the user interface object this remark belongs to. Various other information about this object (such as name, owner and object class) is kept in the ii_objects catalog. |
remark_sequence |
integer |
A sequence number for (future) representation of multiple segments of text comprising one object's long remarks. |
long_remark |
varchar(600) |
The long remarks text associated with the object. |
remark_language |
integer |
Currently unused. |
The ii_objects catalog contains a row for every user interface object in the database. This catalog stores basic information about each object, such as name, owner, object ID, object class, and creation date.
Objects in this table often have additional information represented in rows of one or more other user interface catalogs; for example, form objects are also represented by rows in ii_forms, ii_fields, and ii_trim. In all cases, the object ID is the key column that is used to join information from multiple catalogs about a single object.
The ii_objects catalog is a btree table, keyed on the object_class, object_owner, and object_name columns. The ii_objects catalog has a secondary index, btree unique, keyed on the object_id column:
Column Name |
Data Type |
Description |
---|---|---|
object_id |
integer |
The object identifier, unique among user interface objects in the database. |
object_class |
integer |
The object's class. Tells what type of object this is (form, report, and so on). For object class definitions, see Object Classes in the ii_objects Catalog. |
object_name |
varchar(32) |
The name of the object. |
object_owner |
varchar(32) |
The object owner's user name. |
object_env |
integer |
Currently unused. |
is_current |
smallint |
Currently unused. |
short_remark |
varchar(60) |
A short descriptive remark associated with the object. |
object_language |
smallint |
Currently unused. |
create_date |
char(25) |
The time and date when the object was initially created. |
alter_date |
char(25) |
The time and date when the object, or associated information, was most recently altered or saved. |
alter_count |
integer |
A count of the number of times this object has been altered or saved. |
last_altered_by |
varchar(32) |
The name of the user who last altered or saved this object. |
Object class is a column in the ii_objects catalog. Each object class is as follows:
Object Class |
Description |
---|---|
1002 |
JoinDef |
1501 |
Generic Report |
1502 |
Report-Writer Report |
1511 |
RBF Report |
1601 |
Form |
2001 |
ABF Application |
2010 |
4GL Intermediate Language Code |
2021 |
Host Language Procedure |
2050 |
4GL Procedure |
2075 |
Database Procedure |
2110 |
Global Variable |
2120 |
Constant |
2130 |
Record Definition |
2133 |
Record Attribute |
2190 |
Undefined Procedure |
2201 |
QBFName |
2210 |
4GL Frame |
2219 |
Old 4GL Frame |
2220 |
Report Frame |
2230 |
QBF Frame |
2249 |
GBF Frame |
2250 |
Undefined Frame |
2260 |
Vision menuframe |
2261 |
Vision append frame |
2262 |
Vision update frame |
2264 |
Vision browse frame |
3001 |
ABF Form Reference |
3501 |
Dependency Type: member of |
3502 |
Dependency Type: database reference |
3503 |
Dependency Type: call with no use of return code |
3504 |
Dependency Type: call with use of return code |