1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 dcl crossref_info_record_ptr ptr;
18 dcl crossref_info_record_count fixed bin (21);
19 dcl 1 crossref_info_record based (crossref_info_record_ptr),
20 2 offset bit (18) unal,
21 2 pad bit (18) unal,
22 2 count fixed bin (21),
23 2 entry (crossref_info_record_count refer (crossref_info_record.count)) unaligned,
24 3 object_head char (1),
25 3 object char (32);
26
27 dcl crossref_info_record_objects char (33*crossref_info_record.count)
28 based (addr (crossref_info_record.entry(1)));
29 dcl OBJECT_HEAD char (1) int static options (constant) init ("^@");
30
31 dcl ATTRIBUTE_KEY_HEAD char (10) int static options (constant) init ("attribute:");
32 dcl DOMAIN_KEY_HEAD char (7) int static options (constant) init ("domain:");
33 dcl RELATION_KEY_HEAD char (9) int static options (constant) init ("relation:");
34
35
36
37
38
39
40
41
42 dcl domain_list_ptr ptr;
43 dcl domain_list_count fixed bin;
44 dcl domain_list_names char (33*domain_list.count) based (addr (domain_list.name(1)));
45 dcl 1 domain_list based (domain_list_ptr),
46 2 count fixed bin,
47 2 name (domain_list_count refer (domain_list.count))
48 char (33) unaligned,
49 2 attribute_list_ptr (domain_list_count refer (domain_list.count))
50 ptr;
51
52 dcl attribute_list_ptr ptr;
53 dcl attribute_list_count fixed bin;
54 dcl attribute_list_names char (33*attribute_list.count) based (addr (attribute_list.name(1)));
55 dcl 1 attribute_list based (attribute_list_ptr),
56 2 count fixed bin,
57 2 name (attribute_list_count refer (attribute_list.count))
58 char (33) unaligned,
59 2 domain_info_ptr (attribute_list_count refer (attribute_list.count))
60 bit (18) unal,
61 2 attribute_ptr (attribute_list_count refer (attribute_list.count))
62 ptr;
63
64 dcl relation_list_ptr ptr;
65 dcl relation_list_count fixed bin;
66 dcl relation_list_names char (33*relation_list.count) based (addr (relation_list.name (1)));
67 dcl 1 relation_list based (relation_list_ptr),
68 2 count fixed bin,
69 2 name (relation_list_count refer (relation_list.count))
70 char (33) unaligned,
71 2 relation_ptr (relation_list_count refer (relation_list.count))
72 ptr;
73
74 dcl relation_ptr ptr;
75 dcl relation_attribute_count fixed bin;
76 dcl relation_attribute_names char (33*relation.attribute_count) based (addr (relation.attribute_names (1)));
77 dcl 1 relation based (relation_ptr),
78 2 name char (32),
79 2 file_model_ptr ptr,
80 2 copy_file_model_ptr ptr,
81 2 attribute_count fixed bin,
82 2 mbz fixed bin (35),
83 2 attribute (relation_attribute_count refer (relation.attribute_count)),
84 3 flags aligned,
85 4 delete bit (1) unaligned,
86 4 new bit (1) unaligned,
87 4 part_of_key bit (1) unaligned,
88 4 to_be_deleted bit (1) unaligned,
89 4 pad bit (32) unaligned,
90 3 domain_info_ptr bit (18) aligned,
91 3 attribute_info_ptr ptr,
92 3 value_ptr ptr,
93
94 2 attribute_names (relation_attribute_count refer (relation.attribute_count))
95 char (33) unaligned;
96
97 dcl attribute_ptr ptr;
98 dcl attribute_count fixed bin;
99 dcl 1 attribute based (attribute_ptr),
100 2 count fixed bin,
101 2 relation_idx (attribute_count refer (attribute.count))
102 fixed bin;
103
104