| 83 | } |
| 84 | |
| 85 | PoolWithFailover::PoolWithFailover( |
| 86 | const ReplicasConfigurationByPriority & configurations_by_priority, |
| 87 | size_t pool_size, |
| 88 | size_t pool_wait_timeout_, |
| 89 | size_t max_tries_, |
| 90 | bool auto_close_connection_, |
| 91 | size_t connection_attempt_timeout_, |
| 92 | bool bg_reconnect_) |
| 93 | : pool_wait_timeout(pool_wait_timeout_) |
| 94 | , max_tries(max_tries_) |
| 95 | , auto_close_connection(auto_close_connection_) |
| 96 | , bg_reconnect(bg_reconnect_) |
| 97 | { |
| 98 | LOG_TRACE(getLogger("PostgreSQLConnectionPool"), "PostgreSQL connection pool size: {}, connection wait timeout: {}, max failover tries: {}", |
| 99 | pool_size, pool_wait_timeout, max_tries_); |
| 100 | |
| 101 | for (const auto & [priority, configurations] : configurations_by_priority) |
| 102 | { |
| 103 | for (const auto & replica_configuration : configurations) |
| 104 | { |
| 105 | auto connection_info = formatConnectionString( |
| 106 | replica_configuration.database, |
| 107 | replica_configuration.host, |
| 108 | replica_configuration.port, |
| 109 | replica_configuration.username, |
| 110 | replica_configuration.password, |
| 111 | connection_attempt_timeout_); |
| 112 | replicas_with_priority[priority].emplace_back(std::make_shared<PoolHolder>(connection_info, pool_size)); |
| 113 | if (bg_reconnect) |
| 114 | DB::ReplicasReconnector::instance().add(connectionReestablisher(std::weak_ptr(replicas_with_priority[priority].back()), pool_wait_timeout)); |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | PoolWithFailover::PoolWithFailover( |
| 120 | const DB::StoragePostgreSQL::Configuration & configuration, |
nothing calls this directly
no test coverage detected