class Async::Sequel::Postgres::Database

Public Instance Methods

connect(server) click to toggle source
# File lib/async/sequel/postgres/database.rb, line 29
def connect(server)
        opts = server_opts(server)
        
        connection_params = {
                :host => opts[:host],
                :port => opts[:port],
                :dbname => opts[:database],
                :user => opts[:user],
                :password => opts[:password],
                :connect_timeout => opts[:connect_timeout] || 20,
                :sslmode => opts[:sslmode],
                :sslrootcert => opts[:sslrootcert]
        }.delete_if { |key, value| blank_object?(value) }
        
        connection_params.merge!(opts[:driver_options]) if opts[:driver_options]
        conn = Adapter.new(self, opts[:conn_str] || connection_params)

        if receiver = opts[:notice_receiver]
                conn.set_notice_receiver(&receiver)
        end
        
        if conn.respond_to?(:type_map_for_queries=) && defined?(self::PG_QUERY_TYPE_MAP)
                conn.type_map_for_queries = self::PG_QUERY_TYPE_MAP
        end

        if encoding = opts[:encoding] || opts[:charset]
                if conn.respond_to?(:set_client_encoding)
                        conn.set_client_encoding(encoding)
                else
                        conn.async_exec("set client_encoding to '#{encoding}'")
                end
        end

        connection_configuration_sqls(opts).each{|sql| conn.execute(sql)}
        conn
end