2018-07-25 11:29:26 +00:00
|
|
|
#if __has_include(<mariadb/mysql.h>)
|
2019-06-05 11:52:39 +00:00
|
|
|
#include <mariadb/mysql.h>
|
2018-07-25 11:29:26 +00:00
|
|
|
#else
|
2017-01-24 21:07:08 +00:00
|
|
|
#include <mysql/mysql.h>
|
2018-07-25 11:29:26 +00:00
|
|
|
#endif
|
2017-04-19 00:25:57 +00:00
|
|
|
|
2011-03-03 19:57:34 +00:00
|
|
|
#include <mysqlxx/Connection.h>
|
|
|
|
#include <mysqlxx/StoreQueryResult.h>
|
|
|
|
|
|
|
|
|
|
|
|
namespace mysqlxx
|
|
|
|
{
|
|
|
|
|
2011-04-28 20:20:27 +00:00
|
|
|
StoreQueryResult::StoreQueryResult(MYSQL_RES * res_, Connection * conn_, const Query * query_) : ResultBase(res_, conn_, query_)
|
2011-03-03 19:57:34 +00:00
|
|
|
{
|
2017-04-01 07:20:54 +00:00
|
|
|
UInt64 rows = mysql_num_rows(res);
|
|
|
|
UInt32 fields = getNumFields();
|
|
|
|
reserve(rows);
|
|
|
|
lengths.resize(rows * fields);
|
2017-03-31 16:00:30 +00:00
|
|
|
|
2017-04-01 07:20:54 +00:00
|
|
|
for (UInt64 i = 0; MYSQL_ROW row = mysql_fetch_row(res); ++i)
|
|
|
|
{
|
|
|
|
MYSQL_LENGTHS lengths_for_row = mysql_fetch_lengths(res);
|
|
|
|
memcpy(&lengths[i * fields], lengths_for_row, sizeof(lengths[0]) * fields);
|
2017-03-31 16:00:30 +00:00
|
|
|
|
2017-04-01 07:20:54 +00:00
|
|
|
push_back(Row(row, this, &lengths[i * fields]));
|
|
|
|
}
|
|
|
|
checkError(conn->getDriver());
|
2011-03-03 19:57:34 +00:00
|
|
|
}
|
2017-03-31 16:00:30 +00:00
|
|
|
|
2011-03-03 19:57:34 +00:00
|
|
|
}
|