diff --git a/src/client/src/tscPrepare.c b/src/client/src/tscPrepare.c index e395f09bae..8966f3234a 100644 --- a/src/client/src/tscPrepare.c +++ b/src/client/src/tscPrepare.c @@ -48,6 +48,7 @@ typedef struct SMultiTbStmt { bool nameSet; bool tagSet; uint64_t currentUid; + char *sqlstr; uint32_t tbNum; SStrToken tbname; SStrToken stbname; @@ -1291,6 +1292,7 @@ int stmtParseInsertTbTags(SSqlObj* pSql, STscStmt* pStmt) { } pStmt->mtb.values = sToken; + } return TSDB_CODE_SUCCESS; @@ -1373,7 +1375,12 @@ int stmtGenInsertStatement(SSqlObj* pSql, STscStmt* pStmt, const char* name, TAO break; } - free(pSql->sqlstr); + if (pStmt->mtb.sqlstr == NULL) { + pStmt->mtb.sqlstr = pSql->sqlstr; + } else { + tfree(pSql->sqlstr); + } + pSql->sqlstr = str; return TSDB_CODE_SUCCESS; @@ -1633,6 +1640,7 @@ int taos_stmt_close(TAOS_STMT* stmt) { taosHashCleanup(pStmt->pSql->cmd.insertParam.pTableBlockHashList); pStmt->pSql->cmd.insertParam.pTableBlockHashList = NULL; taosArrayDestroy(pStmt->mtb.tags); + tfree(pStmt->mtb.sqlstr); } }