aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_methods
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2013-02-20 08:20:26 -0800
committerRafael Mendonça França <rafaelmfranca@gmail.com>2013-02-20 08:20:26 -0800
commit82a54324f615ae999c811b67701fd269b54d9fe4 (patch)
tree77784730efb77689419082290a476405d2bb5561 /activerecord/lib/active_record/attribute_methods
parentb85f63bbd00243787387d9c32901131851e8e424 (diff)
parent67d8bb963d5d51fc644d6b1ca20164efb4cee6d7 (diff)
downloadrails-82a54324f615ae999c811b67701fd269b54d9fe4.tar.gz
rails-82a54324f615ae999c811b67701fd269b54d9fe4.tar.bz2
rails-82a54324f615ae999c811b67701fd269b54d9fe4.zip
Merge pull request #9068 from wangjohn/transaction_callback_patch
Reduced memory leak problem in transactions by lazily updating AR objects
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods')
-rw-r--r--activerecord/lib/active_record/attribute_methods/primary_key.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/primary_key.rb b/activerecord/lib/active_record/attribute_methods/primary_key.rb
index 310f1b6e75..3e454b713a 100644
--- a/activerecord/lib/active_record/attribute_methods/primary_key.rb
+++ b/activerecord/lib/active_record/attribute_methods/primary_key.rb
@@ -8,27 +8,32 @@ module ActiveRecord
# Returns this record's primary key value wrapped in an Array if one is
# available.
def to_key
+ sync_with_transaction_state
key = self.id
[key] if key
end
# Returns the primary key value.
def id
+ sync_with_transaction_state
read_attribute(self.class.primary_key)
end
# Sets the primary key value.
def id=(value)
+ sync_with_transaction_state
write_attribute(self.class.primary_key, value) if self.class.primary_key
end
# Queries the primary key value.
def id?
+ sync_with_transaction_state
query_attribute(self.class.primary_key)
end
# Returns the primary key value before type cast.
def id_before_type_cast
+ sync_with_transaction_state
read_attribute_before_type_cast(self.class.primary_key)
end