[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
|
||||
*/
|
||||
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 &&
|
||||
pSql->pStream == NULL && pTableMetaInfo->pTableMeta != NULL))) {
|
||||
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();
|
||||
|
||||
// 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);
|
||||
} else {
|
||||
if (isFixedOutputQuery(pQuery)) {
|
||||
|
|
|
@ -147,6 +147,11 @@ void tsdbInitFileGroupIter(STsdbFileH *pFileH, SFileGroupIter *pIter, int direct
|
|||
}
|
||||
|
||||
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;
|
||||
void *ptr = taosbsearch(&fid, pIter->base, sizeof(SFileGroup), pIter->numOfFGroups, compFGroupKey, flags);
|
||||
if (ptr == NULL) {
|
||||
|
|
|
@ -745,12 +745,23 @@ static bool getQualifiedDataBlock(STsdbQueryHandle *pQueryHandle, STableCheckInf
|
|||
int32_t index = -1;
|
||||
|
||||
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) {
|
||||
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);
|
||||
|
||||
|
@ -792,6 +803,7 @@ static bool getQualifiedDataBlock(STsdbQueryHandle *pQueryHandle, STableCheckInf
|
|||
pCheckInfo->pDataCols = tdNewDataCols(1000, 2, 4096);
|
||||
tdInitDataCols(pCheckInfo->pDataCols, pCheckInfo->pTableObj->schema);
|
||||
|
||||
SFile* pFile = &pCheckInfo->pFileGroup->files[TSDB_FILE_TYPE_DATA];
|
||||
if (pFile->fd == FD_INITIALIZER) {
|
||||
pFile->fd = open(pFile->fname, O_RDONLY);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue