system sh/stop_dnodes.sh

system sh/deploy.sh -n dnode1 -i 1
system sh/cfg.sh -n dnode1 -c commitLog -v 0
system sh/exec.sh -n dnode1 -s start

sleep 3000
sql connect

print ======================== dnode1 start

$dbPrefix = tn_db
$tbPrefix = tn_tb
$mtPrefix = tn_mt
$stPrefix = tn_st
$tbNum = 10
$rowNum = 20
$totalNum = 200

print =============== step1
$i = 0
$db = $dbPrefix . $i
$mt = $mtPrefix . $i
$st = $stPrefix . $i

sql drop databae $db -x step1
step1:
sql create database $db
sql use $db
sql create table $mt (ts timestamp, tbcol int, tbcol2 float) TAGS(tgcol int)

$i = 0
while $i < $tbNum
  $tb = $tbPrefix . $i
  sql create table $tb using $mt tags( $i )
  
  $x = -1440
  $y = 0
  while $y < $rowNum
    $ms = $x . m 
    sql insert into $tb values (now $ms , $y , $y ) 
    $x = $x + 1
	$y = $y + 1
  endw 
 
  $i = $i + 1
endw 

sleep 100

print =============== step2 c3
$i = 1
$tb = $tbPrefix . $i

sql select count(*), count(tbcol), count(tbcol2) from $tb interval(1d)
print select count(*), count(tbcol), count(tbcol2) from $tb interval(1d) ===> $data00 $data01 $data02, $data03
if $data01 != $rowNum then 
  return -1
endi
if $data02 != $rowNum then 
  return -1
endi
if $data03 != $rowNum then 
  return -1
endi

$st = $stPrefix . c3
sql create table $st as select count(*), count(tbcol), count(tbcol2) from $tb interval(1d)

print =============== step3 count32
#total 32 count in select
sql select count(*), count(tbcol) as c1, count(tbcol2) as c2, count(tbcol) as c3, count(tbcol) as c4, count(tbcol) as c5, count(tbcol) as c6, count(tbcol) as c7, count(tbcol) as c8, count(tbcol) as c9, count(tbcol) as c10, count(tbcol) as c11, count(tbcol) as c12, count(tbcol) as c13, count(tbcol) as c14, count(tbcol) as c15, count(tbcol) as c16, count(tbcol) as c17, count(tbcol) as c18, count(tbcol) as c19, count(tbcol) as c20, count(tbcol) as c21, count(tbcol) as c22, count(tbcol) as c23, count(tbcol) as c24, count(tbcol) as c25, count(tbcol) as c26, count(tbcol) as c27, count(tbcol) as c28, count(tbcol) as c29, count(tbcol) as c30 from $tb interval(1d) 

# total 32 count in stream
$st = $stPrefix . c32
sql create table $st as select count(*), count(tbcol) as c1, count(tbcol2) as c2, count(tbcol) as c3, count(tbcol) as c4, count(tbcol) as c5, count(tbcol) as c6, count(tbcol) as c7, count(tbcol) as c8, count(tbcol) as c9, count(tbcol) as c10, count(tbcol) as c11, count(tbcol) as c12, count(tbcol) as c13, count(tbcol) as c14, count(tbcol) as c15, count(tbcol) as c16, count(tbcol) as c17, count(tbcol) as c18, count(tbcol) as c19, count(tbcol) as c20, count(tbcol) as c21, count(tbcol) as c22, count(tbcol) as c23, count(tbcol) as c24, count(tbcol) as c25, count(tbcol) as c26, count(tbcol) as c27, count(tbcol) as c28, count(tbcol) as c29, count(tbcol) as c30 from $tb interval(1d) 

print =============== step4 count31

#total 31 count in select
sql select count(*), count(tbcol) as c1, count(tbcol2) as c2, count(tbcol) as c3, count(tbcol) as c4, count(tbcol) as c5, count(tbcol) as c6, count(tbcol) as c7, count(tbcol) as c8, count(tbcol) as c9, count(tbcol) as c10, count(tbcol) as c11, count(tbcol) as c12, count(tbcol) as c13, count(tbcol) as c14, count(tbcol) as c15, count(tbcol) as c16, count(tbcol) as c17, count(tbcol) as c18, count(tbcol) as c19, count(tbcol) as c20, count(tbcol) as c21, count(tbcol) as c22, count(tbcol) as c23, count(tbcol) as c24, count(tbcol) as c25, count(tbcol) as c26, count(tbcol) as c27, count(tbcol) as c28, count(tbcol) as c29, count(tbcol) as c30  from $tb interval(1d)
print ===> $data00 $data01 $data02, $data03
if $data01 != $rowNum then 
  return -1
endi
if $data02 != $rowNum then 
  return -1
endi
if $data03 != $rowNum then 
  return -1
endi

# total 31 count in stream will crash, 32 will error
$st = $stPrefix . c31
sql create table $st as select count(*), count(tbcol) as c1, count(tbcol2) as c2, count(tbcol) as c3, count(tbcol) as c4, count(tbcol) as c5, count(tbcol) as c6, count(tbcol) as c7, count(tbcol) as c8, count(tbcol) as c9, count(tbcol) as c10, count(tbcol) as c11, count(tbcol) as c12, count(tbcol) as c13, count(tbcol) as c14, count(tbcol) as c15, count(tbcol) as c16, count(tbcol) as c17, count(tbcol) as c18, count(tbcol) as c19, count(tbcol) as c20, count(tbcol) as c21, count(tbcol) as c22, count(tbcol) as c23, count(tbcol) as c24, count(tbcol) as c25, count(tbcol) as c26, count(tbcol) as c27, count(tbcol) as c28, count(tbcol) as c29, count(tbcol) as c30  from $tb interval(1d)

