summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
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).
2009-11-30Merge branch 'master' into 0.9.xZach Copley
* master: (67 commits) Ticket 2038: fix bad bug tracker link Fix regression in group posting: bug introduced in commit 1319002e1519fafb0e82fbfd2d2723abdb3112e7. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D Log database errors when saving notice_inbox entries Drop the username from the log id for now; seems to trigger an error loop in some circumstances request id on logs... pid + random id per web request + username + method + url Add OpenID ini info back into statusnet.ini as a stopgap until we can Some changes to the OpenID DataObjects to make them emit the exact same OpenID plugin should set 'user_openid.display' as unique key Remove relationship: user_openid.user_id -> user.id. I don't think this Have OpenID plugin DataObjects emit their own .ini info Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them" Catch and report exceptions from notice_to_omb_notice() instead of letting the OMB queue handler die. Fix regression in remote subscription; added hasRole() shadow method on Remote_profile. Fix fatal error on OMB subscription for first-timers Remove annoying log msg Drop error message on setlocale() failure; this is harmless, since we actually have a working locale set up. Catch uncaught exception Fixed bug where reply-sync bit wasn't getting saved Forgot to render the nav menu when on FB Connect login tab Facebook plugin no longer takes over Login and Connect settings nav menus ... Conflicts: db/08to09_pg.sql db/statusnet_pg.sql locale/pt_BR/LC_MESSAGES/statusnet.mo plugins/Mapstraction/MapstractionPlugin.php
2009-11-27Fix regression in group posting: bug introduced in commit ↵Brion Vibber
1319002e1519fafb0e82fbfd2d2723abdb3112e7. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D