488 lines
8.5 KiB
Plaintext
488 lines
8.5 KiB
Plaintext
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 maxtablespervnode -v 4
|
|
system sh/exec.sh -n dnode1 -s start
|
|
sleep 1000
|
|
sql connect
|
|
|
|
$dbPrefix = group_db
|
|
$tbPrefix = group_tb
|
|
$mtPrefix = group_mt
|
|
$tbNum = 8
|
|
$rowNum = 10000
|
|
$totalNum = $tbNum * $rowNum
|
|
|
|
print =============== groupby.sim
|
|
$i = 0
|
|
$db = $dbPrefix . $i
|
|
$mt = $mtPrefix . $i
|
|
|
|
$tstart = 100000
|
|
|
|
$i = 0
|
|
$db = $dbPrefix . $i
|
|
$mt = $mtPrefix . $i
|
|
|
|
$tstart = 100000
|
|
|
|
sql drop database if exists $db -x step1
|
|
step1:
|
|
sql create database if not exists $db 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 + 1
|
|
$x = $x + 1
|
|
endw
|
|
|
|
$i = $i + 1
|
|
$tstart = 100000
|
|
endw
|
|
|
|
sleep 100
|
|
|
|
$i1 = 1
|
|
$i2 = 0
|
|
|
|
$db = $dbPrefix . $i
|
|
$mt = $mtPrefix . $i
|
|
|
|
$dbPrefix = group_db
|
|
$tbPrefix = group_tb
|
|
$mtPrefix = group_mt
|
|
|
|
$tb1 = $tbPrefix . $i1
|
|
$tb2 = $tbPrefix . $i2
|
|
$ts1 = $tb1 . .ts
|
|
$ts2 = $tb2 . .ts
|
|
|
|
print ===============================groupby_operation
|
|
sql select count(*),c1 from group_tb0 where c1 < 20 group by c1;
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != 100 then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data10 != 100 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
sql select first(ts),c1 from group_tb0 where c1<20 group by c1;
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != @70-01-01 08:01:40.000@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data90 != @70-01-01 08:01:40.009@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data91 != 9 then
|
|
return -1
|
|
endi
|
|
|
|
sql select first(ts), ts, c1 from group_tb0 where c1 < 20 group by c1;
|
|
print $row
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != $data01 then
|
|
return -1
|
|
endi
|
|
|
|
if $data10 != $data11 then
|
|
return -1
|
|
endi
|
|
|
|
if $data20 != $data21 then
|
|
return -1
|
|
endi
|
|
|
|
if $data90 != $data91 then
|
|
return -1
|
|
endi
|
|
|
|
if $data02 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data12 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
if $data92 != 9 then
|
|
return -1
|
|
endi
|
|
|
|
sql select sum(c1), c1, avg(c1), min(c1), max(c2) from group_tb0 where c1 < 20 group by c1;
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
print $data02
|
|
if $data02 != 0.000000000 then
|
|
return -1
|
|
endi
|
|
|
|
if $data03 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
print $data04
|
|
if $data04 != 0.00000 then
|
|
return -1
|
|
endi
|
|
|
|
if $data10 != 100 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
print $data12
|
|
if $data12 != 1.000000000 then
|
|
return -1
|
|
endi
|
|
|
|
if $data13 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
if $data14 != 1.00000 then
|
|
print expect 1.00000, actual:$data14
|
|
return -1
|
|
endi
|
|
|
|
sql_error select sum(c1), ts, c1 from group_tb0 where c1<20 group by c1;
|
|
sql_error select first(ts), ts, c2 from group_tb0 where c1 < 20 group by c1;
|
|
sql_error select sum(c3), ts, c2 from group_tb0 where c1 < 20 group by c1;
|
|
sql_error select sum(c3), first(ts), c2 from group_tb0 where c1 < 20 group by c1;
|
|
sql_error select first(c3), ts, c1, c2 from group_tb0 where c1 < 20 group by c1;
|
|
sql_error select first(c3), last(c3), ts, c1 from group_tb0 where c1 < 20 group by c1;
|
|
|
|
#===========================interval=====not support======================
|
|
sql_error select count(*), c1 from group_tb0 where c1<20 interval(1y) group by c1;
|
|
#=====tbname must be the first in the group by clause=====================
|
|
sql_error select count(*) from group_tb0 where c1 < 20 group by c1, tbname;
|
|
|
|
#super table group by normal columns
|
|
sql select count(*), c1 from group_mt0 where c1< 20 group by c1;
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data10 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
if $data90 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
if $data91 != 9 then
|
|
return -1
|
|
endi
|
|
|
|
sql select first(c1), c1, ts from group_mt0 where c1<20 group by c1;
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != $data01 then
|
|
return -1
|
|
endi
|
|
|
|
if $data02 != @70-01-01 08:01:40.000@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data10 != $data11 then
|
|
return -1
|
|
endi
|
|
|
|
if $data12 != @70-01-01 08:01:40.001@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data20 != $data21 then
|
|
return -1
|
|
endi
|
|
|
|
if $data22 != @70-01-01 08:01:40.002@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data90 != $data91 then
|
|
return -1
|
|
endi
|
|
|
|
if $data92 != @70-01-01 08:01:40.009@ then
|
|
return -1
|
|
endi
|
|
|
|
sql select first(c1), last(ts), first(ts), last(c1),c1,sum(c1),avg(c1),count(*) from group_mt0 where c1<20 group by c1;
|
|
if $row != 20 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != $data03 then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != @70-01-01 08:01:49.900@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data02 != @70-01-01 08:01:40.000@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data07 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
if $data10 != $data13 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != @70-01-01 08:01:49.901@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data12 != @70-01-01 08:01:40.001@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data17 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
if $data90 != $data93 then
|
|
return -1
|
|
endi
|
|
|
|
if $data91 != @70-01-01 08:01:49.909@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data92 != @70-01-01 08:01:40.009@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data97 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
if $data95 != 7200 then
|
|
return -1
|
|
endi
|
|
|
|
if $data94 != 9 then
|
|
return -1
|
|
endi
|
|
|
|
sql select c1,sum(c1),avg(c1),count(*) from group_mt0 where c1<5 group by c1;
|
|
if $row != 5 then
|
|
return -1
|
|
endi
|
|
|
|
if $data00 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != 800 then
|
|
return -1
|
|
endi
|
|
|
|
sql select first(c1), last(ts), first(ts), last(c1),sum(c1),avg(c1),count(*) from group_mt0 where c1<20 group by tbname,c1;
|
|
if $row != 160 then
|
|
return -1
|
|
endi
|
|
|
|
print $data00
|
|
if $data00 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != @70-01-01 08:01:49.900@ then
|
|
return -1
|
|
endi
|
|
|
|
print $data01
|
|
if $data02 != @70-01-01 08:01:40.000@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data03 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data04 != 0 then
|
|
return -1
|
|
endi
|
|
|
|
if $data06 != 100 then
|
|
return -1
|
|
endi
|
|
|
|
if $data07 != @group_tb0@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data90 != 9 then
|
|
return -1
|
|
endi
|
|
|
|
if $data91 != @70-01-01 08:01:49.909@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data92 != @70-01-01 08:01:40.009@ then
|
|
return -1
|
|
endi
|
|
|
|
if $data93 != 9 then
|
|
return -1
|
|
endi
|
|
|
|
if $data94 != 900 then
|
|
return -1
|
|
endi
|
|
|
|
if $data96 != 100 then
|
|
return -1
|
|
endi
|
|
|
|
if $data97 != @group_tb0@ then
|
|
return -1
|
|
endi
|
|
|
|
print ---------------------------------> group by binary|nchar data add cases
|
|
|
|
|
|
#=========================== group by multi tags ======================
|
|
sql create table st (ts timestamp, c int) tags (t1 int, t2 int, t3 int, t4 int);
|
|
sql create table t1 using st tags(1, 1, 1, 1);
|
|
sql create table t2 using st tags(1, 2, 2, 2);
|
|
sql insert into t1 values ('2020-03-27 04:11:16.000', 1)('2020-03-27 04:11:17.000', 2) ('2020-03-27 04:11:18.000', 3) ('2020-03-27 04:11:19.000', 4) ;
|
|
sql insert into t1 values ('2020-03-27 04:21:16.000', 1)('2020-03-27 04:31:17.000', 2) ('2020-03-27 04:51:18.000', 3) ('2020-03-27 05:10:19.000', 4) ;
|
|
sql insert into t2 values ('2020-03-27 04:11:16.000', 1)('2020-03-27 04:11:17.000', 2) ('2020-03-27 04:11:18.000', 3) ('2020-03-27 04:11:19.000', 4) ;
|
|
sql insert into t2 values ('2020-03-27 04:21:16.000', 1)('2020-03-27 04:31:17.000', 2) ('2020-03-27 04:51:18.000', 3) ('2020-03-27 05:10:19.000', 4) ;
|
|
|
|
sql select irate(c) from st where t1="1" and ts >= '2020-03-27 04:11:17.732' and ts < '2020-03-27 05:11:17.732' interval(1m) sliding(15s) group by tbname,t1,t2;
|
|
if $rows != 40 then
|
|
return -1
|
|
endi
|
|
|
|
if $data01 != 1.000000000 then
|
|
return -1
|
|
endi
|
|
if $data02 != t1 then
|
|
return -1
|
|
endi
|
|
if $data03 != 1 then
|
|
return -1
|
|
endi
|
|
if $data04 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != 1.000000000 then
|
|
return -1
|
|
endi
|
|
if $data12 != t1 then
|
|
return -1
|
|
endi
|
|
if $data13 != 1 then
|
|
return -1
|
|
endi
|
|
if $data14 != 1 then
|
|
return -1
|
|
endi
|
|
|
|
sql select irate(c) from st where t1="1" and ts >= '2020-03-27 04:11:17.732' and ts < '2020-03-27 05:11:17.732' interval(1m) sliding(15s) group by tbname,t1,t2 limit 1;
|
|
if $rows != 2 then
|
|
return -1
|
|
endi
|
|
|
|
if $data11 != 1.000000000 then
|
|
return -1
|
|
endi
|
|
if $data12 != t2 then
|
|
return -1
|
|
endi
|
|
if $data13 != 1 then
|
|
return -1
|
|
endi
|
|
if $data14 != 2 then
|
|
return -1
|
|
endi
|
|
|
|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|