From 6321d4bb0623e2cb572188ac7db3934dc38d141e Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Sun, 29 Aug 2021 14:18:54 +0800 Subject: [PATCH] register sql object and release ref --- src/client/src/tscParseLineProtocol.c | 6 +++--- src/client/src/tscPrepare.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index 44773a836c..1bad1c7240 100644 --- a/src/client/src/tscParseLineProtocol.c +++ b/src/client/src/tscParseLineProtocol.c @@ -599,19 +599,19 @@ static int32_t retrieveTableMeta(TAOS* taos, char* tableName, STableMeta** pTabl if (tscValidateName(&tableToken) != TSDB_CODE_SUCCESS) { code = TSDB_CODE_TSC_INVALID_TABLE_ID_LENGTH; sprintf(pSql->cmd.payload, "table name is invalid"); - tscFreeRegisteredSqlObj(pSql); + taosReleaseRef(tscObjRef, pSql->self); return code; } SName sname = {0}; if ((code = tscSetTableFullName(&sname, &tableToken, pSql)) != TSDB_CODE_SUCCESS) { - tscFreeRegisteredSqlObj(pSql); + taosReleaseRef(tscObjRef, pSql->self); return code; } char fullTableName[TSDB_TABLE_FNAME_LEN] = {0}; memset(fullTableName, 0, tListLen(fullTableName)); tNameExtractFullName(&sname, fullTableName); - tscFreeRegisteredSqlObj(pSql); + taosReleaseRef(tscObjRef, pSql->self); size_t size = 0; taosHashGetCloneExt(tscTableMetaMap, fullTableName, strlen(fullTableName), NULL, (void**)&tableMeta, &size); diff --git a/src/client/src/tscPrepare.c b/src/client/src/tscPrepare.c index 1d56906499..d86a192746 100644 --- a/src/client/src/tscPrepare.c +++ b/src/client/src/tscPrepare.c @@ -1812,7 +1812,11 @@ int taos_stmt_close(TAOS_STMT* stmt) { } } - tscFreeSqlObj(pStmt->pSql); + if (RID_VALID(pStmt->pSql->self)) { + taosReleaseRef(tscObjRef, pStmt->pSql->self); + } else { + tscFreeSqlObj(pStmt->pSql); + } tfree(pStmt); STMT_RET(TSDB_CODE_SUCCESS); } @@ -1961,7 +1965,11 @@ int taos_stmt_execute(TAOS_STMT* stmt) { ret = TSDB_CODE_TSC_OUT_OF_MEMORY; } else { if (pStmt->pSql != NULL) { - tscFreeSqlObj(pStmt->pSql); + if (RID_VALID(pStmt->pSql->self)) { + taosReleaseRef(tscObjRef, pStmt->pSql->self); + } else { + tscFreeSqlObj(pStmt->pSql); + } pStmt->pSql = NULL; } -- GitLab