[td-14393] fix bug.
This commit is contained in:
parent
c7e749d040
commit
29fd5ec11e
|
@ -2268,6 +2268,7 @@ int32_t tsdbGetFileBlocksDistInfo(tsdbReaderT* queryHandle, STableBlockDistInfo*
|
||||||
|
|
||||||
pTableBlockInfo->totalSize = 0;
|
pTableBlockInfo->totalSize = 0;
|
||||||
pTableBlockInfo->totalRows = 0;
|
pTableBlockInfo->totalRows = 0;
|
||||||
|
|
||||||
STsdbFS* pFileHandle = REPO_FS(pTsdbReadHandle->pTsdb);
|
STsdbFS* pFileHandle = REPO_FS(pTsdbReadHandle->pTsdb);
|
||||||
|
|
||||||
// find the start data block in file
|
// find the start data block in file
|
||||||
|
@ -2288,6 +2289,8 @@ int32_t tsdbGetFileBlocksDistInfo(tsdbReaderT* queryHandle, STableBlockDistInfo*
|
||||||
int defaultRows = 4096;//TSDB_DEFAULT_BLOCK_ROWS(pCfg->maxRowsPerFileBlock);
|
int defaultRows = 4096;//TSDB_DEFAULT_BLOCK_ROWS(pCfg->maxRowsPerFileBlock);
|
||||||
STimeWindow win = TSWINDOW_INITIALIZER;
|
STimeWindow win = TSWINDOW_INITIALIZER;
|
||||||
|
|
||||||
|
bool ascTraverse = ASCENDING_TRAVERSE(pTsdbReadHandle->order);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
numOfBlocks = 0;
|
numOfBlocks = 0;
|
||||||
tsdbRLockFS(REPO_FS(pTsdbReadHandle->pTsdb));
|
tsdbRLockFS(REPO_FS(pTsdbReadHandle->pTsdb));
|
||||||
|
@ -2300,8 +2303,7 @@ int32_t tsdbGetFileBlocksDistInfo(tsdbReaderT* queryHandle, STableBlockDistInfo*
|
||||||
tsdbGetFidKeyRange(pCfg->daysPerFile, pCfg->precision, pTsdbReadHandle->pFileGroup->fid, &win.skey, &win.ekey);
|
tsdbGetFidKeyRange(pCfg->daysPerFile, pCfg->precision, pTsdbReadHandle->pFileGroup->fid, &win.skey, &win.ekey);
|
||||||
|
|
||||||
// current file are not overlapped with query time window, ignore remain files
|
// current file are not overlapped with query time window, ignore remain files
|
||||||
if ((ASCENDING_TRAVERSE(pTsdbReadHandle->order) && win.skey > pTsdbReadHandle->window.ekey) ||
|
if ((ascTraverse && win.skey > pTsdbReadHandle->window.ekey) || (!ascTraverse && win.ekey < pTsdbReadHandle->window.ekey)) {
|
||||||
(!ASCENDING_TRAVERSE(pTsdbReadHandle->order) && win.ekey < pTsdbReadHandle->window.ekey)) {
|
|
||||||
tsdbUnLockFS(REPO_FS(pTsdbReadHandle->pTsdb));
|
tsdbUnLockFS(REPO_FS(pTsdbReadHandle->pTsdb));
|
||||||
tsdbDebug("%p remain files are not qualified for qrange:%" PRId64 "-%" PRId64 ", ignore, %s", pTsdbReadHandle,
|
tsdbDebug("%p remain files are not qualified for qrange:%" PRId64 "-%" PRId64 ", ignore, %s", pTsdbReadHandle,
|
||||||
pTsdbReadHandle->window.skey, pTsdbReadHandle->window.ekey, pTsdbReadHandle->idStr);
|
pTsdbReadHandle->window.skey, pTsdbReadHandle->window.ekey, pTsdbReadHandle->idStr);
|
||||||
|
@ -2343,9 +2345,17 @@ int32_t tsdbGetFileBlocksDistInfo(tsdbReaderT* queryHandle, STableBlockDistInfo*
|
||||||
|
|
||||||
int32_t numOfRows = pBlock[j].numOfRows;
|
int32_t numOfRows = pBlock[j].numOfRows;
|
||||||
pTableBlockInfo->totalRows += numOfRows;
|
pTableBlockInfo->totalRows += numOfRows;
|
||||||
if (numOfRows > pTableBlockInfo->maxRows) pTableBlockInfo->maxRows = numOfRows;
|
if (numOfRows > pTableBlockInfo->maxRows) {
|
||||||
if (numOfRows < pTableBlockInfo->minRows) pTableBlockInfo->minRows = numOfRows;
|
pTableBlockInfo->maxRows = numOfRows;
|
||||||
if (numOfRows < defaultRows) pTableBlockInfo->numOfSmallBlocks+=1;
|
}
|
||||||
|
|
||||||
|
if (numOfRows < pTableBlockInfo->minRows) {
|
||||||
|
pTableBlockInfo->minRows = numOfRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numOfRows < defaultRows) {
|
||||||
|
pTableBlockInfo->numOfSmallBlocks += 1;
|
||||||
|
}
|
||||||
// int32_t stepIndex = (numOfRows-1)/TSDB_BLOCK_DIST_STEP_ROWS;
|
// int32_t stepIndex = (numOfRows-1)/TSDB_BLOCK_DIST_STEP_ROWS;
|
||||||
// SFileBlockInfo *blockInfo = (SFileBlockInfo*)taosArrayGet(pTableBlockInfo->dataBlockInfos, stepIndex);
|
// SFileBlockInfo *blockInfo = (SFileBlockInfo*)taosArrayGet(pTableBlockInfo->dataBlockInfos, stepIndex);
|
||||||
// blockInfo->numBlocksOfStep++;
|
// blockInfo->numBlocksOfStep++;
|
||||||
|
|
|
@ -4564,6 +4564,7 @@ static SSDataBlock* doBlockInfoScan(SOperatorInfo* pOperator, bool* newgroup) {
|
||||||
|
|
||||||
tableBlockDist.dataBlockInfos = taosArrayInit(numRowSteps, sizeof(SFileBlockInfo));
|
tableBlockDist.dataBlockInfos = taosArrayInit(numRowSteps, sizeof(SFileBlockInfo));
|
||||||
taosArraySetSize(tableBlockDist.dataBlockInfos, numRowSteps);
|
taosArraySetSize(tableBlockDist.dataBlockInfos, numRowSteps);
|
||||||
|
|
||||||
tableBlockDist.maxRows = INT_MIN;
|
tableBlockDist.maxRows = INT_MIN;
|
||||||
tableBlockDist.minRows = INT_MAX;
|
tableBlockDist.minRows = INT_MAX;
|
||||||
|
|
||||||
|
@ -4585,8 +4586,8 @@ static SSDataBlock* doBlockInfoScan(SOperatorInfo* pOperator, bool* newgroup) {
|
||||||
//
|
//
|
||||||
// tbufCloseWriter(&bw);
|
// tbufCloseWriter(&bw);
|
||||||
|
|
||||||
SArray* g = GET_TABLEGROUP(pOperator->pRuntimeEnv, 0);
|
// SArray* g = GET_TABLEGROUP(pOperator->, 0);
|
||||||
pOperator->pRuntimeEnv->current = taosArrayGetP(g, 0);
|
// pOperator->pRuntimeEnv->current = taosArrayGetP(g, 0);
|
||||||
|
|
||||||
pOperator->status = OP_EXEC_DONE;
|
pOperator->status = OP_EXEC_DONE;
|
||||||
return pBlock;
|
return pBlock;
|
||||||
|
|
Loading…
Reference in New Issue