diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-09-18 07:23:38 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2019-01-11 17:32:48 +0900 |
commit | eb5fef554fde84d36b45191182ed98bd344dc967 (patch) | |
tree | 9f8b83bee569bcd8a75c093748d73e46cf488417 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | 235eb91bad58ab18b45aa36fa3a1ebedfe1c4879 (diff) | |
download | rails-eb5fef554fde84d36b45191182ed98bd344dc967.tar.gz rails-eb5fef554fde84d36b45191182ed98bd344dc967.tar.bz2 rails-eb5fef554fde84d36b45191182ed98bd344dc967.zip |
Refactor `build_relation` in the uniqueness validator to avoid low level predicate construction
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index cccd6e2210..70d281b62b 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -476,9 +476,11 @@ module ActiveRecord SQL end - def case_sensitive_comparison(table, attribute, column, value) # :nodoc: + def case_sensitive_comparison(attribute, value) # :nodoc: + column = column_for_attribute(attribute) + if column.collation && !column.case_sensitive? - table[attribute].eq(Arel::Nodes::Bin.new(value)) + attribute.eq(Arel::Nodes::Bin.new(value)) else super end |