23 auto cxl = unique_ptr<PGcancel, PQfreeCancel>{PQgetCancel(dbc_.get())};
24 check(!!cxl, dbc_.get());
26 auto stop = std::stop_callback{
27 tok, [&] { PQcancel(cxl.get(), err,
sizeof(err)); }};
29 auto ps = qry.
params() | std::views::transform(params::make) |
30 std::ranges::to<std::vector>();
33 unique_ptr<PGresult, PQclear>{PQexec(dbc_.get(), txt.data())};
34 return fetch(res.get());
36 auto types = std::vector<Oid>(ps.size());
37 auto values = std::vector<char const*>(ps.size());
38 auto lengths = std::vector<int>(ps.size());
39 auto formats = std::vector<int>(ps.size());
40 for (
size_t i{}; i < ps.size(); ++i) {
42 types[i] = params::type(p);
43 values[i] = params::value(p);
44 lengths[i] = params::length(p);
45 formats[i] = params::format(p);
47 auto res = unique_ptr<PGresult, PQclear>{PQexecParams(
56 return fetch(res.get());