]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 634144: Make possible_duplicates work on PostgreSQL
authorSam Morris <sam@robots.org.uk>
Tue, 1 Mar 2011 13:41:58 +0000 (05:41 -0800)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Tue, 1 Mar 2011 13:41:58 +0000 (05:41 -0800)
r=mkanat, a=mkanat

Bugzilla/DB.pm
Bugzilla/Search.pm

index 095063f022b0ceb59c3b57d699e1969e90986d01..8d1cf32a0b01ac39a1dce24a3ad94c346e32b4d7 100644 (file)
@@ -437,7 +437,7 @@ sub sql_fulltext_search {
     @words = map("LOWER($column) LIKE $_", @words);
 
     # search for occurrences of all specified words in the column
-    return "CASE WHEN (" . join(" AND ", @words) . ") THEN 1 ELSE 0 END";
+    return join (" AND ", @words), "CASE WHEN (" . join(" AND ", @words) . ") THEN 1 ELSE 0 END";
 }
 
 #####################################################################
@@ -2077,8 +2077,16 @@ Note that both parameters need to be sql-quoted.
 
 =item B<Description>
 
-Returns SQL syntax for performing a full text search for specified text 
-on a given column.
+Returns one or two SQL expressions for performing a full text search for
+specified text on a given column.
+
+If one value is returned, it is a numeric expression that indicates
+a match with a positive value and a non-match with zero. In this case,
+the DB must support casting numeric expresions to booleans.
+
+If two values are returned, then the first value is a boolean expression
+that indicates the presence of a match, and the second value is a numeric
+expression that can be used for ranking.
 
 There is a ANSI SQL version of this method implemented using LIKE operator,
 but it's not a real full text search. DB specific modules should override 
index bf9dbcb2e49520e01c1400e8903f9da063c9f0c2..34100b4baa14dbfd7db03ce3937ee18e058f1ca2 100644 (file)
@@ -2263,7 +2263,7 @@ sub _content_matches {
     $rterm2 = $term2 if !$rterm2;
 
     # The term to use in the WHERE clause.
-    my $term = "$term1 > 0 OR $term2 > 0";
+    my $term = "$term1 OR $term2";
     if ($operator =~ /not/i) {
         $term = "NOT($term)";
     }