From c5702cfacdbcc0934df6220a6bbae22e28943a76 Mon Sep 17 00:00:00 2001 From: Alex Duan <417921451@qq.com> Date: Tue, 17 May 2022 15:39:25 +0800 Subject: [PATCH] fix(query): V24 Fill function with order by desc [TD-14782] --- src/query/src/qFill.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/query/src/qFill.c b/src/query/src/qFill.c index dbe385e249..275ffb9ef8 100644 --- a/src/query/src/qFill.c +++ b/src/query/src/qFill.c @@ -69,7 +69,7 @@ static void doFillOneRowResult(SFillInfo* pFillInfo, void** data, char** srcData // set the other values if (pFillInfo->type == TSDB_FILL_PREV) { - char* p = FILL_IS_ASC_FILL(pFillInfo) ? prev : next; + char* p = prev; if (p != NULL) { for (int32_t i = 1; i < pFillInfo->numOfCols; ++i) { @@ -178,8 +178,6 @@ static int32_t fillResultImpl(SFillInfo* pFillInfo, void** data, int32_t outputR if (FILL_IS_ASC_FILL(pFillInfo)) { assert(pFillInfo->currentKey >= pFillInfo->start); - } else { - assert(pFillInfo->currentKey <= pFillInfo->start); } while (pFillInfo->numOfCurrent < outputRows) { @@ -432,6 +430,8 @@ void taosFillSetStartInfo(SFillInfo* pFillInfo, int32_t numOfRows, TSKEY endKey) pFillInfo->end = endKey; if (!FILL_IS_ASC_FILL(pFillInfo)) { pFillInfo->end = taosTimeTruncate(endKey, &pFillInfo->interval, pFillInfo->precision); + if (numOfRows > 0) + pFillInfo->currentKey = pFillInfo->end; } pFillInfo->index = 0; @@ -459,8 +459,7 @@ bool taosFillHasMoreResults(SFillInfo* pFillInfo) { return true; } - if (pFillInfo->numOfTotal > 0 && (((pFillInfo->end > pFillInfo->start) && FILL_IS_ASC_FILL(pFillInfo)) || - (pFillInfo->end < pFillInfo->start && !FILL_IS_ASC_FILL(pFillInfo)))) { + if (pFillInfo->numOfTotal > 0 && pFillInfo->end > pFillInfo->start) { return getNumOfResultsAfterFillGap(pFillInfo, pFillInfo->end, 4096) > 0; } -- GitLab