]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Update sorting on reply/mentions timeline: added reply_profile_id_modified_notice_id_...
authorBrion Vibber <brion@pobox.com>
Fri, 17 Dec 2010 22:43:45 +0000 (14:43 -0800)
committerBrion Vibber <brion@pobox.com>
Fri, 17 Dec 2010 22:43:45 +0000 (14:43 -0800)
classes/Reply.php
db/096to097.sql
db/statusnet.sql

index da8a4f685b52b83e014952228ef139024d86bf58..371c16cf48388ff5d1cace8e2fb28e5e5914318c 100644 (file)
@@ -50,15 +50,10 @@ class Reply extends Memcached_DataObject
         $reply = new Reply();
         $reply->profile_id = $user_id;
 
-        if ($since_id != 0) {
-            $reply->whereAdd('notice_id > ' . $since_id);
-        }
-
-        if ($max_id != 0) {
-            $reply->whereAdd('notice_id <= ' . $max_id);
-        }
+        Notice::addWhereSinceId($reply, $since_id, 'notice_id', 'modified');
+        Notice::addWhereMaxId($reply, $max_id, 'notice_id', 'modified');
 
-        $reply->orderBy('notice_id DESC');
+        $reply->orderBy('modified DESC, notice_id DESC');
 
         if (!is_null($offset)) {
             $reply->limit($offset, $limit);
index 38e4e958b8e888b79dcdd1f4920d692a9a32eb98..4171e95897e7f05701abd393896a6d0203b25c13 100644 (file)
@@ -5,3 +5,6 @@ alter table notice add index notice_created_id_is_local_idx (created,id,is_local
 
 -- Allows sorting tag-filtered public timeline by timestamp efficiently
 alter table notice_tag add index notice_tag_tag_created_notice_id_idx (tag, created, notice_id);
+
+-- Needed for sorting reply/mentions timelines
+alter table reply add index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id);
index 76a821bafe513001fecb25fdc44c23373489ee57..dfc46f79e28ea98871584d10011c721b98b8c758 100644 (file)
@@ -162,7 +162,10 @@ create table reply (
     constraint primary key (notice_id, profile_id),
     index reply_notice_id_idx (notice_id),
     index reply_profile_id_idx (profile_id),
-    index reply_replied_id_idx (replied_id)
+    index reply_replied_id_idx (replied_id),
+
+    -- Needed for sorting reply/mentions timelines
+    index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;