/// @brief Bind array used to store the query result set;
std::vector<MYSQL_BIND> bind_;
- /// @brief Member struct that is bound to the statement;
- AddressStatsRow4 stat_row_;
+ /// @brief Receives subnet ID when fetching a row
+ uint32_t subnet_id_;
+ /// @brief Receives the lease state when fetching a row
+ uint32_t lease_state_;
+ /// @brief Receives the state count when fetching a row
+ uint32_t state_count_;
};
MySqlAddressStatsQuery4::MySqlAddressStatsQuery4(MySqlConnection& conn)
MySqlAddressStatsQuery4::start() {
// subnet_id: unsigned int
bind_[0].buffer_type = MYSQL_TYPE_LONG;
- bind_[0].buffer = reinterpret_cast<char*>(&stat_row_.subnet_id_);
+ bind_[0].buffer = reinterpret_cast<char*>(&subnet_id_);
bind_[0].is_unsigned = MLM_TRUE;
// state: uint32_t
bind_[1].buffer_type = MYSQL_TYPE_LONG;
- bind_[1].buffer = reinterpret_cast<char*>(&stat_row_.lease_state_);
+ bind_[1].buffer = reinterpret_cast<char*>(&lease_state_);
bind_[1].is_unsigned = MLM_TRUE;
// state_count_: uint32_t
bind_[2].buffer_type = MYSQL_TYPE_LONG;
- bind_[2].buffer = reinterpret_cast<char*>(&stat_row_.state_count_);
+ bind_[2].buffer = reinterpret_cast<char*>(&state_count_);
bind_[2].is_unsigned = MLM_TRUE;
// Set up the MYSQL_BIND array for the data being returned
bool have_row = false;
int status = mysql_stmt_fetch(statement_);
if (status == MLM_MYSQL_FETCH_SUCCESS) {
- row = stat_row_;
+ row.subnet_id_ = static_cast<SubnetID>(subnet_id_);
+ row.lease_state_ = static_cast<Lease::LeaseState>(lease_state_);
+ row.state_count_ = state_count_;
have_row = true;
} else if (status != MYSQL_NO_DATA) {
checkError(status, "RECOUNT_LEASE4_STATS: getNextRow failed");