8#include <userver/clients/dns/resolver_fwd.hpp>
11#include <userver/error_injection/settings_fwd.hpp>
12#include <userver/testsuite/postgres_control.hpp>
16#include <userver/storages/postgres/detail/non_transaction.hpp>
58USERVER_NAMESPACE_BEGIN
69using ClusterImplPtr = std::unique_ptr<ClusterImpl>;
101 engine::TaskProcessor& bg_task_processor,
103 DefaultCommandControls&& default_cmd_ctls,
167 template <
typename... Args>
169 const Args&... args);
178 template <
typename... Args>
180 const Query& query,
const Args&... args);
200 void SetHandlersCommandControl(
201 const CommandControlByHandlerMap& handlers_command_control);
203 void SetQueriesCommandControl(
204 const CommandControlByQueryMap& queries_command_control);
227 detail::ClusterImplPtr pimpl_;
230template <
typename... Args>
232 const Args&... args) {
236template <
typename... Args>
239 const Query& query,
const Args&... args) {
240 if (!statement_cmd_ctl && query.GetName()) {
241 statement_cmd_ctl = GetQueryCmdCtl(query.GetName()->GetUnderlying());
243 statement_cmd_ctl = GetHandlersCmdCtl(statement_cmd_ctl);
244 auto ntrx = Start(flags, statement_cmd_ctl);
245 return ntrx.Execute(statement_cmd_ctl, query, args...);