提交 7130d3de 编写于 作者: S shenglian zhou

add project for scalar(interp) query and enhance test case

上级 f139195f
......@@ -567,6 +567,10 @@ SArray* createExecOperatorPlan(SQueryAttr* pQueryAttr) {
} else if (pQueryAttr->pointInterpQuery) {
op = OP_TimeEvery;
taosArrayPush(plan, &op);
if (pQueryAttr->pExpr2 != NULL) {
op = OP_Project;
taosArrayPush(plan, &op);
}
} else if (pQueryAttr->interval.interval > 0) {
if (pQueryAttr->stableQuery) {
op = OP_MultiTableTimeInterval;
......
此差异已折叠。
sleep 100
sql connect
sql use db
print execute sql select abs(stb1.c4),abs(stba.c5) from stb1,stba where stb1.t1=stba.t1 and stb1.ts=stba.ts;
sql select abs(stb1.c4),abs(stba.c5) from stb1,stba where stb1.t1=stba.t1 and stb1.ts=stba.ts;
if $data00 != @1@ then
return -1
endi
if $data01 != @1@ then
return -1
endi
if $data10 != NULL then
return -1
endi
if $data11 != @2@ then
return -1
endi
if $data20 != @2@ then
return -1
endi
if $data21 != @3@ then
return -1
endi
if $data30 != NULL then
return -1
endi
if $data31 != @4@ then
return -1
endi
if $data40 != @4@ then
return -1
endi
if $data41 != @5@ then
return -1
endi
if $data50 != @2147483647@ then
return -1
endi
if $data51 != @6@ then
return -1
endi
if $data60 != @2147483647@ then
return -1
endi
if $data61 != @7@ then
return -1
endi
print execute sql select abs(c4) as a from stb1 union all select abs(c5) as a from stba;
sql select abs(c4) as a from stb1 union all select abs(c5) as a from stba;
if $data00 != @1@ then
return -1
endi
if $data10 != NULL then
return -1
endi
if $data20 != @2@ then
return -1
endi
if $data30 != NULL then
return -1
endi
if $data40 != @4@ then
return -1
endi
if $data50 != @2147483647@ then
return -1
endi
if $data60 != @2147483647@ then
return -1
endi
if $data70 != @1@ then
return -1
endi
if $data80 != @2@ then
return -1
endi
if $data90 != @2@ then
return -1
endi
print execute sql select abs(c2) from stba;
sql select abs(c2) from stba;
if $data00 != @1@ then
return -1
endi
if $data10 != @2@ then
return -1
endi
if $data20 != @3@ then
return -1
endi
if $data30 != @4@ then
return -1
endi
if $data40 != @5@ then
return -1
endi
if $data50 != @6@ then
return -1
endi
if $data60 != @7@ then
return -1
endi
if $data70 != @8@ then
return -1
endi
if $data80 != @9@ then
return -1
endi
if $data90 != @0@ then
return -1
endi
print execute sql select abs(min(c2)) from tba1;
sql select abs(min(c2)) from tba1;
if $data00 != @0@ then
return -1
endi
print execute sql select abs(max(c2)) from tba1;
sql select abs(max(c2)) from tba1;
if $data00 != @9@ then
return -1
endi
print execute sql select abs(count(c2)) from tba1;
sql select abs(count(c2)) from tba1;
if $data00 != @30@ then
return -1
endi
print execute sql select abs(sum(c2)) from tba1;
sql select abs(sum(c2)) from tba1;
if $data00 != @135@ then
return -1
endi
print execute sql select abs(avg(c2)) from tba1;
sql select abs(avg(c2)) from tba1;
if $data00 != @4.500000000@ then
return -1
endi
print execute sql select abs(percentile(c2, 10)) from tba1;
sql select abs(percentile(c2, 10)) from tba1;
if $data00 != @0.900000000@ then
return -1
endi
print execute sql select abs(apercentile(c2, 10)) from tba1;
sql select abs(apercentile(c2, 10)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select abs(stddev(c2)) from tba1;
sql select abs(stddev(c2)) from tba1;
if $data00 != @2.872281323@ then
return -1
endi
print execute sql select abs(spread(c2)) from tba1;
sql select abs(spread(c2)) from tba1;
if $data00 != @9.000000000@ then
return -1
endi
print execute sql select abs(twa(c2)) from tba1;
sql select abs(twa(c2)) from tba1;
if $data00 != @4.637931034@ then
return -1
endi
print execute sql select abs(leastsquares(c2, 1, 1)) from tba1;
sql_error select abs(leastsquares(c2, 1, 1)) from tba1;
print execute sql select abs(interp(c2)) from tba1 every(1s)
sql select abs(interp(c2)) from tba1 every(1s)
if $data00 != @21-11-11 09:00:00.000@ then
return -1
endi
if $data01 != @1@ then
return -1
endi
if $data10 != @21-11-11 09:00:01.000@ then
return -1
endi
if $data11 != @2@ then
return -1
endi
if $data20 != @21-11-11 09:00:02.000@ then
return -1
endi
if $data21 != @3@ then
return -1
endi
if $data30 != @21-11-11 09:00:03.000@ then
return -1
endi
if $data31 != @4@ then
return -1
endi
if $data40 != @21-11-11 09:00:04.000@ then
return -1
endi
if $data41 != @5@ then
return -1
endi
if $data50 != @21-11-11 09:00:05.000@ then
return -1
endi
if $data51 != @6@ then
return -1
endi
if $data60 != @21-11-11 09:00:06.000@ then
return -1
endi
if $data61 != @7@ then
return -1
endi
if $data70 != @21-11-11 09:00:07.000@ then
return -1
endi
if $data71 != @8@ then
return -1
endi
if $data80 != @21-11-11 09:00:08.000@ then
return -1
endi
if $data81 != @9@ then
return -1
endi
if $data90 != @21-11-11 09:00:09.000@ then
return -1
endi
if $data91 != @0@ then
return -1
endi
print execute sql select abs(interp(c2)) from stba every(1s) group by tbname;
sql select abs(interp(c2)) from stba every(1s) group by tbname;
if $data00 != @21-11-11 09:00:00.000@ then
return -1
endi
if $data01 != @1@ then
return -1
endi
if $data02 != @tba1@ then
return -1
endi
if $data10 != @21-11-11 09:00:01.000@ then
return -1
endi
if $data11 != @2@ then
return -1
endi
if $data12 != @tba1@ then
return -1
endi
if $data20 != @21-11-11 09:00:02.000@ then
return -1
endi
if $data21 != @3@ then
return -1
endi
if $data22 != @tba1@ then
return -1
endi
if $data30 != @21-11-11 09:00:03.000@ then
return -1
endi
if $data31 != @4@ then
return -1
endi
if $data32 != @tba1@ then
return -1
endi
if $data40 != @21-11-11 09:00:04.000@ then
return -1
endi
if $data41 != @5@ then
return -1
endi
if $data42 != @tba1@ then
return -1
endi
if $data50 != @21-11-11 09:00:05.000@ then
return -1
endi
if $data51 != @6@ then
return -1
endi
if $data52 != @tba1@ then
return -1
endi
if $data60 != @21-11-11 09:00:06.000@ then
return -1
endi
if $data61 != @7@ then
return -1
endi
if $data62 != @tba1@ then
return -1
endi
if $data70 != @21-11-11 09:00:07.000@ then
return -1
endi
if $data71 != @8@ then
return -1
endi
if $data72 != @tba1@ then
return -1
endi
if $data80 != @21-11-11 09:00:08.000@ then
return -1
endi
if $data81 != @9@ then
return -1
endi
if $data82 != @tba1@ then
return -1
endi
if $data90 != @21-11-11 09:00:09.000@ then
return -1
endi
if $data91 != @0@ then
return -1
endi
if $data92 != @tba1@ then
return -1
endi
print execute sql select abs(elapsed(ts)) from tba1;
sql select abs(elapsed(ts)) from tba1;
if $data00 != @29000.000000000@ then
return -1
endi
print execute sql select abs(rate(c2)) from tba1;
sql select abs(rate(c2)) from tba1;
if $data00 != @0.896551724@ then
return -1
endi
print execute sql select abs(irate(c2)) from tba1;
sql select abs(irate(c2)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select abs(first(c2)) from tba1;
sql select abs(first(c2)) from tba1;
if $data00 != @1@ then
return -1
endi
print execute sql select abs(last(c2)) from tba1;
sql select abs(last(c2)) from tba1;
if $data00 != @0@ then
return -1
endi
print execute sql select abs(last_row(c2)) from tba1;
sql select abs(last_row(c2)) from tba1;
if $data00 != @0@ then
return -1
endi
print execute sql select abs(top(c2, 1)) from tba1;
sql_error select abs(top(c2, 1)) from tba1;
print execute sql select abs(bottom(c2, 1)) from tba1;
sql_error select abs(bottom(c2, 1)) from tba1;
print execute sql select abs(leastsquares(c2, 1, 1)) from tba1;
sql_error select abs(leastsquares(c2, 1, 1)) from tba1;
print execute sql select abs(derivative(c2, 1s, 0)) from tba1;
sql_error select abs(derivative(c2, 1s, 0)) from tba1;
print execute sql select abs(diff(c2)) from tba1;
sql_error select abs(diff(c2)) from tba1;
print execute sql select abs(csum(c2)) from tba1;
sql_error select abs(csum(c2)) from tba1;
print execute sql select abs(mavg(c2,2)) from tba1;
sql_error select abs(mavg(c2,2)) from tba1;
print execute sql select abs(sample(c2,2)) from tba1;
sql_error select abs(sample(c2,2)) from tba1;
print execute sql select abs(_block_dist()) from tba1;
sql_error select abs(_block_dist()) from tba1;
sleep 100
sql connect
sql use db;
print execute sql select sqrt(stb1.c4),sqrt(stba.c5) from stb1,stba where stb1.t1=stba.t1 and stb1.ts=stba.ts;
sql select sqrt(stb1.c4),sqrt(stba.c5) from stb1,stba where stb1.t1=stba.t1 and stb1.ts=stba.ts;
if $data00 != @1.000000000@ then
return -1
endi
if $data01 != @1.000000000@ then
return -1
endi
if $data10 != NULL then
return -1
endi
if $data11 != @1.414213562@ then
return -1
endi
if $data20 != @1.414213562@ then
return -1
endi
if $data21 != @1.732050808@ then
return -1
endi
if $data30 != NULL then
return -1
endi
if $data31 != @2.000000000@ then
return -1
endi
if $data40 != @2.000000000@ then
return -1
endi
if $data41 != @2.236067977@ then
return -1
endi
if $data50 != @46340.950001052@ then
return -1
endi
if $data51 != @2.449489743@ then
return -1
endi
if $data60 != @-nan@ then
return -1
endi
if $data61 != @2.645751311@ then
return -1
endi
print execute sql select sqrt(c4) as a from stb1 union all select sqrt(c5) as a from stba;
sql select sqrt(c4) as a from stb1 union all select sqrt(c5) as a from stba;
if $data00 != @1.000000000@ then
return -1
endi
if $data10 != NULL then
return -1
endi
if $data20 != @1.414213562@ then
return -1
endi
if $data30 != NULL then
return -1
endi
if $data40 != @2.000000000@ then
return -1
endi
if $data50 != @46340.950001052@ then
return -1
endi
if $data60 != @-nan@ then
return -1
endi
if $data70 != @1.000000000@ then
return -1
endi
if $data80 != @1.414213562@ then
return -1
endi
if $data90 != @1.414213562@ then
return -1
endi
print execute sql select sqrt(c2) from stba;
sql select sqrt(c2) from stba;
if $data00 != @1.000000000@ then
return -1
endi
if $data10 != @1.414213562@ then
return -1
endi
if $data20 != @1.732050808@ then
return -1
endi
if $data30 != @2.000000000@ then
return -1
endi
if $data40 != @2.236067977@ then
return -1
endi
if $data50 != @2.449489743@ then
return -1
endi
if $data60 != @2.645751311@ then
return -1
endi
if $data70 != @2.828427125@ then
return -1
endi
if $data80 != @3.000000000@ then
return -1
endi
if $data90 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(min(c2)) from tba1;
sql select sqrt(min(c2)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(max(c2)) from tba1;
sql select sqrt(max(c2)) from tba1;
if $data00 != @3.000000000@ then
return -1
endi
print execute sql select sqrt(count(c2)) from tba1;
sql select sqrt(count(c2)) from tba1;
if $data00 != @5.477225575@ then
return -1
endi
print execute sql select sqrt(sum(c2)) from tba1;
sql select sqrt(sum(c2)) from tba1;
if $data00 != @11.618950039@ then
return -1
endi
print execute sql select sqrt(avg(c2)) from tba1;
sql select sqrt(avg(c2)) from tba1;
if $data00 != @2.121320344@ then
return -1
endi
print execute sql select sqrt(percentile(c2, 10)) from tba1;
sql select sqrt(percentile(c2, 10)) from tba1;
if $data00 != @0.948683298@ then
return -1
endi
print execute sql select sqrt(apercentile(c2, 10)) from tba1;
sql select sqrt(apercentile(c2, 10)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(stddev(c2)) from tba1;
sql select sqrt(stddev(c2)) from tba1;
if $data00 != @1.694780612@ then
return -1
endi
print execute sql select sqrt(spread(c2)) from tba1;
sql select sqrt(spread(c2)) from tba1;
if $data00 != @3.000000000@ then
return -1
endi
print execute sql select sqrt(twa(c2)) from tba1;
sql select sqrt(twa(c2)) from tba1;
if $data00 != @2.153585623@ then
return -1
endi
print execute sql select sqrt(leastsquares(c2, 1, 1)) from tba1;
sql_error select sqrt(leastsquares(c2, 1, 1)) from tba1;
print execute sql select sqrt(interp(c2)) from tba1 every(1s)
sql select sqrt(interp(c2)) from tba1 every(1s)
if $data00 != @21-11-11 09:00:00.000@ then
return -1
endi
if $data01 != @1.000000000@ then
return -1
endi
if $data10 != @21-11-11 09:00:01.000@ then
return -1
endi
if $data11 != @1.414213562@ then
return -1
endi
if $data20 != @21-11-11 09:00:02.000@ then
return -1
endi
if $data21 != @1.732050808@ then
return -1
endi
if $data30 != @21-11-11 09:00:03.000@ then
return -1
endi
if $data31 != @2.000000000@ then
return -1
endi
if $data40 != @21-11-11 09:00:04.000@ then
return -1
endi
if $data41 != @2.236067977@ then
return -1
endi
if $data50 != @21-11-11 09:00:05.000@ then
return -1
endi
if $data51 != @2.449489743@ then
return -1
endi
if $data60 != @21-11-11 09:00:06.000@ then
return -1
endi
if $data61 != @2.645751311@ then
return -1
endi
if $data70 != @21-11-11 09:00:07.000@ then
return -1
endi
if $data71 != @2.828427125@ then
return -1
endi
if $data80 != @21-11-11 09:00:08.000@ then
return -1
endi
if $data81 != @3.000000000@ then
return -1
endi
if $data90 != @21-11-11 09:00:09.000@ then
return -1
endi
if $data91 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(interp(c2)) from stba every(1s) group by tbname;
sql select sqrt(interp(c2)) from stba every(1s) group by tbname;
if $data00 != @21-11-11 09:00:00.000@ then
return -1
endi
if $data01 != @1.000000000@ then
return -1
endi
if $data02 != @tba1@ then
return -1
endi
if $data10 != @21-11-11 09:00:01.000@ then
return -1
endi
if $data11 != @1.414213562@ then
return -1
endi
if $data12 != @tba1@ then
return -1
endi
if $data20 != @21-11-11 09:00:02.000@ then
return -1
endi
if $data21 != @1.732050808@ then
return -1
endi
if $data22 != @tba1@ then
return -1
endi
if $data30 != @21-11-11 09:00:03.000@ then
return -1
endi
if $data31 != @2.000000000@ then
return -1
endi
if $data32 != @tba1@ then
return -1
endi
if $data40 != @21-11-11 09:00:04.000@ then
return -1
endi
if $data41 != @2.236067977@ then
return -1
endi
if $data42 != @tba1@ then
return -1
endi
if $data50 != @21-11-11 09:00:05.000@ then
return -1
endi
if $data51 != @2.449489743@ then
return -1
endi
if $data52 != @tba1@ then
return -1
endi
if $data60 != @21-11-11 09:00:06.000@ then
return -1
endi
if $data61 != @2.645751311@ then
return -1
endi
if $data62 != @tba1@ then
return -1
endi
if $data70 != @21-11-11 09:00:07.000@ then
return -1
endi
if $data71 != @2.828427125@ then
return -1
endi
if $data72 != @tba1@ then
return -1
endi
if $data80 != @21-11-11 09:00:08.000@ then
return -1
endi
if $data81 != @3.000000000@ then
return -1
endi
if $data82 != @tba1@ then
return -1
endi
if $data90 != @21-11-11 09:00:09.000@ then
return -1
endi
if $data91 != @0.000000000@ then
return -1
endi
if $data92 != @tba1@ then
return -1
endi
print execute sql select sqrt(elapsed(ts)) from tba1;
sql select sqrt(elapsed(ts)) from tba1;
if $data00 != @170.293863659@ then
return -1
endi
print execute sql select sqrt(rate(c2)) from tba1;
sql select sqrt(rate(c2)) from tba1;
if $data00 != @0.946864153@ then
return -1
endi
print execute sql select sqrt(irate(c2)) from tba1;
sql select sqrt(irate(c2)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(first(c2)) from tba1;
sql select sqrt(first(c2)) from tba1;
if $data00 != @1.000000000@ then
return -1
endi
print execute sql select sqrt(last(c2)) from tba1;
sql select sqrt(last(c2)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(last_row(c2)) from tba1;
sql select sqrt(last_row(c2)) from tba1;
if $data00 != @0.000000000@ then
return -1
endi
print execute sql select sqrt(top(c2, 1)) from tba1;
sql_error select sqrt(top(c2, 1)) from tba1;
print execute sql select sqrt(bottom(c2, 1)) from tba1;
sql_error select sqrt(bottom(c2, 1)) from tba1;
print execute sql select sqrt(leastsquares(c2, 1, 1)) from tba1;
sql_error select sqrt(leastsquares(c2, 1, 1)) from tba1;
print execute sql select sqrt(derivative(c2, 1s, 0)) from tba1;
sql_error select sqrt(derivative(c2, 1s, 0)) from tba1;
print execute sql select sqrt(diff(c2)) from tba1;
sql_error select sqrt(diff(c2)) from tba1;
print execute sql select sqrt(csum(c2)) from tba1;
sql_error select sqrt(csum(c2)) from tba1;
print execute sql select sqrt(mavg(c2,2)) from tba1;
sql_error select sqrt(mavg(c2,2)) from tba1;
print execute sql select sqrt(sample(c2,2)) from tba1;
sql_error select sqrt(sample(c2,2)) from tba1;
print execute sql select sqrt(_block_dist()) from tba1;
sql_error select sqrt(_block_dist()) from tba1;
......@@ -45,8 +45,8 @@ sql insert into tbn values ('2021-11-11 09:00:04',true,5,5,5,5,5,5,"555","5555",
sql insert into tbn values ('2021-11-11 09:00:05',true,6,6,6,6,6,6,"666","6666",6,6,6,6);
sql insert into tbn values ('2021-11-11 09:00:06',true,7,7,7,7,7,7,"777","7777",7,7,7,7);
run general/compute/math_str_query1.sim
#run general/compute/math_str_query2.sim
run general/compute/math_sqrt.sim
run general/compute/math_abs.sim
sql create table stba (ts timestamp, c1 bool, c2 tinyint, c3 smallint, c4 int, c5 bigint, c6 float, c7 double, c8 binary(10), c9 nchar(10), c10 tinyint unsigned, c11 smallint unsigned, c12 int unsigned, c13 bigint unsigned) TAGS(t1 int, t2 binary(10), t3 double);
......@@ -98,9 +98,10 @@ sql insert into tba1 values ('2021-11-11 09:00:27',true, 8,8,8,8,8,8,"888","8888
sql insert into tba1 values ('2021-11-11 09:00:28',true, 9,9,9,9,9,9,"999","9999",9,9,9,9);
sql insert into tba1 values ('2021-11-11 09:00:29',true, 0,0,0,0,0,0,"000","0000",0,0,0,0);
run general/compute/math_str_query1.sim
run general/compute/math_str_query2.sim
#run general/compute/math_str_query3.sim
run general/compute/math_sqrt.sim
run general/compute/math_sqrt2.sim
run general/compute/math_abs.sim
run general/compute/math_abs2.sim
#system sh/exec.sh -n dnode1 -s stop -x SIGINT
sleep 100
sql connect
sql use db;
print execute sql select sqrt(stb1.c4),sqrt(stba.c5) from stb1,stba where stb1.t1=stba.t1 and stb1.ts=stba.ts;
sql select sqrt(stb1.c4),sqrt(stba.c5) from stb1,stba where stb1.t1=stba.t1 and stb1.ts=stba.ts;
if $data00 != @1.000000000@ then
return -1
endi
if $data01 != @1.000000000@ then
return -1
endi
if $data10 != NULL then
return -1
endi
if $data11 != @1.414213562@ then
return -1
endi
if $data20 != @1.414213562@ then
return -1
endi
if $data21 != @1.732050808@ then
return -1
endi
if $data30 != NULL then
return -1
endi
if $data31 != @2.000000000@ then
return -1
endi
if $data40 != @2.000000000@ then
return -1
endi
if $data41 != @2.236067977@ then
return -1
endi
if $data50 != @46340.950001052@ then
return -1
endi
if $data51 != @2.449489743@ then
return -1
endi
if $data60 != @-nan@ then
return -1
endi
if $data61 != @2.645751311@ then
return -1
endi
print execute sql select sqrt(c4) as a from stb1 union all select sqrt(c5) as a from stba;
sql select sqrt(c4) as a from stb1 union all select sqrt(c5) as a from stba;
if $data00 != @1.000000000@ then
return -1
endi
if $data10 != NULL then
return -1
endi
if $data20 != @1.414213562@ then
return -1
endi
if $data30 != NULL then
return -1
endi
if $data40 != @2.000000000@ then
return -1
endi
if $data50 != @46340.950001052@ then
return -1
endi
if $data60 != @-nan@ then
return -1
endi
if $data70 != @1.000000000@ then
return -1
endi
if $data80 != @1.414213562@ then
return -1
endi
if $data90 != @1.414213562@ then
return -1
endi
print execute sql select sqrt(c2) from stba;
sql select sqrt(c2) from stba;
if $data00 != @1.000000000@ then
return -1
endi
if $data10 != @1.414213562@ then
return -1
endi
if $data20 != @1.732050808@ then
return -1
endi
if $data30 != @2.000000000@ then
return -1
endi
if $data40 != @2.236067977@ then
return -1
endi
if $data50 != @2.449489743@ then
return -1
endi
if $data60 != @2.645751311@ then
return -1
endi
if $data70 != @2.828427125@ then
return -1
endi
if $data80 != @3.000000000@ then
return -1
endi
if $data90 != @0.000000000@ then
return -1
endi
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册