Hi,
I have a mal function defined as following:
function halfofyear(pdate:bat[:date]):bat[:int];
hym:= batmtime.month(pdate);
hy:= batcalc.-(hym, 1, nil:bat);
hy:= batcalc./(hy, 6, nil:bat);
return halfofyear:= batcalc.+(hy, 1, nil:bat);
end halfofyear;
and I am calling it twice on 2 date columns:
select halfofyear(colDate1), halfofyear(colDate2) from table.
My concern is the scope of variables defined (hym, hy), as I was expecting
to have unique naming when executing. Is it a guarantee that internally
they are different variables or these are shared across the calls from the
same query.
bellow is the trace produced:
hym=[57530]:bat[:int] := batmtime.month(pdate=[57530]:bat[:date]);
hym=[57530]:bat[:int] := batmtime.month(pdate=[57530]:bat[:date]);
hy=[57530]:bat[:int] := batcalc.-(hym=[57530]:bat[:int], 1:int,
nil:BAT);
hy=[57530]:bat[:int] := batcalc.-(hym=[57530]:bat[:int], 1:int,
nil:BAT);
hy=[57530]:bat[:int] := batcalc./(hy=[57530]:bat[:int], 6:int, nil:BAT);
hy=[57530]:bat[:int] := batcalc./(hy=[57530]:bat[:int], 6:int, nil:BAT);
return halfofyear=[57530]:bat[:int] := batcalc.+(hy=[57530]:bat[:int],
1:int, nil:BAT);
return halfofyear=nil:bat[:int] := batcalc.+(hy=nil:bat[:int], 1:int,
nil:BAT);
function batudf.halfofyear(pdate:bat[:date]):bat[:int];
X_22=[57530]:bat[:int] := batudf.halfofyear(X_20=[57530]:bat[:date]);
return halfofyear=[57530]:bat[:int] := batcalc.+(hy=[57530]:bat[:int],
1:int, nil:BAT);
return halfofyear=nil:bat[:int] := batcalc.+(hy=nil:bat[:int], 1:int,
nil:BAT);
function batudf.halfofyear(pdate:bat[:date]):bat[:int];
X_25=[57530]:bat[:int] := batudf.halfofyear(X_21=[57530]:bat[:date]);
barrier X_76=false:bit := language.dataflow();
X_26=33:int := sql.resultSet(X_27=[2]:bat[:str], X_28=[2]:bat[:str],
X_29=[2]:bat[:str], X_30=[2]:bat[:int], X_31=[2]:bat[:int],
X_22=[57530]:bat[:int], X_25=[57530]:bat[:int]);
Thanks.