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 */