Revert "DB IDO: Make sure that all result sets are processed before sending another query"

This reverts commit b028ff2c33cc580d6cb0c063575d77a2f18ad0b1.

refs #12597
refs #13321
This commit is contained in:
Michael Friedrich 2016-11-25 15:43:54 +01:00
parent 6c975dab5f
commit d076617caa
2 changed files with 5 additions and 26 deletions

View File

@ -513,21 +513,20 @@ void IdoMysqlConnection::FinishAsyncQueries(void)
); );
} }
std::vector<IdoMysqlResultInfo> resultSets;
for (std::vector<IdoAsyncQuery>::size_type i = offset; i < offset + count; i++) { for (std::vector<IdoAsyncQuery>::size_type i = offset; i < offset + count; i++) {
const IdoAsyncQuery& aq = queries[i]; const IdoAsyncQuery& aq = queries[i];
MYSQL_RES *result = mysql_store_result(&m_Connection); MYSQL_RES *result = mysql_store_result(&m_Connection);
int affectedRows = mysql_affected_rows(&m_Connection); m_AffectedRows = mysql_affected_rows(&m_Connection);
IdoMysqlResult iresult; IdoMysqlResult iresult;
if (!result) { if (!result) {
if (mysql_field_count(&m_Connection) > 0) { if (mysql_field_count(&m_Connection) > 0) {
std::ostringstream msgbuf; std::ostringstream msgbuf;
String message = mysql_error(&m_Connection); String message = mysql_error(&m_Connection);
msgbuf << "Error \"" << message << "\" when checking field count \"" << aq.Query << "\""; msgbuf << "Error \"" << message << "\" when executing query \"" << aq.Query << "\"";
Log(LogCritical, "IdoMysqlConnection", msgbuf.str()); Log(LogCritical, "IdoMysqlConnection", msgbuf.str());
BOOST_THROW_EXCEPTION( BOOST_THROW_EXCEPTION(
@ -539,11 +538,8 @@ void IdoMysqlConnection::FinishAsyncQueries(void)
} else } else
iresult = IdoMysqlResult(result, std::ptr_fun(mysql_free_result)); iresult = IdoMysqlResult(result, std::ptr_fun(mysql_free_result));
IdoMysqlResultInfo resultInfo; if (aq.Callback)
resultInfo.Result = iresult; aq.Callback(iresult);
resultInfo.AffectedRows = affectedRows;
resultSets.push_back(resultInfo);
if (mysql_next_result(&m_Connection) > 0) { if (mysql_next_result(&m_Connection) > 0) {
std::ostringstream msgbuf; std::ostringstream msgbuf;
@ -559,17 +555,6 @@ void IdoMysqlConnection::FinishAsyncQueries(void)
} }
} }
for (std::vector<IdoAsyncQuery>::size_type i = offset; i < offset + count; i++) {
const IdoAsyncQuery& aq = queries[i];
const IdoMysqlResultInfo ri = resultSets[i - offset];
m_AffectedRows = ri.AffectedRows;
if (aq.Callback)
aq.Callback(ri.Result);
}
offset += count; offset += count;
} }
} }

View File

@ -39,12 +39,6 @@ struct IdoAsyncQuery
IdoAsyncCallback Callback; IdoAsyncCallback Callback;
}; };
struct IdoMysqlResultInfo
{
IdoMysqlResult Result;
int AffectedRows;
};
/** /**
* An IDO MySQL database connection. * An IDO MySQL database connection.
* *