提交 6321d4bb 编写于 作者: S shenglian zhou

register sql object and release ref

上级 a0d82449
......@@ -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);
......
......@@ -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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册