22%let testcaslib=Public;
25 table.caslibInfo result=r / ;
27 do row over r.CASLibInfo;
28 if upcase(row.Name)=upcase(
"&testcaslib") then found=1;
31 print
"ERROR: caslib &testcaslib not available";
35%put NOTE: Using testcaslib=&testcaslib;
42 load data=sashelp.baseball
43 outcaslib=
"&testcaslib" casout=
"&tab1" replace;
44 save casdata=
"&tab1" incaslib=
"&testcaslib"
45 casout=
"&tab1..sashdat" outcaslib=
"&testcaslib" replace;
46 droptable casdata=
"&tab1" incaslib=
"&testcaslib" quiet;
49libname mylib cas caslib=
"&testcaslib";
53%put TEST 1 - load a table that is not in memory;
59 table.tableExists result=r /
60 caslib=
"&testcaslib" name=
"&tab1";
61 if r.exists > 0 then call symputx('_tabexists
','1');
65 iftrue=(&_tabexists=0),
66 desc=Check table is not in memory before mv_castabload
69%mv_castabload(lib=mylib, table=&tab1, mdebug=1)
73 table.tableExists result=r /
74 caslib=
"&testcaslib" name=
"&tab1";
75 if r.exists > 0 then call symputx('_tabexists
','1');
79 iftrue=(&_tabexists=1),
80 desc=Check table is in memory after mv_castabload
85%put TEST 2 - reload fetches a fresh copy and discards in-memory changes;
96 load data=work.extra casout=
"&tab1"
97 outcaslib=
"&testcaslib" append;
102 select count(*) into :_modified
104 where name='TESTROW';
108 iftrue=(&_modified=1),
109 desc=Check sentinel row is present in memory before reload
114 droptable casdata=
"&tab1" incaslib=
"&testcaslib" quiet;
115 droptable casdata=
"&tab1" incaslib=
"&testcaslib" quiet;
118%mp_assertscope(SNAPSHOT)
120%mv_castabload(lib=mylib, table=&tab1, mdebug=1)
122%mp_assertscope(COMPARE,
123 desc=Check mv_castabload does not leak macro variables into GLOBAL scope
128 select count(*) into :_after
130 where name='TESTROW';
135 desc=Check sentinel row is absent after reload from source
145 droptable casdata=
"&tab1" incaslib=
"&testcaslib" quiet;
146 droptable casdata=
"&tab1" incaslib=
"&testcaslib" quiet;
147 deletesource casdata=
"&tab1..sashdat"
148 incaslib=
"&testcaslib" quiet;