sleep 3000
sql connect

$dbPrefix = ti_db
$tbPrefix = ti_tb
$stbPrefix = ti_stb
$tbNum = 2000
$rowNum = 10
$totalNum = $tbNum * $rowNum
$ts0 = 1537146000000
$delta = 600000
$tsu = $rowNum * $delta
$tsu = $tsu - $delta
$tsu = $tsu + $ts0

print ========== tbnameIn_query.sim
$i = 0
$db = $dbPrefix . $i
$stb = $stbPrefix . $i
$tb = $tbPrefix . 0
print ====== use db
sql use $db

#### tbname in + other tag filtering
## [TBASE-362]
# tbname in + tag filtering is allowed now!!!
sql select count(*) from $stb where tbname in ('ti_tb1', 'ti_tb300') and t1 > 2

# tbname in used on meter
sql_error select count(*) from $tb where tbname in ('ti_tb1', 'ti_tb300') 

## tbname in + group by tag
sql select count(*) from $stb where tbname in ('ti_tb1', 'ti_tb300') group by t1 order by t1 asc
if $rows != 2 then
  return -1
endi
if $data00 != $rowNum then
  return -1
endi
if $data01 != 1 then
  return -1
endi
if $data10 != $rowNum then
  return -1
endi
if $data11 != 300 then
  return -1
endi

## duplicated tbnames
sql select count(*) from $stb where tbname in ('ti_tb1', 'ti_tb1', 'ti_tb1', 'ti_tb2', 'ti_tb2', 'ti_tb3') group by t1 order by t1 asc
if $rows != 3 then
  return -1
endi
if $data00 != $rowNum then
  return -1
endi
if $data01 != 1 then
  return -1
endi
if $data10 != $rowNum then
  return -1
endi
if $data11 != 2 then
  return -1
endi
if $data20 != $rowNum then
  return -1
endi
if $data21 != 3 then
  return -1
endi

## wrong tbnames
sql select count(*) from $stb where tbname in ('tbname in', 'ti_tb1', 'ti_stb0') group by t1 order by t1
if $rows != 1 then
  return -1
endi
if $data00 != 10 then
  return -1
endi
if $data01 != 1 then
  return -1
endi

## tbname in + colummn filtering
sql select count(*) from $stb where tbname in ('tbname in', 'ti_tb1', 'ti_stb0', 'ti_tb2') and c8 like 'binary%' group by t1 order by t1 asc
if $rows != 2 then
  return -1
endi
if $data00 != 10 then
  return -1
endi
if $data01 != 1 then
  return -1
endi
if $data10 != 10 then
  return -1
endi
if $data11 != 2 then
  return -1
endi

# multiple tbname in is not allowed NOW
sql_error select count(*) from $stb where tbname in ('ti_tb1', 'ti_tb300') and tbname in ('ti_tb5', 'ti_tb1000') group by t1 order by t1 asc
#if $rows != 4 then
#  return -1
#endi
#if $data00 != $rowNum then
#  return -1
#endi
#if $data01 != 1 then
#  return -1
#endi
#if $data10 != $rowNum then
#  return -1
#endi
#if $data11 != 5 then
#  return -1
#endi
#if $data20 != $rowNum then
#  return -1
#endi
#if $data21 != 300 then
#  return -1
#endi
#if $data30 != $rowNum then
#  return -1
#endi
#if $data31 != 1000 then
#  return -1
#endi

