Previous Topic

Next Topic

Extended System Catalogs

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.

Previous Topic

Next Topic

Organization of Extended System Catalogs

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
Base product catalogs

Required by:
Ingres
Ingres Vision

ii_abfclasses
ii_abfdependencies
ii_abfobjects
ii_encoded_forms
ii_fields
ii_forms
ii_gropts
ii_joindefs
ii_qbfnames
ii_rcommands
ii_reports
ii_sequence_values
ii_trim

APPLICATION_DEVELOPMENT_2
Catalogs for OpenROAD

Required by:
OpenROAD

ii_applications
ii_components
ii_dependencies
ii_incl_apps
ii_srcobj_encoded
ii_stored_bitmaps
ii_stored_strings

APPLICATION_DEVELOPMENT_3

Required by:
Ingres Vision

ii_framevars
ii_menuargs
ii_vqjoins
ii_vqtabcols
ii_vqtables

CORE
Catalogs for Ingres and Ingres tools base product

Required by:
All products

ii_app_cntns_comp
ii_client_dep_mod
ii_dict_modules
ii_encodings
ii_entities
ii_id
ii_locks
ii_longremarks
ii_objects

DATA_MODEL
catalogs for distributed Ingres

Required by:
INGRES/DBD version 1

ii_atttype
ii_atttype_version
ii_defaults
ii_databases
ii_dbd_acl
ii_dbd_identifiers
ii_dbd_locations
ii_dbd_rightslist
ii_dbd_table_char
ii_domains
ii_enttype
ii_joinspecs
ii_key_info
ii_key_map
ii_limits
ii_rel_cncts_ent
ii_reltype
ii_sqlatts
ii_sqltables

METASCHEMA

Required by:
INGRES/DBD version 2

ii_atttype
ii_defaults
ii_databases
ii_domains
ii_enttype
ii_joinspecs
ii_key_info
ii_key_map
ii_limits
ii_rel_cncts_ent
ii_reltype
ii_sqlatts
ii_sqltables

PHYSICAL_DATA_MODELLING

Required by
INGRES/DBD version 2

ii_dbd_acl
ii_dbd_identifiers
ii_dbd_locations
ii_dbd_rightslist
ii_dbd_table_char

Previous Topic

Next Topic

Data Dictionary Catalogs

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.

Previous Topic

Next Topic

Object IDs in Extended System Catalogs

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.

Previous Topic

Next Topic

Copying the Extended System Catalogs

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.

Previous Topic

Next Topic

Catalogs Shared by All Ingres Tools

The following extended system catalogs are used by all Ingres tools:

Previous Topic

Next Topic

ii_encodings Catalog

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
(1990)

A segment of the encoded string.

Previous Topic

Next Topic

ii_id Catalog

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.

Previous Topic

Next Topic

ii_locks Catalog

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:
write if an application component is locked.
refresh if a concurrent application user has changed the application flow diagram (possibly affecting other users' screens).
entry if no change to flow diagram.

Previous Topic

Next Topic

ii_longremarks Catalog

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.

Previous Topic

Next Topic

ii_objects Catalog

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.

Previous Topic

Next Topic

Object Classes in the ii_objects Catalog

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


© 2007 Ingres Corporation. All rights reserved.