diff --git a/source/dnode/vnode/src/inc/tsdb.h b/source/dnode/vnode/src/inc/tsdb.h index cd362166424fa4659341d982dfa644e6b8c0599f..2e4ff6a4abd8315afa06e9a881955947af9144c6 100644 --- a/source/dnode/vnode/src/inc/tsdb.h +++ b/source/dnode/vnode/src/inc/tsdb.h @@ -182,10 +182,10 @@ int tsdbUnlockRepo(STsdb *pTsdb); static FORCE_INLINE STSchema *tsdbGetTableSchemaImpl(STsdb *pTsdb, STable *pTable, bool lock, bool copy, int32_t version) { - if (version < 0) { + if ((version < 0) || (schemaVersion(pTable->pSchema) == version)) { return pTable->pSchema; } - + if (!pTable->pCacheSchema || (schemaVersion(pTable->pCacheSchema) != version)) { taosMemoryFreeClear(pTable->pCacheSchema); pTable->pCacheSchema = metaGetTbTSchema(REPO_META(pTsdb), pTable->uid, version);