7#include <condition_variable>
75 std::unique_ptr<
Client> client_;
88 size_t min_connections = 1,
89 size_t max_connections = 10);
157 size_t min_connections_;
158 size_t max_connections_;
159 int connection_timeout_ms_;
161 std::queue<std::unique_ptr<Client>> available_connections_;
162 size_t total_connections_;
163 size_t active_connections_;
166 mutable std::mutex mutex_;
167 std::condition_variable cv_;
172 std::unique_ptr<Client> create_connection();
177 void return_connection(std::unique_ptr<Client> client);
Main client class for Databricks SQL operations.
RAII wrapper for a pooled connection.
PooledConnection(PooledConnection &&) noexcept
PooledConnection(std::unique_ptr< Client > client, ConnectionPool *pool)
PooledConnection(const PooledConnection &)=delete
Client & get()
Get the underlying client.
PooledConnection & operator=(const PooledConnection &)=delete
Thread-safe connection pool for managing Databricks connections.
void warm_up()
Pre-warm the pool by creating minimum connections.
Stats get_stats() const
Get current pool statistics.
std::future< void > warm_up_async()
Asynchronously pre-warm the pool.
PooledConnection acquire()
Acquire a connection from the pool.
void shutdown()
Shutdown the pool and close all connections.
Core authentication configuration shared across all Databricks features.
Get current pool statistics.
size_t total_connections
Total connections created.
size_t active_connections
Connections currently in use.
size_t available_connections
Connections currently available.
SQL-specific configuration for Databricks SQL operations.