From: Simon Green Date: Wed, 5 Jun 2013 05:31:24 +0000 (+0800) Subject: Bug 879055: Add parenthesis to prevent anywordssubstr search from returning incorrect... X-Git-Tag: bugzilla-4.4.1~65 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3364b15fe7ce2ba891e6299234ddbaf4c5854558;p=thirdparty%2Fbugzilla.git Bug 879055: Add parenthesis to prevent anywordssubstr search from returning incorrect results. r=glob, a=LpSolit --- diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 795eb2afc6..6c5e04088b 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -2659,7 +2659,7 @@ sub _owner_idle_time_greater_less { "$ld_table.who IS NULL AND $act_table.who IS NULL"; } else { $args->{term} = - "$ld_table.who IS NOT NULL OR $act_table.who IS NOT NULL"; + "($ld_table.who IS NOT NULL OR $act_table.who IS NOT NULL)"; } } @@ -2903,14 +2903,14 @@ sub _anywordsubstr { my ($self, $args) = @_; my @terms = $self->_substring_terms($args); - $args->{term} = join("\n\tOR ", @terms); + $args->{term} = '(' . join("\n\tOR ", @terms) . ')'; } sub _allwordssubstr { my ($self, $args) = @_; my @terms = $self->_substring_terms($args); - $args->{term} = join("\n\tAND ", @terms); + $args->{term} = '(' . join("\n\tAND ", @terms) . ')'; } sub _nowordssubstr { @@ -2922,19 +2922,19 @@ sub _nowordssubstr { sub _anywords { my ($self, $args) = @_; - + my @terms = $self->_word_terms($args); # Because _word_terms uses AND, we need to parenthesize its terms # if there are more than one. @terms = map("($_)", @terms) if scalar(@terms) > 1; - $args->{term} = join("\n\tOR ", @terms); + $args->{term} = '(' . join("\n\tOR ", @terms) . ')'; } sub _allwords { my ($self, $args) = @_; - + my @terms = $self->_word_terms($args); - $args->{term} = join("\n\tAND ", @terms); + $args->{term} = '(' . join("\n\tAND ", @terms) . ')'; } sub _nowords {