aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2014-06-10 14:50:36 -0600
committerSean Griffin <sean@thoughtbot.com>2014-06-10 14:52:14 -0600
commitda3b4b61732ca4717c99e680ebaf2af43e67ca74 (patch)
tree2b9e8f452f4cecb2764f78f32f4e5b7139c0a8f1 /activerecord/lib
parent4d209b5daf0eba4c8d008e9d009d0576e04f40d1 (diff)
downloadrails-da3b4b61732ca4717c99e680ebaf2af43e67ca74.tar.gz
rails-da3b4b61732ca4717c99e680ebaf2af43e67ca74.tar.bz2
rails-da3b4b61732ca4717c99e680ebaf2af43e67ca74.zip
No need to decorate columns twice
We never want result types to override column types, and `decorate_columns` can only affect column types. No need to go through the decoration multiple times, we can just exclude the column types from the result types instead.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/persistence.rb1
-rw-r--r--activerecord/lib/active_record/querying.rb2
2 files changed, 1 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb
index 525289c270..3ab8ec4836 100644
--- a/activerecord/lib/active_record/persistence.rb
+++ b/activerecord/lib/active_record/persistence.rb
@@ -48,7 +48,6 @@ module ActiveRecord
# how this "single-table" inheritance mapping is implemented.
def instantiate(attributes, column_types = {})
klass = discriminate_class_for_record(attributes)
- column_types = klass.decorate_columns(column_types.dup)
klass.allocate.init_with(
'raw_attributes' => attributes,
'column_types' => column_types,
diff --git a/activerecord/lib/active_record/querying.rb b/activerecord/lib/active_record/querying.rb
index 1fe54cea3f..39817703cd 100644
--- a/activerecord/lib/active_record/querying.rb
+++ b/activerecord/lib/active_record/querying.rb
@@ -40,7 +40,7 @@ module ActiveRecord
column_types = {}
if result_set.respond_to? :column_types
- column_types = result_set.column_types.merge(columns_hash)
+ column_types = result_set.column_types.except(*columns_hash.keys)
else
ActiveSupport::Deprecation.warn "the object returned from `select_all` must respond to `column_types`"
end