1082 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			1082 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
system sh/stop_dnodes.sh
 | 
						|
 | 
						|
system sh/deploy.sh -n dnode1 -i 1
 | 
						|
system sh/cfg.sh -n dnode1 -c walLevel -v 1
 | 
						|
system sh/exec.sh -n dnode1 -s start
 | 
						|
sleep 100
 | 
						|
sql connect
 | 
						|
 | 
						|
$dbPrefix = m_fl_db
 | 
						|
$tbPrefix = m_fl_tb
 | 
						|
$mtPrefix = m_fl_mt
 | 
						|
$tbNum = 10
 | 
						|
$rowNum = 5
 | 
						|
$totalNum = $tbNum * $rowNum
 | 
						|
$ts0 = 1537146000000
 | 
						|
$delta = 600000
 | 
						|
print ========== fill.sim
 | 
						|
$i = 0
 | 
						|
$db = $dbPrefix . $i
 | 
						|
$mt = $mtPrefix . $i
 | 
						|
 | 
						|
sql drop database $db -x step1
 | 
						|
step1:
 | 
						|
sql create database $db
 | 
						|
sql use $db
 | 
						|
sql create table $mt (ts timestamp, c1 int, c2 bigint, c3 float, c4 double, c5 smallint, c6 bool, c7 binary(10), c8 nchar(10)) tags(tgcol int)
 | 
						|
 | 
						|
$i = 0
 | 
						|
$ts = $ts0
 | 
						|
while $i < $tbNum
 | 
						|
  $tb = $tbPrefix . $i
 | 
						|
  sql create table $tb using $mt tags( $i )
 | 
						|
  
 | 
						|
  $x = 0
 | 
						|
  while $x < $rowNum
 | 
						|
    $xs = $x * $delta
 | 
						|
    $ts = $ts0 + $xs
 | 
						|
    sql insert into $tb values ( $ts , $x , $x , $x , $x , $x , true, 'BINARY', 'NCHAR' ) 
 | 
						|
    $x = $x + 1
 | 
						|
  endw 
 | 
						|
 
 | 
						|
  $i = $i + 1
 | 
						|
endw 
 | 
						|
 | 
						|
# setup
 | 
						|
$i = 0
 | 
						|
$tb = $tbPrefix . $i
 | 
						|
$tsu = 4 * $delta
 | 
						|
$tsu = $tsu + $ts0
 | 
						|
 | 
						|
## fill syntax test
 | 
						|
# number of fill values exceeds number of selected columns
 | 
						|
sql select max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
 | 
						|
if $data11 != 6 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data12 != 6 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data13 != 6.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data14 != 6.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# number of fill values is smaller than number of selected columns
 | 
						|
sql select max(c1), max(c2), max(c3) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6)
 | 
						|
if $data11 != 6 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data12 != 6 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data13 != 6.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 
 | 
						|
# unspecified filling method
 | 
						|
sql_error select max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill (6, 6, 6, 6, 6)
 | 
						|
 | 
						|
## constant fill test
 | 
						|
# count_with_fill
 | 
						|
print constant_fill test
 | 
						|
print count_with_constant_fill
 | 
						|
sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# avg_with_fill
 | 
						|
print avg_with_constant_fill
 | 
						|
sql select avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 6.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 6.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 6.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 6.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# max_with_fill
 | 
						|
print max_with_fill
 | 
						|
sql select max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# min_with_fill
 | 
						|
print min_with_fill
 | 
						|
sql select min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# first_with_fill
 | 
						|
print first_with_fill
 | 
						|
sql select first(c1), first(c2), first(c3), first(c4), first(c5), first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# check double type values
 | 
						|
if $data04 != 0.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
print data14 = $data14
 | 
						|
if $data14 != 6.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data24 != 1.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data34 != 6.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data44 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data54 != 6.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data64 != 3.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# check float type values
 | 
						|
print $data03 $data13
 | 
						|
if $data03 != 0.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data13 != 6.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data23 != 1.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data33 != 6.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data43 != 2.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data53 != 6.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data63 != 3.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data73 != 6.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data83 != 4.00000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
 | 
						|
# last_with_fill
 | 
						|
print last_with_fill
 | 
						|
sql select last(c1), last(c2), last(c3), last(c4), last(c5), last(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6, 6, 6, 6, 6, 6, 6)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  print expect 0, actual:$data01
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 6 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# fill_negative_values
 | 
						|
sql select sum(c1), avg(c2), max(c3), min(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, -1, -1, -1, -1, -1, -1, -1, -1)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != -1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# fill_char_values_to_arithmetic_fields
 | 
						|
