$loop_all = 0
looptest:

system sh/stop_dnodes.sh
system sh/deploy.sh -n dnode1 -i 1
system sh/exec.sh -n dnode1 -s start
sleep 200
sql connect

sql drop stream if exists streams0;
sql drop stream if exists streams1;
sql drop stream if exists streams2;
sql drop stream if exists streams3;
sql drop stream if exists streams4;
sql drop database if exists test;
sql create database test  vgroups 1;
sql use test;
sql create table t1(ts timestamp, a int, b int , c int, d double);
sql create stream streams0 trigger at_once IGNORE EXPIRED 0 into streamt as select  _wstart c1, count(*) c2, max(a) c3 from t1 session(ts, 5s);

sql insert into t1 values(1648791213000,NULL,NULL,NULL,NULL);
sleep 200
sql delete from t1 where ts = 1648791213000;

$loop_count = 0

loop0:
sleep 200
sql select * from streamt order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 0 then
  print =====rows=$rows
  goto loop0
endi

sql insert into t1 values(1648791213000,NULL,NULL,NULL,NULL);

$loop_count = 0

loop1:
sleep 200
sql select * from streamt order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop1
endi

if $data02 != NULL then
  print =====data02=$data02
  goto loop1
endi

sql insert into t1 values(1648791213000,1,1,1,1.0);
sql insert into t1 values(1648791213001,2,2,2,2.0);
sql insert into t1 values(1648791213002,3,3,3,3.0);
sql insert into t1 values(1648791213003,4,4,4,4.0);

sleep 200
sql delete from t1 where ts >= 1648791213001 and ts <= 1648791213002;

$loop_count = 0

loop3:
sleep 200
sql select * from streamt order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $data01 != 2 then
  print =====data01=$data01
  goto loop3
endi

if $data02 != 4 then
  print =====data02=$data02
  goto loop3
endi

sql insert into t1 values(1648791223000,1,2,3,1.0);
sql insert into t1 values(1648791223001,1,2,3,1.0);
sql insert into t1 values(1648791223002,3,2,3,1.0);
sql insert into t1 values(1648791223003,3,2,3,1.0);

$loop_count = 0

loop4:
sleep 200
sql select * from streamt order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 2 then
  print =====rows=$rows
  goto loop4
endi

sleep 200

sql delete from t1 where ts >= 1648791223000 and ts <= 1648791223003;

$loop_count = 0

loop5:
sleep 200
sql select * from streamt order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $data01 != 2 then
  print =====data01=$data01
  goto loop5
endi

if $data02 != 4 then
  print =====data02=$data02
  goto loop5
endi

sql insert into t1 values(1648791213000,1,1,1,1.0);
sql insert into t1 values(1648791213005,2,2,2,2.0);
sql insert into t1 values(1648791213006,3,3,3,3.0);
sql insert into t1 values(1648791213007,4,4,4,4.0);

sql insert into t1 values(1648791223000,1,1,1,1.0);
sql insert into t1 values(1648791223001,2,2,2,2.0);
sql insert into t1 values(1648791223002,3,3,3,3.0);
sql insert into t1 values(1648791223003,4,4,4,4.0);

sql insert into t1 values(1648791233000,1,1,1,1.0);
sql insert into t1 values(1648791233001,2,2,2,2.0);
sql insert into t1 values(1648791233008,3,3,3,3.0);
sql insert into t1 values(1648791233009,4,4,4,4.0);

sql delete from t1 where ts >= 1648791213001 and ts <= 1648791233005;

$loop_count = 0

loop6:
sleep 200
sql select * from streamt order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop6
endi

if $data02 != 1 then
  print =====data02=$data02
  goto loop6
endi

if $data11 != 2 then
  print =====data11=$data11
  goto loop6
endi

if $data12 != 4 then
  print =====data12=$data12
  goto loop6
endi

sql drop stream if exists streams2;
sql drop database if exists test2;
sql create database test2  vgroups 4;
sql use test2;
sql create stable st(ts timestamp, a int, b int, c int, d double) tags(ta int,tb int,tc int);
sql create table t1 using st tags(1,1,1);
sql create table t2 using st tags(2,2,2);
sql create stream streams2 trigger at_once IGNORE EXPIRED 0 into test.streamt2 as select  _wstart c1, count(*) c2, max(a) c3 from st session(ts,5s);

sql insert into t1 values(1648791213000,NULL,NULL,NULL,NULL);
sql insert into t2 values(1648791213000,NULL,NULL,NULL,NULL);

$loop_count = 0

loop7:
sleep 200
sql select * from test.streamt2 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 1 then
  print =====rows=$rows
  goto loop7
