compiler.compile("create table tab as (select rnd_symbol('s1','s2','s3', null) s1, 0.5 val, timestamp_sequence(0, "+step+") t from long_sequence("+count+")) timestamp(t) partition by DAY",sqlExecutionContext);
for(longts=0;ts<count;ts+=increment){
try(
RecordCursorFactoryfactory=compiler.compile("select sum(val) s from tab where t >= CAST("+step+" AS TIMESTAMP) AND t < CAST("+(ts*step)+" AS TIMESTAMP)",sqlExecutionContext).getRecordCursorFactory();
StringcreateSql="create table tab as (select rnd_symbol('s1','s2','s3', null) s1, 0.5 val, timestamp_sequence(0, "+step+") t from long_sequence("+count+")) timestamp(t) partition by DAY";
StringinsetSql="insert into tab select rnd_symbol('s1','s2','s3', null) s1, 0.5 val, timestamp_sequence("+count*step+", "+step+") t, 1 val2 from long_sequence("+count+")";
compiler.compile(insetSql,sqlExecutionContext);
// Move upper timestamp boundary
// [step, ts * step)
for(longts=increment;ts<2*count;ts+=increment){
try(
RecordCursorFactoryfactory=compiler.compile("select sum(val) s1, sum(val2) s2 from tab where t >= CAST("+step+" AS TIMESTAMP) AND t < CAST("+(ts*step)+" AS TIMESTAMP)",sqlExecutionContext).getRecordCursorFactory();
RecordCursorFactoryfactory=compiler.compile("select sum(val) s1, sum(val2) s2 from tab where t >= CAST("+(ts*step)+" AS TIMESTAMP) AND t < CAST("+((2*count-1)*step)+" AS TIMESTAMP)",sqlExecutionContext).getRecordCursorFactory();