fix(tsdb): fix error in retrieve sma.
This commit is contained in:
parent
5cac7c7a02
commit
4ce1614045
|
@ -104,7 +104,8 @@ typedef struct SIOCostSummary {
|
||||||
} SIOCostSummary;
|
} SIOCostSummary;
|
||||||
|
|
||||||
typedef struct SBlockLoadSuppInfo {
|
typedef struct SBlockLoadSuppInfo {
|
||||||
SArray* pColAgg;
|
SArray* pColAgg; // todo remove it
|
||||||
|
TColumnDataAggArray colAggArray;
|
||||||
SColumnDataAgg tsColAgg;
|
SColumnDataAgg tsColAgg;
|
||||||
int16_t* colId;
|
int16_t* colId;
|
||||||
int16_t* slotId;
|
int16_t* slotId;
|
||||||
|
@ -4826,6 +4827,7 @@ void tsdbReaderClose2(STsdbReader* pReader) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SBlockLoadSuppInfo* pSupInfo = &pReader->suppInfo;
|
SBlockLoadSuppInfo* pSupInfo = &pReader->suppInfo;
|
||||||
|
TARRAY2_DESTROY(&pSupInfo->colAggArray, NULL);
|
||||||
|
|
||||||
taosArrayDestroy(pSupInfo->pColAgg);
|
taosArrayDestroy(pSupInfo->pColAgg);
|
||||||
for (int32_t i = 0; i < pSupInfo->numOfCols; ++i) {
|
for (int32_t i = 0; i < pSupInfo->numOfCols; ++i) {
|
||||||
|
@ -5312,23 +5314,24 @@ int32_t tsdbRetrieveDatablockSMA2(STsdbReader* pReader, SSDataBlock* pDataBlock,
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t st = taosGetTimestampUs();
|
int64_t st = taosGetTimestampUs();
|
||||||
ASSERT(0);
|
|
||||||
|
|
||||||
// SDataBlk* pBlock = getCurrentBlock(&pReader->status.blockIter);
|
TARRAY2_CLEAR(&pSup->colAggArray, 0);
|
||||||
if (/*tDataBlkHasSma(pBlock)*/1) {
|
|
||||||
// code = tsdbReadBlockSma(pReader->pFileReader, pBlock, pSup->pColAgg);
|
// if (pFBlock->record.smaSize > 0) {
|
||||||
|
code = tsdbDataFileReadBlockSma(pReader->pFileReader, &pFBlock->record, &pSup->colAggArray);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
tsdbDebug("vgId:%d, failed to load block SMA for uid %" PRIu64 ", code:%s, %s", 0, pFBlock->uid, tstrerror(code),
|
tsdbDebug("vgId:%d, failed to load block SMA for uid %" PRIu64 ", code:%s, %s", 0, pFBlock->uid, tstrerror(code),
|
||||||
pReader->idStr);
|
pReader->idStr);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pSup->colAggArray.size > 0) {
|
||||||
|
*allHave = true;
|
||||||
} else {
|
} else {
|
||||||
*pBlockSMA = NULL;
|
*pBlockSMA = NULL;
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
*allHave = true;
|
|
||||||
|
|
||||||
// always load the first primary timestamp column data
|
// always load the first primary timestamp column data
|
||||||
SColumnDataAgg* pTsAgg = &pSup->tsColAgg;
|
SColumnDataAgg* pTsAgg = &pSup->tsColAgg;
|
||||||
|
|
||||||
|
@ -5357,11 +5360,13 @@ int32_t tsdbRetrieveDatablockSMA2(STsdbReader* pReader, SSDataBlock* pDataBlock,
|
||||||
*hasNullSMA = true;
|
*hasNullSMA = true;
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
size_t size = taosArrayGetSize(pSup->pColAgg);
|
|
||||||
|
size_t size = pSup->colAggArray.size;
|
||||||
|
|
||||||
int32_t i = 0, j = 0;
|
int32_t i = 0, j = 0;
|
||||||
while (j < numOfCols && i < size) {
|
while (j < numOfCols && i < size) {
|
||||||
SColumnDataAgg* pAgg = taosArrayGet(pSup->pColAgg, i);
|
// SColumnDataAgg* pAgg = taosArrayGet(pSup->pColAgg, i);
|
||||||
|
SColumnDataAgg* pAgg = &pSup->colAggArray.data[i];
|
||||||
if (pAgg->colId == pSup->colId[j]) {
|
if (pAgg->colId == pSup->colId[j]) {
|
||||||
pResBlock->pBlockAgg[pSup->slotId[j]] = pAgg;
|
pResBlock->pBlockAgg[pSup->slotId[j]] = pAgg;
|
||||||
i += 1;
|
i += 1;
|
||||||
|
|
Loading…
Reference in New Issue