sql_error select sum(c1), avg(c2), max(c3), min(c4), avg(c4), count(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c')
 | 
						|
 | 
						|
# fill_multiple_columns
 | 
						|
sql_error select sum(c1), avg(c2), min(c3), max(c4), count(c6), first(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 99, 99, 99, 99, 99, abc, abc)
 | 
						|
sql select sum(c1), avg(c2), min(c3), max(c4) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 99, 99, 99, 99)
 | 
						|
if $rows != 9 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
print data01 = $data01
 | 
						|
print data11 = $data11
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 99 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select * from $tb
 | 
						|
if $data08 != NCHAR then
 | 
						|
  print expect NCHAR, actual:$data08
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# fill_into_nonarithmetic_fieds
 | 
						|
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 20000000, 20000000, 20000000)
 | 
						|
#if $data11 != 20000000 then
 | 
						|
if $data11 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1, 1, 1)
 | 
						|
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1.1, 1.1, 1.1)
 | 
						|
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1e1, 1e1, 1e1)
 | 
						|
sql select first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e', '1e1')
 | 
						|
# fill quoted values into bool column will throw error unless the value is 'true' or 'false' Note:2018-10-24
 | 
						|
# fill values into binary or nchar columns will be set to NULL automatically Note:2018-10-24
 | 
						|
sql_error select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e', '1e1','1e1')
 | 
						|
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, true, true, true)
 | 
						|
sql select first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'true', 'true','true')
 | 
						|
 | 
						|
 | 
						|
# fill nonarithmetic values into arithmetic fields
 | 
						|
sql_error select count(*) where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, abc);
 | 
						|
sql_error select count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'true');
 | 
						|
 | 
						|
sql select count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e1');
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 10 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 1e1);
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 10 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '10');
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 10 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
 | 
						|
## linear fill
 | 
						|
# feature currently switched off 2018/09/29
 | 
						|
#sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(linear)
 | 
						|
 | 
						|
## previous fill
 | 
						|
print fill(prev)
 | 
						|
sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# avg_with_fill
 | 
						|
sql select avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 0.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 1.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 2.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 3.000000000 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# max_with_fill
 | 
						|
sql select max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 0 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 2 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 3 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# min_with_fill
 | 
						|
sql select min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 0 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 2 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 3 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# first_with_fill
 | 
						|
sql select first(c1), first(c2), first(c3), first(c4), first(c5), first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 0 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 2 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 3 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# last_with_fill
 | 
						|
sql select last(c1), last(c2), last(c3), last(c4), last(c5), last(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(prev)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != 0 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != 1 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != 2 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != 3 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
## NULL fill
 | 
						|
print fill(value, NULL)
 | 
						|
# count_with_fill
 | 
						|
sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
 | 
						|
print select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( NULL)
 | 
						|
sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, NULL)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
sql select count(c1), count(c2), count(c3), count(c4), count(c5), count(c6), count(c7), count(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(none)
 | 
						|
if $rows != 5 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# avg_with_fill
 | 
						|
sql select avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, NULL)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# max_with_fill
 | 
						|
sql select max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, NULL)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# min_with_fill
 | 
						|
sql select min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, NULL)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# first_with_fill
 | 
						|
sql select first(c1), first(c2), first(c3), first(c4), first(c5), first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, NULL)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# last_with_fill
 | 
						|
sql select last(c1), last(c2), last(c3), last(c4), last(c5), last(c6), last(c7), last(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, NULL)
 | 
						|
if $rows != 9 then 
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data21 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data31 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data41 != 2 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data51 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data61 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data71 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data81 != 4 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
# desc fill query
 | 
						|
print desc fill query
 | 
						|
sql select count(*) from m_fl_tb0 where ts>='2018-9-17 9:0:0' and ts<='2018-9-17 9:11:00' interval(1m) fill(value,10) order by ts desc;
 | 
						|
if $rows != 12 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
print =====================> aggregation + arithmetic + fill, need to add cases TODO
 | 
						|
#sql select avg(cpu_taosd) - first(cpu_taosd) from dn1 where ts<'2020-11-13 11:00:00' and ts>'2020-11-13 10:50:00' interval(10s) fill(value, 99)
 | 
						|
#sql select count(*), first(k), avg(k), avg(k)-first(k) from tm0 where ts>'2020-1-1 1:1:1' and ts<'2020-1-1 1:02:59' interval(10s) fill(value, 99);
 | 
						|
#sql select count(*), first(k), avg(k), avg(k)-first(k) from tm0 where ts>'2020-1-1 1:1:1' and ts<'2020-1-1 1:02:59' interval(10s) fill(NULL);
 | 
						|
 | 
						|
print =====================> td-2060
 | 
						|
