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