summaryrefslogtreecommitdiffstats
path: root/Bugzilla/DB/Oracle.pm
diff options
context:
space:
mode:
authorDavid Lawrence <dlawrence@mozilla.com>2011-08-22 19:21:08 +0200
committerDavid Lawrence <dlawrence@mozilla.com>2011-08-22 19:21:08 +0200
commit9344a458c830ba066b9004c301d0fc6cabc8f229 (patch)
treeff06e420d70da1459af478c2619fb18900591d5c /Bugzilla/DB/Oracle.pm
parentf30b939630917a63bc733e3963869643eeccdc90 (diff)
parentdd7eacbef2571efe55e5b18d80e93837dc6619d1 (diff)
downloadbugzilla-9344a458c830ba066b9004c301d0fc6cabc8f229.tar.gz
bugzilla-9344a458c830ba066b9004c301d0fc6cabc8f229.tar.xz
merged with bugzilla/4.2
Diffstat (limited to 'Bugzilla/DB/Oracle.pm')
-rw-r--r--Bugzilla/DB/Oracle.pm27
1 files changed, 12 insertions, 15 deletions
diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm
index 9fdacf24c..d91eb428e 100644
--- a/Bugzilla/DB/Oracle.pm
+++ b/Bugzilla/DB/Oracle.pm
@@ -177,7 +177,7 @@ sub sql_fulltext_search {
my ($self, $column, $text, $label) = @_;
$text = $self->quote($text);
trick_taint($text);
- return "CONTAINS($column,$text,$label)", "SCORE($label)";
+ return "CONTAINS($column,$text,$label) > 0", "SCORE($label)";
}
sub sql_date_format {
@@ -379,20 +379,17 @@ sub adjust_statement {
if ($new_sql !~ /\bWHERE\b/) {
$new_sql = $new_sql." WHERE 1=1";
}
- my ($before_where, $after_where) = split /\bWHERE\b/i,$new_sql;
- if (defined($offset)) {
- if ($new_sql =~ /(.*\s+)FROM(\s+.*)/i) {
- my ($before_from,$after_from) = ($1,$2);
- $before_where = "$before_from FROM ($before_from,"
- . " ROW_NUMBER() OVER (ORDER BY 1) R "
- . " FROM $after_from ) ";
- $after_where = " R BETWEEN $offset+1 AND $limit+$offset";
- }
- } else {
- $after_where = " rownum <=$limit AND ".$after_where;
- }
-
- $new_sql = $before_where." WHERE ".$after_where;
+ my ($before_where, $after_where) = split(/\bWHERE\b/i, $new_sql, 2);
+ if (defined($offset)) {
+ my ($before_from, $after_from) = split(/\bFROM\b/i, $new_sql, 2);
+ $before_where = "$before_from FROM ($before_from,"
+ . " ROW_NUMBER() OVER (ORDER BY 1) R "
+ . " FROM $after_from ) ";
+ $after_where = " R BETWEEN $offset+1 AND $limit+$offset";
+ } else {
+ $after_where = " rownum <=$limit AND ".$after_where;
+ }
+ $new_sql = $before_where." WHERE ".$after_where;
}
return $new_sql;
}