endi

sleep 200

sql delete from t1 where ts = 1648791213000;

$loop_count = 0

loop8:
sleep 200

sql select * from test.streamt2 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop8
endi

if $data02 != NULL then
  print =====data02=$data02
  goto loop8
endi

sql insert into t1 values(1648791223000,1,2,3,1.0);
sql insert into t1 values(1648791223001,1,2,3,1.0);
sql insert into t1 values(1648791223002,3,2,3,1.0);
sql insert into t1 values(1648791223003,3,2,3,1.0);
sql insert into t2 values(1648791223000,1,2,3,1.0);
sql insert into t2 values(1648791223001,1,2,3,1.0);
sql insert into t2 values(1648791223002,3,2,3,1.0);
sql insert into t2 values(1648791223003,3,2,3,1.0);

sleep 200

sql delete from t2 where ts >= 1648791223000 and ts <= 1648791223001;

$loop_count = 0

loop11:
sleep 200
sql select * from test.streamt2 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop11
endi

if $data02 != NULL then
  print =====data02=$data02
  goto loop11
endi

if $data11 != 6 then
  print =====data11=$data11
  goto loop11
endi

if $data12 != 3 then
  print =====data12=$data12
  goto loop11
endi

sleep 200

sql delete from st where ts >= 1648791223000 and ts <= 1648791223003;

$loop_count = 0

loop12:
sleep 200
sql select * from test.streamt2 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 1 then
  print =====rows=$rows
  goto loop12
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop12
endi

if $data02 != NULL then
  print =====data02=$data02
  goto loop12
endi

sql insert into t1 values(1648791213004,3,2,3,1.0);
sql insert into t1 values(1648791213005,3,2,3,1.0);
sql insert into t1 values(1648791213006,3,2,3,1.0);
sql insert into t1 values(1648791223004,1,2,3,1.0);
sql insert into t2 values(1648791213004,3,2,3,1.0);
sql insert into t2 values(1648791213005,3,2,3,1.0);
sql insert into t2 values(1648791213006,3,2,3,1.0);
sql insert into t2 values(1648791223004,1,2,3,1.0);

sleep 200

sql delete from t2 where ts >= 1648791213004 and ts <= 1648791213006;

$loop_count = 0

loop13:
sleep 200
sql select * from test.streamt2 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 2 then
  print =====rows=$rows
  goto loop13
endi

if $data01 != 4 then
  print =====data01=$data01
  goto loop13
endi

if $data02 != 3 then
  print =====data02=$data02
  goto loop13
endi

if $data11 != 2 then
  print =====data11=$data11
  goto loop13
endi

if $data12 != 1 then
  print =====data12=$data12
  goto loop13
endi

sql insert into t1 values(1648791223005,1,2,3,1.0);
sql insert into t1 values(1648791223006,1,2,3,1.0);
sql insert into t2 values(1648791223005,1,2,3,1.0);
sql insert into t2 values(1648791223006,1,2,3,1.0);

sql insert into t1 values(1648791233005,4,2,3,1.0);
sql insert into t1 values(1648791233006,2,2,3,1.0);
sql insert into t2 values(1648791233005,5,2,3,1.0);
sql insert into t2 values(1648791233006,3,2,3,1.0);

sleep 200

sql delete from st where ts >= 1648791213001 and ts <= 1648791233005;

$loop_count = 0

loop14:
sleep 200
sql select * from test.streamt2 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 2 then
  print =====rows=$rows
  goto loop14
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop14
endi

if $data02 != NULL then
  print =====data02=$data02
  goto loop14
endi

if $data11 != 2 then
  print =====data11=$data11
  goto loop14
endi

if $data12 != 3 then
  print =====data12=$data12
  goto loop14
endi

sql drop stream if exists streams1;
sql drop stream if exists streams2;
sql drop stream if exists streams3;
sql drop database if exists test3;
sql drop database if exists test;
sql create database test3 vgroups 4;
sql create database test vgroups 1;
sql use test3;
sql create stable st(ts timestamp, a int, b int, c int, d double) tags(ta int,tb int,tc int);
sql create table t1 using st tags(1,1,1);
sql create table t2 using st tags(2,2,2);
sql create stream streams3 trigger at_once IGNORE EXPIRED 0 into test.streamt3 as select  _wstart c1, count(*) c2, max(a) c3 from st session(ts,5s);

sql insert into t1 values(1648791210000,1,1,1,NULL);
sql insert into t1 values(1648791210001,2,2,2,NULL);
sql insert into t2 values(1648791213001,3,3,3,NULL);
sql insert into t2 values(1648791213003,4,4,4,NULL);
sql insert into t1 values(1648791216000,5,5,5,NULL);
sql insert into t1 values(1648791216002,6,6,6,NULL);
sql insert into t1 values(1648791216004,7,7,7,NULL);
sql insert into t2 values(1648791218001,8,8,8,NULL);
sql insert into t2 values(1648791218003,9,9,9,NULL);
sql insert into t1 values(1648791222000,10,10,10,NULL);
sql insert into t1 values(1648791222003,11,11,11,NULL);
sql insert into t1 values(1648791222005,12,12,12,NULL);

sql insert into t1 values(1648791232005,13,13,13,NULL);
sql insert into t2 values(1648791242005,14,14,14,NULL);

$loop_count = 0

loop19:
sleep 200
sql select * from test.streamt3 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 3 then
  print =====rows=$rows
  goto loop19
endi

sql delete from t2 where ts >= 1648791213001 and ts <= 1648791218003;

$loop_count = 0

loop20:
sleep 200
sql select * from test.streamt3 order by c1, c2, c3;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 5 then
  print =====rows=$rows
  goto loop20
endi

if $data01 != 2 then
  print =====data01=$data01
  goto loop20
endi

if $data02 != 2 then
  print =====data02=$data02
  goto loop20
endi

if $data11 != 3 then
  print =====data11=$data11
  goto loop20
endi

if $data12 != 7 then
  print =====data12=$data12
  goto loop20
endi

if $data21 != 3 then
  print =====data21=$data21
  goto loop20
endi

if $data22 != 12 then
  print =====data22=$data22
  goto loop20
endi

if $data31 != 1 then
  print =====data31=$data31
  goto loop20
endi

if $data32 != 13 then
  print =====data32=$data32
  goto loop20
endi

if $data41 != 1 then
  print =====data41=$data41
  goto loop20
endi

if $data42 != 14 then
  print =====data42=$data42
  goto loop20
endi

sql drop database if exists test4;
sql drop stream if exists streams4;
sql create database test4  vgroups 1;
sql use test4;
sql create stable st(ts timestamp,a int,b int,c int) tags(ta int,tb int,tc int);
sql create table t1 using st tags(1,1,1);
sql create table t2 using st tags(2,2,2);

print create stream streams4 trigger at_once IGNORE EXPIRED 0 into streamt4 as select  _wstart, count(*) c1 from st partition by tbname session(ts, 2s);
sql create stream streams4 trigger at_once IGNORE EXPIRED 0 into streamt4 as select  _wstart, count(*) c1 from st partition by tbname session(ts, 2s);

sql insert into t1 values(1648791210000,1,2,3);
sql insert into t1 values(1648791220000,2,2,3);
sql insert into t1 values(1648791221000,2,2,3);
sql insert into t1 values(1648791222000,2,2,3);
sql insert into t1 values(1648791223000,2,2,3);
sql insert into t1 values(1648791231000,2,2,3);

sql insert into t2 values(1648791210000,1,2,3);
sql insert into t2 values(1648791220000,2,2,3);
sql insert into t2 values(1648791221000,2,2,3);
sql insert into t2 values(1648791231000,2,2,3);

$loop_count = 0

loop21:
sleep 200
sql select * from streamt4 order by c1 desc;;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 6 then
  print =====rows=$rows
  goto loop21
endi

if $data01 != 4 then
  print =====data01=$data01
  goto loop21
endi

if $data11 != 2 then
  print =====data11=$data11
  goto loop21
endi

if $data21 != 1 then
  print =====data21=$data21
  goto loop21
endi

if $data31 != 1 then
  print =====data31=$data31
  goto loop21
endi

if $data41 != 1 then
  print =====data41=$data41
  goto loop21
endi

if $data51 != 1 then
  print =====data51=$data51
  goto loop21
endi

print delete from st where ts >= 1648791220000 and ts <=1648791223000;
sql delete from st where ts >= 1648791220000 and ts <=1648791223000;

loop22:
sleep 200
sql select * from streamt4 order by c1 desc;;

$loop_count = $loop_count + 1
if $loop_count == 10 then
  return -1
endi

if $rows != 4 then
  print =====rows=$rows
  goto loop22
endi

if $data01 != 1 then
  print =====data01=$data01
  goto loop22
endi

if $data11 != 1 then
  print =====data11=$data11
  goto loop22
endi

if $data21 != 1 then
  print =====data21=$data21
  goto loop22
endi

if $data31 != 1 then
  print =====data31=$data31
  goto loop22
endi

$loop_all = $loop_all + 1
print ============loop_all=$loop_all

system sh/stop_dnodes.sh

#goto looptest