Bug 9908: check server version and adjust rank() argument accordingly
authorGreg Sabino Mullane <greg@users.mediawiki.org>
Tue, 15 May 2007 12:39:41 +0000 (12:39 +0000)
committerGreg Sabino Mullane <greg@users.mediawiki.org>
Tue, 15 May 2007 12:39:41 +0000 (12:39 +0000)
RELEASE-NOTES
includes/SearchPostgres.php

index f8fc6bd..f7a391b 100644 (file)
@@ -57,6 +57,8 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 9896) Documentation for $wgSquidServers and X-FORWARDED-FOR
 * (bug 9417) Uploading new versions of images when using Postgres no longer 
   throws warnings.
+* (bug 9908) Using tsearch2 with Postgres 8.1 no longer gives an error.
+
 
 == MediaWiki API changes since 1.10 ==
 
index a7c7c3d..3872e46 100644 (file)
@@ -116,6 +116,12 @@ class SearchPostgres extends SearchEngine {
         * @private
         */
        function searchQuery( $term, $fulltext, $colname ) {
+               global $wgDBversion;
+
+               if ( !defined( $wgDBversion ) ) {
+                       $this->db->getServerVersion();
+                       $wgDBversion = $this->db->numeric_version;
+               }
 
                $searchstring = $this->parseQuery( $term );
 
@@ -141,8 +147,9 @@ class SearchPostgres extends SearchEngine {
                                }
                        }
 
+                       $rankscore = $wgDBversion > 8.2 ? 5 : 1;
                        $query = "SELECT page_id, page_namespace, page_title, ".
-                       "rank($fulltext, to_tsquery('default',$searchstring),5) AS score ".
+                       "rank($fulltext, to_tsquery('default',$searchstring), $rankscore) AS score ".
                        "FROM page p, revision r, pagecontent c WHERE p.page_latest = r.rev_id " .
                        "AND r.rev_text_id = c.old_id AND $fulltext @@ to_tsquery('default',$searchstring)";
                }