Ticket #428: fb_reconnect_r3190.diff
| File fb_reconnect_r3190.diff, 2.2 kB (added by Ken Kunz <kennethkunz@gmail.com>, 3 years ago) |
|---|
-
activerecord/lib/active_record/connection_adapters/firebird_adapter.rb
old new 30 30 raise ArgumentError, "No database specified. Missing argument: database." 31 31 end 32 32 options = config[:charset] ? { CHARACTER_SET => config[:charset] } : {} 33 connection_params = [config[:username], config[:password], options] 33 34 db = FireRuby::Database.new_from_params(*config.values_at(:database, :host, :port, :service)) 34 connection = db.connect( config[:username], config[:password], options)35 ConnectionAdapters::FirebirdAdapter.new(connection, logger )35 connection = db.connect(*connection_params) 36 ConnectionAdapters::FirebirdAdapter.new(connection, logger, connection_params) 36 37 end 37 38 end 38 39 … … 252 253 @@boolean_domain = { :true => 1, :false => 0 } 253 254 cattr_accessor :boolean_domain 254 255 256 def initialize(connection, logger, connection_params=nil) 257 super(connection, logger) 258 @connection_params = connection_params 259 end 260 255 261 def adapter_name # :nodoc: 256 262 'Firebird' 257 263 end … … 266 272 "#{table_name}_seq" 267 273 end 268 274 275 269 276 # QUOTING ================================================== 270 277 271 278 def quote(value, column = nil) # :nodoc: … … 292 299 quote(boolean_domain[:false]) 293 300 end 294 301 302 303 # CONNECTION MANAGEMENT ==================================== 304 305 def active? 306 not @connection.closed? 307 end 308 309 def reconnect! 310 @connection.close 311 @connection = @connection.database.connect(*@connection_params) 312 end 313 314 295 315 # DATABASE STATEMENTS ====================================== 296 316 297 317 def select_all(sql, name = nil) # :nodoc: … … 352 372 FireRuby::Generator.new(sequence_name, @connection).next(1) 353 373 end 354 374 375 355 376 # SCHEMA STATEMENTS ======================================== 356 377 357 378 def columns(table_name, name = nil) # :nodoc: