Skip to content

Commit

Permalink
Revert "Merge pull request rails#10566 from neerajdotname/10509d"
Browse files Browse the repository at this point in the history
This reverts commit 2b817a5, reversing
changes made to 353a398.

Conflicts:
	activerecord/CHANGELOG.md

Reason: the build broke
  • Loading branch information
jonleighton committed Jun 19, 2013
1 parent b6a711f commit e47b6de
Show file tree
Hide file tree
Showing 3 changed files with 1 addition and 25 deletions.
16 changes: 0 additions & 16 deletions activerecord/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,6 @@

*Neeraj Singh*

* Do not load all child records for inverse case.

currently `post.comments.find(Comment.first.id)` would load all
comments for the given post to set the inverse association.

This has a huge performance penalty. Because if post has 100k
records and all these 100k records would be loaded in memory
even though the comment id was supplied.

Fix is to use in-memory records only if loaded? is true. Otherwise
load the records using full sql.

Fixes #10509.

*Neeraj Singh*

* Fixture setup does no longer depend on `ActiveRecord::Base.configurations`.
This is relevant when `ENV["DATABASE_URL"]` is used in place of a `database.yml`.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def find(*args)
else
if options[:finder_sql]
find_by_scan(*args)
elsif options[:inverse_of] && loaded?
elsif options[:inverse_of]
args = args.flatten
raise RecordNotFound, "Couldn't find #{scope.klass.name} without an ID" if args.blank?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -401,14 +401,6 @@ def test_parent_instance_should_find_child_instance_using_child_instance_id_when
assert_equal man.name, man.interests.find(interest.id).man.name, "The name of the man should match after the child name is changed"
end

def test_find_on_child_instance_with_id_should_not_load_all_child_records
man = Man.create!
interest = Interest.create!(man: man)

man.interests.find(interest.id)
refute man.interests.loaded?
end

def test_raise_record_not_found_error_when_invalid_ids_are_passed
man = Man.create!

Expand Down

0 comments on commit e47b6de

Please sign in to comment.