aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-12-15 17:02:22 -0500
committerGitHub <noreply@github.com>2016-12-15 17:02:22 -0500
commitb89f1aa7601fb6e8f24f33ed1cbdb590023c5282 (patch)
tree9ece2b2f7e1d1e4dd82caa26576ec9b530d15c3f /activerecord/lib
parent4b576f482152411097ecda0c4527bfb01a1d2965 (diff)
parente220fda3e5a497f4b971cf1bb59b2020059634bf (diff)
downloadrails-b89f1aa7601fb6e8f24f33ed1cbdb590023c5282.tar.gz
rails-b89f1aa7601fb6e8f24f33ed1cbdb590023c5282.tar.bz2
rails-b89f1aa7601fb6e8f24f33ed1cbdb590023c5282.zip
Merge pull request #27341 from richardmonette/fix-querycache-nil-dup
fix QueryCache nil dup
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb4
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_adapter.rb7
2 files changed, 8 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
index faccd1d641..947796eea0 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
@@ -10,9 +10,9 @@ module ActiveRecord
def to_sql(arel, binds = [])
if arel.respond_to?(:ast)
collected = visitor.accept(arel.ast, collector)
- collected.compile(binds, self)
+ collected.compile(binds, self).freeze
else
- arel
+ arel.dup.freeze
end
end
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index 237367c8b3..284529b46e 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -598,7 +598,12 @@ module ActiveRecord
def translate_exception(exception, message)
# override in derived class
- ActiveRecord::StatementInvalid.new(message)
+ case exception
+ when RuntimeError
+ exception
+ else
+ ActiveRecord::StatementInvalid.new(message)
+ end
end
def without_prepared_statement?(binds)