tsdbCache: update tsdbReadBlockIdx interface usings
This commit is contained in:
parent
ceaa37e430
commit
1c868f7b2a
|
@ -406,16 +406,18 @@ typedef struct SFSNextRowIter {
|
||||||
int32_t iFileSet;
|
int32_t iFileSet;
|
||||||
SArray *aDFileSet;
|
SArray *aDFileSet;
|
||||||
SDataFReader *pDataFReader;
|
SDataFReader *pDataFReader;
|
||||||
SMapData blockIdxMap;
|
SArray *aBlockIdx;
|
||||||
SBlockIdx blockIdx;
|
// SMapData blockIdxMap;
|
||||||
SMapData blockMap;
|
// SBlockIdx blockIdx;
|
||||||
int32_t nBlock;
|
SBlockIdx *pBlockIdx;
|
||||||
int32_t iBlock;
|
SMapData blockMap;
|
||||||
SBlock block;
|
int32_t nBlock;
|
||||||
SBlockData blockData;
|
int32_t iBlock;
|
||||||
int32_t nRow;
|
SBlock block;
|
||||||
int32_t iRow;
|
SBlockData blockData;
|
||||||
TSDBROW row;
|
int32_t nRow;
|
||||||
|
int32_t iRow;
|
||||||
|
TSDBROW row;
|
||||||
} SFSNextRowIter;
|
} SFSNextRowIter;
|
||||||
|
|
||||||
static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
|
static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
|
||||||
|
@ -439,17 +441,29 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
|
||||||
|
|
||||||
code = tsdbDataFReaderOpen(&state->pDataFReader, state->pTsdb, pFileSet);
|
code = tsdbDataFReaderOpen(&state->pDataFReader, state->pTsdb, pFileSet);
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
/*
|
|
||||||
tMapDataReset(&state->blockIdxMap);
|
// tMapDataReset(&state->blockIdxMap);
|
||||||
code = tsdbReadBlockIdx(state->pDataFReader, &state->blockIdxMap, NULL);
|
// code = tsdbReadBlockIdx(state->pDataFReader, &state->blockIdxMap, NULL);
|
||||||
|
if (!state->aBlockIdx) {
|
||||||
|
state->aBlockIdx = taosArrayInit(0, sizeof(SBlockIdx));
|
||||||
|
} else {
|
||||||
|
taosArrayClear(state->aBlockIdx);
|
||||||
|
}
|
||||||
|
code = tsdbReadBlockIdx(state->pDataFReader, state->aBlockIdx, NULL);
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
|
|
||||||
tBlockIdxReset(&state->blockIdx);
|
/* if (state->pBlockIdx) { */
|
||||||
code = tMapDataSearch(&state->blockIdxMap, state->pBlockIdxExp, tGetBlockIdx, tCmprBlockIdx, &state->blockIdx);
|
/* tBlockIdxReset(state->blockIdx); */
|
||||||
|
/* } */
|
||||||
|
/* tBlockIdxReset(state->blockIdx); */
|
||||||
|
/* code = tMapDataSearch(&state->blockIdxMap, state->pBlockIdxExp, tGetBlockIdx, tCmprBlockIdx, &state->blockIdx);
|
||||||
|
*/
|
||||||
|
state->pBlockIdx = taosArraySearch(state->aBlockIdx, state->pBlockIdxExp, tCmprBlockIdx, TD_EQ);
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
*/
|
|
||||||
tMapDataReset(&state->blockMap);
|
tMapDataReset(&state->blockMap);
|
||||||
code = tsdbReadBlock(state->pDataFReader, &state->blockIdx, &state->blockMap, NULL);
|
code = tsdbReadBlock(state->pDataFReader, state->pBlockIdx, &state->blockMap, NULL);
|
||||||
|
/* code = tsdbReadBlock(state->pDataFReader, &state->blockIdx, &state->blockMap, NULL); */
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
|
|
||||||
state->nBlock = state->blockMap.nItem;
|
state->nBlock = state->blockMap.nItem;
|
||||||
|
@ -463,7 +477,8 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
|
||||||
tBlockDataReset(&state->blockData);
|
tBlockDataReset(&state->blockData);
|
||||||
|
|
||||||
tMapDataGetItemByIdx(&state->blockMap, state->iBlock, &block, tGetBlock);
|
tMapDataGetItemByIdx(&state->blockMap, state->iBlock, &block, tGetBlock);
|
||||||
code = tsdbReadBlockData(state->pDataFReader, &state->blockIdx, &block, &state->blockData, NULL, NULL);
|
/* code = tsdbReadBlockData(state->pDataFReader, &state->blockIdx, &block, &state->blockData, NULL, NULL); */
|
||||||
|
code = tsdbReadBlockData(state->pDataFReader, state->pBlockIdx, &block, &state->blockData, NULL, NULL);
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
|
|
||||||
state->nRow = state->blockData.nRow;
|
state->nRow = state->blockData.nRow;
|
||||||
|
@ -480,7 +495,9 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
|
||||||
state->state = SFSNEXTROW_BLOCKDATA;
|
state->state = SFSNEXTROW_BLOCKDATA;
|
||||||
if (--state->iBlock < 0) {
|
if (--state->iBlock < 0) {
|
||||||
tsdbDataFReaderClose(&state->pDataFReader);
|
tsdbDataFReaderClose(&state->pDataFReader);
|
||||||
|
if (state->aBlockIdx) {
|
||||||
|
taosArrayDestroy(state->aBlockIdx);
|
||||||
|
}
|
||||||
state->state = SFSNEXTROW_FILESET;
|
state->state = SFSNEXTROW_FILESET;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -493,7 +510,15 @@ static int32_t getNextRowFromFS(void *iter, TSDBROW **ppRow) {
|
||||||
}
|
}
|
||||||
|
|
||||||
_err:
|
_err:
|
||||||
|
if (state->pDataFReader) {
|
||||||
|
tsdbDataFReaderClose(&state->pDataFReader);
|
||||||
|
}
|
||||||
|
if (state->aBlockIdx) {
|
||||||
|
taosArrayDestroy(state->aBlockIdx);
|
||||||
|
}
|
||||||
|
|
||||||
*ppRow = NULL;
|
*ppRow = NULL;
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue