1 /* BEGIN INCLUDE FILE - dm_im_key.incl.pl1 */
 2 
 3 /* DESCRIPTION:
 4 
 5           There are two formats for keys, the leaf_key structure and the
 6      branch_key structure. The branch_key has two more pieces of information
 7      than the leaf_key. One is the control interval id of the
 8      node for all keys greater than the value of the branch key.  The other is
 9      the number of fields for which there are values in the "string" portion
10      of the key.  This allows for the storing of only as much data as is needed
11      to discriminate between the children being split by the branch key.
12 */
13 
14 /* HISTORY:
15 
16 Written by Lindsey Spratt, 03/29/82.
17 Modified:
18 10/25/84 by Lindsey L. Spratt:  Added history and description sections.
19 */
20 
21 /* format: style2,ind3 */
22      dcl     key_string             bit (key_string_length) based (key_string_ptr);
23      dcl     key_string_length      fixed bin (35);
24      dcl     key_string_ptr         ptr;
25 
26      dcl     1 leaf_key             based (leaf_key_ptr) unaligned,
27                2 string             bit (lk_string_length) unal;
28 
29      dcl     lk_string_length       fixed bin (35);
30      dcl     leaf_key_ptr           ptr;
31 
32      dcl     1 branch_key           based (branch_key_ptr) unaligned,
33                2 branch_id          fixed bin (24) unsigned unaligned,
34                2 last_field_idx     fixed bin (12) unaligned unsigned,
35                2 string             bit (bk_string_length) unal;
36 
37      dcl     BRANCH_KEY_HEADER_LENGTH_IN_BITS
38                                     init (36) fixed bin (35) internal static options (constant);
39      dcl     bk_string_length       fixed bin (35);
40      dcl     branch_key_ptr         ptr;
41 
42 /* END INCLUDE FILE - dm_im_key.incl.pl1 */