From 57cc97e041ff65b457fa94a1618699cf9bb9ca13 Mon Sep 17 00:00:00 2001 From: Frédéric Buclin Date: Sat, 3 Nov 2012 00:15:51 +0100 Subject: Bug 804505: Oracle crashes when typing "word1 word2" in QuickSearch with "ORA-29907: found duplicate labels in primary invocations" r=dkl a=LpSolit --- Bugzilla/Bug.pm | 7 ++----- Bugzilla/DB/Oracle.pm | 5 ++++- Bugzilla/Search.pm | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 97b8591a7..3b14c4cb2 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -520,17 +520,14 @@ sub possible_duplicates { if ($dbh->FULLTEXT_OR) { my $joined_terms = join($dbh->FULLTEXT_OR, @words); ($where_sql, $relevance_sql) = - $dbh->sql_fulltext_search('bugs_fulltext.short_desc', - $joined_terms, 1); + $dbh->sql_fulltext_search('bugs_fulltext.short_desc', $joined_terms); $relevance_sql ||= $where_sql; } else { my (@where, @relevance); - my $count = 0; foreach my $word (@words) { - $count++; my ($term, $rel_term) = $dbh->sql_fulltext_search( - 'bugs_fulltext.short_desc', $word, $count); + 'bugs_fulltext.short_desc', $word); push(@where, $term); push(@relevance, $rel_term || $term); } diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm index e6beef5cc..fcc4e88a9 100644 --- a/Bugzilla/DB/Oracle.pm +++ b/Bugzilla/DB/Oracle.pm @@ -159,10 +159,13 @@ sub sql_from_days{ return " TO_DATE($date,'J') "; } + sub sql_fulltext_search { - my ($self, $column, $text, $label) = @_; + my ($self, $column, $text) = @_; + state $label = 0; $text = $self->quote($text); trick_taint($text); + $label++; return "CONTAINS($column,$text,$label) > 0", "SCORE($label)"; } diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 3805cd2ad..8746c2706 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -2342,9 +2342,9 @@ sub _content_matches { # Create search terms to add to the SELECT and WHERE clauses. my ($term1, $rterm1) = - $dbh->sql_fulltext_search("$table.$comments_col", $value, 1); + $dbh->sql_fulltext_search("$table.$comments_col", $value); my ($term2, $rterm2) = - $dbh->sql_fulltext_search("$table.short_desc", $value, 2); + $dbh->sql_fulltext_search("$table.short_desc", $value); $rterm1 = $term1 if !$rterm1; $rterm2 = $term2 if !$rterm2; -- cgit v1.2.3-24-g4f1b