diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-12-15 17:02:22 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-15 17:02:22 -0500 |
commit | b89f1aa7601fb6e8f24f33ed1cbdb590023c5282 (patch) | |
tree | 9ece2b2f7e1d1e4dd82caa26576ec9b530d15c3f /activerecord/lib | |
parent | 4b576f482152411097ecda0c4527bfb01a1d2965 (diff) | |
parent | e220fda3e5a497f4b971cf1bb59b2020059634bf (diff) | |
download | rails-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.rb | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | 7 |
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) |