From 7dc8b876f3a90962e3a9d23aa7b3bf48f4ce2b11 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 29 Jun 2022 01:59:22 +0000 Subject: [PATCH 1/2] more work --- source/dnode/vnode/src/inc/tsdb.h | 1 + source/dnode/vnode/src/tsdb/tsdbUtil.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index 0e44a636c6..9c32b4fccb 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -151,6 +151,7 @@ int32_t tBlockDataAddColData(SBlockData *pBlockData, int32_t iColData, SColData int32_t tBlockDataAppendRow(SBlockData *pBlockData, TSDBROW *pRow, STSchema *pTSchema); int32_t tBlockDataMerge(SBlockData *pBlockData1, SBlockData *pBlockData2, SBlockData *pBlockData); int32_t tBlockDataCopy(SBlockData *pBlockDataSrc, SBlockData *pBlockDataDest); +void tBlockDataGetColData(SBlockData *pBlockData, int16_t cid, SColData **ppColData); // SDelIdx int32_t tPutDelIdx(uint8_t *p, void *ph); int32_t tGetDelIdx(uint8_t *p, void *ph); diff --git a/source/dnode/vnode/src/tsdb/tsdbUtil.c b/source/dnode/vnode/src/tsdb/tsdbUtil.c index d807f93357..c8e79dd14a 100644 --- a/source/dnode/vnode/src/tsdb/tsdbUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbUtil.c @@ -1331,3 +1331,16 @@ int32_t tBlockDataCopy(SBlockData *pBlockDataSrc, SBlockData *pBlockDataDest) { _exit: return code; } + +void tBlockDataGetColData(SBlockData *pBlockData, int16_t cid, SColData **ppColData) { + ASSERT(cid != PRIMARYKEY_TIMESTAMP_COL_ID); + + SColData *pColData = &(SColData){.cid = cid}; + + void *p = taosArraySearch(pBlockData->aColDataP, &pColData, tColDataPCmprFn, TD_EQ); + if (p == NULL) { + *ppColData = NULL; + } else { + *ppColData = *(SColData **)p; + } +} \ No newline at end of file From 0dbdc3d68e5965bad2a285037098e19025cce131 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Wed, 29 Jun 2022 02:06:06 +0000 Subject: [PATCH 2/2] more work --- source/dnode/vnode/src/tsdb/tsdbUtil.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbUtil.c b/source/dnode/vnode/src/tsdb/tsdbUtil.c index c8e79dd14a..fa250831bf 100644 --- a/source/dnode/vnode/src/tsdb/tsdbUtil.c +++ b/source/dnode/vnode/src/tsdb/tsdbUtil.c @@ -647,15 +647,11 @@ void tsdbRowGetColVal(TSDBROW *pRow, STSchema *pTSchema, int32_t iCol, SColVal * if (pRow->type == 0) { tTSRowGetVal(pRow->pTSRow, pTSchema, iCol, pColVal); } else if (pRow->type == 1) { - SColData *pColData = &(SColData){.cid = pTColumn->colId}; - void *p = NULL; + SColData *pColData; - p = taosArraySearch(pRow->pBlockData->aColDataP, &pColData, tColDataPCmprFn, TD_EQ); - if (p) { - pColData = *(SColData **)p; - - ASSERT(pColData->type == pTColumn->type); + tBlockDataGetColData(pRow->pBlockData, pTColumn->colId, &pColData); + if (pColData) { tColDataGetValue(pColData, pRow->iRow, pColVal); } else { *pColVal = COL_VAL_NONE(pTColumn->colId, pTColumn->type);