diff --git a/source/libs/catalog/inc/catalogInt.h b/source/libs/catalog/inc/catalogInt.h index f66104ccdf..aa6c9ab3e8 100644 --- a/source/libs/catalog/inc/catalogInt.h +++ b/source/libs/catalog/inc/catalogInt.h @@ -263,6 +263,7 @@ typedef struct SCtgViewsCtx { } SCtgViewsCtx; typedef enum { + FETCH_TB_META, FETCH_TSMA_FOR_TB, FETCH_PROGRESS_FOR_TSMA, } CTG_TSMA_FETCH_TYPE; diff --git a/source/libs/catalog/src/ctgAsync.c b/source/libs/catalog/src/ctgAsync.c index 21da6857e6..529bc7ae65 100644 --- a/source/libs/catalog/src/ctgAsync.c +++ b/source/libs/catalog/src/ctgAsync.c @@ -2658,6 +2658,7 @@ int32_t ctgLaunchGetTbTSMATask(SCtgTask* pTask) { int32_t dbNum = taosArrayGetSize(pCtx->pNames); int32_t fetchIdx = 0, baseResIdx = 0; + // TODO test multi tables from multi dbs for (int32_t idx = 0; idx < dbNum; ++idx) { STablesReq* pReq = taosArrayGet(pCtx->pNames, idx); CTG_ERR_RET(ctgGetTbTSMAFromCache(pCtg, pCtx, idx, &fetchIdx, baseResIdx, pReq->pTables)); diff --git a/source/libs/catalog/src/ctgCache.c b/source/libs/catalog/src/ctgCache.c index 768320ca2c..73097c0d8a 100644 --- a/source/libs/catalog/src/ctgCache.c +++ b/source/libs/catalog/src/ctgCache.c @@ -3248,7 +3248,6 @@ int32_t ctgGetTbTSMAFromCache(SCatalog* pCtg, SCtgTbTSMACtx* pCtx, int32_t dbIdx // TODO test no db cache, select from another db for (int32_t i = 0; i < tbNum; ++i) { ctgAddTSMAFetch(&pCtx->pFetches, dbIdx, i, fetchIdx, baseResIdx + i, flag); - //ctgAddTSMAFetch(); taosArrayPush(pCtx->pResList, &(SMetaData){0}); } return TSDB_CODE_SUCCESS; diff --git a/source/libs/catalog/src/ctgUtil.c b/source/libs/catalog/src/ctgUtil.c index 87d0ca090f..ac19a7dc9a 100644 --- a/source/libs/catalog/src/ctgUtil.c +++ b/source/libs/catalog/src/ctgUtil.c @@ -511,6 +511,7 @@ void ctgClearHandle(SCatalog* pCtg) { ctgMetaRentInit(&pCtg->dbRent, gCtgMgmt.cfg.dbRentSec, CTG_RENT_DB, sizeof(SDbCacheInfo)); ctgMetaRentInit(&pCtg->stbRent, gCtgMgmt.cfg.stbRentSec, CTG_RENT_STABLE, sizeof(SSTableVersion)); ctgMetaRentInit(&pCtg->viewRent, gCtgMgmt.cfg.viewRentSec, CTG_RENT_VIEW, sizeof(SViewVersion)); + ctgMetaRentInit(&pCtg->tsmaRent, gCtgMgmt.cfg.tsmaRentSec, CTG_RENT_TSMA, sizeof(STSMAVersion)); pCtg->dbCache = taosHashInit(gCtgMgmt.cfg.maxDBCacheNum, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), false, HASH_ENTRY_LOCK); diff --git a/tests/system-test/2-query/tsma.py b/tests/system-test/2-query/tsma.py index 2f749c1e79..5c4de79847 100644 --- a/tests/system-test/2-query/tsma.py +++ b/tests/system-test/2-query/tsma.py @@ -462,6 +462,13 @@ class TDTestCase: ## self.test_query_with_drop_tsma() ## self.test_query_with_add_tag() ## self.test_union() + self.test_query_sub_table() + + def test_query_sub_table(self): + sql = 'select avg(c1) from t1' + ctx = TSMAQCBuilder().with_sql(sql).should_query_with_tsma('tsma2', UsedTsma.TS_MIN, UsedTsma.TS_MAX).get_qc() + self.tsma_tester.check_sql(sql, ctx) + def test_recursive_tsma(self): tdSql.execute('drop tsma tsma2')