aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
diff options
context:
space:
mode:
authorJon Leighton <j@jonathanleighton.com>2012-09-14 23:59:35 +0100
committerJon Leighton <j@jonathanleighton.com>2012-09-15 00:03:04 +0100
commit02f56554d68cddae02ccc4a8511cc5c64210d258 (patch)
tree4b091ddba84e3948128e9071ba3f4044eb79cdea /activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
parent61951427903dbc0d92f6106ec5874025e2185056 (diff)
downloadrails-02f56554d68cddae02ccc4a8511cc5c64210d258.tar.gz
rails-02f56554d68cddae02ccc4a8511cc5c64210d258.tar.bz2
rails-02f56554d68cddae02ccc4a8511cc5c64210d258.zip
Ensure disconnecting or reconnecting resets the transaction state
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index 4fe0013f0f..b6dd2e17f4 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -104,6 +104,8 @@ module ActiveRecord
def initialize(connection, logger, config)
super(connection, logger)
+
+ @active = nil
@statements = StatementPool.new(@connection,
config.fetch(:statement_limit) { 1000 })
@config = config
@@ -154,11 +156,15 @@ module ActiveRecord
true
end
+ def active?
+ @active != false
+ end
+
# Disconnects from the database if already connected. Otherwise, this
# method does nothing.
def disconnect!
super
- clear_cache!
+ @active = false
@connection.close rescue nil
end