print =============== step5 avg ...
sql select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol) from $tb interval(1d)
print ===> $data01 $data02 $data03 $data04 $data05 $data06
if $data01 != 9.500000000 then 
  return -1
endi
if $data02 != 190 then 
  return -1
endi
if $data03 != 0 then 
  return -1
endi
if $data04 != 19 then 
  return -1
endi
if $data05 != 0 then 
  return -1
endi
if $data06 != 19 then 
  return -1
endi

$st = $stPrefix . avg
sql create table $st as select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol) from $tb interval(1d)

print =============== step6 others
sql select stddev(tbcol), leastsquares(tbcol, 1, 1), percentile(tbcol, 1) from $tb interval(1d)
print ===> $data01 $data02 $data03 
if $data01 != 5.766281297 then 
  return -1
endi
#if $data02 != @(0.000017, -25362055.126740)@ then 
#  return -1
#endi
if $data03 != 0.190000000 then 
  return -1
endi

$st = $stPrefix . ot
sql create table $st as select stddev(tbcol), leastsquares(tbcol, 1, 1), percentile(tbcol, 1) from $tb interval(1d)

print =============== step7 total ...
sql select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol), stddev(tbcol), percentile(tbcol, 1), count(tbcol), leastsquares(tbcol, 1, 1) from $tb interval(1d)
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data01 != 9.500000000 then 
  return -1
endi
if $data02 != 190 then 
  return -1
endi
if $data03 != 0 then 
  return -1
endi
if $data04 != 19 then 
  return -1
endi
if $data05 != 0 then 
  return -1
endi
if $data06 != 19 then 
  return -1
endi
if $data07 != 5.766281297 then 
  return -1
endi
if $data08 != 0.190000000 then 
  return -1
endi
if $data09 != 20 then 
  return -1
endi

$st = $stPrefix . to
sql create table $st as select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol), stddev(tbcol), percentile(tbcol, 1), count(tbcol), leastsquares(tbcol, 1, 1) from $tb interval(1d)

print =============== step8 where
sql select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol), stddev(tbcol), percentile(tbcol, 1), count(tbcol), leastsquares(tbcol, 1, 1) from $tb where ts < now + 4m interval(1d)
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data09 != 20 then 
  return -1
endi

$st = $stPrefix . wh
sql create table $st as select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol), stddev(tbcol), percentile(tbcol, 1), count(tbcol), leastsquares(tbcol, 1, 1) from $tb where ts < now + 4m interval(1d) 


print =============== step9 as
sql select avg(tbcol), sum(tbcol), min(tbcol), max(tbcol),  first(tbcol), last(tbcol), stddev(tbcol), percentile(tbcol, 1), count(tbcol), leastsquares(tbcol, 1, 1) from $tb where ts < now + 4m interval(1d)
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data09 != 20 then 
  return -1
endi

$st = $stPrefix . as
#sql create table $st as select avg(tbcol) as a1, sum(tbcol) as a2, min(tbcol) as a3, max(tbcol) as a4,  first(tbcol) as a5, last(tbcol) as a6, stddev(tbcol) as a7, percentile(tbcol, 1) as a8, count(tbcol) as a9, leastsquares(tbcol, 1, 1) as a10 from $tb where ts < now + 4m interval(1d)

print =============== step10
print sleep 22 seconds
sleep 22000 

print =============== step11
$st = $stPrefix . c3
sql select * from $st
print ===> select * from $st
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data01 != $rowNum then 
  return -1
endi
if $data02 != $rowNum then 
  return -1
endi
if $data03 != $rowNum then 
  return -1
endi

$st = $stPrefix . c31
sql select * from $st
if $data01 != $rowNum then 
  return -1
endi
if $data02 != $rowNum then 
  return -1
endi
if $data03 != $rowNum then 
  return -1
endi

$st = $stPrefix . avg
sql select * from $st
print ===> select * from $st
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data01 != 9.500000000 then 
  return -1
endi
if $data02 != 190 then 
  return -1
endi
if $data03 != 0 then 
  return -1
endi
if $data04 != 19 then 
  return -1
endi
if $data05 != 0 then 
  return -1
endi
if $data06 != 19 then 
  return -1
endi

$st = $stPrefix . ot
sql select * from $st
print ===> select * from $st 
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data01 != 5.766281297 then 
  return -1
endi
#if $data02 != @(0.000017, -25362055.126740)@ then 
#  return -1
#endi
if $data03 != 0.190000000 then 
  return -1
endi

$st = $stPrefix . to
sql select * from $st
print ===> select * from $st
print ===> $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
if $data01 != 9.500000000 then 
  return -1
endi
if $data02 != 190 then 
  return -1
endi
if $data03 != 0 then 
  return -1
endi
if $data04 != 19 then 
  return -1
endi
if $data05 != 0 then 
  return -1
endi
if $data06 != 19 then 
  return -1
endi
if $data07 != 5.766281297 then 
  return -1
endi
if $data08 != 0.190000000 then 
  return -1
endi
if $data09 != 20 then 
  return -1
endi
