This is the fastest connection pool, since it isn't a connection pool at all. It is just a wrapper around a single connection that uses the connection pool API.
# File lib/sequel/connection_pool/single.rb, line 7 def initialize(db, opts=OPTS) super @conn = [] end
Yield the connection if one has been made.
# File lib/sequel/connection_pool/single.rb, line 13 def all_connections yield @conn.first if @conn end
Disconnect the connection from the database.
# File lib/sequel/connection_pool/single.rb, line 18 def disconnect(opts=nil) return unless c = @conn.first disconnect_connection(c) @conn.clear nil end
Yield the connection to the block.
# File lib/sequel/connection_pool/single.rb, line 26 def hold(server=nil) begin unless c = @conn.first @conn.replace([c = make_new(:default)]) end yield c rescue Sequel::DatabaseDisconnectError, *@error_classes => e disconnect if disconnect_error?(e) raise end end
The SingleConnectionPool always has a maximum size of 1.
# File lib/sequel/connection_pool/single.rb, line 39 def max_size 1 end
# File lib/sequel/connection_pool/single.rb, line 43 def pool_type :single end
The SingleConnectionPool always has a size of 1 if connected and 0 if not.
# File lib/sequel/connection_pool/single.rb, line 49 def size @conn.empty? ? 0 : 1 end
Make sure there is a valid connection.
# File lib/sequel/connection_pool/single.rb, line 56 def preconnect(concurrent = nil) hold{} end