sql create table m1 (ts timestamp, k int ) tags(a int);
 | 
						|
sql create table if not exists tm0 using m1 tags(1);
 | 
						|
sql insert into tm0 values('2020-1-1 1:1:1', 1);
 | 
						|
sql insert into tm0 values('2020-1-1 1:1:2', 2);
 | 
						|
sql insert into tm0 values('2020-1-1 1:1:3', 3);
 | 
						|
sql insert into tm0 values('2020-1-1 1:2:4', 4);
 | 
						|
sql insert into tm0 values('2020-1-1 1:2:5', 5);
 | 
						|
sql insert into tm0 values('2020-1-1 1:2:6', 6);
 | 
						|
sql insert into tm0 values('2020-1-1 1:3:7', 7);
 | 
						|
sql insert into tm0 values('2020-1-1 1:3:8', 8);
 | 
						|
sql insert into tm0 values('2020-1-1 1:3:9', 9);
 | 
						|
sql insert into tm0 values('2020-1-1 1:4:10', 10);
 | 
						|
 | 
						|
sql select max(k)-min(k),last(k)-first(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15' interval(10s) fill(value, 99,91,90,89,88,87,86,85);
 | 
						|
if $rows != 8 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data00 != @20-01-01 01:01:00.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data01 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data02 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data03 != -2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data10 != @20-01-01 01:01:10.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data11 != 99.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data12 != 91.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data13 != 90.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data60 != @20-01-01 01:02:00.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data61 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data62 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data63 != -2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data70 != @20-01-01 01:02:10.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data71 != 99.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data72 != 91.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data73 != 90.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select first(k)-avg(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15' interval(10s) fill(NULL);
 | 
						|
if $rows != 8 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data00 != @20-01-01 01:01:00.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data01 != -1.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data02 != -2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data10 != @20-01-01 01:01:10.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data11 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data12 != NULL then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select max(k)-min(k),last(k)-first(k),0-spread(k) from tm0 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 4:2:15'  interval(500a) fill(value, 99,91,90,89,88,87,86,85) order by ts asc;
 | 
						|
if $rows != 21749 then
 | 
						|
 return -1
 | 
						|
endi
 | 
						|
 | 
						|
sql select max(k)-min(k),last(k)-first(k),0-spread(k),count(1) from m1 where ts>='2020-1-1 1:1:1' and ts<='2020-1-1 1:2:15'  interval(10s) fill(value, 99,91,90,89,88,87,86,85) order by ts asc;
 | 
						|
if $rows != 8 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data00 != @20-01-01 01:01:00.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data01 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data02 != 2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data03 != -2.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data04 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data10 != @20-01-01 01:01:10.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data11 != 99.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data12 != 91.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data13 != 90.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data14 != 89 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
print ==================> td-2115
 | 
						|
sql select count(*), min(c3)-max(c3) from m_fl_mt0 group by tgcol
 | 
						|
if $rows != 10 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data00 != 5 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data01 != -4.000000000 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data02 != 0 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
if $data12 != 1 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
print =====================>td-1442, td-2190 , no time range for fill option
 | 
						|
sql_error select count(*) from m_fl_tb0 interval(1s) fill(prev);
 | 
						|
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(10a) fill(value, 20)
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(10s) fill(value, 20)
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(10m) fill(value, 20)
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(10h) fill(value, 20)
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(10d) fill(value, 20)
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(10w) fill(value, 20)
 | 
						|
sql_error select max(c3) from m_fl_mt0 interval(1n) fill(prev)
 | 
						|
sql_error select min(c3) from m_fl_mt0 interval(1y) fill(value, 20)
 | 
						|
 | 
						|
sql create table nexttb1 (ts timestamp, f1 int);
 | 
						|
sql insert into nexttb1 values ('2021-08-08 1:1:1', NULL);
 | 
						|
sql insert into nexttb1 values ('2021-08-08 1:1:5', 3);
 | 
						|
 | 
						|
sql select last(*) from nexttb1 where ts >= '2021-08-08 1:1:1' and ts < '2021-08-08 1:1:10' interval(1s) fill(next);
 | 
						|
if $rows != 9 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data00 != @21-08-08 01:01:01.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data01 != @21-08-08 01:01:01.000@ then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
if $data02 != 3 then
 | 
						|
  return -1
 | 
						|
endi
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
print =============== clear
 | 
						|
#sql drop database $db
 | 
						|
#sql show databases
 | 
						|
#if $rows != 0 then
 | 
						|
#  return -1
 | 
						|
#endi
 | 
						|
 | 
						|
system sh/exec.sh -n dnode1 -s stop -x SIGINT
 |