sleep 3000 sql connect $dbPrefix = lm2_db $tbPrefix = lm2_tb $stbPrefix = lm2_stb $tbNum = 10 $rowNum = 10000 $totalNum = $tbNum * $rowNum $ts0 = 1537146000000 $delta = 600000 $tsu = $rowNum * $delta $tsu = $tsu - $delta $tsu = $tsu + $ts0 print ========== limit2.sim $i = 0 $db = $dbPrefix . $i $stb = $stbPrefix . $i $tb = $tbPrefix . 0 print ====== use db sql use $db ##### 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 print expect tb2, actual: $data02 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 endi ## TBASE-348 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 print expect $limit, actual $rows 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 print expect $limit, actual $rows 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 != 1 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 print expect $limit, actual: $rows 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 != 1 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 != 1 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 != 1 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 != 9 then return -1 endi if $data23 != 9.000000000 then return -1 endi if $data34 != 9.000000000 then return -1 endi if $data45 != 1 then return -1 endi if $data56 != binary9 then return -1 endi if $data68 != 6 then return -1 endi if $data72 != -2 then return -1 endi if $data84 != -2.000000000 then return -1 endi if $data98 != 9 then return -1 endi #add one more test case sql select max(c1), last(c8) from lm2_db0.lm2_tb0 where ts >= 1537146000000 and ts <= 1543145400000 interval(5m) fill(linear) limit 10 offset 4089;"