system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -i 1 system sh/cfg.sh -n dnode1 -c walLevel -v 0 system sh/cfg.sh -n dnode1 -c debugFlag -v 135 system sh/cfg.sh -n dnode1 -c rpcDebugFlag -v 135 system sh/exec.sh -n dnode1 -s start sleep 1000 sql connect $dbPrefix = sliding_db $tbPrefix = sliding_tb $mtPrefix = sliding_mt $tbNum = 8 $rowNum = 10000 $totalNum = $tbNum * $rowNum print =============== sliding.sim $i = 0 $db = $dbPrefix . $i $mt = $mtPrefix . $i $tstart = 946656000000 $i = 0 $db = $dbPrefix . $i $mt = $mtPrefix . $i sql drop database if exits $db -x step1 step1: sql create database if not exists $db tables 4 keep 36500 sql use $db sql create table $mt (ts timestamp, c1 int, c2 float, c3 bigint, c4 smallint, c5 tinyint, c6 double, c7 bool, c8 binary(10), c9 nchar(9)) TAGS(t1 int, t2 binary(12)) $i = 0 while $i < $tbNum $tb = $tbPrefix . $i $tg2 = ' . abc $tg2 = $tg2 . ' sql create table $tb using $mt tags( $i , $tg2 ) $x = 0 while $x < $rowNum $ms = $x . m $c = $x / 100 $c = $c * 100 $c = $x - $c $binary = ' . binary $binary = $binary . $c $binary = $binary . ' $nchar = ' . nchar $nchar = $nchar . $c $nchar = $nchar . ' sql insert into $tb values ($tstart , $c , $c , $c , $c , $c , $c , $c , $binary , $nchar ) $tstart = $tstart + 30 $x = $x + 1 endw $i = $i + 1 $tstart = 946656000000 endw sleep 100 $i1 = 1 $i2 = 0 $db = $dbPrefix . $i $mt = $mtPrefix . $i $dbPrefix = sliding_db $tbPrefix = sliding_tb $mtPrefix = sliding_mt $tb1 = $tbPrefix . $i1 $tb2 = $tbPrefix . $i2 $ts1 = $tb1 . .ts $ts2 = $tb2 . .ts print ===============================interval_sliding query sql select count(*) from sliding_tb0 interval(30s) sliding(30s); if $row != 10 then return -1 endi if $data00 != @00-01-01 00:00:00.000@ then return -1 endi if $data01 != 1000 then return -1 endi if $data10 != @00-01-01 00:00:30.000@ then return -1 endi if $data11 != 1000 then return -1 endi sql select stddev(c1) from sliding_tb0 interval(10a) sliding(10a) if $row != 10000 then return -1 endi if $data00 != @00-01-01 00:00:00.000@ then return -1 endi if $data01 != 0.000000000 then return -1 endi if $data90 != @00-01-01 00:00:00.270@ then return -1 endi if $data91 != 0.000000000 then return -1 endi sql select stddev(c1),count(c2),first(c3),last(c4) from sliding_tb0 interval(10a) sliding(10a) order by ts desc; if $row != 10000 then return -1 endi if $data00 != @00-01-01 00:04:59.970@ then return -1 endi if $data01 != 0.000000000 then return -1 endi if $data02 != 1 then return -1 endi if $data03 != 99 then return -1 endi if $data04 != 99 then return -1 endi if $data90 != @00-01-01 00:04:59.700@ then return -1 endi if $data91 != 0.000000000 then return -1 endi if $data92 != 1 then return -1 endi if $data93 != 90 then return -1 endi if $data94 != 90 then return -1 endi sql select count(c2),last(c4) from sliding_tb0 interval(30s) sliding(10s) order by ts asc; if $row != 30 then return -1 endi if $data00 != @00-01-01 00:00:00.000@ then return -1 endi if $data01 != 1000 then return -1 endi if $data02 != 99 then return -1 endi sql select count(c2),stddev(c3),first(c4),last(c4) from sliding_tb0 where ts>'2000-01-01 0:0:0' and ts<'2000-1-1 0:0:31' interval(30s) sliding(30s) order by ts asc; if $row != 2 then return -1 endi if $data04 != 99 then return -1 endi if $data01 != 999 then return -1 endi if $data02 != 28.837977152 then return -1 endi #interval offset + limit sql select count(c2), first(c3),stddev(c4) from sliding_tb0 interval(10a) sliding(10a) order by ts desc limit 10 offset 990; if $row != 10 then return -1 endi if $data00 != @00-01-01 00:04:30.270@ then return -1 endi if $data01 != 1 then return -1 endi if $data02 != 9 then return -1 endi if $data03 != 0.000000000 then return -1 endi if $data90 != @00-01-01 00:04:30.000@ then return -1 endi if $data91 != 1 then return -1 endi if $data92 != 0 then return -1 endi if $data93 != 0.000000000 then return -1 endi #interval offset test sql select count(c2),last(c4),stddev(c3) from sliding_tb0 interval(30s) sliding(30s) order by ts asc limit 1000 offset 1; if $row != 9 then return -1 endi if $data00 != @00-01-01 00:00:30.000@ then return -1 endi if $data01 != 1000 then return -1 endi if $data02 != 99 then return -1 endi if $data80 != @00-01-01 00:04:30.000@ then return -1 endi if $data81 != 1000 then return -1 endi sql select count(c2),last(c4),stddev(c3) from sliding_tb0 where ts>'2000-1-1 0:0:0' and ts<'2000-1-1 0:0:31' interval(30s) sliding(30s) order by ts asc limit 1000 offset 0; if $row != 2 then return -1 endi if $data00 != @00-01-01 00:00:00.000@ then return -1 endi if $data01 != 999 then return -1 endi if $data02 != 99 then return -1 endi if $data03 != 28.837977152 then return -1 endi if $data10 != @00-01-01 00:00:30.000@ then return -1 endi if $data11 != 34 then return -1 endi if $data12 != 33 then return -1 endi if $data13 != 9.810708435 then return -1 endi sql select count(c2),last(c4),stddev(c3) from sliding_tb0 interval(30s) sliding(20s) order by ts asc limit 100 offset 1; if $row != 14 then return -1 endi if $data00 != @00-01-01 00:00:20.000@ then return -1 endi if $data01 != 1000 then return -1 endi if $data02 != 66 then return -1 endi if $data03 != 28.866070048 then return -1 endi if $data90 != @00-01-01 00:03:20.000@ then return -1 endi if $data91 != 1000 then return -1 endi if $data92 != 66 then return -1 endi sql select count(c2),last(c4),stddev(c3) from sliding_tb0 interval(30s) sliding(20s) order by ts asc limit 100 offset 14; if $row != 1 then return -1 endi sql select count(c2),last(c4),stddev(c3),spread(c3) from sliding_tb0 where c2 = 0 interval(30s) order by ts desc; if $row != 10 then return -1 endi #00-01-01 00:04:30.000| 10| 0| 0.000000000| 0.000000000| if $data00 != @00-01-01 00:04:30.000@ then return -1 endi if $data01 != 10 then return -1 endi if $data02 != 0 then return -1 endi if $data03 != 0.000000000 then return -1 endi sql select count(c2),last(c4),stddev(c3),spread(c3) from sliding_tb0 where c2 = 0 interval(30s) sliding(20s) order by ts desc limit 1 offset 15; if $row != 0 then return -1 endi sql select count(*),stddev(c1),count(c1),first(c2),last(c3) from sliding_tb0 where ts>'2000-1-1 00:00:00' and ts<'2000-1-1 00:00:01.002' and c2 >= 0 interval(30s) sliding(10a) order by ts asc limit 1000; if $row != 100 then return -1 endi if $data00 != @00-01-01 00:00:00.000@ then return -1 endi if $data02 != 9.521904571 then return -1 endi if $data05 != 33 then return -1 endi if $data10 != @00-01-01 00:00:00.010@ then return -1 endi if $data12 != 9.521904571 then return -1 endi if $data15 != 33 then return -1 endi if $data95 != 33 then return -1 endi sql select count(*),stddev(c1),count(c1),first(c2),last(c3) from sliding_tb0 where ts>'2000-1-1 00:00:00' and ts<'2000-1-1 00:00:01.002' and c2 >= 0 interval(30s) sliding(10a) order by ts desc limit 1000; if $row != 100 then return -1 endi if $data00 != @00-01-01 00:00:00.990@ then return -1 endi if $data01 != 1 then return -1 endi if $data02 != 0.000000000 then return -1 endi if $data03 != 1 then return -1 endi if $data90 != @00-01-01 00:00:00.900@ then return -1 endi if $data91 != 4 then return -1 endi if $data92 != 1.118033989 then return -1 endi if $data93 != 4 then return -1 endi if $data94 != 30.00000 then return -1 endi print check boundary check crash at client side sql select count(*) from sliding_mt0 where ts>now and ts < now-1h; print ========================query on super table print ========================error case sql_error select sum(c1) from sliding_tb0 interval(1a) sliding(1a); sql_error select sum(c1) from sliding_tb0 interval(10a) sliding(12a); sql_error select sum(c1) from sliding_tb0 sliding(1n) interval(1y); sql_error select sum(c1) from sliding_tb0 interval(-1y) sliding(1n); sql_error select sum(c1) from sliding_tb0 interval(1y) sliding(-1n); sql_error select sum(c1) from sliding_tb0 interval(0) sliding(0); sql_error select sum(c1) from sliding_tb0 interval(0m) sliding(0m); sql_error select sum(c1) from sliding_tb0 interval(m) sliding(m); sql_error select sum(c1) from sliding_tb0 sliding(4m); system sh/exec.sh -n dnode1 -s stop -x SIGINT