From e9b9ebeb6e2474170402f9ad1638231feba842a0 Mon Sep 17 00:00:00 2001 From: 54liuyao <54liuyao@163.com> Date: Thu, 31 Oct 2024 18:52:24 +0800 Subject: [PATCH] fic comp issue --- source/libs/executor/src/streamfilloperator.c | 2 ++ source/libs/executor/src/streamtimesliceoperator.c | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/source/libs/executor/src/streamfilloperator.c b/source/libs/executor/src/streamfilloperator.c index 385d1e5776..cb330e2e72 100644 --- a/source/libs/executor/src/streamfilloperator.c +++ b/source/libs/executor/src/streamfilloperator.c @@ -122,6 +122,8 @@ void destroyStreamFillInfo(SStreamFillInfo* pFillInfo) { pFillInfo->type == TSDB_FILL_NULL || pFillInfo->type == TSDB_FILL_NULL_F) { taosMemoryFreeClear(pFillInfo->pResRow->pRowVal); taosMemoryFreeClear(pFillInfo->pResRow); + taosMemoryFreeClear(pFillInfo->pNonFillRow->pRowVal); + taosMemoryFreeClear(pFillInfo->pNonFillRow); } destroyStreamFillLinearInfo(pFillInfo->pLinearInfo); pFillInfo->pLinearInfo = NULL; diff --git a/source/libs/executor/src/streamtimesliceoperator.c b/source/libs/executor/src/streamtimesliceoperator.c index f61c731523..ec0c56f747 100644 --- a/source/libs/executor/src/streamtimesliceoperator.c +++ b/source/libs/executor/src/streamtimesliceoperator.c @@ -991,9 +991,9 @@ static void setForceWindowCloseFillRule(SStreamFillSupporter* pFillSup, SStreamF } else { pFillInfo->pos = FILL_POS_INVALID; setFillKeyInfo(ts, ts + 1, &pFillSup->interval, pFillInfo); - if (pFillSup->cur.pRowVal != NULL) { - copyNonFillValueInfo(pFillSup, pFillInfo); - } + } + if (pFillSup->cur.pRowVal != NULL) { + copyNonFillValueInfo(pFillSup, pFillInfo); } } break; case TSDB_FILL_PREV: { @@ -1021,6 +1021,9 @@ static void setForceWindowCloseFillRule(SStreamFillSupporter* pFillSup, SStreamF static void setTimeSliceFillRule(SStreamFillSupporter* pFillSup, SStreamFillInfo* pFillInfo, TSKEY ts) { int32_t code = TSDB_CODE_SUCCESS; int32_t lino = 0; + if (IS_FILL_CONST_VALUE(pFillInfo->type)) { + copyNonFillValueInfo(pFillSup, pFillInfo); + } if (!hasNextWindow(pFillSup) && !hasPrevWindow(pFillSup)) { pFillInfo->needFill = false; pFillInfo->pos = FILL_POS_START; @@ -1057,7 +1060,7 @@ static void setTimeSliceFillRule(SStreamFillSupporter* pFillSup, SStreamFillInfo setFillKeyInfo(startTs, nextWKey, &pFillSup->interval, pFillInfo); pFillInfo->pos = FILL_POS_START; } - copyNonFillValueInfo(pFillSup, pFillInfo); + // copyNonFillValueInfo(pFillSup, pFillInfo); } break; case TSDB_FILL_PREV: { if (hasPrevWindow(pFillSup) && hasNextWindow(pFillSup) && pFillInfo->preRowKey != pFillInfo->prePointKey &&