提交 3793b406 编写于 作者: R Rafael Mendonça França

Merge pull request #8547 from printercu/patch-1

fix for messages in invalid encoding from db-drivers

Conflicts:
	activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
	activerecord/test/cases/connection_adapters/abstract_adapter_test.rb
......@@ -457,7 +457,12 @@ def extract_limit(sql_type) # :nodoc:
end
def translate_exception_class(e, sql)
message = "#{e.class.name}: #{e.message}: #{sql}"
begin
message = "#{e.class.name}: #{e.message}: #{sql}"
rescue Encoding::CompatibilityError
message = "#{e.class.name}: #{e.message.force_encoding sql.encoding}: #{sql}"
end
@logger.error message if @logger
exception = translate_exception(e, message)
exception.set_backtrace e.backtrace
......
......@@ -213,6 +213,14 @@ def test_select_methods_passing_a_relation
test "type_to_sql returns a String for unmapped types" do
assert_equal "special_db_type", @connection.type_to_sql(:special_db_type)
end
def test_log_invalid_encoding
assert_raise ActiveRecord::StatementInvalid do
@connection.send :log, "SELECT 'ы' FROM DUAL" do
raise 'ы'.force_encoding(Encoding::ASCII_8BIT)
end
end
end
end
class AdapterTestWithoutTransaction < ActiveRecord::TestCase
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册