Skip to content

Commit d0ea5c5

Browse files
committed
fix code typo in MysqlAdapter .Closes rails#12647.
1 parent bbb32d2 commit d0ea5c5

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

activerecord/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
* Fix code typo in `MysqlAdapter` when `Encoding.default_internal` is set.
2+
3+
Fixes #12647.
4+
5+
*Yves Senn*
6+
17
* ActiveRecord::Base#attribute_for_inspect now truncates long arrays (more than 10 elements)
28

39
*Jan Bernacki*

activerecord/lib/active_record/connection_adapters/mysql_adapter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ def version
559559
def set_field_encoding field_name
560560
field_name.force_encoding(client_encoding)
561561
if internal_enc = Encoding.default_internal
562-
field_name = field_name.encoding(internal_enc)
562+
field_name = field_name.encode!(internal_enc)
563563
end
564564
field_name
565565
end

activerecord/test/cases/base_test.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,10 +604,25 @@ def test_readonly_attributes
604604
end
605605

606606
def test_unicode_column_name
607+
Weird.reset_column_information
607608
weird = Weird.create(:なまえ => 'たこ焼き仮面')
608609
assert_equal 'たこ焼き仮面', weird.なまえ
609610
end
610611

612+
def test_respect_internal_encoding
613+
if current_adapter?(:PostgreSQLAdapter)
614+
skip 'pg does not respect internal encoding and always returns utf8'
615+
end
616+
old_default_internal = Encoding.default_internal
617+
silence_warnings { Encoding.default_internal = "EUC-JP" }
618+
619+
Weird.reset_column_information
620+
621+
assert_equal ["EUC-JP"], Weird.columns.map {|c| c.name.encoding.name }.uniq
622+
ensure
623+
silence_warnings { Encoding.default_internal = old_default_internal }
624+
end
625+
611626
def test_non_valid_identifier_column_name
612627
weird = Weird.create('a$b' => 'value')
613628
weird.reload

0 commit comments

Comments
 (0)