Merge COMMIT and BEGIN into the previous MySQL query

refs #8738
This commit is contained in:
Gunnar Beutner 2015-03-14 07:58:55 +01:00
parent c7c49d7219
commit 316eee799e
1 changed files with 8 additions and 4 deletions

View File

@ -132,8 +132,8 @@ void IdoMysqlConnection::TxTimerHandler(void)
void IdoMysqlConnection::NewTransaction(void) void IdoMysqlConnection::NewTransaction(void)
{ {
m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, true));
m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::InternalNewTransaction, this)); m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::InternalNewTransaction, this));
m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, true));
} }
void IdoMysqlConnection::InternalNewTransaction(void) void IdoMysqlConnection::InternalNewTransaction(void)
@ -143,8 +143,8 @@ void IdoMysqlConnection::InternalNewTransaction(void)
if (!GetConnected()) if (!GetConnected())
return; return;
Query("COMMIT"); AsyncQuery("COMMIT");
Query("BEGIN"); AsyncQuery("BEGIN");
} }
void IdoMysqlConnection::ReconnectTimerHandler(void) void IdoMysqlConnection::ReconnectTimerHandler(void)
@ -382,6 +382,10 @@ void IdoMysqlConnection::AsyncQuery(const String& query, const boost::function<v
aq.Query = query; aq.Query = query;
aq.Callback = callback; aq.Callback = callback;
m_AsyncQueries.push_back(aq); m_AsyncQueries.push_back(aq);
if (m_AsyncQueries.size() > 500)
FinishAsyncQueries(true);
else
m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, false)); m_QueryQueue.Enqueue(boost::bind(&IdoMysqlConnection::FinishAsyncQueries, this, false));
} }