data foo.a;
do i=1 to 100;
do j=1 to 100;
do k=1 to 100;
m=mod(i,3);
output;
end;
end;
end;
run;
proc datasets lib=foo;
modify a;
index create ijk = (i j k);
index create j;
index create m;
quit;
whinit: WHERE ((I=1) and (J=2) and (M=4))
whinit: wh-tree presented
/-NAME = [I]
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-NAME = [J]
|--CEQ----|
|
\-LITN = [2]
|
/-NAME = [M]
\-CEQ----|
\-LITN = [4]
whinit: wh-tree after split
--[empty]
whinit: pruning INDEX node which is trivially FALSE
/-NAME = [M] INDEX M (M)
--CEQ----|
\-LITN = [4]
whinit: INDEX tree evaluated to FALSE
whinit returns: FALSE
whinit: WHERE (I in (1, 2, 3) and J in (4, 5, 6, 7) and (K>8) and (M=2))
whinit: wh-tree presented
/-NAME = [I]
/-IN-----|
|
| /-LITN = [1]
|
\-SET----|
|
|--LITN = [2]
|
\-LITN = [3]
--LAND---|
|
/-NAME = [J]
|--IN-----|
|
| /-LITN = [4]
|
\-SET----|
|
|--LITN = [5]
|
|--LITN = [6]
|
\-LITN = [7]
|
/-NAME = [K]
|--CGT----|
|
\-LITN = [8]
|
/-NAME = [M]
\-CEQ----|
\-LITN = [2]
whinit: SBM-INDEX M uses 60% of segs(WITHIN maxsegratio 100%)
whinit: wh-tree after split
/-NAME = [K]
--CGT----|
\-LITN = [8]
whinit: INDEX tree after split
/-NAME = [I] <1>SBM-INDEX IJK (I,J)
/-IN-----|
|
| /-LITN = [1]
|
\-SET----|
|
|--LITN = [2]
|
\-LITN = [3]
--LAND---|
|
/-NAME = [J]
|--IN-----|
|
| /-LITN = [4]
|
\-SET----|
|
|--LITN = [5]
|
|--LITN = [6]
|
\-LITN = [7]
|
/-NAME = [M] <2>SBM-INDEX M (M)
\-CEQ----|
\-LITN = [2]
whinit returns: ALL EVAL1(w/SEGLIST) EVAL2 whinit: WHERE ((I=1) and (J>5) and (MOD(K, 3)=2))
whinit: wh-tree presented
/-NAME = [I]
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-NAME = [J]
|--CGT----|
|
\-LITN = [5]
|
/-FUNC = [MOD()]
|
/-FLST---|
|
| |--NAME = [K]
|
| \-LITN = [3]
\-CEQ----|
\-LITN = [2]
whinit: wh-tree after split
/-FUNC = [MOD()]
/-FLST---|
|
|--NAME = [K]
|
\-LITN = [3]
--CEQ----|
\-LITN = [2]
whinit: SBM-INDEX IJK uses 1% of sges(WITHIN maxsegratio 75%)
whinit: SBM-INDEX J uses at least 76% of segs(EXCEEDS maxsegratio 75%)
whinit: INDEX tree after split
/-NAME = [I] <1>SBM-INDEX IJK (I)
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-NAME = [J] <2>SBM-INDEX J (J)
\-CGT----|
\-LITN = [5]
whinit returns: ALL EVAL1(w/SEGLIST) EVAL2 whinit: WHERE ((I=1) and (J>5) and (MOD(K, 3)=2))
whinit: wh-tree presented
/-NAME = [I]
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-NAME = [J]
|--CGT----|
|
\-LITN = [5]
|
/-FUNC = [MOD()]
|
/-FLST---|
|
| |--NAME = [K]
|
| \-LITN = [3]
\-CEQ----|
\-LITN = [2]
whinit: wh-tree after split
/-NAME = [I]
/-CEQ----|
|
\-LITN = [1]
--LAND---|
|
/-FUNC = [MOD()]
|
/-FLST---|
|
| |--NAME = [K]
|
| \-LITN = [3]
\-CEQ----|
\-LITN = [2]
whinit: SBM_INDEX J uses at least 76% of segs (EXCEEDS maxsegratio 75%)
whinit: checking all hybrid segments
whinit: INDEX tree after split
/-NAME = [J] <1>SBM-INDEX J (J)
--CGT----|
\-LITN = [5]
whinit returns: ALL EVAL1 EVAL2