]> cat aescling's git repositories - mastodon.git/commitdiff
Remove order prior to .find_in_batches (#1470)
authorMatt Jankowski <mjankowski@thoughtbot.com>
Mon, 10 Apr 2017 22:38:34 +0000 (18:38 -0400)
committerEugen <eugen@zeonfederated.com>
Mon, 10 Apr 2017 22:38:34 +0000 (00:38 +0200)
The `Status` class has a default order on it, so when this query gets built and
gets all the way to `find_in_batches` there is an order already there.

When `find_in_batches` is run it discards any existing order on the query, and
emits a warning to the logs if there is one there.

This change removes the order prior calling `find_in_batches`, which will stop
the logged warning from occurring as well.

app/lib/feed_manager.rb

index 58d9fb1fc28ed9aeb2dc8db1b332cb6e27e77d65..339a5c78bde8e446d34269ec0a1e875a9ffe7932 100644 (file)
@@ -66,7 +66,7 @@ class FeedManager
     timeline_key = key(:home, into_account.id)
     oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true)&.first&.last&.to_i || 0
 
-    from_account.statuses.select('id').where('id > ?', oldest_home_score).find_in_batches do |statuses|
+    from_account.statuses.select('id').where('id > ?', oldest_home_score).reorder(nil).find_in_batches do |statuses|
       redis.pipelined do
         statuses.each do |status|
           redis.zrem(timeline_key, status.id)