diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-01-14 17:38:43 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-01-14 17:38:43 -0800 |
commit | e0b623a938583f8c02d925d2f812cc32dfed879e (patch) | |
tree | df3b5103bed520d937873077809771b5fe593eaa /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | |
parent | 7d14e03d71861fac7926119dab903c984b89b568 (diff) | |
download | rails-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.rb | 13 |
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) |