]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Update sorting for conversation views: adds notice_conversation_created_id_idx index...
authorBrion Vibber <brion@pobox.com>
Sat, 18 Dec 2010 00:08:37 +0000 (16:08 -0800)
committerBrion Vibber <brion@pobox.com>
Sat, 18 Dec 2010 00:08:37 +0000 (16:08 -0800)
classes/Notice.php
db/096to097.sql
db/statusnet.sql

index ea69a5beda6dea5dff7c68550ee6398bca8249f4..629b7089dedaa06d9cfc05191d679a0e3f961260 100644 (file)
@@ -704,19 +704,14 @@ class Notice extends Memcached_DataObject
 
         $notice->conversation = $id;
 
-        $notice->orderBy('id DESC');
+        $notice->orderBy('created DESC, id DESC');
 
         if (!is_null($offset)) {
             $notice->limit($offset, $limit);
         }
 
-        if ($since_id != 0) {
-            $notice->whereAdd('id > ' . $since_id);
-        }
-
-        if ($max_id != 0) {
-            $notice->whereAdd('id <= ' . $max_id);
-        }
+        Notice::addWhereSinceId($notice, $since_id);
+        Notice::addWhereMaxId($notice, $max_id);
 
         $ids = array();
 
index 5947538da86a5b313697be7446947e8bb825da9e..88cbea457846c3dac1f17ee8d7e281186dab4896 100644 (file)
@@ -1,10 +1,14 @@
 -- Add indexes for sorting changes in 0.9.7
 
--- Allows sorting public timeline and api/statuses/repeats by timestamp efficiently
+-- Allows sorting public timeline, api/statuses/repeats, and conversations by timestamp efficiently
 alter table notice
     add index notice_created_id_is_local_idx (created,id,is_local),
+
+    add index notice_repeat_of_created_id_idx (repeat_of, created, id),
     drop index notice_repeatof_idx,
-    add index notice_repeat_of_created_id_idx (repeat_of, created, id);
+
+    add index notice_conversation_created_id_idx (conversation, created, id),
+    drop index notice_conversation_idx;
 
 -- 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);
index 9624edd6f01f3d892e5cbaf07ca59fb1087dce77..8b38f9ffe303faa1609f9d6382281553e1c51a96 100644 (file)
@@ -140,11 +140,11 @@ create table notice (
     -- For api/statuses/repeats...
     index notice_repeat_of_created_id_idx (repeat_of, created, id),
 
-    -- Are these enough?
-    index notice_conversation_idx (conversation),
-    index notice_created_idx (created),
+    -- For conversation views
+    index notice_conversation_created_id_idx (conversation, created, id),
+
+    -- Are these needed/used?
     index notice_replyto_idx (reply_to),
-    index notice_repeatof_idx (repeat_of),
 
     FULLTEXT(content)
 ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;