in squangle/mysql_client/DbResult.cpp [271:297]
void MultiQueryStreamHandler::streamCallback(
FetchOperation* op,
StreamState op_state) {
// Runs in IO Thread
if (op_state == StreamState::InitQuery) {
op->pauseForConsumer();
state_ = State::InitResult;
} else if (op_state == StreamState::RowsReady) {
op->pauseForConsumer();
state_ = State::ReadRows;
} else if (op_state == StreamState::QueryEnded) {
op->pauseForConsumer();
state_ = State::ReadResult;
} else if (op_state == StreamState::Success) {
state_ = State::OperationSucceeded;
} else {
exception_wrapper_ = folly::make_exception_wrapper<QueryException>(
op->numCurrentQuery(),
op->result(),
op->mysql_errno(),
op->mysql_error(),
*op->connection()->getKey(),
op->elapsed());
state_ = State::OperationFailed;
}
op->connection()->notify();
}