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 sql connect sleep 1000 $dbPrefix = join_m_db $tbPrefix = join_tb $mtPrefix = join_mt $tbNum = 3 $rowNum = 1000 $totalNum = $tbNum * $rowNum print =============== join_multivnode.sim $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 $tstart = 100000 $mt = $mtPrefix . 1 . $i 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), t3 int) $i = 0 $tbPrefix = join_1_tb while $i < $tbNum $tb = $tbPrefix . $i $c = $i $t3 = $i + 1 $binary = ' . abc $binary = $binary . $i $binary = $binary . ' print $binary sql create table $tb using $mt tags( $i , $binary , $t3 ) $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 print ===============multivnode projection join.sim sql select join_mt0.ts,join_mt0.ts,join_mt0.t1 from join_mt0, join_mt1 where join_mt0.ts=join_mt1.ts and join_mt0.t1=join_mt1.t1; print $row if $row != 3000 then print expect 3000, actual: $row return -1 endi print ======= second tags join sql create table m1(ts timestamp, k int) tags(a binary(12), b int); sql create table m2(ts timestamp, k int) tags(a binary(12), b int); sql insert into tm1 using m1 tags('tm1', 1) values(10000000, 1) tm2 using m2 tags('tm2', 1) values(10000000, 99); sql select * from m1,m2 where m1.ts=m2.ts and m1.b=m2.b; if $row != 1 then return -1 endi sql select join_mt0.ts, join_mt1.t1 from join_mt0, join_mt1 where join_mt0.ts=join_mt1.ts and join_mt0.t1=join_mt1.t1 sql select join_mt0.ts, join_mt1.t1, join_mt0.t1, join_mt1.tbname, join_mt0.tbname from join_mt0, join_mt1 where join_mt0.ts=join_mt1.ts and join_mt0.t1=join_mt1.t1 sql select join_mt0.ts, join_mt1.t1, join_mt0.t1, join_mt1.tbname, join_mt0.tbname from join_mt0, join_mt1 where join_mt0.ts=join_mt1.ts and join_mt0.t1=join_mt1.t1 limit 1 #1970-01-01 08:01:40.800 | 10 | 45.000000000 | 0 | true | false | 0 | #1970-01-01 08:01:40.790 | 10 | 945.000000000 | 90 | true | true | 0 | sql_error select count(join_mt0.c1), sum(join_mt1.c2), first(join_mt0.c5), last(join_mt1.c7), first(join_mt1.c7) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10a) group by join_mt0.t1 order by join_mt0.ts desc limit 20 offset 19; sql select count(join_mt0.c1), sum(join_mt0.c2)/count(*), avg(c2), first(join_mt0.c5), last(c7) from join_mt0 interval(10a) group by join_mt0.t1 order by join_mt0.ts desc; if $rows != 100 then return -1 endi if $data00 != @70-01-01 08:01:40.990@ then print expect 0, actual: $data00 return -1 endi if $data01 != 30 then return -1 endi if $data02 != 94.500000000 then print expect 94.500000000, actual $data02 return -1 endi if $data03 != 94.500000000 then return -1 endi if $data04 != 90 then return -1 endi if $data05 != 1 then return -1 endi if $data06 != 2 then return -1 endi if $data10 != @70-01-01 08:01:40.980@ then print expect 70-01-01 08:01:40.980, actual: $data10 return -1 endi if $data11 != 30 then return -1 endi if $data12 != 84.500000000 then print expect 84.500000000, actual $data12 return -1 endi if $data13 != 84.500000000 then return -1 endi if $data14 != 80 then return -1 endi if $data15 != 1 then return -1 endi if $data16 != 2 then return -1 endi # this function will cause shell crash sql_error select count(join_mt0.c1), first(join_mt0.c1) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10a) group by join_mt0.t1 order by join_mt0.ts desc; sql_error select last(join_mt1.c7), first(join_mt1.c7) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10m) group by join_mt0.t1 order by join_mt0.ts asc; sql_error select count(join_mt0.c1), first(join_mt0.c1)-last(join_mt1.c1), first(join_mt1.c9) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts;", NULL); sql select count(join_mt0.c1), first(join_mt0.c1)/count(*), first(join_mt1.c9) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts;", NULL); sql select count(join_mt0.c1), first(join_mt0.c1)-last(join_mt0.c1), first(join_mt1.c9) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts;", NULL); sql select last(join_mt0.c1) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts;", NULL); sql create database disorder_db; sql use disorder_db; sql create table m1(ts timestamp, k int) tags(a int); sql create table tm0 using m1 tags(0); sql create table tm1 using m1 tags(1); sql create table tm2 using m1 tags(2); sql create table tm3 using m1 tags(3); sql create table tm4 using m1 tags(4); sql create table tm5 using m1 tags(5); sql create table tm6 using m1 tags(6); sql create table tm7 using m1 tags(7); sql show vgroups if $rows != 2 then print maxTablesPerVnode set to 4 is not active. return -1 endi sql insert into tm0 values('2020-1-1 1:1:1', 0); sql insert into tm1 values('2020-1-1 1:1:1', 1); sql insert into tm2 values('2020-1-1 1:1:1', 2); sql insert into tm3 values('2020-1-1 1:1:1', 3); sql insert into tm4 values('2020-1-1 1:1:1', 4); sql insert into tm5 values('2020-1-1 1:1:1', 5); sql insert into tm6 values('2020-1-1 1:1:1', 6); sql insert into tm7 values('2020-1-1 1:1:1', 7); sql create table m2(ts timestamp, k int) tags(b int); sql create table t0 using m2 tags(0); sql create table t1 using m2 tags(4); sql create table t2 using m2 tags(92); sql create table t3 using m2 tags(93); sql create table t4 using m2 tags(1); sql create table t5 using m2 tags(5); sql create table t6 using m2 tags(96); sql create table t7 using m2 tags(97); sql show vgroups if $rows != 4 then return -1 endi sql insert into t0 values('2020-1-1 1:1:1', 10); sql insert into t1 values('2020-1-1 1:1:1', 11); sql insert into t2 values('2020-1-1 1:1:1', 12); sql insert into t3 values('2020-1-1 1:1:1', 13); sql insert into t4 values('2020-1-1 1:1:1', 14); sql insert into t5 values('2020-1-1 1:1:1', 15); sql insert into t6 values('2020-1-1 1:1:1', 16); sql insert into t7 values('2020-1-1 1:1:1', 17); sql select m1.ts,m1.tbname,m1.a, m2.ts,m2.tbname,m2.b from m1,m2 where m1.a=m2.b and m1.ts=m2.ts; if $rows != 4 then return -1 endi if $data00 != @20-01-01 01:01:01.000@ then print expect 20-01-01 01:01:01.000, actual:$data00 return -1 endi if $data01 != @tm0@ then return -1 endi if $data02 != 0 then return -1 endi if $data03 != @20-01-01 01:01:01.000@ then return -1 endi if $data04 != @t0@ then return -1 endi if $data05 != 0 then return -1 endi if $data10 != @20-01-01 01:01:01.000@ then return -1 endi if $data11 != @tm1@ then return -1 endi if $data12 != 1 then return -1 endi if $data13 != @20-01-01 01:01:01.000@ then return -1 endi if $data14 != @t4@ then return -1 endi if $data15 != 1 then return -1 endi if $data20 != @20-01-01 01:01:01.000@ then return -1 endi if $data21 != @tm4@ then return -1 endi if $data22 != 4 then return -1 endi if $data23 != @20-01-01 01:01:01.000@ then return -1 endi if $data24 != @t1@ then return -1 endi if $data25 != 4 then return -1 endi if $data30 != @20-01-01 01:01:01.000@ then return -1 endi if $data31 != @tm5@ then return -1 endi if $data32 != 5 then return -1 endi if $data33 != @20-01-01 01:01:01.000@ then return -1 endi if $data34 != @t5@ then return -1 endi if $data35 != 5 then return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT