63template<
typename EntityType,
typename DomainType,
typename QueryType,
typename MapperFunc>
64std::vector<DomainType> execute_read_query(
context ctx,
const QueryType& query,
65 MapperFunc&& mapper, logging::logger_t& lg,
const std::string& operation_desc) {
68 using namespace sqlgen;
70 BOOST_LOG_SEV(lg, debug) << operation_desc <<
".";
73 ensure_success(r, lg);
75 BOOST_LOG_SEV(lg, debug) << operation_desc <<
". Total: " << r->size();
76 return std::forward<MapperFunc>(mapper)(*r);
101template<
typename EntityType>
102void execute_write_query(
context ctx,
const EntityType& entity,
103 logging::logger_t& lg,
const std::string& operation_desc) {
106 using namespace sqlgen;
108 BOOST_LOG_SEV(lg, debug) << operation_desc <<
".";
111 .and_then(begin_transaction)
112 .and_then(insert(entity))
114 ensure_success(r, lg);
116 BOOST_LOG_SEV(lg, debug) <<
"Finished " << operation_desc <<
".";
138template<
typename QueryType>
139void execute_delete_query(
context ctx,
const QueryType& query,
140 logging::logger_t& lg,
const std::string& operation_desc) {
143 using namespace sqlgen;
145 BOOST_LOG_SEV(lg, debug) << operation_desc <<
".";
148 .and_then(begin_transaction)
151 ensure_success(r, lg);
153 BOOST_LOG_SEV(lg, debug) <<
"Finished " << operation_desc <<
".";
173std::vector<std::string> execute_raw_string_query(
context ctx,
174 const std::string& sql, logging::logger_t& lg,
175 const std::string& operation_desc);
195std::map<std::string, std::vector<std::string>> execute_raw_grouped_query(
196 context ctx,
const std::string& sql, logging::logger_t& lg,
197 const std::string& operation_desc);
221std::vector<std::vector<std::optional<std::string>>> execute_raw_multi_column_query(
222 context ctx,
const std::string& sql, logging::logger_t& lg,
223 const std::string& operation_desc);
241void execute_raw_command(
context ctx,
const std::string& sql,
242 logging::logger_t& lg,
const std::string& operation_desc);
263std::vector<std::string> execute_parameterized_string_query(
context ctx,
264 const std::string& sql,
const std::vector<std::string>& params,
265 logging::logger_t& lg,
const std::string& operation_desc);
290std::vector<std::string> execute_parameterized_string_query(
291 const sqlgen::postgres::Credentials& creds,
292 const std::string& sql,
const std::vector<std::string>& params,
293 logging::logger_t& lg,
const std::string& operation_desc);
315std::vector<std::vector<std::optional<std::string>>> execute_raw_multi_column_query(
316 const sqlgen::postgres::Credentials& creds,
317 const std::string& sql, logging::logger_t& lg,
318 const std::string& operation_desc);
339void execute_parameterized_command(
context ctx,
const std::string& sql,
340 const std::vector<std::string>& params, logging::logger_t& lg,
341 const std::string& operation_desc);
363std::vector<std::vector<std::optional<std::string>>> execute_parameterized_multi_column_query(
364 context ctx,
const std::string& sql,
const std::vector<std::string>& params,
365 logging::logger_t& lg,
const std::string& operation_desc);