mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
regression test + mysql2 adapter raises correct error if conn is closed.
This commit is contained in:
parent
7078ec3f98
commit
36bc4f5a02
3 changed files with 36 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
* Fix mysql2 adapter raises the correct exception when executing a query on a
|
||||||
|
closed connection.
|
||||||
|
|
||||||
|
*Yves Senn*
|
||||||
|
|
||||||
* Ambiguous reflections are on :through relationships are no longer supported.
|
* Ambiguous reflections are on :through relationships are no longer supported.
|
||||||
For example, you need to change this:
|
For example, you need to change this:
|
||||||
|
|
||||||
|
|
|
@ -213,9 +213,11 @@ module ActiveRecord
|
||||||
|
|
||||||
# Executes the SQL statement in the context of this connection.
|
# Executes the SQL statement in the context of this connection.
|
||||||
def execute(sql, name = nil)
|
def execute(sql, name = nil)
|
||||||
|
if @connection
|
||||||
# make sure we carry over any changes to ActiveRecord::Base.default_timezone that have been
|
# make sure we carry over any changes to ActiveRecord::Base.default_timezone that have been
|
||||||
# made since we established the connection
|
# made since we established the connection
|
||||||
@connection.query_options[:database_timezone] = ActiveRecord::Base.default_timezone
|
@connection.query_options[:database_timezone] = ActiveRecord::Base.default_timezone
|
||||||
|
end
|
||||||
|
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
26
activerecord/test/cases/disconnected_test.rb
Normal file
26
activerecord/test/cases/disconnected_test.rb
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
require "cases/helper"
|
||||||
|
|
||||||
|
class TestRecord < ActiveRecord::Base
|
||||||
|
end
|
||||||
|
|
||||||
|
class TestDisconnectedAdapter < ActiveRecord::TestCase
|
||||||
|
self.use_transactional_fixtures = false
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@connection = ActiveRecord::Base.connection
|
||||||
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
spec = ActiveRecord::Base.connection_config
|
||||||
|
ActiveRecord::Base.establish_connection(spec)
|
||||||
|
@connection = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
test "can't execute statements while disconnected" do
|
||||||
|
@connection.execute "SELECT count(*) from products"
|
||||||
|
@connection.disconnect!
|
||||||
|
assert_raises(ActiveRecord::StatementInvalid) do
|
||||||
|
@connection.execute "SELECT count(*) from products"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue