diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index 39289a55f482df04979ba79f500f9f19d04dac03..75eff33af37977f9e748e18f631cd3a7c876692c 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -662,6 +662,7 @@ static int32_t tscLaunchRealSubqueries(SSqlObj* pSql) { } else { filterVgroupTables(pQueryInfo, pTableMetaInfo->pVgroupTables); } + pQueryInfo->stableQuery = true; } subquerySetState(pNew, &pSql->subState, i, 0); diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index 7775ad7c84ec3939cc85aea50ca892c6f734d798..0ca7e3f2b7a539bf1869d9ee20c2b6aacf5dcb04 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -394,7 +394,7 @@ bool tscIsPointInterpQuery(SQueryInfo* pQueryInfo) { } bool tscNeedTableSeqScan(SQueryInfo* pQueryInfo) { - return pQueryInfo->stableQuery && (tscQueryContainsFunction(pQueryInfo, TSDB_FUNC_TWA) || tscQueryContainsFunction(pQueryInfo, TSDB_FUNC_ELAPSED)); + return pQueryInfo->stableQuery && (tscQueryContainsFunction(pQueryInfo, TSDB_FUNC_TWA) || tscQueryContainsFunction(pQueryInfo, TSDB_FUNC_ELAPSED) || (pQueryInfo->tsBuf != NULL)); } bool tscGetPointInterpQuery(SQueryInfo* pQueryInfo) { diff --git a/src/query/src/qExecutor.c b/src/query/src/qExecutor.c index da346a23b66f12eebe8460dc269fb6a603dfb8a7..e9eebfc7dd1039709a99c033ac1843daf83e70b8 100644 --- a/src/query/src/qExecutor.c +++ b/src/query/src/qExecutor.c @@ -4832,7 +4832,7 @@ static int32_t setupQueryHandle(void* tsdb, SQueryRuntimeEnv* pRuntimeEnv, int64 } STsdbQueryCond cond = createTsdbQueryCond(pQueryAttr, &pQueryAttr->window); - if (pQueryAttr->tsCompQuery || pQueryAttr->pointInterpQuery) { + if (pQueryAttr->tsCompQuery || pQueryAttr->pointInterpQuery || pQueryAttr->needTableSeqScan) { cond.type = BLOCK_LOAD_TABLE_SEQ_ORDER; }