1 /*   BEGIN INCLUDE  vrm_rel_desc.incl.pl1                      */
 2 
 3 /* 83-05-26 Roger Lackey : Added vrm_attr_info.key_head bit for relation_cursors */
 4 
 5 dcl 1 vrm_rel_desc based (vrm_rel_desc_ptr),
 6     2 record_id bit (12) unal,                              /* Distinguish us from tuples and collection records */
 7     2 version char (8),                                     /* Version of this structure */
 8     2 file_id bit (7),                                      /* Value of file id from model */
 9     2 rel_id bit (12),                                      /* Relation id */
10     2 switches,
11       3 MRDS_compatible bit (1) unal,                       /* For pre-relation_manager_ MRDS */
12       3 stationary_records
13      bit (1) unal,                                          /* On = stationary */
14       3 indexed bit (1) unal,                               /* This relation has attributes with secondary indices */
15       3 pad bit (33) unal,
16     2 var_offset fixed bin (35),                            /* Position of first varying attr */
17     2 maximum_data_length
18      fixed bin (35),                                        /* Maximum size of tuple in characters */
19     2 number_primary_key_attrs
20      fixed bin,                                             /* Number of attributes which make up the primary key */
21     2 number_sec_indexes fixed bin,                         /* Number of attributes which have a secondary index */
22     2 last_var_attr_no fixed bin,                           /* Attr index of last varying attribute */
23     2 number_var_attrs fixed bin,                           /* Number of varying attributes */
24     2 number_attrs fixed bin,                               /* Number of attribute in rel */
25     2 attr (vrd_no_of_attrs                                 /* Description of each attribute */
26      refer (vrm_rel_desc.number_attrs)) aligned like vrm_attr_info;
27 
28 dcl 1 vrm_attr_info based (vrm_attr_info_ptr),
29                                                             /* Attribute specific info */
30     2 name char (32),                                       /* Name of the attribute */
31     2 descriptor bit (36) aligned,                          /* domain descriptor */
32     2 varying bit (1) unal,                                 /* ON = This is a varying string */
33     2 key_head bit (1) unal,                                /* ON = This attr can be a keyhead */
34     2 primary_key_attr bit (1) unal,                        /* ON = This is a primary key attribute */
35     2 pad bit (15) unal,                                    /* unused */
36     2 index_collextion_ix fixed bin (17) unal,              /* Index into vrm_open_info.index_collection array if key_head is on */
37     2 bit_length fixed bin (35),                            /* Maximum bit length of tuple */
38     2 bit_offset fixed bin (35);                            /* Offset in tuple if fixed, index to offset in tuple if varying */
39 
40 
41 dcl  vrm_rel_desc_ptr pointer;
42 dcl  vrd_no_of_attrs fixed bin;
43 dcl  VRM_REL_DESC_RECORD_ID bit (12) unal int static options (constant) init ("100000000000"b);
44 dcl  VRM_REL_DESC_VERSION_1 char (8) int static options (constant) init ("       1");
45 dcl  vrm_attr_info_ptr pointer;
46 dcl  VRM_REL_DESC_KEY char (256) varying int static options (constant) init ("@relation_description");
47 
48 /*   END INCLUDE  vrm_rel_desc.incl.pl1              */