From ca84805cfcd1c53b02feac3a59c339f45df6129a Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 6 Dec 2022 17:22:58 +0800 Subject: [PATCH] fix interpolation corner case --- source/dnode/vnode/src/tsdb/tsdbUtil.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbUtil.c b/source/dnode/vnode/src/tsdb/tsdbUtil.c index 55aea3a6d6..79007a49a0 100644 --- a/source/dnode/vnode/src/tsdb/tsdbUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbUtil.c @@ -1105,8 +1105,13 @@ void tBlockDataGetColData(SBlockData *pBlockData, int16_t cid, SColData **ppColD int32_t ridx = pBlockData->nColData - 1; while (lidx <= ridx) { - int32_t midx = lidx + (ridx - lidx) * (cid - pBlockData->aColData[lidx].cid) / - (pBlockData->aColData[ridx].cid - pBlockData->aColData[lidx].cid); + int32_t midx; + if (lidx == ridx) { + midx = lidx; + } else { + midx = lidx + (ridx - lidx) * (cid - pBlockData->aColData[lidx].cid) / + (pBlockData->aColData[ridx].cid - pBlockData->aColData[lidx].cid); + } SColData *pColData = tBlockDataGetColDataByIdx(pBlockData, midx); int32_t c = (pColData->cid == cid) ? 0 : ((pColData->cid > cid) ? 1 : -1);