We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit 4adf551f authored by Brion Vibber's avatar Brion Vibber

Update sorting for user tagged timelines (indexing was bad before and remains...

Update sorting for user tagged timelines (indexing was bad before and remains bad -- we need some DB changes to make this one nice)
parent 4cd3a075
......@@ -215,26 +215,29 @@ class Profile extends Memcached_DataObject
function _streamTaggedDirect($tag, $offset, $limit, $since_id, $max_id)
{
// XXX It would be nice to do this without a join
// (necessary to do it efficiently on accounts with long history)
$notice = new Notice();
$query =
"select id from notice join notice_tag on id=notice_id where tag='".
$notice->escape($tag) .
"' and profile_id=" . $notice->escape($this->id);
"' and profile_id=" . intval($this->id);
if ($since_id != 0) {
$query .= " and id > $since_id";
$since = Notice::whereSinceId($since_id, 'id', 'notice.created');
if ($since) {
$query .= " and ($since)";
}
if ($max_id != 0) {
$query .= " and id <= $max_id";
$max = Notice::whereMaxId($max_id, 'id', 'notice.created');
if ($max) {
$query .= " and ($max)";
}
$query .= ' order by id DESC';
$query .= ' order by notice.created DESC, id DESC';
if (!is_null($offset)) {
$query .= " LIMIT $limit OFFSET $offset";
$query .= " LIMIT " . intval($limit) . " OFFSET " . intval($offset);
}
$notice->query($query);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment