diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2016-07-28 16:01:30 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2016-07-28 16:01:30 +0900 |
commit | 8a3560ed1ec669bc9d46f767858dee85cd192c87 (patch) | |
tree | 833b857dcdb265829ddc1496910a745831bfd7e2 /activerecord/lib/active_record/connection_adapters/mysql/quoting.rb | |
parent | 4211a29902eac95e67e9fed2b9dfce7a1f1d2799 (diff) | |
download | rails-8a3560ed1ec669bc9d46f767858dee85cd192c87.tar.gz rails-8a3560ed1ec669bc9d46f767858dee85cd192c87.tar.bz2 rails-8a3560ed1ec669bc9d46f767858dee85cd192c87.zip |
`@quoted_{column,table}_names` should cache a frozen string
Caching a mutable string causes the following issue.
```
Loading development environment (Rails 5.1.0.alpha)
irb(main):001:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!'
=> "`foo`!!"
irb(main):002:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!'
=> "`foo`!!!!"
irb(main):003:0> ActiveRecord::Base.connection.quote_table_name('foo') << '!!'
=> "`foo`!!!!!!"
```
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/mysql/quoting.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb b/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb index 5b59e39d9f..af1db30047 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb @@ -5,11 +5,11 @@ module ActiveRecord QUOTED_TRUE, QUOTED_FALSE = '1'.freeze, '0'.freeze def quote_column_name(name) - @quoted_column_names[name] ||= "`#{super.gsub('`', '``')}`" + @quoted_column_names[name] ||= "`#{super.gsub('`', '``')}`".freeze end def quote_table_name(name) - @quoted_table_names[name] ||= super.gsub('.', '`.`') + @quoted_table_names[name] ||= super.gsub('.', '`.`').freeze end def quoted_true |