fix
This commit is contained in:
parent
d02850382c
commit
b56ea026cb
|
@ -99,7 +99,7 @@ int tsdbSetAndOpenReadFSet(SReadH *pReadh, SDFileSet *pSet) {
|
||||||
void tsdbCloseAndUnsetFSet(SReadH *pReadh) { tsdbResetReadFile(pReadh); }
|
void tsdbCloseAndUnsetFSet(SReadH *pReadh) { tsdbResetReadFile(pReadh); }
|
||||||
|
|
||||||
int tsdbLoadBlockIdx(SReadH *pReadh) {
|
int tsdbLoadBlockIdx(SReadH *pReadh) {
|
||||||
SDFile * pHeadf = TSDB_READ_HEAD_FILE(pReadh);
|
SDFile *pHeadf = TSDB_READ_HEAD_FILE(pReadh);
|
||||||
SBlockIdx blkIdx;
|
SBlockIdx blkIdx;
|
||||||
|
|
||||||
ASSERT(taosArrayGetSize(pReadh->aBlkIdx) == 0);
|
ASSERT(taosArrayGetSize(pReadh->aBlkIdx) == 0);
|
||||||
|
@ -181,20 +181,13 @@ int tsdbSetReadTable(SReadH *pReadh, STable *pTable) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SBlockIdx *pBlkIdx = taosArrayGet(pReadh->aBlkIdx, pReadh->cidx);
|
SBlockIdx *pBlkIdx = taosArrayGet(pReadh->aBlkIdx, pReadh->cidx);
|
||||||
if (pBlkIdx->tid == TABLE_TID(pTable)) {
|
if (pBlkIdx->uid == TABLE_UID(pTable)) {
|
||||||
if (pBlkIdx->uid == TABLE_UID(pTable)) {
|
pReadh->pBlkIdx = pBlkIdx;
|
||||||
pReadh->pBlkIdx = pBlkIdx;
|
|
||||||
} else {
|
|
||||||
pReadh->pBlkIdx = NULL;
|
|
||||||
}
|
|
||||||
pReadh->cidx++;
|
|
||||||
break;
|
|
||||||
} else if (pBlkIdx->tid > TABLE_TID(pTable)) {
|
|
||||||
pReadh->pBlkIdx = NULL;
|
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
pReadh->cidx++;
|
pReadh->pBlkIdx = NULL;
|
||||||
}
|
}
|
||||||
|
pReadh->cidx++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pReadh->pBlkIdx = NULL;
|
pReadh->pBlkIdx = NULL;
|
||||||
|
@ -206,7 +199,7 @@ int tsdbSetReadTable(SReadH *pReadh, STable *pTable) {
|
||||||
int tsdbLoadBlockInfo(SReadH *pReadh, void *pTarget) {
|
int tsdbLoadBlockInfo(SReadH *pReadh, void *pTarget) {
|
||||||
ASSERT(pReadh->pBlkIdx != NULL);
|
ASSERT(pReadh->pBlkIdx != NULL);
|
||||||
|
|
||||||
SDFile * pHeadf = TSDB_READ_HEAD_FILE(pReadh);
|
SDFile *pHeadf = TSDB_READ_HEAD_FILE(pReadh);
|
||||||
SBlockIdx *pBlkIdx = pReadh->pBlkIdx;
|
SBlockIdx *pBlkIdx = pReadh->pBlkIdx;
|
||||||
|
|
||||||
if (tsdbSeekDFile(pHeadf, pBlkIdx->offset, SEEK_SET) < 0) {
|
if (tsdbSeekDFile(pHeadf, pBlkIdx->offset, SEEK_SET) < 0) {
|
||||||
|
@ -276,7 +269,8 @@ int tsdbLoadBlockData(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tsdbLoadBlockDataCols(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo, const int16_t *colIds, int numOfColsIds) {
|
int tsdbLoadBlockDataCols(SReadH *pReadh, SBlock *pBlock, SBlockInfo *pBlkInfo, const int16_t *colIds,
|
||||||
|
int numOfColsIds) {
|
||||||
ASSERT(pBlock->numOfSubBlocks > 0);
|
ASSERT(pBlock->numOfSubBlocks > 0);
|
||||||
int8_t update = pReadh->pRepo->config.update;
|
int8_t update = pReadh->pRepo->config.update;
|
||||||
|
|
||||||
|
@ -539,9 +533,9 @@ static int tsdbLoadBlockDataImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *pDat
|
||||||
pDataCols->numOfRows = pBlock->numOfRows;
|
pDataCols->numOfRows = pBlock->numOfRows;
|
||||||
|
|
||||||
// Recover the data
|
// Recover the data
|
||||||
int ccol = 0; // loop iter for SBlockCol object
|
int ccol = 0; // loop iter for SBlockCol object
|
||||||
int dcol = 0; // loop iter for SDataCols object
|
int dcol = 0; // loop iter for SDataCols object
|
||||||
int nBitmaps = (int)TD_BITMAP_BYTES(pBlock->numOfRows);
|
int nBitmaps = (int)TD_BITMAP_BYTES(pBlock->numOfRows);
|
||||||
SBlockCol *pBlockCol = NULL;
|
SBlockCol *pBlockCol = NULL;
|
||||||
while (dcol < pDataCols->numOfCols) {
|
while (dcol < pDataCols->numOfCols) {
|
||||||
SDataCol *pDataCol = &(pDataCols->cols[dcol]);
|
SDataCol *pDataCol = &(pDataCols->cols[dcol]);
|
||||||
|
@ -586,8 +580,8 @@ static int tsdbLoadBlockDataImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *pDat
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tsdbCheckAndDecodeColumnData(pDataCol, POINTER_SHIFT(pBlockData, tsize + toffset), tlen, pBlock->algorithm,
|
if (tsdbCheckAndDecodeColumnData(pDataCol, POINTER_SHIFT(pBlockData, tsize + toffset), tlen, pBlock->algorithm,
|
||||||
pBlock->numOfRows, tBitmaps, tLenBitmap, pDataCols->maxPoints, TSDB_READ_COMP_BUF(pReadh),
|
pBlock->numOfRows, tBitmaps, tLenBitmap, pDataCols->maxPoints,
|
||||||
(int)taosTSizeof(TSDB_READ_COMP_BUF(pReadh))) < 0) {
|
TSDB_READ_COMP_BUF(pReadh), (int)taosTSizeof(TSDB_READ_COMP_BUF(pReadh))) < 0) {
|
||||||
tsdbError("vgId:%d file %s is broken at column %d block offset %" PRId64 " column offset %u",
|
tsdbError("vgId:%d file %s is broken at column %d block offset %" PRId64 " column offset %u",
|
||||||
TSDB_READ_REPO_ID(pReadh), TSDB_FILE_FULL_NAME(pDFile), tcolId, (int64_t)pBlock->offset, toffset);
|
TSDB_READ_REPO_ID(pReadh), TSDB_FILE_FULL_NAME(pDFile), tcolId, (int64_t)pBlock->offset, toffset);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -662,7 +656,7 @@ static int tsdbLoadBlockDataColsImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *
|
||||||
ASSERT(pBlock->numOfSubBlocks == 0 || pBlock->numOfSubBlocks == 1);
|
ASSERT(pBlock->numOfSubBlocks == 0 || pBlock->numOfSubBlocks == 1);
|
||||||
ASSERT(colIds[0] == PRIMARYKEY_TIMESTAMP_COL_ID);
|
ASSERT(colIds[0] == PRIMARYKEY_TIMESTAMP_COL_ID);
|
||||||
|
|
||||||
SDFile * pDFile = (pBlock->last) ? TSDB_READ_LAST_FILE(pReadh) : TSDB_READ_DATA_FILE(pReadh);
|
SDFile *pDFile = (pBlock->last) ? TSDB_READ_LAST_FILE(pReadh) : TSDB_READ_DATA_FILE(pReadh);
|
||||||
SBlockCol blockCol = {0};
|
SBlockCol blockCol = {0};
|
||||||
|
|
||||||
tdResetDataCols(pDataCols);
|
tdResetDataCols(pDataCols);
|
||||||
|
@ -676,7 +670,7 @@ static int tsdbLoadBlockDataColsImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *
|
||||||
int ccol = 0;
|
int ccol = 0;
|
||||||
for (int i = 0; i < numOfColIds; i++) {
|
for (int i = 0; i < numOfColIds; i++) {
|
||||||
int16_t colId = colIds[i];
|
int16_t colId = colIds[i];
|
||||||
SDataCol * pDataCol = NULL;
|
SDataCol *pDataCol = NULL;
|
||||||
SBlockCol *pBlockCol = NULL;
|
SBlockCol *pBlockCol = NULL;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -740,7 +734,7 @@ static int tsdbLoadBlockDataColsImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *
|
||||||
static int tsdbLoadColData(SReadH *pReadh, SDFile *pDFile, SBlock *pBlock, SBlockCol *pBlockCol, SDataCol *pDataCol) {
|
static int tsdbLoadColData(SReadH *pReadh, SDFile *pDFile, SBlock *pBlock, SBlockCol *pBlockCol, SDataCol *pDataCol) {
|
||||||
ASSERT(pDataCol->colId == pBlockCol->colId);
|
ASSERT(pDataCol->colId == pBlockCol->colId);
|
||||||
|
|
||||||
STsdb * pRepo = TSDB_READ_REPO(pReadh);
|
STsdb *pRepo = TSDB_READ_REPO(pReadh);
|
||||||
STsdbCfg *pCfg = REPO_CFG(pRepo);
|
STsdbCfg *pCfg = REPO_CFG(pRepo);
|
||||||
|
|
||||||
int nBitmaps = (int)TD_BITMAP_BYTES(pBlock->numOfRows);
|
int nBitmaps = (int)TD_BITMAP_BYTES(pBlock->numOfRows);
|
||||||
|
@ -757,7 +751,7 @@ static int tsdbLoadColData(SReadH *pReadh, SDFile *pDFile, SBlock *pBlock, SBloc
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int tsize = pDataCol->bytes * pBlock->numOfRows + tLenBitmap + COMP_OVERFLOW_BYTES;
|
int tsize = pDataCol->bytes * pBlock->numOfRows + tLenBitmap + COMP_OVERFLOW_BYTES;
|
||||||
|
|
||||||
if (tsdbMakeRoom((void **)(&TSDB_READ_BUF(pReadh)), pBlockCol->len) < 0) return -1;
|
if (tsdbMakeRoom((void **)(&TSDB_READ_BUF(pReadh)), pBlockCol->len) < 0) return -1;
|
||||||
if (tsdbMakeRoom((void **)(&TSDB_READ_COMP_BUF(pReadh)), tsize) < 0) return -1;
|
if (tsdbMakeRoom((void **)(&TSDB_READ_COMP_BUF(pReadh)), tsize) < 0) return -1;
|
||||||
|
|
Loading…
Reference in New Issue