From fddd252aee1e1ef142555a313262bbde9a1085d4 Mon Sep 17 00:00:00 2001 From: Raphael Sofaer Date: Tue, 5 Apr 2011 11:50:09 -0700 Subject: [PATCH] Take out limit hack, pass offset through instead --- lib/diaspora/user/querying.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/diaspora/user/querying.rb b/lib/diaspora/user/querying.rb index 77354f846..9e9da8491 100644 --- a/lib/diaspora/user/querying.rb +++ b/lib/diaspora/user/querying.rb @@ -19,7 +19,7 @@ module Diaspora opts[:order] ||= 'updated_at DESC' opts[:hidden] ||= false order_with_table = 'posts.' + opts[:order] - opts[:limit] = opts[:limit].to_i * opts[:page].to_i if opts[:page] + opts[:offset] = opts[:page] ? opts[:limit] * opts[:page] - 1 : 0 select_clause ='posts.id, posts.updated_at AS updated_at, posts.created_at AS created_at' posts_from_others = Post.joins(:contacts).where( :post_visibilities => {:hidden => opts[:hidden]}, :contacts => {:user_id => self.id}) @@ -31,13 +31,13 @@ module Diaspora posts_from_self = posts_from_self.joins(:aspect_visibilities).where(:aspect_visibilities => {:aspect_id => opts[:by_members_of]}) end - posts_from_others = posts_from_others.select(select_clause).limit(opts[:limit]).order(order_with_table) - posts_from_self = posts_from_self.select(select_clause).limit(opts[:limit]).order(order_with_table) + posts_from_others = posts_from_others.select(select_clause).limit(opts[:limit]).offset(opts[:offset]).order(order_with_table) + posts_from_self = posts_from_self.select(select_clause).limit(opts[:limit]).offset(opts[:offset]).order(order_with_table) all_posts = "(#{posts_from_others.to_sql}) UNION (#{posts_from_self.to_sql}) ORDER BY #{opts[:order]} LIMIT #{opts[:limit]}" post_ids = Post.connection.execute(all_posts).map{|r| r.first} - Post.where(:id => post_ids, :pending => false, :type => opts[:type]).select('DISTINCT posts.*').limit(opts[:limit]).order(order_with_table) + Post.where(:id => post_ids, :pending => false, :type => opts[:type]).select('DISTINCT posts.*').limit(opts[:limit]).order(order_with_table).offset(opts[:offset]) end def visible_photos