Note incorrect docs in DefaultSettings.php
[lhc/web/wiklou.git] / includes / SearchPostgres.php
index 02638bb..fa9d842 100644 (file)
@@ -28,7 +28,7 @@
  */
 class SearchPostgres extends SearchEngine {
 
-       function SearchPostgres( $db ) {
+       function __construct( $db ) {
                $this->db = $db;
        }
 
@@ -66,10 +66,11 @@ class SearchPostgres extends SearchEngine {
 
        /*
         * Transform the user's search string into a better form for tsearch2
+        * Returns an SQL fragment consisting of quoted text to search for.
        */
        function parseQuery( $term ) {
 
-               wfDebug( "parseQuery received: $term" );
+               wfDebug( "parseQuery received: $term \n" );
 
                ## No backslashes allowed
                $term = preg_replace('/\\\/', '', $term);
@@ -121,7 +122,7 @@ class SearchPostgres extends SearchEngine {
                ## Quote the whole thing
                $searchstring = $this->db->addQuotes($searchstring);
 
-               wfDebug( "parseQuery returned: $searchstring" );
+               wfDebug( "parseQuery returned: $searchstring \n" );
 
                return $searchstring;
 
@@ -142,6 +143,7 @@ class SearchPostgres extends SearchEngine {
                }
                $prefix = $wgDBversion < 8.3 ? "'default'," : '';
 
+               # Get the SQL fragment for the given term
                $searchstring = $this->parseQuery( $term );
 
                ## We need a separate query here so gin does not complain about empty searches
@@ -183,7 +185,7 @@ class SearchPostgres extends SearchEngine {
                        if ( count($this->namespaces) < 1)
                                $query .= ' AND page_namespace = 0';
                        else {
-                               $namespaces = implode( ',', $this->namespaces );
+                               $namespaces = $this->db->makeList( $this->namespaces );
                                $query .= " AND page_namespace IN ($namespaces)";
                        }
                }
@@ -192,7 +194,7 @@ class SearchPostgres extends SearchEngine {
 
                $query .= $this->db->limitResult( '', $this->limit, $this->offset );
 
-               wfDebug( "searchQuery returned: $query" );
+               wfDebug( "searchQuery returned: $query \n" );
 
                return $query;
        }
@@ -201,9 +203,9 @@ class SearchPostgres extends SearchEngine {
 
        function update( $pageid, $title, $text ) {
                ## We don't want to index older revisions
-               $SQL = "UPDATE pagecontent SET textvector = NULL WHERE old_id = ".
-                               "(SELECT rev_text_id FROM revision WHERE rev_page = $pageid ".
-                               "ORDER BY rev_text_id DESC LIMIT 1 OFFSET 1)";
+               $SQL = "UPDATE pagecontent SET textvector = NULL WHERE old_id IN ".
+                               "(SELECT rev_text_id FROM revision WHERE rev_page = " . intval( $pageid ) . 
+                               " ORDER BY rev_text_id DESC OFFSET 1)";
                $this->db->doQuery($SQL);
                return true;
        }
@@ -218,8 +220,8 @@ class SearchPostgres extends SearchEngine {
  * @ingroup Search
  */
 class PostgresSearchResult extends SearchResult {
-       function PostgresSearchResult( $row ) {
-               $this->mTitle = Title::makeTitle( $row->page_namespace, $row->page_title );
+       function __construct( $row ) {
+               parent::__construct($row);
                $this->score = $row->score;
        }
        function getScore() {
@@ -231,7 +233,7 @@ class PostgresSearchResult extends SearchResult {
  * @ingroup Search
  */
 class PostgresSearchResultSet extends SearchResultSet {
-       function PostgresSearchResultSet( $resultSet, $terms ) {
+       function __construct( $resultSet, $terms ) {
                $this->mResultSet = $resultSet;
                $this->mTerms = $terms;
        }