Revert "fix regression from #3968"

Revert "Merge pull request #3968 from marpo60/limit_shareable_from_person_queries"

This reverts commit ddfc558a9b.
This reverts commit 30ed4b4e70, reversing
changes made to f50ce2cb1d.

limiting the fetch of the IDs breaks paginating, there's no quick way to fix that

I left the spec in for future use.
This commit is contained in:
Jonne Haß 2013-02-16 23:42:23 +01:00
parent ddfc558a9b
commit 0a124acdf0
3 changed files with 9 additions and 5 deletions

View file

@ -16,7 +16,6 @@
* Ported aspects to backbone [#3850](https://github.com/diaspora/diaspora/pull/3850)
* Join tagging's table instead of tags to improve a bit the query [#3932](https://github.com/diaspora/diaspora/pull/3932)
* Refactor contacts/index view [#3937](https://github.com/diaspora/diaspora/pull/3937)
* Limit queries in ShareablesFromPerson [#3968](https://github.com/diaspora/diaspora/pull/3968)
## Features

View file

@ -116,12 +116,16 @@ module EvilQuery
def make_relation!
return querents_posts if @person == @querent.person
# persons_private_visibilities and persons_public_posts have no limit which is making shareable_ids gigantic.
# perhaps they should the arrays should be merged and sorted
# then the query at the bottom of this method can be paginated or something?
shareable_ids = contact.present? ? fetch_ids!(persons_private_visibilities, "share_visibilities.shareable_id") : []
shareable_ids += fetch_ids!(persons_public_posts, table_name + ".id")
@class.where(:id => shareable_ids, :pending => false).
select('DISTINCT ' + table_name + '.*').
order(table_name + ".created_at DESC")
select('DISTINCT '+table_name+'.*').
order(table_name+".created_at DESC")
end
protected
@ -139,11 +143,11 @@ module EvilQuery
end
def persons_private_visibilities
contact.share_visibilities.where(:hidden => false, :shareable_type => @class.to_s).order("created_at DESC").limit(15)
contact.share_visibilities.where(:hidden => false, :shareable_type => @class.to_s)
end
def persons_public_posts
@person.send(table_name).where(:public => true).select(table_name + '.id').order("created_at DESC").limit(15)
@person.send(table_name).where(:public => true).select(table_name+'.id')
end
end
end

View file

@ -29,4 +29,5 @@ describe Stream::Person do
fetched_posts.should == posts
end
end