[td-98]
This commit is contained in:
parent
2beb6f042e
commit
a061be9cde
|
@ -793,7 +793,7 @@ void taos_free_result_imp(TAOS_RES *res, int keepCmd) {
|
||||||
* be executed, and the retry efforts may result in double free the resources, e.g.,SRetrieveSupport
|
* be executed, and the retry efforts may result in double free the resources, e.g.,SRetrieveSupport
|
||||||
*/
|
*/
|
||||||
if (pRes->code != TSDB_CODE_QUERY_CANCELLED &&
|
if (pRes->code != TSDB_CODE_QUERY_CANCELLED &&
|
||||||
((pRes->numOfRows > 0 && pCmd->command < TSDB_SQL_LOCAL) ||
|
((pRes->numOfRows > 0 && pCmd->command < TSDB_SQL_LOCAL && pRes->completed == false) ||
|
||||||
(pRes->code == TSDB_CODE_SUCCESS && pRes->numOfRows == 0 && pCmd->command == TSDB_SQL_SELECT &&
|
(pRes->code == TSDB_CODE_SUCCESS && pRes->numOfRows == 0 && pCmd->command == TSDB_SQL_SELECT &&
|
||||||
pSql->pStream == NULL && pTableMetaInfo->pTableMeta != NULL))) {
|
pSql->pStream == NULL && pTableMetaInfo->pTableMeta != NULL))) {
|
||||||
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;
|
||||||
|
|
|
@ -5148,7 +5148,7 @@ static void singleTableQueryImpl(SQInfo* pQInfo) {
|
||||||
int64_t st = taosGetTimestampUs();
|
int64_t st = taosGetTimestampUs();
|
||||||
|
|
||||||
// group by normal column, sliding window query, interval query are handled by interval query processor
|
// group by normal column, sliding window query, interval query are handled by interval query processor
|
||||||
if (pQuery->intervalTime != 0 || isGroupbyNormalCol(pQuery->pGroupbyExpr)) { // interval (down sampling operation)
|
if (isIntervalQuery(pQuery) || isGroupbyNormalCol(pQuery->pGroupbyExpr)) { // interval (down sampling operation)
|
||||||
tableIntervalProcessor(pQInfo);
|
tableIntervalProcessor(pQInfo);
|
||||||
} else {
|
} else {
|
||||||
if (isFixedOutputQuery(pQuery)) {
|
if (isFixedOutputQuery(pQuery)) {
|
||||||
|
|
|
@ -147,6 +147,11 @@ void tsdbInitFileGroupIter(STsdbFileH *pFileH, SFileGroupIter *pIter, int direct
|
||||||
}
|
}
|
||||||
|
|
||||||
void tsdbSeekFileGroupIter(SFileGroupIter *pIter, int fid) {
|
void tsdbSeekFileGroupIter(SFileGroupIter *pIter, int fid) {
|
||||||
|
if (pIter->numOfFGroups == 0) {
|
||||||
|
assert(pIter->pFileGroup == NULL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int flags = (pIter->direction == TSDB_FGROUP_ITER_FORWARD) ? TD_GE : TD_LE;
|
int flags = (pIter->direction == TSDB_FGROUP_ITER_FORWARD) ? TD_GE : TD_LE;
|
||||||
void *ptr = taosbsearch(&fid, pIter->base, sizeof(SFileGroup), pIter->numOfFGroups, compFGroupKey, flags);
|
void *ptr = taosbsearch(&fid, pIter->base, sizeof(SFileGroup), pIter->numOfFGroups, compFGroupKey, flags);
|
||||||
if (ptr == NULL) {
|
if (ptr == NULL) {
|
||||||
|
|
|
@ -745,13 +745,24 @@ static bool getQualifiedDataBlock(STsdbQueryHandle *pQueryHandle, STableCheckInf
|
||||||
int32_t index = -1;
|
int32_t index = -1;
|
||||||
|
|
||||||
int32_t tid = pCheckInfo->tableId.tid;
|
int32_t tid = pCheckInfo->tableId.tid;
|
||||||
SFile* pFile = &pCheckInfo->pFileGroup->files[TSDB_FILE_TYPE_DATA];
|
|
||||||
|
|
||||||
while (1) {
|
while (pCheckInfo->pFileGroup != NULL) {
|
||||||
if ((fid = getFileCompInfo(pCheckInfo, pCheckInfo->pFileGroup)) < 0) {
|
if ((fid = getFileCompInfo(pCheckInfo, pCheckInfo->pFileGroup)) < 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SFile* pFile = &pCheckInfo->pFileGroup->files[TSDB_FILE_TYPE_DATA];
|
||||||
|
|
||||||
|
// no data block in current file, try next
|
||||||
|
if (pCheckInfo->compIndex[tid].numOfSuperBlocks == 0) {
|
||||||
|
dTrace("QInfo:%p no data block in file, fid:%d, tid:%d, try next", pQueryHandle->qinfo,
|
||||||
|
pCheckInfo->pFileGroup->fileId, tid);
|
||||||
|
|
||||||
|
pCheckInfo->pFileGroup = tsdbGetFileGroupNext(&pCheckInfo->fileIter);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
index = binarySearchForBlockImpl(pCheckInfo->pCompInfo->blocks, pCheckInfo->compIndex[tid].numOfSuperBlocks, pQueryHandle->order, key);
|
index = binarySearchForBlockImpl(pCheckInfo->pCompInfo->blocks, pCheckInfo->compIndex[tid].numOfSuperBlocks, pQueryHandle->order, key);
|
||||||
|
|
||||||
if (type == QUERY_RANGE_GREATER_EQUAL) {
|
if (type == QUERY_RANGE_GREATER_EQUAL) {
|
||||||
|
@ -792,6 +803,7 @@ static bool getQualifiedDataBlock(STsdbQueryHandle *pQueryHandle, STableCheckInf
|
||||||
pCheckInfo->pDataCols = tdNewDataCols(1000, 2, 4096);
|
pCheckInfo->pDataCols = tdNewDataCols(1000, 2, 4096);
|
||||||
tdInitDataCols(pCheckInfo->pDataCols, pCheckInfo->pTableObj->schema);
|
tdInitDataCols(pCheckInfo->pDataCols, pCheckInfo->pTableObj->schema);
|
||||||
|
|
||||||
|
SFile* pFile = &pCheckInfo->pFileGroup->files[TSDB_FILE_TYPE_DATA];
|
||||||
if (pFile->fd == FD_INITIALIZER) {
|
if (pFile->fd == FD_INITIALIZER) {
|
||||||
pFile->fd = open(pFile->fname, O_RDONLY);
|
pFile->fd = open(pFile->fname, O_RDONLY);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue