1 /* BEGIN mdbm_rm_rel_array.incl.pl1 -- jaw, 8/9/78 */
 2 
 3 /* WARNING
 4           If the rm_rel_array structure is changed then the mrds_data_
 5           item saved_res_version MUST be incremented to invalidate all
 6           existing saved resultants
 7 */
 8 
 9 /* HISTORY:
10 
11    81-05-28 Jim Gray : added  model_name  and  file_id  as  part  of
12    combining   funtions   of   file_array  and  rel_array  into  one
13    structure. This will only allow 1 relation per file model now.
14    Also changed structure to allow more efficient searching
15    via and index builtin, rather than a programmed loop.
16    Search is now I = index(string(rm_rel_array.name), "!" || in_name)
17    with I = ((I - 1) / 33) + 1 to convert from a char to array index.
18 
19 */
20 
21 
22 /* this structure is allocated in the static are of the structure
23    in  mdbm_rm_db_info.incl.pl1,  the secure portion of the database
24    resultant  model  upon  opening  the  database.  two  copies  are
25    allocated,  one for temporary relations, initially empty, and one
26    for relations known to the opener, which has a length  sufficient
27    for  all  relations known to the user, but whose names, etc. will
28    not be filled  in  until  the  file  containing  that  particular
29    relation  is readied. the rm_db_info structure contains a pointer
30    to the rel_arrays, and the array entries, when  "readied",  point
31    to  the  mdbm_rm_rel_info.incl.pl1  structures  containing  model
32    information about the relation, it's attributes, etc. */
33 
34 dcl 1 rm_rel_array aligned based (rmra_ptr),                /* array of open relations */
35     2 num_rels fixed bin,                                   /* no. rels in db. */
36     2 name (1:rm_num_rels_init refer (rm_rel_array.num_rels)) unal,
37       3 mark char (1) unal,                                 /* separator character = "!" */
38       3 submodel char (32) unal,                            /* name of relation is submodel view, model opening => model name */
39     2 rel_data (rm_num_rels_init refer (rm_rel_array.num_rels)),
40       3 model_name char (30),                               /* name of relation in model */
41       3 ri_ptr ptr unal ;                                   /* pointer to rm_rel_info */
42 
43 dcl  rmra_ptr ptr;
44 dcl  rm_num_rels_init fixed bin;
45 
46 /* END mdbm_rm_rel_array.incl.pl1 */
47 
48