private function getCachedTitles() { global $wgMemc, $wgUser; $titles = array(); $cacheKey = SearchForm::getCacheKey(); $cacheData = $wgMemc->get($cacheKey); if (!isset($cacheData) || $cacheData === false) { $dbr =& wfGetDB(DB_SLAVE); $use_index = $dbr->useIndexClause('user_timestamp'); extract($dbr->tableNames('page', 'revision', 'index_checkpoint')); $sql = "SELECT\n page_namespace,page_title\n FROM {$index_checkpoint},{$page},{$revision} {$use_index}\n WHERE ic_name='revisions' AND page_id=rev_page AND rev_user = {$wgUser->getID()} AND rev_timestamp >= ic_rev_timestamp\n ORDER BY rev_timestamp DESC"; $sql = $dbr->limitResult($sql, 50); $rows = $dbr->query($sql, 'SpecialSearch'); while ($row = $dbr->fetchObject($rows)) { $t = Title::makeTitle($row->page_namespace, $row->page_title); $titleString = $t->getPrefixedText(); if (!in_array($titleString, $titles)) { $titles[] = $titleString; } } $dbr->freeResult($rows); $cacheData = join('|', $titles); $wgMemc->set($cacheKey, $cacheData, self::CACHE_EXP_TIME); } else { if ($cacheData) { $titles = explode('|', $cacheData); } } return $titles; }