#### aggregation on stb with 6 tags + where + group by + limit offset
#$val1 = 1
#$val2 = $tbNum - 1
#sql select count(*) from $stb where t1 > $val1 and t1 < $val2 group by t1, t2, t3, t4, t5, t6 order by t1 asc limit 1 offset 0
#$val = $tbNum - 3
#if $rows != $val then
#  return -1
#endi
#if $data00 != $rowNum then
#  return -1
#endi
#if $data01 != 2 then
#  return -1
#endi
#if $data02 != tb2 then
#  return -1
#endi
#if $data03 != tb2 then
#  return -1
#endi
#if $data04 != 2 then
#  return -1
#endi
#if $data05 != 2 then
#  return -1
#endi
#
#sql select count(*) from $stb where t2 like '%' and t1 > 2 and t1 < 5 group by t3, t4 order by t3 desc limit 1 offset 0
#if $rows != 2 then
#  return -1
#endi
#if $data00 != $rowNum then
#  return -1
#endi
#if $data01 != tb4 then
#  return -1
#endi
#if $data02 != 4 then
#  return -1
#endi
#if $data11 != tb3 then
#  return -1
#endi
#if $data12 != 3 then
#  return -1
#endi
#sql select count(*) from $stb where t2 like '%' and t1 > 2 and t1 < 5 group by t3, t4 order by t3 desc limit 1 offset 1
#if $rows != 0 then
#  return -1
#sql_error select count(*) from $stb where t1 like 1
#
###### aggregation on tb + where + fill + limit offset
#sql select max(c1) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2) limit 10 offset 1
#if $rows != 10 then
#  return -1
#endi
#if $data00 != @18-09-17 09:05:00.000@ then
#  return -1
#endi
#if $data01 != -1 then
#  return -1
#endi
#if $data11 != 1 then
#  return -1
#endi
#if $data90 != @18-09-17 09:50:00.000@ then
#  return -1
#endi
#if $data91 != 5 then
#  return -1
#endi
#
#$tb5 = $tbPrefix . 5
#sql select max(c1), min(c2) from $tb5 where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2, -3, -4) limit 10 offset 1
#if $rows != 10 then
#  return -1
#endi
#if $data00 != @18-09-17 09:05:00.000@ then
#  return -1
#endi
#if $data01 != -1 then
#  return -1
#endi
#if $data02 != -2 then
#  return -1
#endi
#if $data11 != 1 then
#  return -1
#endi
#if $data12 != -2 then
#  return -1
#endi
#if $data90 != @18-09-17 09:50:00.000@ then
#  return -1
#endi
#if $data91 != 5 then
#  return -1
#endi
#if $data92 != -2 then
#  return -1
#endi
#
#### [TBASE-350]
### tb + interval + fill(value) + limit offset
#$tb = $tbPrefix . 0
#$limit = $rowNum
#$offset = $limit / 2
#sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2) limit $limit offset $offset
#if $rows != $limit then
#  return -1
#endi
#if $data01 != 0 then
#  return -1
#endi
#if $data11 != -1 then
#  return -1
#endi
#
## tb + interval + fill(linear) + limit offset
#$limit = $rowNum
#$offset = $limit / 2
#sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(linear) limit $limit offset $offset
#if $rows != $limit then
#  return -1
#endi
#if $data01 != 0 then
#  return -1
#endi
#if $data11 != 0 then
#  return -1
#endi
#if $data13 != 0.500000000 then
#  return -1
#endi
#if $data35 != 0.000000000 then
#  return -1
#endi
#if $data46 != 0.000000000 then
#  return -1
#endi
#if $data47 != true then
#  return -1
#endi
#if $data57 != NULL then
#  return -1
#endi
#if $data68 != binary3 then
#  return -1
#endi
#if $data79 != NULL then
#  return -1
#endi
#
### tb + interval + fill(prev) + limit offset
#$limit = $rowNum
#$offset = $limit / 2
#sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev) limit $limit offset $offset
#if $rows != $limit then
#  return -1
#endi
#
# 
#$limit = $rowNum
#$offset = $limit / 2
#$offset = $offset + 10
#sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu and c1 = 5 interval(5m) fill(value, -1, -2) limit $limit offset $offset
#if $rows != $limit then
#  return -1
#endi
#if $data01 != 5 then
#  return -1
#endi
#if $data02 != 5 then
#  return -1
#endi
#if $data03 != 5.000000000 then
#  return -1
#endi
#if $data04 != 5.000000000 then
#  return -1
#endi
#if $data05 != 0.000000000 then
#  return -1
#endi
#if $data07 != true then
#  return -1
#endi
#if $data08 != binary5 then
#  return -1
#endi
#if $data09 != nchar5 then
#  return -1
#endi
#if $data18 != NULL then
#  return -1
#endi
#if $data19 != NULL then
#  return -1
#endi
#if $data16 != -2.000000000 then
#  return -1
#endi
#if $data17 != true then
#  return -1
#endi
#if $data11 != -1 then
#  return -1
#endi
#
#$limit = $rowNum
#$offset = $limit * 2
#$offset = $offset - 11
#sql select max(c1), min(c2), sum(c3), avg(c4), stddev(c5), spread(c6), first(c7), last(c8), first(c9) from $tb where ts >= $ts0 and ts <= $tsu and c1 = 5 interval(5m) fill(value, -1, -2) limit $limit offset $offset
#if $rows != 10 then
#  return -1
#endi
#if $data01 != -1 then
#  return -1
#endi
#if $data02 != -2 then
#  return -1
#endi
#if $data11 != 5 then
#  return -1
#endi
#if $data12 != 5 then
#  return -1
#endi
#if $data13 != 5.000000000 then
#  return -1
#endi
#if $data15 != 0.000000000 then
#  return -1
#endi
#if $data16 != 0.000000000 then
#  return -1
#endi
#if $data18 != binary5 then
#  return -1
#endi
#if $data19 != nchar5 then
#  return -1
#endi
#if $data27 != true then
#  return -1
#endi
#if $data38 != NULL then
#  return -1
#endi
#if $data49 != NULL then
#  return -1
#endi
#
#### [TBASE-350]
### stb + interval + fill + group by + limit offset
#sql select max(c1), min(c2), sum(c3), avg(c4), first(c7), last(c8), first(c9) from $stb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2) group by t1 limit 2 offset 10
#if $rows != 20 then
#  return -1
#endi
#
#$limit = 5
#$offset = $rowNum * 2
#$offset = $offset - 2
#sql select max(c1), min(c2), sum(c3), avg(c4), first(c7), last(c8), first(c9) from $stb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -2) group by t1 order by t1 limit $limit offset $offset
#if $rows != $tbNum then
#  return -1
#endi 
#if $data00 != @18-11-25 19:30:00.000@ then
#  return -1
#endi
#if $data01 != 9 then
#  return -1
#endi
#if $data12 != -2 then
#  return -1
#endi
#if $data23 != 9.000000000 then
#  return -1
#endi
#if $data34 != -2.000000000 then
#  return -1
#endi
#if $data45 != true then
#  return -1
#endi
#if $data56 != binary9 then
#  return -1
#endi
#if $data68 != 3 then
#  return -1
#endi
#if $data72 != 9 then
#  return -1
#endi
#if $data84 != 9.000000000 then
#  return -1
#endi
#if $data98 != 0 then
#  return -1
#endi
