If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Boolean search on BugsThisDependsOn or OtherBugsDependingOnThis 'does not contain' is confusing

RESOLVED WORKSFORME

Status

()

Bugzilla
Query/Bug List
--
trivial
RESOLVED WORKSFORME
14 years ago
5 years ago

People

(Reporter: Stewart Gordon, Assigned: Joel Peshkin)

Tracking

({testcase})

2.17.6
testcase

Details

(URL)

(Reporter)

Description

14 years ago
There seem to be several bug reports already on searching by dependencies
already, but not for this one.

I cannot search for bugs that do not depend on, or do not block, a specified bug.

Tried both on b.m.o and landfill, hence given version number.  Landfill
testcase:
http://landfill.bugzilla.org/bugzilla-tip/buglist.cgi?product=_test+product&field0-0-0=dependson&type0-0-0=notsubstring&value0-0-0=1356

Reproducible: Always

Steps to reproduce:
Run the search at the given URL.  The b.m.o testcase is:
- Only bugs with at least: 51 votes
- OtherBugsDependingOnThis  does not contain the string  163993

Actual results:
I get a list of bugs with 51+ votes that block at least one bug other than 163993.

The problem appears to be that it checks each value in a multi-valued field
individually, and then succeeds if there is at least one value that does not
match, instead of if none match.

Expected results:
List of all bugs with 51+ votes that _do not_ block bug 163993.

The same seems to happen if I choose "does not contain regexp" or "contains none
of the words" instead of "does not contain the string".
(Reporter)

Updated

14 years ago
Version: 2.17.4 → 2.17.6
(Assignee)

Comment 1

13 years ago
*** Bug 252449 has been marked as a duplicate of this bug. ***
(Assignee)

Comment 2

13 years ago
In order to make any query using dependencies as a factor where the dependency
is not requrired to match, these must be a LEFT JOIN.  mysql4 is smart enough to
optimize that back to an INNER JOIN when possible.
Assignee: justdave → bugreport
Target Milestone: --- → Bugzilla 2.20
(Reporter)

Comment 3

13 years ago
I can see a left join as finding the bugs that don't depend on anything, but I
can't at the moment see it eliminating the hundreds of false positives.  But
I'll see what you come up with....
(Assignee)

Comment 4

13 years ago
The negation feature in boolean charts makes this possible. The URL given is no
longer the correct query to try it, but you can ask for this now....

http://landfill.bugzilla.org/bugzilla-tip/query.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=_test%20product&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&deadlinefrom=&deadlineto=&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&negate0=1&field0-0-0=dependson&type0-0-0=substring&value0-0-0=1356



Status: NEW → RESOLVED
Last Resolved: 13 years ago
Resolution: --- → WORKSFORME
(Reporter)

Comment 5

13 years ago
Just because a given bug now has a workaround doesn't stop it from being a bug.
 The bug as described here is still equally there.  Moreover, if this
combination of fields of the boolean search were not supposed to work, then
either it should be giving an error message, or the UI should be programmed so
that the user cannot select this combination.  Certainly not doing a search that
bears no relation to what the user requested.

Further, while the boolean negation workaround works to an extent, I can see the
possibilities that:
- it would take longer to input some more complex searches
- it might not be a general solution, with the inherently limited depth of the
boolean search design
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
(Assignee)

Comment 6

13 years ago
It actually does exactly what it claims to do, and what the documentation on
boolean charts claims it does.  

If you ask it for any bug on which there is a dependency that does not contain
the string 123456, it will give you exactly what you aked for.  If, on the other
hand, you ask for a chart where there is no dependency that does contain the
string 123456, it will give you what you intended in the first place.

(Reporter)

Comment 7

13 years ago
How do I ask for any bug on which there is _a_ dependency that does not contain
a given string?  The options in the boolean search dropdown are
BugsThisDependsOn and OtherBugsDependingOnThis, not ABugThisDependsOn and
AnOtherBugDependingOnThis.
(Assignee)

Comment 8

13 years ago
The docs have been updated to keep pace with this.

http://www.bugzilla.org/docs/tip/html/query.html

When you define a row, it has a strict boolean interpretation.

It will match anything that the criteria specify.  In the case of
"BugThisDependsOn" "does not contain" "123456", it will match any bug on which
there is any dependency that meets that condition - meaning that you will get
bugs where there is a dependency on "2456" because "2456" does not contain "123456"

The correct query is 
NOT(
"BugThisDependsOn" "contains" "123456"
)

(Reporter)

Comment 9

13 years ago
All well.  But as I look on landfill now, the field names are still in the
plural as they appear in the boolean query dropdowns.  They should at least be
made singular if this behaviour is here to stay.

Moreover, the behaviour is inconistent with that of Keywords.
(Assignee)

Comment 10

13 years ago
As I said, it works
Severity: major → trivial
Status: REOPENED → RESOLVED
Last Resolved: 13 years ago13 years ago
Resolution: --- → WORKSFORME
Summary: Boolean search on BugsThisDependsOn or OtherBugsDependingOnThis 'does not contain' doesn't work (broken, multi-valued field, finds depend on a bug other than specified) → Boolean search on BugsThisDependsOn or OtherBugsDependingOnThis 'does not contain' is confusing
Target Milestone: Bugzilla 2.20 → ---
QA Contact: matty_is_a_geek → default-qa
You need to log in before you can comment on or make changes to this bug.