fix: stmt memory leak
This commit is contained in:
parent
0e061fb53c
commit
4359562e9c
|
@ -152,9 +152,10 @@ int32_t stmtRestoreQueryFields(STscStmt* pStmt) {
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t stmtUpdateBindInfo(TAOS_STMT* stmt, STableMeta* pTableMeta, void* tags, SName* tbName, const char* sTableName, bool autoCreateTbl) {
|
int32_t stmtUpdateBindInfo(TAOS_STMT* stmt, STableMeta* pTableMeta, void* tags, SName* tbName, const char* sTableName,
|
||||||
|
bool autoCreateTbl) {
|
||||||
STscStmt* pStmt = (STscStmt*)stmt;
|
STscStmt* pStmt = (STscStmt*)stmt;
|
||||||
char tbFName[TSDB_TABLE_FNAME_LEN];
|
char tbFName[TSDB_TABLE_FNAME_LEN];
|
||||||
tNameExtractFullName(tbName, tbFName);
|
tNameExtractFullName(tbName, tbFName);
|
||||||
|
|
||||||
memcpy(&pStmt->bInfo.sname, tbName, sizeof(*tbName));
|
memcpy(&pStmt->bInfo.sname, tbName, sizeof(*tbName));
|
||||||
|
@ -300,7 +301,7 @@ int32_t stmtCleanExecInfo(STscStmt* pStmt, bool keepTable, bool deepClean) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (STMT_TYPE_MULTI_INSERT == pStmt->sql.type) {
|
if (pBlocks->cloned) {
|
||||||
qFreeStmtDataBlock(pBlocks);
|
qFreeStmtDataBlock(pBlocks);
|
||||||
} else {
|
} else {
|
||||||
qDestroyStmtDataBlock(pBlocks);
|
qDestroyStmtDataBlock(pBlocks);
|
||||||
|
@ -776,9 +777,9 @@ int stmtAddBatch(TAOS_STMT* stmt) {
|
||||||
int stmtUpdateTableUid(STscStmt* pStmt, SSubmitRsp* pRsp) {
|
int stmtUpdateTableUid(STscStmt* pStmt, SSubmitRsp* pRsp) {
|
||||||
tscDebug("stmt start to update tbUid, blockNum: %d", pRsp->nBlocks);
|
tscDebug("stmt start to update tbUid, blockNum: %d", pRsp->nBlocks);
|
||||||
|
|
||||||
int32_t code = 0;
|
int32_t code = 0;
|
||||||
int32_t finalCode = 0;
|
int32_t finalCode = 0;
|
||||||
size_t keyLen = 0;
|
size_t keyLen = 0;
|
||||||
STableDataBlocks** pIter = taosHashIterate(pStmt->exec.pBlockHash, NULL);
|
STableDataBlocks** pIter = taosHashIterate(pStmt->exec.pBlockHash, NULL);
|
||||||
while (pIter) {
|
while (pIter) {
|
||||||
STableDataBlocks* pBlock = *pIter;
|
STableDataBlocks* pBlock = *pIter;
|
||||||
|
|
|
@ -461,7 +461,9 @@ void qFreeStmtDataBlock(void* pDataBlock) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
insDestroyDataBlock((STableDataBlocks*)pDataBlock);
|
taosMemoryFreeClear(((STableDataBlocks*)pDataBlock)->pTableMeta);
|
||||||
|
taosMemoryFreeClear(((STableDataBlocks*)pDataBlock)->pData);
|
||||||
|
taosMemoryFreeClear(pDataBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qDestroyStmtDataBlock(void* pBlock) {
|
void qDestroyStmtDataBlock(void* pBlock) {
|
||||||
|
|
Loading…
Reference in New Issue