system sh/stop_dnodes.sh system sh/deploy.sh -n dnode1 -i 1 system sh/exec.sh -n dnode1 -s start 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_error select _wstart, 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) # number of fill values is smaller than number of selected columns sql_error select _wstart, max(c1), max(c2), max(c3) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 6, 6) # unspecified filling method sql_error select _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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) 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 _wstart, 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 _wstart, 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 _wstart, 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 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 _wstart, 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 print select _wstart, first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 20000000, 20000000, 20000000) sql select _wstart, first(c6), first(c7), first(c8) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 20000000, 20000000, 20000000) 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 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 select count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, 'true'); print select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e1'); sql select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '1e1'); sql select _wstart, 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 sql select _wstart, count(*) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(value, '10'); ## 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 _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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 _wstart, 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) 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 _wstart, 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 _wstart, avg(c1), avg(c2), avg(c3), avg(c4), avg(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( 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 _wstart, max(c1), max(c2), max(c3), max(c4), max(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill(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 _wstart, min(c1), min(c2), min(c3), min(c4), min(c5) from $tb where ts >= $ts0 and ts <= $tsu interval(5m) fill( 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 _wstart, 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( 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 _wstart, 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( 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 asc fill query sql select _wstart,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 _wstart asc; if $rows != 12 then return -1 endi if $data00 != @18-09-17 09:00:00.000@ then return -1 endi if $data01 != 1 then return -1 endi print desc fill query sql select _wstart,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 _wstart desc; if $rows != 12 then return -1 endi if $data00 != @18-09-17 09:11:00.000@ then return -1 endi if $data01 != 10 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); print select _wstart, 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); sql select _wstart, 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); 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 _wstart, 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 _wstart, 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) ; if $rows != 21749 then print expect 21749, actual: $rows return -1 endi print select _wstart, 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) ; sql select _wstart, 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) ; 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 $data10 != 5 then return -1 endi if $data11 != -4.000000000 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 _wstart, 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 select * from information_schema.ins_databases #if $rows != 0 then # return -1 #endi print ============== fill sql drop database if exists test; sql create database test vgroups 4; sql use test; 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); sql insert into t1 values(1648712211000,1,2,3); sql insert into t1 values(1648712225000,2,2,3); sql insert into t2 values(1648712212000,1,2,3); sql insert into t2 values(1648712226000,2,2,3); $loop_count = 0 loop0: sleep 200 sql select count(*) from(select count(a) from st where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(value, -1)); $loop_count = $loop_count + 1 if $loop_count == 20 then return -1 endi if $data00 != 40052 then print =====data00=$data00 goto loop0 endi sql select _wstart, count(a) from st where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(prev); if $rows != 40052 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from st where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(next); if $rows != 40052 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from st where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(linear); if $rows != 40052 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from st where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(NULL); if $rows != 40052 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from t1 where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(value, -1); if $rows != 20026 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from t1 where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(NULL); if $rows != 20026 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from t1 where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(prev); if $rows != 20026 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from t1 where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(next); if $rows != 20026 then print =====rows=$rows return -1 endi sql select _wstart, count(a) from t1 where ts >= 1648712201000 and ts <= 1648732226000 partition by tbname interval(1s) fill(linear); if $rows != 20026 then print =====rows=$rows return -1 endi print ===================== TD-25209 test fill prev/next/linear after data range sql use $db sql select _wstart,_wend,count(*) from tm0 where ts >= '2020-01-01 01:03:06.000' and ts <= '2020-01-01 01:03:10.000' interval(1s) fill(prev); if $rows != 5 then return -1 endi if $data02 != NULL then return -1 endi if $data12 != 1 then return -1 endi if $data22 != 1 then return -1 endi if $data32 != 1 then return -1 endi if $data42 != 1 then return -1 endi sql select _wstart,_wend,count(*) from tm0 where ts >= '2020-01-01 01:03:06.000' and ts <= '2020-01-01 01:03:10.000' interval(1s) fill(next); if $rows != 5 then return -1 endi if $data02 != 1 then return -1 endi if $data12 != 1 then return -1 endi if $data22 != 1 then return -1 endi if $data32 != 1 then return -1 endi if $data42 != NULL then return -1 endi sql select _wstart,_wend,count(*) from tm0 where ts >= '2020-01-01 01:03:06.000' and ts <= '2020-01-01 01:03:10.000' interval(1s) fill(linear); if $rows != 5 then return -1 endi if $data02 != NULL then return -1 endi if $data12 != 1 then return -1 endi if $data22 != 1 then return -1 endi if $data32 != 1 then return -1 endi if $data42 != NULL then return -1 endi system sh/exec.sh -n dnode1 -s stop -x SIGINT