diff options
author | Byron Jones <bjones@mozilla.com> | 2013-04-17 19:38:22 +0200 |
---|---|---|
committer | Byron Jones <bjones@mozilla.com> | 2013-04-17 19:38:22 +0200 |
commit | 8d3676154f746a5ec4f3234d5a12656c222e37ff (patch) | |
tree | 73a32c48407fae63685fce06d7021319b649a4de /Bugzilla/Search | |
parent | 27d9af24e9dbcb0facbd83d2133013d14ed19ebb (diff) | |
download | bugzilla-8d3676154f746a5ec4f3234d5a12656c222e37ff.tar.gz bugzilla-8d3676154f746a5ec4f3234d5a12656c222e37ff.tar.xz |
revert commit for bug 828344
Diffstat (limited to 'Bugzilla/Search')
-rw-r--r-- | Bugzilla/Search/Clause.pm | 36 | ||||
-rw-r--r-- | Bugzilla/Search/Quicksearch.pm | 4 |
2 files changed, 19 insertions, 21 deletions
diff --git a/Bugzilla/Search/Clause.pm b/Bugzilla/Search/Clause.pm index 5f5ea5b50..a068ce5ed 100644 --- a/Bugzilla/Search/Clause.pm +++ b/Bugzilla/Search/Clause.pm @@ -93,29 +93,25 @@ sub walk_conditions { sub as_string { my ($self) = @_; - if (!$self->{sql}) { - my @strings; - foreach my $child (@{ $self->children }) { - next if $child->isa(__PACKAGE__) && !$child->has_translated_conditions; - next if $child->isa('Bugzilla::Search::Condition') - && !$child->translated; + my @strings; + foreach my $child (@{ $self->children }) { + next if $child->isa(__PACKAGE__) && !$child->has_translated_conditions; + next if $child->isa('Bugzilla::Search::Condition') + && !$child->translated; - my $string = $child->as_string; - next unless $string; - if ($self->joiner eq 'AND') { - $string = "( $string )" if $string =~ /OR/; - } - else { - $string = "( $string )" if $string =~ /AND/; - } - push(@strings, $string); + my $string = $child->as_string; + if ($self->joiner eq 'AND') { + $string = "( $string )" if $string =~ /OR/; } - - my $sql = join(' ' . $self->joiner . ' ', @strings); - $sql = "NOT( $sql )" if $sql && $self->negate; - $self->{sql} = $sql; + else { + $string = "( $string )" if $string =~ /AND/; + } + push(@strings, $string); } - return $self->{sql}; + + my $sql = join(' ' . $self->joiner . ' ', @strings); + $sql = "NOT( $sql )" if $sql && $self->negate; + return $sql; } # Search.pm converts URL parameters to Clause objects. This helps do the diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index a5144d0e0..7424f831f 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -376,8 +376,10 @@ sub _handle_field_names { my ($or_operand, $negate, $unknownFields, $ambiguous_fields) = @_; # Flag and requestee shortcut - if ($or_operand =~ /^(?:flag:)?([^\?]+\?[^\?]*)$/) { + if ($or_operand =~ /^(?:flag:)?([^\?]+\?)([^\?]*)$/) { addChart('flagtypes.name', 'substring', $1, $negate); + $chart++; $and = $or = 0; # Next chart for boolean AND + addChart('requestees.login_name', 'substring', $2, $negate); return 1; } |