diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 9022d84de1d556a3acffe664523a6b8bc2b9c078..90d08652581618ef2f82037e1261002e7f3bf291 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -8305,7 +8305,8 @@ static int32_t doLoadAllTableMeta(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNod tNameExtractFullName(&pTableMetaInfo->name, fname); STableMetaVgroupInfo* p = taosHashGet(pCmd->pTableMetaMap, fname, strnlen(fname, TSDB_TABLE_FNAME_LEN)); - pTableMetaInfo->pTableMeta = tscTableMetaDup(p->pTableMeta); + pTableMetaInfo->pTableMeta = tscTableMetaDup(p->pTableMeta); + pTableMetaInfo->tableMetaCapacity = tscGetTableMetaSize(pTableMetaInfo->pTableMeta); assert(pTableMetaInfo->pTableMeta != NULL); if (p->vgroupIdList != NULL) { @@ -8405,7 +8406,8 @@ static int32_t doValidateSubquery(SSqlNode* pSqlNode, int32_t index, SSqlObj* pS if (pTableMetaInfo1 == NULL) { return TSDB_CODE_TSC_OUT_OF_MEMORY; } - pTableMetaInfo1->pTableMeta = extractTempTableMetaFromSubquery(pSub); + pTableMetaInfo1->pTableMeta = extractTempTableMetaFromSubquery(pSub); + pTableMetaInfo1->tableMetaCapacity = tscGetTableMetaSize(pTableMetaInfo1->pTableMeta); if (subInfo->aliasName.n > 0) { if (subInfo->aliasName.n >= TSDB_TABLE_FNAME_LEN) { diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 8231c8b2996ebcaa0b153bd3123cfcec23561591..6773b0057603a127823598952a871e6680f2f335 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -2845,7 +2845,9 @@ int32_t tscGetTableMetaImpl(SSqlObj* pSql, STableMetaInfo *pTableMetaInfo, bool size_t len = strlen(name); if (pTableMetaInfo->tableMetaCapacity != 0) { - memset(pTableMetaInfo->pTableMeta, 0, pTableMetaInfo->tableMetaCapacity); + if (pTableMetaInfo->pTableMeta != NULL) { + memset(pTableMetaInfo->pTableMeta, 0, pTableMetaInfo->tableMetaCapacity); + } } taosHashGetCloneExt(tscTableMetaMap, name, len, NULL, (void **)&(pTableMetaInfo->pTableMeta), &pTableMetaInfo->tableMetaCapacity);