diff options
| author | Sam <sam.saffron@gmail.com> | 2014-11-19 08:44:45 +1100 | 
|---|---|---|
| committer | Sam <sam.saffron@gmail.com> | 2014-11-20 10:43:37 +1100 | 
| commit | a668b09ee387bf241a3481a764a18a5c8a4df8cd (patch) | |
| tree | 34649db90684533f6ebdabe7ea7531d6a9900561 | |
| parent | 9aa2b2d7bf52c0f3974090cd033341be2edeae6d (diff) | |
| download | rails-a668b09ee387bf241a3481a764a18a5c8a4df8cd.tar.gz rails-a668b09ee387bf241a3481a764a18a5c8a4df8cd.tar.bz2 rails-a668b09ee387bf241a3481a764a18a5c8a4df8cd.zip | |
PERF: avoid string allocations
| -rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index cb4e33f1b1..eb69943551 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -1059,8 +1059,13 @@ module ActiveRecord      def build_select(arel, selects)        if !selects.empty?          expanded_select = selects.map do |field| -          columns_hash.key?(field.to_s) ? arel_table[field] : field +          if (Symbol === field || String === field) && columns_hash.key?(field.to_s) +            arel_table[field] +          else +            field +          end          end +          arel.project(*expanded_select)        else          arel.project(@klass.arel_table[Arel.star]) | 
