diff --git a/source/libs/executor/src/tfill.c b/source/libs/executor/src/tfill.c index 27b8e83a20cd5ea7d8f010911a6af5e8199de266..34997a5dd83aa6612d985acb07c91f1c5655e40a 100644 --- a/source/libs/executor/src/tfill.c +++ b/source/libs/executor/src/tfill.c @@ -584,7 +584,7 @@ int64_t getNumOfResultsAfterFillGap(SFillInfo* pFillInfo, TSKEY ekey, int32_t ma assert(numOfRes >= numOfRows); } else { // reach the end of data if ((ekey1 < pFillInfo->currentKey && FILL_IS_ASC_FILL(pFillInfo)) || - (ekey1 > pFillInfo->currentKey && !FILL_IS_ASC_FILL(pFillInfo))) { + (ekey1 >= pFillInfo->currentKey && !FILL_IS_ASC_FILL(pFillInfo))) { return 0; } numOfRes = taosTimeCountInterval(ekey1, pFillInfo->currentKey, pFillInfo->interval.sliding, diff --git a/tests/script/tsim/parser/fill.sim b/tests/script/tsim/parser/fill.sim index 4892345e12ed4b22a1c3d96ae2e6233e7e9fe642..ea0311ebdebd05a166e67ac888f6cc2f53d8f93b 100644 --- a/tests/script/tsim/parser/fill.sim +++ b/tests/script/tsim/parser/fill.sim @@ -795,12 +795,34 @@ if $data81 != 4 then 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 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); +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);