1 /* BEGIN mdbm_comp_val_list.incl.pl1 -- jaw, 2/23/79 */ 2 3 4 /****^ HISTORY COMMENTS: 5 1) change(85-11-17,Dupuis), approve(85-12-16,MCR7314), 6 audit(86-02-04,Brunelle), install(86-02-05,MR12.0-1013): 7 This entry is being made to cover the change made on 85-10-13 by John 8 Hergert. (see mrds #138, phx19901) 9 END HISTORY COMMENTS */ 10 11 /* HISTORY: 12 Modified by Al Kepner, June 22, 1979 to provide for comparing two 13 values from the same tuple. 14 15 82-10-12 Davids: changed rel_id from bit (12) to bit (36) aligned. 16 17 82-10-26 Woodka: deleted fields attr_pos_ind and attr_pos_ind2, 18 no longer needed. 19 20 84-08-07 Thanh Nguyen: Added c_ai_ptr and c_ai_ptr2 (ptr for 21 rm_attr_info). These ptrs will be needed for checking of decoded proc 22 if we only have an attribute and exp_ptr is null. 23 24 85-10-13 John Hergert: removed c_ai_ptr for fixes for TRs phx19901 25 and phx11536. c_ai_ptr2 is now used as a flag to tell mu_retrieve 26 that the first comaparand is an expression and the second one should 27 be decoded. 28 */ 29 30 dcl 1 comp_val_list aligned based (cvl_ptr), /* compar. list for hash search */ 31 2 nvals fixed bin, 32 2 rel_id bit (36) aligned, /* id of relation being searched */ 33 2 val (cvl_nvals_init refer (comp_val_list.nvals)), 34 3 match_ptr ptr, /* pointer to second comparison value 35 when it is not in the current tuple 36 or null (if both values are from the current tuple.) */ 37 3 exp_ptr ptr, /* to expr to be evaluated, or null */ 38 3 exp_ptr2 ptr, /* to expr to be evaluated, or null */ 39 3 c_ai_ptr2 ptr, /* to rm_attr_info, and only be used when exp_ptr2 is not null. */ 40 3 erslt_ptr ptr, /* to result of first expression */ 41 3 erslt_ptr2 ptr, /* to result of second expression */ 42 3 op fixed bin, /* 1 => = 43 2 => ^= 44 3 => < 45 4 => <= 46 5 => > 47 6 => >= */ 48 3 desc1 bit (36), /* descriptor for first comparison value */ 49 3 desc2 bit (36), /* descriptor for second comparison value */ 50 3 attr_ind fixed bin, /* attr. index for first value */ 51 3 attr_ind2 fixed bin, /* attr. index for 2nd value in same tuple or 0 */ 52 3 pad bit (36); /* fill to double word boundary. */ 53 54 dcl cvl_ptr ptr int automatic init (null ()); 55 dcl cvl_nvals_init fixed bin; 56 57 dcl ((CVL_EQ init (1)), 58 (CVL_NE init (2)), 59 (CVL_LT init (3)), 60 (CVL_LE init (4)), 61 (CVL_GT init (5)), 62 (CVL_GE init (6))) fixed bin int static options (constant); 63 64 dcl 1 cvl_array aligned based (cvla_ptr), /* array of lists */ 65 2 nlists fixed bin, 66 2 list_ptr (cvla_nlists_init refer (cvl_array.nlists)) ptr; 67 68 dcl cvla_nlists_init fixed bin; 69 dcl cvla_ptr ptr int automatic init (null ()); 70 71 /* END mdbm_comp_val_list.incl.pl1 */ 72