Backport test utility functions
The resultset processing functions are helpful in writing tests that process resultsets.
This commit is contained in:
@ -515,6 +515,36 @@ int find_field(MYSQL* conn, const char* sql, const char* field_name, char* value
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result get_result(MYSQL* conn, std::string sql)
|
||||||
|
{
|
||||||
|
Result rval;
|
||||||
|
MYSQL_RES* res;
|
||||||
|
|
||||||
|
if (mysql_query(conn, sql.c_str()) == 0 && (res = mysql_store_result(conn)))
|
||||||
|
{
|
||||||
|
MYSQL_ROW row = mysql_fetch_row(res);
|
||||||
|
|
||||||
|
while (row)
|
||||||
|
{
|
||||||
|
rval.emplace_back(&row[0], &row[mysql_num_fields(res)]);
|
||||||
|
row = mysql_fetch_row(res);
|
||||||
|
}
|
||||||
|
mysql_free_result(res);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Error: Query failed: %s\n", mysql_error(conn));
|
||||||
|
}
|
||||||
|
|
||||||
|
return rval;
|
||||||
|
}
|
||||||
|
|
||||||
|
Row get_row(MYSQL* conn, std::string sql)
|
||||||
|
{
|
||||||
|
Result res = get_result(conn, sql);
|
||||||
|
return res.empty() ? Row{} : res[0];
|
||||||
|
}
|
||||||
|
|
||||||
int get_int_version(std::string version)
|
int get_int_version(std::string version)
|
||||||
{
|
{
|
||||||
std::istringstream str(version);
|
std::istringstream str(version);
|
||||||
|
@ -24,6 +24,10 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
typedef std::vector<std::string> Row;
|
||||||
|
typedef std::vector<Row> Result;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Opens connection to DB: wropper over mysql_real_connect
|
* Opens connection to DB: wropper over mysql_real_connect
|
||||||
@ -204,6 +208,26 @@ int get_conn_num(MYSQL* conn, std::string ip, std::string hostname, std::string
|
|||||||
*/
|
*/
|
||||||
int find_field(MYSQL* conn, const char* sql, const char* field_name, char* value);
|
int find_field(MYSQL* conn, const char* sql, const char* field_name, char* value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute a query and return the first row
|
||||||
|
*
|
||||||
|
* @param conn The connection to use
|
||||||
|
* @param sql The query to execute
|
||||||
|
*
|
||||||
|
* @return The first row as a list of strings
|
||||||
|
*/
|
||||||
|
Row get_row(MYSQL* conn, std::string sql);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute a query and return the result
|
||||||
|
*
|
||||||
|
* @param conn The connection to use
|
||||||
|
* @param sql The query to execute
|
||||||
|
*
|
||||||
|
* @return The result as a list of rows
|
||||||
|
*/
|
||||||
|
Result get_result(MYSQL* conn, std::string sql);
|
||||||
|
|
||||||
int get_int_version(std::string version);
|
int get_int_version(std::string version);
|
||||||
|
|
||||||
#endif // MARIADB_FUNC_H
|
#endif // MARIADB_FUNC_H
|
||||||
|
Reference in New Issue
Block a user