fix(tsdb): swap pointer of data cols
This commit is contained in:
parent
96091ee10f
commit
4a649ec925
|
@ -24,7 +24,8 @@ const uint8_t tdVTypeByte[2][3] = {{
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// 1 bit
|
// 1 bit
|
||||||
TD_VTYPE_NORM_BYTE_I, TD_VTYPE_NULL_BYTE_I,
|
TD_VTYPE_NORM_BYTE_I, // normal
|
||||||
|
TD_VTYPE_NULL_BYTE_I,
|
||||||
TD_VTYPE_NULL_BYTE_I, // padding
|
TD_VTYPE_NULL_BYTE_I, // padding
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -343,7 +344,7 @@ bool tdIsBitmapBlkNorm(const void *pBitmap, int32_t numOfBits, int8_t bitmapMode
|
||||||
if (*((uint8_t *)pBitmap) != vTypeByte) {
|
if (*((uint8_t *)pBitmap) != vTypeByte) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
pBitmap = POINTER_SHIFT(pBitmap, 1);
|
pBitmap = POINTER_SHIFT(pBitmap, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t nLeft = numOfBits - nBytes * (bitmapMode == 0 ? TD_VTYPE_BITS : TD_VTYPE_BITS_I);
|
int32_t nLeft = numOfBits - nBytes * (bitmapMode == 0 ? TD_VTYPE_BITS : TD_VTYPE_BITS_I);
|
||||||
|
|
|
@ -246,6 +246,12 @@ int tsdbLoadBlockInfo(SReadH *pReadh, void *pTarget) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FORCE_INLINE void tsdbSwapDataCols(SDataCols *pDest, SDataCols *pSrc) {
|
||||||
|
SDataCol *pCols = pDest->cols;
|
||||||
|
memcpy(pDest, pSrc, sizeof(SDataCols));
|
||||||
|
pSrc->cols = pCols;
|
||||||
|
}
|
||||||
|
|
||||||
int tsdbLoadBlockData(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo) {
|
int tsdbLoadBlockData(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo) {
|
||||||
ASSERT(pBlock->numOfSubBlocks > 0);
|
ASSERT(pBlock->numOfSubBlocks > 0);
|
||||||
STsdbCfg *pCfg = REPO_CFG(pReadh->pRepo);
|
STsdbCfg *pCfg = REPO_CFG(pReadh->pRepo);
|
||||||
|
@ -277,7 +283,7 @@ int tsdbLoadBlockData(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo) {
|
||||||
TD_SUPPORT_UPDATE(update), TD_VER_MAX) < 0) {
|
TD_SUPPORT_UPDATE(update), TD_VER_MAX) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
memcpy(pReadh->pDCols[0], pReadh->pDCols[1], sizeof(SDataCols));
|
tsdbSwapDataCols(pReadh->pDCols[0], pReadh->pDCols[1]);
|
||||||
ASSERT(pReadh->pDCols[0]->bitmapMode != 0);
|
ASSERT(pReadh->pDCols[0]->bitmapMode != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -319,10 +325,11 @@ int tsdbLoadBlockDataCols(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo,
|
||||||
TD_SUPPORT_UPDATE(update), TD_VER_MAX) < 0) {
|
TD_SUPPORT_UPDATE(update), TD_VER_MAX) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
memcpy(pReadh->pDCols[0], pReadh->pDCols[1], sizeof(SDataCols));
|
tsdbSwapDataCols(pReadh->pDCols[0], pReadh->pDCols[1]);
|
||||||
ASSERT(pReadh->pDCols[0]->bitmapMode != 0);
|
ASSERT(pReadh->pDCols[0]->bitmapMode != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (mergeBitmap && !tdDataColsIsBitmapI(pReadh->pDCols[0])) {
|
if (mergeBitmap && !tdDataColsIsBitmapI(pReadh->pDCols[0])) {
|
||||||
for (int i = 0; i < numOfColsIds; ++i) {
|
for (int i = 0; i < numOfColsIds; ++i) {
|
||||||
SDataCol *pDataCol = pReadh->pDCols[0]->cols + i;
|
SDataCol *pDataCol = pReadh->pDCols[0]->cols + i;
|
||||||
|
|
Loading…
Reference in New Issue