mirror of
https://github.com/sasjs/core.git
synced 2026-01-16 04:50:05 +00:00
fix: generating all.sas and fixing failing test
This commit is contained in:
99
all.sas
99
all.sas
@@ -5826,6 +5826,105 @@ options varlenchk=&optval;
|
|||||||
%put &sysmacroname: &outds is %mf_getfilesize(libds=&outds,format=yes);
|
%put &sysmacroname: &outds is %mf_getfilesize(libds=&outds,format=yes);
|
||||||
|
|
||||||
%mend mp_ds2squeeze;/**
|
%mend mp_ds2squeeze;/**
|
||||||
|
@file
|
||||||
|
@brief Export dataset metadata to a single output table
|
||||||
|
@details Exports the dataset attributes and enginehost information, then
|
||||||
|
converts the datasets into a single output table in the following format:
|
||||||
|
|
||||||
|
|ODS_TABLE:$10.|NAME:$100.|VALUE:$1000.|
|
||||||
|
|---|---|---|
|
||||||
|
|`ATTRIBUTES `|`Data Set Name `|`SASHELP.CLASS `|
|
||||||
|
|`ATTRIBUTES `|`Observations `|`19 `|
|
||||||
|
|`ATTRIBUTES `|`Member Type `|`DATA `|
|
||||||
|
|`ATTRIBUTES `|`Variables `|`5 `|
|
||||||
|
|`ATTRIBUTES `|`Engine `|`V9 `|
|
||||||
|
|`ATTRIBUTES `|`Indexes `|`0 `|
|
||||||
|
|`ATTRIBUTES `|`Created `|`06/08/2020 00:59:14 `|
|
||||||
|
|`ATTRIBUTES `|`Observation Length `|`40 `|
|
||||||
|
|`ATTRIBUTES `|`Last Modified `|`06/08/2020 00:59:14 `|
|
||||||
|
|`ATTRIBUTES `|`Deleted Observations `|`0 `|
|
||||||
|
|`ATTRIBUTES `|`Protection `|`. `|
|
||||||
|
|`ATTRIBUTES `|`Compressed `|`NO `|
|
||||||
|
|`ATTRIBUTES `|`Data Set Type `|`. `|
|
||||||
|
|`ATTRIBUTES `|`Sorted `|`NO `|
|
||||||
|
|`ATTRIBUTES `|`Label `|`Student Data `|
|
||||||
|
|`ATTRIBUTES `|`Data Representation `|`SOLARIS_X86_64, LINUX_X86_64, ALPHA_TRU64, LINUX_IA64 `|
|
||||||
|
|`ATTRIBUTES `|`Encoding `|`us-ascii ASCII (ANSI) `|
|
||||||
|
|`ENGINEHOST `|`Data Set Page Size `|`65536 `|
|
||||||
|
|`ENGINEHOST `|`Number of Data Set Pages `|`1 `|
|
||||||
|
|`ENGINEHOST `|`First Data Page `|`1 `|
|
||||||
|
|`ENGINEHOST `|`Max Obs per Page `|`1632 `|
|
||||||
|
|`ENGINEHOST `|`Obs in First Data Page `|`19 `|
|
||||||
|
|`ENGINEHOST `|`Number of Data Set Repairs `|`0 `|
|
||||||
|
|`ENGINEHOST `|`Filename `|`/opt/sas/sas9/SASHome/SASFoundation/9.4/sashelp/class.sas7bdat `|
|
||||||
|
|`ENGINEHOST `|`Release Created `|`9.0401M7 `|
|
||||||
|
|`ENGINEHOST `|`Host Created `|`Linux `|
|
||||||
|
|`ENGINEHOST `|`Inode Number `|`28314616 `|
|
||||||
|
|`ENGINEHOST `|`Access Permission `|`rw-r--r-- `|
|
||||||
|
|`ENGINEHOST `|`Owner Name `|`sas `|
|
||||||
|
|`ENGINEHOST `|`File Size `|`128KB `|
|
||||||
|
|`ENGINEHOST `|`File Size (bytes) `|`131072 `|
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
%mp_dsmeta(work.sashelp,outds=work.mymeta)
|
||||||
|
proc print data=work.mymeta;
|
||||||
|
run;
|
||||||
|
|
||||||
|
@param libds The library.dataset to export the metadata for
|
||||||
|
@param outds= (work.dsmeta) The output table to contain the metadata
|
||||||
|
|
||||||
|
<h4> Related Files </h4>
|
||||||
|
@li mp_dsmeta.test.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mp_dsmeta(libds,outds=work.dsmeta);
|
||||||
|
|
||||||
|
%local ds1 ds2;
|
||||||
|
data;run; %let ds1=&syslast;
|
||||||
|
data;run; %let ds2=&syslast;
|
||||||
|
|
||||||
|
/* setup the ODS capture */
|
||||||
|
ods output attributes=&ds1 enginehost=&ds2;
|
||||||
|
|
||||||
|
/* export the metadata */
|
||||||
|
proc contents data=&libds;
|
||||||
|
run;
|
||||||
|
|
||||||
|
/* load it into a single table */
|
||||||
|
data &outds (keep=ods_table name value);
|
||||||
|
length ods_table $10 name label2 label1 label $100
|
||||||
|
value cvalue cvalue1 cvalue2 $1000
|
||||||
|
nvalue nvalue1 nvalue2 8;
|
||||||
|
if _n_=1 then call missing (of _all_);
|
||||||
|
* putlog (_all_)(=);
|
||||||
|
set &ds1 (in=atrs) &ds2 (in=eng);
|
||||||
|
if atrs then do;
|
||||||
|
ods_table='ATTRIBUTES';
|
||||||
|
name=coalescec(label1,label);
|
||||||
|
value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));
|
||||||
|
output;
|
||||||
|
if label2 ne '' then do;
|
||||||
|
name=label2;
|
||||||
|
value=coalescec(cvalue2,put(nvalue2,best.));
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
else if eng then do;
|
||||||
|
ods_table='ENGINEHOST';
|
||||||
|
name=coalescec(label1,label);
|
||||||
|
value=coalescec(cvalue1,cvalue,put(coalesce(nvalue1,nvalue),best.));
|
||||||
|
output;
|
||||||
|
end;
|
||||||
|
run;
|
||||||
|
|
||||||
|
proc sql;
|
||||||
|
drop table &ds1, &ds2;
|
||||||
|
|
||||||
|
%mend mp_dsmeta;
|
||||||
|
|
||||||
|
/**
|
||||||
@file
|
@file
|
||||||
@brief Checks an input filter table for validity
|
@brief Checks an input filter table for validity
|
||||||
@details Performs checks on the input table to ensure it arrives in the
|
@details Performs checks on the input table to ensure it arrives in the
|
||||||
|
|||||||
@@ -67,7 +67,8 @@ run;
|
|||||||
|
|
||||||
/* load it into a single table */
|
/* load it into a single table */
|
||||||
data &outds (keep=ods_table name value);
|
data &outds (keep=ods_table name value);
|
||||||
length ods_table $10 name label1 label $100 value cvalue1 cvalue $1000
|
length ods_table $10 name label2 label1 label $100
|
||||||
|
value cvalue cvalue1 cvalue2 $1000
|
||||||
nvalue nvalue1 nvalue2 8;
|
nvalue nvalue1 nvalue2 8;
|
||||||
if _n_=1 then call missing (of _all_);
|
if _n_=1 then call missing (of _all_);
|
||||||
* putlog (_all_)(=);
|
* putlog (_all_)(=);
|
||||||
|
|||||||
@@ -107,4 +107,4 @@
|
|||||||
"contextName": "SAS Job Execution compute context"
|
"contextName": "SAS Job Execution compute context"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ run;
|
|||||||
%mp_assertscope(COMPARE)
|
%mp_assertscope(COMPARE)
|
||||||
|
|
||||||
proc sql noprint;
|
proc sql noprint;
|
||||||
select count(*) into nobs from work.test;
|
select count(*) into: nobs from work.test;
|
||||||
select count(distinct ods_table) into: tnobs from work.test;
|
select count(distinct ods_table) into: tnobs from work.test;
|
||||||
|
|
||||||
%mp_assert(
|
%mp_assert(
|
||||||
|
|||||||
Reference in New Issue
Block a user