Backport test utility functions
The resultset processing functions are helpful in writing tests that process resultsets.
This commit is contained in:
parent
6b8d9dc5d9
commit
b5584e3fd0
@ -515,6 +515,36 @@ int find_field(MYSQL* conn, const char* sql, const char* field_name, char* value
|
||||
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)
|
||||
{
|
||||
std::istringstream str(version);
|
||||
|
@ -24,6 +24,10 @@
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
typedef std::vector<std::string> Row;
|
||||
typedef std::vector<Row> Result;
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
#endif // MARIADB_FUNC_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user