From 8959e4437b7c011224379df1c82039ad98fabb76 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Tue, 19 Apr 2022 14:13:34 +0800 Subject: [PATCH] trow refactor --- include/common/trow.h | 50 +++++++++++++------------- source/libs/parser/inc/parInsertData.h | 4 +-- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/include/common/trow.h b/include/common/trow.h index dbbdef84a0..963542fb31 100644 --- a/include/common/trow.h +++ b/include/common/trow.h @@ -308,21 +308,21 @@ static FORCE_INLINE int32_t tdSetBitmapValTypeII(void *pBitmap, int16_t colIdx, // use literal value directly and not use formula to simplify the codes switch (nOffset) { case 0: - // *pDestByte = ((*pDestByte) & 0x3F) | (valType << 6); + *pDestByte = ((*pDestByte) & 0x3F) | (valType << 6); // set the value and clear other partitions for offset 0 - *pDestByte = (valType << 6); + // *pDestByte |= (valType << 6); break; case 1: - // *pDestByte = ((*pDestByte) & 0xCF) | (valType << 4); - *pDestByte |= (valType << 4); + *pDestByte = ((*pDestByte) & 0xCF) | (valType << 4); + // *pDestByte |= (valType << 4); break; case 2: - // *pDestByte = ((*pDestByte) & 0xF3) | (valType << 2); - *pDestByte |= (valType << 2); + *pDestByte = ((*pDestByte) & 0xF3) | (valType << 2); + // *pDestByte |= (valType << 2); break; case 3: - // *pDestByte = ((*pDestByte) & 0xFC) | valType; - *pDestByte |= (valType); + *pDestByte = ((*pDestByte) & 0xFC) | valType; + // *pDestByte |= (valType); break; default: TASSERT(0); @@ -417,37 +417,37 @@ static FORCE_INLINE int32_t tdSetBitmapValTypeI(void *pBitmap, int16_t colIdx, T // use literal value directly and not use formula to simplify the codes switch (nOffset) { case 0: - // *pDestByte = ((*pDestByte) & 0x7F) | (valType << 7); + *pDestByte = ((*pDestByte) & 0x7F) | (valType << 7); // set the value and clear other partitions for offset 0 - *pDestByte = (valType << 7); + // *pDestByte |= (valType << 7); break; case 1: - // *pDestByte = ((*pDestByte) & 0xBF) | (valType << 6); - *pDestByte |= (valType << 6); + *pDestByte = ((*pDestByte) & 0xBF) | (valType << 6); + // *pDestByte |= (valType << 6); break; case 2: - // *pDestByte = ((*pDestByte) & 0xDF) | (valType << 5); - *pDestByte |= (valType << 5); + *pDestByte = ((*pDestByte) & 0xDF) | (valType << 5); + // *pDestByte |= (valType << 5); break; case 3: - // *pDestByte = ((*pDestByte) & 0xEF) | (valType << 4); - *pDestByte |= (valType << 4); + *pDestByte = ((*pDestByte) & 0xEF) | (valType << 4); + // *pDestByte |= (valType << 4); break; case 4: - // *pDestByte = ((*pDestByte) & 0xF7) | (valType << 3); - *pDestByte |= (valType << 3); + *pDestByte = ((*pDestByte) & 0xF7) | (valType << 3); + // *pDestByte |= (valType << 3); break; case 5: - // *pDestByte = ((*pDestByte) & 0xFB) | (valType << 2); - *pDestByte |= (valType << 2); + *pDestByte = ((*pDestByte) & 0xFB) | (valType << 2); + // *pDestByte |= (valType << 2); break; case 6: - // *pDestByte = ((*pDestByte) & 0xFD) | (valType << 1); - *pDestByte |= (valType << 1); + *pDestByte = ((*pDestByte) & 0xFD) | (valType << 1); + // *pDestByte |= (valType << 1); break; case 7: - // *pDestByte = ((*pDestByte) & 0xFE) | valType; - *pDestByte |= (valType); + *pDestByte = ((*pDestByte) & 0xFE) | valType; + // *pDestByte |= (valType); break; default: TASSERT(0); @@ -656,6 +656,7 @@ static int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) { case TD_ROW_TP: #ifdef TD_SUPPORT_BITMAP pBuilder->pBitmap = tdGetBitmapAddrTp(pBuilder->pBuf, pBuilder->flen); + memset(pBuilder->pBitmap, TD_VTYPE_NONE_BYTE_II, pBuilder->nBitmaps); #endif // the primary TS key is stored separatedly len = TD_ROW_HEAD_LEN + pBuilder->flen - sizeof(TSKEY) + pBuilder->nBitmaps; @@ -665,6 +666,7 @@ static int32_t tdSRowResetBuf(SRowBuilder *pBuilder, void *pBuf) { case TD_ROW_KV: #ifdef TD_SUPPORT_BITMAP pBuilder->pBitmap = tdGetBitmapAddrKv(pBuilder->pBuf, pBuilder->nBoundCols); + memset(pBuilder->pBitmap, TD_VTYPE_NONE_BYTE_II, pBuilder->nBitmaps); #endif len = TD_ROW_HEAD_LEN + TD_ROW_NCOLS_LEN + (pBuilder->nBoundCols - 1) * sizeof(SKvRowIdx) + pBuilder->nBoundBitmaps; // add diff --git a/source/libs/parser/inc/parInsertData.h b/source/libs/parser/inc/parInsertData.h index ee17de50e0..cf87f57d4f 100644 --- a/source/libs/parser/inc/parInsertData.h +++ b/source/libs/parser/inc/parInsertData.h @@ -98,7 +98,7 @@ static FORCE_INLINE void getSTSRowAppendInfo(SSchema *pSchema, uint8_t rowType, *toffset = (spd->cols + schemaIdx)->toffset; // the offset of firstPart *colIdx = schemaIdx; } else { - *toffset = idx * sizeof(SColIdx); // the offset of SColIdx + *toffset = idx * sizeof(SKvRowIdx); // the offset of SKvRowIdx *colIdx = idx; } } else { @@ -108,7 +108,7 @@ static FORCE_INLINE void getSTSRowAppendInfo(SSchema *pSchema, uint8_t rowType, *toffset = (spd->cols + schemaIdx)->toffset; *colIdx = schemaIdx; } else { - *toffset = ((spd->colIdxInfo + idx)->finalIdx) * sizeof(SColIdx); + *toffset = ((spd->colIdxInfo + idx)->finalIdx) * sizeof(SKvRowIdx); *colIdx = (spd->colIdxInfo + idx)->finalIdx; } } -- GitLab