system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -i 1 system sh/exec.sh -n dnode1 -s start sleep 50 sql connect print =============== create database sql create database d1 keep 36500d vgroups 1 sql use d1 sql alter local 'querySmaOptimize' '1'; print =============== create super table, include column type for count/sum/min/max/first sql create table if not exists stb (ts timestamp, c1 int, c2 float, c3 double, c4 binary(10),c5 nchar(10)) tags (t1 int unsigned) sql show stables if $rows != 1 then return -1 endi print =============== create child table sql create table ct1 using stb tags(1000) sql show tables if $rows != 1 then return -1 endi print =============== insert data, mode1: one row one table in sql sql insert into ct1 values('2022-10-19 09:55:45.682', 10, 2.0, 3.0, "a", "n0") sql insert into ct1 values('2022-10-19 09:55:46.682', 11, 2.1, 3.1,"b","n1")('2022-10-19 09:55:47.682', -12, -2.2, -3.2,"c","n2")('2022-10-19 09:55:48.682', -13, -2.3, -3.3,"d","n3") print =============== create sma index from super table sql create sma index sma_index_name1 on stb function(max(c1),max(c2),min(c1)) interval(5m,10s) sliding(5m) watermark 1s max_delay 1s sql create sma index sma_index_name2 on stb function(sum(c1),first(c1), last(c1), first(c4),last(c4),count(c4),first(c5),last(c5),count(c5),apercentile(c1,80,"t-digest"), avg(c2),count(c3), spread(c3), stddev(c2), hyperloglog(c2), hyperloglog(c4), hyperloglog(c5)) interval(5m,10s) sliding(5m); # for varchar/binary sql_error create sma index sma_index_name3 on stb function(sum(c4)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(min(c4)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(max(c4)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(avg(c4)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(apercentile(c4)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(spread(c4)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(stddev(c4)) interval(5m,10s) sliding(5m); # for nchar sql_error create sma index sma_index_name3 on stb function(sum(c5)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(min(c5)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(max(c5)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(avg(c5)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(apercentile(c5)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(spread(c5)) interval(5m,10s) sliding(5m); sql_error create sma index sma_index_name3 on stb function(stddev(c5)) interval(5m,10s) sliding(5m); print =============== trigger stream to execute sma aggr task and insert sma data into sma store sql insert into ct1 values('2022-10-19 09:55:50.682', 20, 20.0, 30.0,"e","n5") #==================== sleep 2s to wait for tsma result sleep 2000 print =============== show streams ================================ sql show streams; print $data00 $data01 $data02 if $data00 != sma_index_name1 then if $data00 != sma_index_name2 then print $data00 return -1 endi endi print =============== select * from ct1 from memory sql select * from ct1; print $data00 $data01 $data02 $data03 print $data10 $data11 $data12 $data13 print $data20 $data21 $data22 $data23 print $data30 $data31 $data32 $data33 print $data40 $data41 $data42 $data43 if $rows != 5 then print rows $rows != 5 return -1 endi print =============== select with _wstart from stb from memory in designated vgroup sql select _wstart, _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 $data04 print $data10 $data11 $data12 $data13 $data14 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi print =============== select without _wstart from stb from memory in designated vgroup sql select min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 print $data10 $data11 $data12 if $rows != 1 then print rows $rows != 1 return -1 endi if $data00 != -13 then print data00 $data00 != -13 return -1 endi if $data01 != 20.00000 then print data01 $data01 != 20.00000 return -1 endi if $data02 != 20 then print data02 $data02 != 20 return -1 endi print =============== select * from stb from memory in common vgroups sql select _wstart, _wend, min(c1),max(c2),max(c1),max(c3) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 $data04 $data05 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi if $data05 != 30.000000000 then print data05 $data05 != 30.000000000 return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT system sh/exec.sh -n dnode1 -s start sleep 50 print =============== select * from ct1 from memory after reboot sql select * from ct1; print $data00 $data01 $data02 $data03 print $data10 $data11 $data12 $data13 print $data20 $data21 $data22 $data23 print $data30 $data31 $data32 $data33 print $data40 $data41 $data42 $data43 if $rows != 5 then print rows $rows != 5 return -1 endi print =============== select with _wstart from stb from memory in designated vgroup after reboot sql select _wstart, _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 $data04 print $data10 $data11 $data12 $data13 $data14 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi print =============== select without _wstart from stb from memory in designated vgroup after reboot sql select min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 print $data10 $data11 $data12 if $rows != 1 then print rows $rows != 1 return -1 endi if $data00 != -13 then print data00 $data00 != -13 return -1 endi if $data01 != 20.00000 then print data01 $data01 != 20.00000 return -1 endi if $data02 != 20 then print data02 $data02 != 20 return -1 endi print =============== select * from stb from memory in common vgroups after reboot sql select _wstart, _wend, min(c1),max(c2),max(c1),max(c3) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 $data04 $data05 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi if $data05 != 30.000000000 then print data05 $data05 != 30.000000000 return -1 endi #==================== flush database to trigger commit data to file sql flush database d1; system sh/exec.sh -n dnode1 -s stop -x SIGINT system sh/exec.sh -n dnode1 -s start sleep 50 print =============== select * from ct1 from file sql select * from ct1; print $data00 $data01 $data02 $data03 print $data10 $data11 $data12 $data13 print $data20 $data21 $data22 $data23 print $data30 $data31 $data32 $data33 print $data40 $data41 $data42 $data43 if $rows != 5 then print rows $rows != 5 return -1 endi print =============== select with _wstart from stb from file in designated vgroup sql select _wstart, _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 $data04 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi print =============== select without _wstart from stb from file in designated vgroup sql select _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 if $rows != 1 then print rows $rows != 1 return -1 endi if $data01 != -13 then print data01 $data01 != -13 return -1 endi if $data02 != 20.00000 then print data02 $data02 != 20.00000 return -1 endi if $data03 != 20 then print data03 $data03 != 20 return -1 endi print =============== select * from stb from file in common vgroups sql select _wstart, _wend, min(c1),max(c2),max(c1),max(c3) from stb interval(5m,10s) sliding(5m); print $data00 $data01 $data02 $data03 $data04 $data05 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi if $data05 != 30.000000000 then print data05 $data05 != 30.000000000 return -1 endi print =============== select with _wstart/order by _wstart from stb from file in designated vgroup sql select _wstart, _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m) order by _wstart; print $data00 $data01 $data02 $data03 $data04 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi print =============== select without _wstart/with order by _wstart from stb from file in designated vgroup sql select _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m) order by _wstart; print $data00 $data01 $data02 $data03 if $rows != 1 then print rows $rows != 1 return -1 endi if $data01 != -13 then print data01 $data01 != -13 return -1 endi if $data02 != 20.00000 then print data02 $data02 != 20.00000 return -1 endi if $data03 != 20 then print data03 $data03 != 20 return -1 endi print =============== select * from stb from file in common vgroups sql select _wstart, _wend, min(c1),max(c2),max(c1),max(c3) from stb interval(5m,10s) sliding(5m) order by _wstart; print $data00 $data01 $data02 $data03 $data04 $data05 if $rows != 1 then print rows $rows != 1 return -1 endi if $data02 != -13 then print data02 $data02 != -13 return -1 endi if $data03 != 20.00000 then print data03 $data03 != 20.00000 return -1 endi if $data04 != 20 then print data04 $data04 != 20 return -1 endi if $data05 != 30.000000000 then print data05 $data05 != 30.000000000 return -1 endi sql delete from stb; print =============== query after delete in common vgroups sql select _wstart, _wend, min(c1),max(c2),max(c1),max(c3) from stb interval(5m,10s) sliding(5m) order by _wstart; if $rows != 0 then print rows $rows != 0 return -1 endi sleep 2000 print =============== query after delete in designated vgroups sql select _wend, min(c1),max(c2),max(c1) from stb interval(5m,10s) sliding(5m) order by _wstart; if $rows != 0 then print rows $rows != 0 return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT