in squangle/mysql_client/FutureAdapter.cpp [59:86]
void handleQueryCompletion(
Operation& op,
QueryResult query_result,
QueryCallbackReason reason,
folly::Promise<std::pair<ResultType, AsyncPostQueryCallback>>& promise) {
auto conn = op.releaseConnection();
auto conn_key = *conn->getKey();
if (reason == QueryCallbackReason::Success) {
ResultType result(
std::move(query_result),
op.numQueriesExecuted(),
op.resultSize(),
std::move(conn),
op.result(),
std::move(conn_key),
op.elapsed());
promise.setValue(std::make_pair(
std::move(result), std::move(op.callbacks_.post_query_callback_)));
} else {
promise.setException(QueryException(
op.numQueriesExecuted(),
op.result(),
op.mysql_errno(),
op.mysql_error(),
std::move(conn_key),
op.elapsed()));
}
}