X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/mediawiki.git/blobdiff_plain/a4b52d2fe555a507c376e78ee624898c55968364..d7967d5e4460e08b6b258307afbca0596b18a3dd:/includes/SearchMySQL.php diff --git a/includes/SearchMySQL.php b/includes/SearchMySQL.php index bf90fdb7..905075ef 100644 --- a/includes/SearchMySQL.php +++ b/includes/SearchMySQL.php @@ -1,33 +1,27 @@ # http://www.mediawiki.org/ -# +# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # http://www.gnu.org/copyleft/gpl.html /** * Search engine hook base class for MySQL. * Specific bits for MySQL 3 and 4 variants are in child classes. - * @package MediaWiki - * @subpackage Search + * @addtogroup Search */ - -/** */ -require_once( 'SearchEngine.php' ); - -/** @package MediaWiki */ class SearchMySQL extends SearchEngine { /** * Perform a full text search query and return a result set. @@ -52,12 +46,12 @@ class SearchMySQL extends SearchEngine { $resultSet = $this->db->resultObject( $this->db->query( $this->getQuery( $this->filter( $term ), false ) ) ); return new MySQLSearchResultSet( $resultSet, $this->searchTerms ); } - - + + /** * Return a partial WHERE clause to exclude redirects, if so set * @return string - * @access private + * @private */ function queryRedirect() { if( $this->showRedirects ) { @@ -66,11 +60,11 @@ class SearchMySQL extends SearchEngine { return 'AND page_is_redirect=0'; } } - + /** * Return a partial WHERE clause to limit the search to the given namespaces * @return string - * @access private + * @private */ function queryNamespaces() { $namespaces = implode( ',', $this->namespaces ); @@ -79,32 +73,32 @@ class SearchMySQL extends SearchEngine { } return 'AND page_namespace IN (' . $namespaces . ')'; } - + /** * Return a LIMIT clause to limit results on the query. * @return string - * @access private + * @private */ function queryLimit() { - return $this->db->limitResult( $this->limit, $this->offset ); + return $this->db->limitResult( '', $this->limit, $this->offset ); } /** * Does not do anything for generic search engine * subclasses may define this though * @return string - * @access private + * @private */ function queryRanking( $filteredTerm, $fulltext ) { return ''; } - + /** * Construct the full SQL query to do the search. * The guts shoulds be constructed in queryMain() * @param string $filteredTerm * @param bool $fulltext - * @access private + * @private */ function getQuery( $filteredTerm, $fulltext ) { return $this->queryMain( $filteredTerm, $fulltext ) . ' ' . @@ -133,7 +127,7 @@ class SearchMySQL extends SearchEngine { * @param string $filteredTerm * @param bool $fulltext * @return string - * @access private + * @private */ function queryMain( $filteredTerm, $fulltext ) { $match = $this->parseQuery( $filteredTerm, $fulltext ); @@ -153,7 +147,7 @@ class SearchMySQL extends SearchEngine { * @param string $text */ function update( $id, $title, $text ) { - $dbw=& wfGetDB( DB_MASTER ); + $dbw = wfGetDB( DB_MASTER ); $dbw->replace( 'searchindex', array( 'si_page' ), array( @@ -171,8 +165,8 @@ class SearchMySQL extends SearchEngine { * @param string $title */ function updateTitle( $id, $title ) { - $dbw =& wfGetDB( DB_MASTER ); - + $dbw = wfGetDB( DB_MASTER ); + $dbw->update( 'searchindex', array( 'si_title' => $title ), array( 'si_page' => $id ), @@ -181,21 +175,23 @@ class SearchMySQL extends SearchEngine { } } -/** @package MediaWiki */ +/** + * @addtogroup Search + */ class MySQLSearchResultSet extends SearchResultSet { function MySQLSearchResultSet( $resultSet, $terms ) { $this->mResultSet = $resultSet; $this->mTerms = $terms; } - + function termMatches() { return $this->mTerms; } - + function numRows() { return $this->mResultSet->numRows(); } - + function next() { $row = $this->mResultSet->fetchObject(); if( $row === false ) { @@ -204,6 +200,10 @@ class MySQLSearchResultSet extends SearchResultSet { return new SearchResult( $row ); } } + + function free() { + $this->mResultSet->free(); + } } -?> +