From d92f0706e797f503c7a5db73f41ef6448f0cc461 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 15 Apr 2024 18:43:58 +0800 Subject: [PATCH] fix(tsdb): check the boundary value when reseting range. --- source/dnode/vnode/src/tsdb/tsdbRead2.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead2.c b/source/dnode/vnode/src/tsdb/tsdbRead2.c index 69f4f82459..6100b8363e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead2.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead2.c @@ -4807,7 +4807,13 @@ int32_t tsdbReaderReset2(STsdbReader* pReader, SQueryTableDataCond* pCond) { bool asc = ASCENDING_TRAVERSE(pReader->info.order); int32_t step = asc ? 1 : -1; - int64_t ts = asc ? pReader->info.window.skey - 1 : pReader->info.window.ekey + 1; + + int64_t ts = 0; + if (asc) { + ts = (pReader->info.window.skey > INT64_MIN)? pReader->info.window.skey-1:pReader->info.window.skey; + } else { + ts = (pReader->info.window.ekey < INT64_MAX)? pReader->info.window.ekey + 1:pReader->info.window.ekey; + } resetAllDataBlockScanInfo(pStatus->pTableMap, ts, step); // no data in files, let's try buffer in memory