more work
This commit is contained in:
parent
089d5e6150
commit
4edcd7011e
|
@ -316,6 +316,7 @@ struct STsdbSnapWriter {
|
||||||
SDataFReader* pDataFReader;
|
SDataFReader* pDataFReader;
|
||||||
SArray* aBlockIdx;
|
SArray* aBlockIdx;
|
||||||
int32_t iBlockIdx;
|
int32_t iBlockIdx;
|
||||||
|
SBlockIdx* pBlockIdx;
|
||||||
SMapData mBlock;
|
SMapData mBlock;
|
||||||
int32_t iBlock;
|
int32_t iBlock;
|
||||||
SBlockData blockData;
|
SBlockData blockData;
|
||||||
|
@ -432,37 +433,33 @@ static int32_t tsdbSnapWriteData(STsdbSnapWriter* pWriter, uint8_t* pData, uint3
|
||||||
}
|
}
|
||||||
|
|
||||||
// process
|
// process
|
||||||
TABLEID id = {0}; // TODO
|
TABLEID id = {0}; // TODO
|
||||||
|
TSKEY minKey = 0; // TODO
|
||||||
|
TSKEY maxKey = 0; // TODO
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
SBlockIdx* pBlockIdx = NULL;
|
if (pWriter->pBlockIdx == NULL) {
|
||||||
|
// TODO
|
||||||
if (pWriter->iBlockIdx < taosArrayGetSize(pWriter->aBlockIdx)) {
|
} else {
|
||||||
pBlockIdx = (SBlockIdx*)taosArrayGet(pWriter->aBlockIdx, pWriter->iBlockIdx);
|
int32_t c = tTABLEIDCmprFn(&id, pWriter->pBlockIdx);
|
||||||
}
|
|
||||||
|
|
||||||
if (pBlockIdx) {
|
|
||||||
int32_t c = tTABLEIDCmprFn(&id, pBlockIdx);
|
|
||||||
|
|
||||||
if (c == 0) {
|
if (c == 0) {
|
||||||
// merge
|
|
||||||
} else if (c < 0) {
|
} else if (c < 0) {
|
||||||
code = tsdbSnapWriteAppendData(pWriter, pData, nData);
|
// keep merge
|
||||||
if (code) goto _err;
|
|
||||||
|
|
||||||
break;
|
|
||||||
} else {
|
} else {
|
||||||
// commit the block
|
code = tsdbSnapWriteTableDataEnd(pWriter);
|
||||||
code = tsdbReadBlock(pWriter->pDataFReader, pBlockIdx, &pWriter->mBlock, NULL);
|
|
||||||
if (code) goto _err;
|
if (code) goto _err;
|
||||||
|
|
||||||
SBlockIdx blockIdx = {.suid = pBlockIdx->suid, .uid = pBlockIdx->uid};
|
pWriter->iBlockIdx++;
|
||||||
code = tsdbWriteBlock(pWriter->pDataFWriter, &pWriter->mBlock, NULL, &blockIdx);
|
if (pWriter->iBlockIdx < taosArrayGetSize(pWriter->aBlockIdx)) {
|
||||||
if (code) goto _err;
|
pWriter->pBlockIdx = (SBlockIdx*)taosArrayGet(pWriter->aBlockIdx, pWriter->iBlockIdx);
|
||||||
|
} else {
|
||||||
|
pWriter->pBlockIdx = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (taosArrayPush(pWriter->aBlockIdxN, &blockIdx) == NULL) {
|
if (pWriter->pBlockIdx) {
|
||||||
code = TSDB_CODE_OUT_OF_MEMORY;
|
code = tsdbReadBlock(pWriter->pDataFReader, pWriter->pBlockIdx, &pWriter->mBlock, NULL);
|
||||||
goto _err;
|
if (code) goto _err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue