提交 cdeca85e 编写于 作者: H Haojun Liao

refactor: do some internal refactor.

上级 e65927bc
...@@ -189,6 +189,7 @@ bool tLDataIterNextRow(SLDataIter *pIter) { ...@@ -189,6 +189,7 @@ bool tLDataIterNextRow(SLDataIter *pIter) {
} }
int32_t iBlockL = pIter->iBlockL; int32_t iBlockL = pIter->iBlockL;
if (pIter->bData.nRow == 0 && pIter->pBlockL != NULL) { // current block not loaded yet if (pIter->bData.nRow == 0 && pIter->pBlockL != NULL) { // current block not loaded yet
code = tsdbReadLastBlockEx(pIter->pReader, pIter->iLast, pIter->pBlockL, &pIter->bData); code = tsdbReadLastBlockEx(pIter->pReader, pIter->iLast, pIter->pBlockL, &pIter->bData);
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
...@@ -199,30 +200,25 @@ bool tLDataIterNextRow(SLDataIter *pIter) { ...@@ -199,30 +200,25 @@ bool tLDataIterNextRow(SLDataIter *pIter) {
} }
pIter->iRow += step; pIter->iRow += step;
findNextValidRow(pIter);
if (pIter->iRow >= pIter->bData.nRow || pIter->iRow < 0) { while(1) {
tLDataIterNextBlock(pIter); findNextValidRow(pIter);
if (pIter->pBlockL == NULL) { // no more data
goto _exit; if (pIter->iRow >= pIter->bData.nRow || pIter->iRow < 0) {
tLDataIterNextBlock(pIter);
if (pIter->pBlockL == NULL) { // no more data
goto _exit;
}
} else {
break;
} }
}
if (iBlockL != pIter->iBlockL) { if (iBlockL != pIter->iBlockL) {
if (pIter->pBlockL) {
code = tsdbReadLastBlockEx(pIter->pReader, pIter->iLast, pIter->pBlockL, &pIter->bData); code = tsdbReadLastBlockEx(pIter->pReader, pIter->iLast, pIter->pBlockL, &pIter->bData);
if (code) { if (code) {
goto _exit; goto _exit;
} }
pIter->iRow = pIter->backward ? (pIter->bData.nRow - 1) : 0;
pIter->iRow = pIter->backward? (pIter->bData.nRow-1):0;
findNextValidRow(pIter);
if (pIter->iRow >= pIter->bData.nRow || pIter->iRow < 0) {
// todo try next block
}
} else {
// no more data
goto _exit;
} }
} }
...@@ -232,10 +228,10 @@ bool tLDataIterNextRow(SLDataIter *pIter) { ...@@ -232,10 +228,10 @@ bool tLDataIterNextRow(SLDataIter *pIter) {
_exit: _exit:
if (code != TSDB_CODE_SUCCESS) { if (code != TSDB_CODE_SUCCESS) {
return false; terrno = code;
} else {
return pIter->pBlockL != NULL;
} }
return (code == TSDB_CODE_SUCCESS) && (pIter->pBlockL != NULL);
} }
SRowInfo *tLDataIterGet(SLDataIter *pIter) { SRowInfo *tLDataIterGet(SLDataIter *pIter) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册