18length name $8 sex $1 age height weight 8;
20input Name:$char. Sex :$char. Age Height Weight;
44libname permlib (work);
46%mddl_dc_locktable(libds=permlib.locktable)
47%mddl_dc_filtersummary(libds=permlib.filtsum)
48%mddl_dc_filterdetail(libds=permlib.filtdet)
49%mddl_dc_maxkeytable(libds=permlib.maxkey)
53 infile datalines4 dsd;
54 input GROUP_LOGIC:$3. SUBGROUP_LOGIC:$3. SUBGROUP_ID:8. VARIABLE_NM:$32.
55 OPERATOR_NM:$12. RAW_VALUE:$4000.;
59AND,OR,2,Name,NOT IN,"('Jane','Alfred')"
60AND,OR,2,Weight,>=,77.7
61AND,OR,2,Weight,NE,77.7
62AND,AND,3,age,NOT IN,"(.a,.b,.)"
63AND,AND,3,age,NOT IN,"(.A)"
64AND,AND,4,Name,=,"'Jeremiah'"
68%mp_filterstore(libds=work.class,
70 filter_summary=permlib.filtsum,
71 filter_detail=permlib.filtdet,
72 lock_table=permlib.locktable,
73 maxkeytable=permlib.maxkey,
74 outresult=work.result,
78%mp_assert(iftrue=(&syscc=0),
79 desc=Ensure macro runs without errors,
80 outds=work.test_results
83%mp_assertdsobs(permlib.filtsum,
86 outds=work.test_results
90select max(filter_rk) into: test1 from work.result;
91%mp_assert(iftrue=(&test1=1),
92 desc=Ensure filter rk is correct,
93 outds=work.test_results
97%mp_filterstore(libds=work.class,
99 filter_summary=permlib.filtsum,
100 filter_detail=permlib.filtdet,
101 lock_table=permlib.locktable,
102 maxkeytable=permlib.maxkey,
103 outresult=work.result,
108%mp_assertdsobs(permlib.filtsum,
109 desc=Initial query - same obs,
111 outds=work.test_results
115select max(filter_rk) into: test2 from work.result;
116%mp_assert(iftrue=(&test2=1),
117 desc=Ensure filter rk is correct for second run,
118 outds=work.test_results