summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2009-12-28Merge branch 'master' into 0.9.xEvan Prodromou
2009-12-28check if other user exists before unsubEvan Prodromou
2009-12-23Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2009-12-22Fix for massively slow friends timeline query due to indexing bug introduced ↵Brion Vibber
with repeats. Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table. Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up. Before: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102600 | Using index; Using temporary; Using filesort | | 1 | SIMPLE | notice | eq_ref | PRIMARY | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using index | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ After: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102816 | Using where; Using index | | 1 | SIMPLE | notice | eq_ref | PRIMARY,notice_repeatof_idx | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using where | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
2009-12-22Fix for massively slow friends timeline query due to indexing bug introduced ↵Brion Vibber
with repeats. Sorting on notice.id when our primary selector was notice_inbox.user_id caused a filesort and table scan of the notice table. Switchng to notice_inbox's notice_id means we can use our index, and everything comes right up. Before: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice.id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102600 | Using index; Using temporary; Using filesort | | 1 | SIMPLE | notice | eq_ref | PRIMARY | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using index | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+----------------------------------------------+ After: mysql> explain SELECT notice.id AS id FROM notice JOIN notice_inbox ON notice.id = notice_inbox.notice_id WHERE notice_inbox.user_id = 18574 AND notice.repeat_of IS NULL ORDER BY notice_id DESC LIMIT 61 OFFSET 0; +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+ | 1 | SIMPLE | notice_inbox | ref | PRIMARY,notice_inbox_notice_id_idx | PRIMARY | 4 | const | 102816 | Using where; Using index | | 1 | SIMPLE | notice | eq_ref | PRIMARY,notice_repeatof_idx | PRIMARY | 4 | stoica.notice_inbox.notice_id | 1 | Using where | +----+-------------+--------------+--------+------------------------------------+---------+---------+-------------------------------+--------+--------------------------+
2009-12-22Merge branch 'testing'Evan Prodromou
2009-12-22Skip DB_DataObject's in-process cache for static gets on CLI processes.Brion
The local process cache would grow forever, keeping things stuck in memory and preventing GC.
2009-12-16Merge branch '0.9.x' into testing0.9.0rc2Evan Prodromou
2009-12-16Add doc comments listing the array parameters for User::register() and ↵Brion Vibber
Notice::saveNew()
2009-12-16Fix UserRightsTest unit testsBrion Vibber
2009-12-16Cleanup undefined variable notice: set a couple more null defaults for new ↵Brion Vibber
params in Notice::saveNew(). Fixes this notice seen while using AJAX repeat button: Notice: Undefined variable: uri in classes/Notice.php on line 243
2009-12-16slight cleanup for a bit in Notice.php where a var was reused for different ↵Brion Vibber
types, confusing tracking down a bug
2009-12-15Merge branch '0.9.x' into testingEvan Prodromou
2009-12-15call DB_DataObject::__destruct() if it existsEvan Prodromou
2009-12-15take out DB_DataObject destructorEvan Prodromou
2009-12-15create a method for notification for new messages, and use itEvan Prodromou
2009-12-14Add destructor on Memcached_DataObject to free DB_DataObject's global ↵Brion Vibber
storage for an object when that object itself is destroyed. Reduces some, but not all, memory leakage for long-running processes.
2009-12-14add friends_timeline with no repeats in itEvan Prodromou
2009-12-12remove obsoleted getStream, getStreamDirect, getCachedStream from Notice; ↵Evan Prodromou
use stream() instead
2009-12-12add statuses/retweeted_to_me to APIEvan Prodromou
2009-12-12clear repeat_of flag when a notice is deletedEvan Prodromou
2009-12-12add statuses/retweets_of_me to APIEvan Prodromou
2009-12-12add statuses/retweeted_by_me api actionEvan Prodromou
2009-12-12add statuses/retweets to APIEvan Prodromou
2009-12-11Debug check to track down live error -- wrong data type sometimes being sent ↵Brion Vibber
down to Memcached_DataObject::cacheKey() via various fetch functions, need a backtrace to track it down.
2009-12-11save repeats from the formEvan Prodromou
2009-12-11Merge branch '0.9.x' into forwardEvan Prodromou
2009-12-11change Notice::saveNew() to use named arguments for little-used optionsEvan Prodromou
2009-12-11show the repeat form in notice listsEvan Prodromou
2009-12-11reset executable bit on Notice.php and statusnet.iniEvan Prodromou
2009-12-11add repeat_of column to notice classEvan Prodromou
2009-12-11Merge branch '0.9.x' into testingEvan Prodromou
2009-12-10remove 'has forwarded' method from ProfileEvan Prodromou
2009-12-10remove forward table from db scriptsEvan Prodromou
2009-12-10move forwarding stuff to Repeat pluginEvan Prodromou
2009-12-10Override login_token's sequenceKey() so that it behaves correctlyCraig Andrews
2009-12-08Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2009-12-08reorder notices when not using memcachedEvan Prodromou
2009-12-09that pesky table named user - now quotedBrenda Wallace
2009-12-08make sure not to forward blocked usersEvan Prodromou
2009-12-08method to check if a profile has forwarded a noticeEvan Prodromou
2009-12-08pkeyGet() method for Forward and return value from saveNew()Evan Prodromou
2009-12-08Basic function to store forwards and redistributeEvan Prodromou
2009-12-08fix exe flagEvan Prodromou
2009-12-08add DB_DataObject for forward tableEvan Prodromou
2009-12-08Merge branch '0.9.x' into testingEvan Prodromou
2009-12-05Added 'login' command that gives you a link that can be used to login to the ↵Craig Andrews
website
2009-12-04use the new htmloutputter->style() functionCraig Andrews
2009-12-03Was deleting wrong subscription during block. Now deletes the blockee's sub ↵Zach Copley
if it exists.
2009-12-03Make it impossible to block (and thus unsubscribe from yourZach Copley
self-subscription) via the API. Additionally, make it impossible to block yourself or unsubscribe from yourself, period. I also made User use the subs.php helper function for unsubscribing during a block. Hopefully, these changes will get rid of the problem of people accidentally deleting their self-subscriptions once and for all (knock on wood).