30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
#include "test_statement.hpp"
|
|
#include "test_result_reader.hpp"
|
|
#include "test_parameter_binder.hpp"
|
|
|
|
#include <random>
|
|
#include <thread>
|
|
|
|
namespace matador::test::orm {
|
|
test_statement::test_statement(const sql::query_context &query)
|
|
: statement_impl(query) {}
|
|
|
|
utils::result<size_t, utils::error> test_statement::execute(const sql::interface::parameter_binder &/*bindings*/) {
|
|
using namespace std::chrono_literals;
|
|
std::mt19937 rng(query_.sql.size());
|
|
std::uniform_int_distribution dist(10, 40);
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(dist(rng)));
|
|
return utils::ok(static_cast<size_t>(8));
|
|
}
|
|
|
|
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> test_statement::fetch(const sql::interface::parameter_binder &/*bindings*/) {
|
|
return utils::ok(std::make_unique<sql::query_result_impl>(std::make_unique<test_result_reader>(), query_.prototype, query_.prototype.size()));
|
|
}
|
|
|
|
void test_statement::reset() {}
|
|
std::unique_ptr<utils::attribute_writer> test_statement::create_binder() const {
|
|
return std::make_unique<test_parameter_binder>();
|
|
}
|
|
|
|
} // namespace matador::test::orm
|