aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-01-14 17:38:43 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2014-01-14 17:38:43 -0800
commite0b623a938583f8c02d925d2f812cc32dfed879e (patch)
treedf3b5103bed520d937873077809771b5fe593eaa /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
parent7d14e03d71861fac7926119dab903c984b89b568 (diff)
downloadrails-e0b623a938583f8c02d925d2f812cc32dfed879e.tar.gz
rails-e0b623a938583f8c02d925d2f812cc32dfed879e.tar.bz2
rails-e0b623a938583f8c02d925d2f812cc32dfed879e.zip
translate exceptions on prepared statement failure
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_adapter.rb13
1 files changed, 8 insertions, 5 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index abf2cb3d3e..bb9a9b1b58 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -353,6 +353,13 @@ module ActiveRecord
protected
+ def translate_exception(e, sql)
+ message = "#{e.class.name}: #{e.message}: #{sql}"
+ @logger.error message if @logger
+ exception = translate_exception(e, message)
+ exception.set_backtrace e.backtrace
+ end
+
def log(sql, name = "SQL", binds = [], statement_name = nil)
@instrumenter.instrument(
"sql.active_record",
@@ -362,11 +369,7 @@ module ActiveRecord
:statement_name => statement_name,
:binds => binds) { yield }
rescue => e
- message = "#{e.class.name}: #{e.message}: #{sql}"
- @logger.error message if @logger
- exception = translate_exception(e, message)
- exception.set_backtrace e.backtrace
- raise exception
+ raise translate_exception(e, sql)
end
def translate_exception(exception, message)