diff --git a/tests/script/general/compute/mavg.sim b/tests/script/general/compute/mavg.sim new file mode 100644 index 0000000000000000000000000000000000000000..d33b620842cef880d17662e82831a082f8ce1cf9 --- /dev/null +++ b/tests/script/general/compute/mavg.sim @@ -0,0 +1,98 @@ +system sh/stop_dnodes.sh + +system sh/deploy.sh -n dnode1 -i 1 +system sh/cfg.sh -n dnode1 -c walLevel -v 1 +system sh/exec.sh -n dnode1 -s start +sleep 200 +sql connect + +$dbPrefix = m_di_db +$tbPrefix = m_di_tb +$mtPrefix = m_di_mt +$tbNum = 10 +$rowNum = 20 +$totalNum = 200 + +print =============== step1 +$i = 0 +$db = $dbPrefix . $i +$mt = $mtPrefix . $i + +sql drop database $db -x step1 +step1: +sql create database $db +sql use $db +sql create table $mt (ts timestamp, tbcol int) TAGS(tgcol int) + +$i = 0 +while $i < $tbNum + $tb = $tbPrefix . $i + sql create table $tb using $mt tags( $i ) + + $x = 0 + while $x < $rowNum + $cc = $x * 60000 + $ms = 1601481600000 + $cc + sql insert into $tb values ($ms , $x ) + $x = $x + 1 + endw + + $i = $i + 1 +endw + +sleep 100 + +print =============== step2 +$i = 1 +$tb = $tbPrefix . $i + +sql select mavg(tbcol,2) from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi + +print =============== step3 +$cc = 4 * 60000 +$ms = 1601481600000 + $cc +sql select mavg(tbcol,2) from $tb where ts > $ms +print ===> $data11 +if $data11 != 6.500000000 then + return -1 +endi + +$cc = 4 * 60000 +$ms = 1601481600000 + $cc +sql select mavg(tbcol,2) from $tb where ts <= $ms +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi + +print =============== step4 +sql select mavg(tbcol,2) as b from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi + +print =============== step5 +sql select mavg(tbcol, 2) as b from $tb interval(1m) -x step5 + return -1 +step5: + +print =============== step6 +$cc = 4 * 60000 +$ms = 1601481600000 + $cc +sql select mavg(tbcol, 2) as b from $tb where ts <= $ms interval(1m) -x step6 + return -1 +step6: + +print =============== clear +sql drop database $db +sql show databases +if $rows != 0 then + return -1 +endi + +system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/general/compute/mavg2.sim b/tests/script/general/compute/mavg2.sim new file mode 100644 index 0000000000000000000000000000000000000000..60b170e270505b7c3e8d2ee174a4e3b8a4ad223d --- /dev/null +++ b/tests/script/general/compute/mavg2.sim @@ -0,0 +1,159 @@ +system sh/stop_dnodes.sh + +system sh/deploy.sh -n dnode1 -i 1 +system sh/cfg.sh -n dnode1 -c walLevel -v 1 +system sh/exec.sh -n dnode1 -s start +sleep 200 +sql connect + +$dbPrefix = m_di_db +$tbPrefix = m_di_tb +$mtPrefix = m_di_mt +$tbNum = 2 +$rowNum = 10000 +$totalNum = 20000 + +print =============== step1 +$i = 0 +$db = $dbPrefix . $i +$mt = $mtPrefix . $i + +sql drop database $db -x step1 +step1: +sql create database $db +sql use $db +sql create table $mt (ts timestamp, c1 int, c2 float, c3 bigint, c4 smallint, c5 tinyint, c6 double, c7 bool, c8 nchar(5), c9 binary(10)) TAGS(tgcol int) + +$i = 0 +while $i < $tbNum + $tb = $tbPrefix . $i + sql create table $tb using $mt tags( $i ) + + $x = 0 + while $x < $rowNum + $cc = $x * 60000 + $ms = 1601481600000 + $cc + + $tinyint = $x / 128 + sql insert into $tb values ($ms , $x , $x , $x , $x , $tinyint , $x , $x , $x , $x ) + $x = $x + 1 + endw + + $i = $i + 1 +endw + +sleep 100 + +print =============== step2 +$i = 1 +$tb = $tbPrefix . $i + +sql select mavg(c1, 2) from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi +sql select mavg(c2, 2) from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi +sql select mavg(c3, 2) from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi +sql select mavg(c4, 2) from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi +sql select mavg(c5, 2) from $tb +print ===> $data11 +if $data11 != 0.000000000 then + return -1 +endi +sql select mavg(c6, 2) from $tb +print ===> $data11 +if $data11 != 1.500000000 then + return -1 +endi +sql_error select mavg(c7,2) from $tb +sql_error select mavg(c8,2) from $tb +sql_error select mavg(c9,2) from $tb +sql_error select mavg(ts,2) from $tb +sql_error select mavg(c1,2), mavg(c2,2) from $tb +#sql_error select 2+mavg(c1,2) from $tb +sql_error select mavg(c1+2) from $tb +sql_error select mavg(c1,2) from $tb where ts > 0 and ts < now + 100m interval(10m) +sql_error select mavg(c1,2) from $mt +sql_error select mavg(mavg(c1,2)) from $tb +sql_error select mavg(c1,2) from m_di_tb1 where c2 like '2%' + + +print =============== step3 +sql select mavg(c1,2) from $tb where c1 > 5 +print ===> $data11 +if $data11 != 7.500000000 then + return -1 +endi +sql select mavg(c2,2) from $tb where c2 > 5 +print ===> $data11 +if $data11 != 7.500000000 then + return -1 +endi +sql select mavg(c3,2) from $tb where c3 > 5 +print ===> $data11 +if $data11 != 7.500000000 then + return -1 +endi +sql select mavg(c4,2) from $tb where c4 > 5 +print ===> $data11 +if $data11 != 7.500000000 then + return -1 +endi +sql select mavg(c5,2) from $tb where c5 > 5 +print ===> $data11 +if $data11 != 6.000000000 then + return -1 +endi +sql select mavg(c6,2) from $tb where c6 > 5 +print ===> $data11 +if $data11 != 7.500000000 then + return -1 +endi + +print =============== step4 +sql select mavg(c1,2) from $tb where c1 > 5 and c2 < $rowNum +print ===> $data11 +if $data11 != 7.500000000 then + return -1 +endi + +sql select mavg(c1,2) from $tb where c9 like '%9' and c1 <= 20 +if $rows != 1 then + return -1 +endi +print ===> $data01 +if $data01 != 14.000000000 then + return -1 +endi + +print =============== step5 +sql select mavg(c1,2) as b from $tb interval(1m) -x step5 + return -1 +step5: + +print =============== step6 +sql select mavg(c1,2) as b from $tb where ts < now + 4m interval(1m) -x step6 + return -1 +step6: + +print =============== clear +#sql drop database $db +#sql show databases +#if $rows != 0 then +# return -1 +#endi + +system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/general/parser/col_arithmetic_operation.sim b/tests/script/general/parser/col_arithmetic_operation.sim index 6f628090020afbba6e938fa4b95d1cfb9062944e..0989f977462015e98ac6f0b625137973474c03d1 100644 --- a/tests/script/general/parser/col_arithmetic_operation.sim +++ b/tests/script/general/parser/col_arithmetic_operation.sim @@ -127,6 +127,7 @@ sql_error select top(c1, 2) - last(c1) from $stb; sql_error select sample(c1, 2) - last(c1) from $stb; sql_error select stddev(c1) - last(c1) from $stb; sql_error select diff(c1) - last(c1) from $stb; +sql_error select mavg(c1, 2) - last(c1) from $stb; sql_error select csum(c1) - last(c1) from $stb; sql_error select first(c7) - last(c7) from $stb; sql_error select first(c8) - last(c8) from $stb; diff --git a/tests/script/general/parser/function.sim b/tests/script/general/parser/function.sim index bcc9bd497a58cee5f4db21bc379bbd3f27d32802..578234b2984a7d9440e4ea4390d8cb3a4580ab8d 100644 --- a/tests/script/general/parser/function.sim +++ b/tests/script/general/parser/function.sim @@ -1087,6 +1087,10 @@ sql select diff(val) from (select derivative(k, 1s, 0) val from t1); if $rows != 0 then return -1 endi +sql select mavg(val,2) from (select derivative(k, 1s, 0) val from t1); +if $rows != 0 then + return -1 +endi sql select csum(val) from (select derivative(k, 1s, 0) val from t1); if $rows != 0 then return -1 diff --git a/tests/script/general/parser/having.sim b/tests/script/general/parser/having.sim index 117245491233dbd432ce6effc564aaeedb79aebe..cf3452d179a57eaade2492924513a425aed5870e 100644 --- a/tests/script/general/parser/having.sim +++ b/tests/script/general/parser/having.sim @@ -1160,6 +1160,12 @@ sql_error select avg(f1),diff(f1) from st2 group by f1 having avg(f1) > 0; sql_error select avg(f1),diff(f1) from st2 group by f1 having spread(f2) > 0; +sql_error select avg(f1) from st2 group by f1 having mavg(f1, 2) > 0; + +sql_error select avg(f1),mavg(f1, 3) from st2 group by f1 having avg(f1) > 0; + +sql_error select avg(f1),mavg(f1, 4) from st2 group by f1 having spread(f2) > 0; + sql_error select avg(f1) from st2 group by f1 having csum(f1) > 0; sql_error select avg(f1),csum(f1) from st2 group by f1 having avg(f1) > 0; diff --git a/tests/script/general/parser/having_child.sim b/tests/script/general/parser/having_child.sim index 341a27824fe766a078d41d92f3e167b0b9111ac8..ff7b786638006fb862ab0e22b2c8e6c6fb65902e 100644 --- a/tests/script/general/parser/having_child.sim +++ b/tests/script/general/parser/having_child.sim @@ -1177,6 +1177,14 @@ sql_error select avg(f1),diff(f1) from tb1 group by f1 having avg(f1) > 0; sql_error select avg(f1),diff(f1) from tb1 group by f1 having spread(f2) > 0; + +sql_error select avg(f1) from tb1 group by f1 having mavg(f1,4) > 0; + +sql_error select avg(f1),mavg(f1,5) from tb1 group by f1 having avg(f1) > 0; + +sql_error select avg(f1),mavg(f1,6) from tb1 group by f1 having spread(f2) > 0; + + sql_error select avg(f1) from tb1 group by f1 having csum(f1) > 0; sql_error select avg(f1),csum(f1) from tb1 group by f1 having avg(f1) > 0; diff --git a/tests/script/general/parser/limit1_tb.sim b/tests/script/general/parser/limit1_tb.sim index 113d09dc477b443d95a4d90c06d6b8386557dd98..9c96897da89e5e2b4c3f66f30f53d5ebf674c660 100644 --- a/tests/script/general/parser/limit1_tb.sim +++ b/tests/script/general/parser/limit1_tb.sim @@ -471,6 +471,50 @@ if $data81 != -9 then return -1 endi +sql select mavg(c1,2) from $tb +$res = $rowNum - 1 +if $rows != $res then + return -1 +endi + +sql select mavg(c1,2) from $tb where c1 > 5 limit 2 offset 1 +print $rows , $data00 , $data01 , $data10 , $data11 +if $rows != 2 then + return -1 +endi +if $data00 != @18-09-17 10:20:00.000@ then + return -1 +endi +if $data01 != 7.500000000 then + return -1 +endi +if $data10 != @18-09-17 10:30:00.000@ then + return -1 +endi +if $data11 != 8.500000000 then + return -1 +endi +$limit = $rowNum / 2 +$offset = $limit - 1 +sql select mavg(c1,2) from $tb where c1 >= 0 limit $limit offset $offset +if $rows != $limit then + return -1 +endi +$limit = $rowNum / 2 +$offset = $limit + 1 +$val = $limit - 2 +sql select mavg(c1,2) from $tb where c1 >= 0 limit $limit offset $offset +print $rows , $data01 , $data81 +if $rows != $val then + return -1 +endi +if $data01 != 1.500000000 then + return -1 +endi +if $data81 != 4.500000000 then + return -1 +endi + sql select csum(c1) from $tb $res = $rowNum if $rows != $res then diff --git a/tests/script/general/parser/limit_tb.sim b/tests/script/general/parser/limit_tb.sim index 6750203dcadcafe7ae0f7e86f3a2b2445f7ac76b..f130214ddbed895d29ed0dba08a93003cee6e32b 100644 --- a/tests/script/general/parser/limit_tb.sim +++ b/tests/script/general/parser/limit_tb.sim @@ -478,6 +478,18 @@ if $data11 != 1 then return -1 endi +sql select mavg(c1,3) from $tb where c1 > 5 limit 2 offset 1 +print $rows , $data00 , $data01 +if $rows != 1 then + return -1 +endi +if $data00 != @18-09-17 10:30:00.000@ then + return -1 +endi +if $data01 != 8.000000000 then + return -1 +endi + sql select csum(c1) from $tb where c1 > 5 limit 2 offset 1 if $rows != 2 then return -1 diff --git a/tests/script/general/parser/nestquery.sim b/tests/script/general/parser/nestquery.sim index 4dca34f7c067019067fb3927dcebb7d99f0c793d..f2c539dbf8b8bd68c6481e790198a28d860f0b92 100644 --- a/tests/script/general/parser/nestquery.sim +++ b/tests/script/general/parser/nestquery.sim @@ -186,6 +186,7 @@ sql_error select derivative(val, 1s, 0) from (select c1 val from nest_tb0); sql_error select twa(c1) from (select c1 from nest_tb0); sql_error select irate(c1) from (select c1 from nest_tb0); sql_error select diff(c1), twa(c1) from (select * from nest_tb0); +sql_error select mavg(c1,2), twa(c1) from (select * from nest_tb0); sql_error select csum(c1), twa(c1) from (select * from nest_tb0); sql_error select irate(c1), interp(c1), twa(c1) from (select * from nest_tb0); @@ -274,6 +275,10 @@ sql select diff(c1) from (select * from nest_tb0); if $rows != 9999 then return -1 endi +sql select mavg(c1,2) from (select * from nest_tb0); +if $rows != 9999 then + return -1 +endi sql select csum(c1) from (select * from nest_tb0); if $rows != 10000 then return -1 @@ -427,6 +432,18 @@ if $data01 != 1 then return -1 endi +sql select mavg(val, 2) from (select c1 val from nest_tb0); +if $rows != 9999 then + return -1 +endi + +if $data00 != @70-01-01 08:00:00.000@ then + return -1 +endi +if $data01 != 0.500000000 then + return -1 +endi + sql select csum(val) from (select c1 val from nest_tb0); if $rows != 10000 then return -1 diff --git a/tests/script/general/parser/projection_limit_offset.sim b/tests/script/general/parser/projection_limit_offset.sim index f2bde7f003df8ef765664c89862cbc35aeb18c45..a44d6782cecd6999eb887b574df944358f90faf7 100644 --- a/tests/script/general/parser/projection_limit_offset.sim +++ b/tests/script/general/parser/projection_limit_offset.sim @@ -394,6 +394,25 @@ if $data21 != -1 then return -1 endi +sql select mavg(k,3) from tm0 +print ====> $rows , $data21 +if $row != 2 then + return -1 +endi +if $data11 != 2.333333333 then + return -1 +endi + +sql select csum(k) from tm0 +print ====> $rows , $data21 +if $row != 4 then + return -1 +endi + +if $data21 != 6 then + return -1 +endi + #error sql sql_error select * from 1; #sql_error select 1; // equals to select server_status();