[td-225]fix bugs during retrieve result from mnode.
This commit is contained in:
parent
5ac1c1bb67
commit
7db1438970
|
@ -213,27 +213,34 @@ void taos_fetch_rows_a(TAOS_RES *taosa, void (*fp)(void *, TAOS_RES *, int), voi
|
||||||
// handle the sub queries of join query
|
// handle the sub queries of join query
|
||||||
if (pCmd->command == TSDB_SQL_TABLE_JOIN_RETRIEVE) {
|
if (pCmd->command == TSDB_SQL_TABLE_JOIN_RETRIEVE) {
|
||||||
tscFetchDatablockFromSubquery(pSql);
|
tscFetchDatablockFromSubquery(pSql);
|
||||||
} else if (pRes->completed && pCmd->command == TSDB_SQL_FETCH) {
|
} else if (pRes->completed) {
|
||||||
if (hasMoreVnodesToTry(pSql)) { // sequentially retrieve data from remain vnodes.
|
if(pCmd->command == TSDB_SQL_FETCH) {
|
||||||
tscTryQueryNextVnode(pSql, tscAsyncQueryRowsForNextVnode);
|
if (hasMoreVnodesToTry(pSql)) { // sequentially retrieve data from remain vnodes.
|
||||||
return;
|
tscTryQueryNextVnode(pSql, tscAsyncQueryRowsForNextVnode);
|
||||||
} else {
|
return;
|
||||||
/*
|
} else {
|
||||||
|
/*
|
||||||
* all available virtual node has been checked already, now we need to check
|
* all available virtual node has been checked already, now we need to check
|
||||||
* for the next subclause queries
|
* for the next subclause queries
|
||||||
*/
|
*/
|
||||||
if (pCmd->clauseIndex < pCmd->numOfClause - 1) {
|
if (pCmd->clauseIndex < pCmd->numOfClause - 1) {
|
||||||
tscTryQueryNextClause(pSql, tscAsyncQueryRowsForNextVnode);
|
tscTryQueryNextClause(pSql, tscAsyncQueryRowsForNextVnode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 1. has reach the limitation
|
* 1. has reach the limitation
|
||||||
* 2. no remain virtual nodes to be retrieved anymore
|
* 2. no remain virtual nodes to be retrieved anymore
|
||||||
*/
|
*/
|
||||||
|
(*pSql->fetchFp)(param, pSql, 0);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
} else if (pCmd->command == TSDB_SQL_RETRIEVE) {
|
||||||
|
// in case of show command, return no data
|
||||||
(*pSql->fetchFp)(param, pSql, 0);
|
(*pSql->fetchFp)(param, pSql, 0);
|
||||||
|
} else {
|
||||||
|
assert(0);
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
} else { // current query is not completed, continue retrieve from node
|
} else { // current query is not completed, continue retrieve from node
|
||||||
if (pCmd->command != TSDB_SQL_RETRIEVE_LOCALMERGE && pCmd->command < TSDB_SQL_LOCAL) {
|
if (pCmd->command != TSDB_SQL_RETRIEVE_LOCALMERGE && pCmd->command < TSDB_SQL_LOCAL) {
|
||||||
pCmd->command = (pCmd->command > TSDB_SQL_MGMT) ? TSDB_SQL_RETRIEVE : TSDB_SQL_FETCH;
|
pCmd->command = (pCmd->command > TSDB_SQL_MGMT) ? TSDB_SQL_RETRIEVE : TSDB_SQL_FETCH;
|
||||||
|
|
Loading…
Reference in New Issue