Closed Bug 848343 Opened 12 years ago Closed 12 years ago

"flags" "contains all of the strings" "blocking +" is split into two independent criteria matching distinct flags instead of matching the same flags

Categories

(Bugzilla :: Query/Bug List, defect)

4.2.4
defect
Not set
major

Tracking

()

RESOLVED DUPLICATE of bug 828344

People

(Reporter: glob, Assigned: glob)

References

Details

(Keywords: regression)

here's the original namedquery: bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&chfieldto=Now&emailassigned_to1=1&emailassigned_to2=1&emailqa_contact2=1&emailreporter2=1&field-1-0-0=product&field-1-1-0=bug_status&field0-0-0=flagtypes.name&product=Bugzilla&query_format=advanced&type-1-0-0=anyexact&type-1-1-0=anyexact&type0-0-0=allwordssubstr&value-1-0-0=Bugzilla&value-1-1-0=UNCONFIRMED%2CNEW%2CASSIGNED%2CREOPENED&value0-0-0=blocking%20%2B&order=bugs.bug_id
4.0 query: SELECT bugs.bug_id AS bug_id, bugs.bug_severity AS bug_severity, bugs.priority AS priority, bugs.bug_status AS bug_status, bugs.resolution AS resolution, map_products.name AS product, bugs.op_sys AS op_sys, map_assigned_to.login_name AS assigned_to, bugs.short_desc AS short_desc FROM bugs INNER JOIN profiles AS map_assigned_to ON (bugs.assigned_to = map_assigned_to.userid) INNER JOIN products AS map_products ON (bugs.product_id = map_products.id) LEFT JOIN attachments AS attachments_0 ON (bugs.bug_id = attachments_0.bug_id AND attachments_0.isprivate = 0) LEFT JOIN flags AS flags_0 ON (bugs.bug_id = flags_0.bug_id ) AND (flags_0.attach_id = attachments_0.attach_id OR flags_0.attach_id IS NULL) LEFT JOIN flagtypes AS flagtypes_0 ON (flags_0.type_id = flagtypes_0.id) LEFT JOIN bug_group_map ON bug_group_map.bug_id = bugs.bug_id AND bug_group_map.group_id NOT IN (13,20,19,87,31,10,3,9,18,4,7,8,1,94,93,57,53,48,92,23,2,69,84,11,88,14,90,32,6,42,26,85,86,96,99,100,101,73,106,58,17,65,91,52,12,50,103) LEFT JOIN cc ON cc.bug_id = bugs.bug_id AND cc.who = 13647 WHERE (( bugs.bug_status IN ('UNCONFIRMED','NEW','ASSIGNED','REOPENED') ) AND ( bugs.product_id IN (19) )) AND ((INSTR(CONCAT(flagtypes_0.name, flags_0.status), 'blocking') > 0 AND INSTR(CONCAT(flagtypes_0.name, flags_0.status), '+') > 0)) AND bugs.creation_ts IS NOT NULL AND ((bug_group_map.group_id IS NULL) OR (bugs.reporter_accessible = 1 AND bugs.reporter = 13647) OR (bugs.cclist_accessible = 1 AND cc.who IS NOT NULL) OR (bugs.assigned_to = 13647) OR (bugs.qa_contact = 13647) ) GROUP BY bugs.bug_id ORDER BY bug_id LIMIT 10001
4.2 query: SELECT bugs.bug_id AS bug_id FROM bugs LEFT JOIN bug_group_map AS security_map ON bugs.bug_id = security_map.bug_id AND NOT ( security_map.group_id IN (13,20,19,87,30,31,10,3,9,18,4,7,8,1,97,93,96,95,88,98,94) ) LEFT JOIN cc AS security_cc ON bugs.bug_id = security_cc.bug_id AND security_cc.who = 13647 WHERE bugs.creation_ts IS NOT NULL AND (security_map.group_id IS NULL OR (bugs.reporter_accessible = 1 AND bugs.reporter = 13647) OR (bugs.cclist_accessible = 1 AND security_cc.who IS NOT NULL) OR bugs.assigned_to = 13647 OR bugs.qa_contact = 13647) AND bugs.bug_status IN ('UNCONFIRMED','NEW','ASSIGNED','REOPENED') AND bugs.product_id IN (SELECT products.id FROM products WHERE products.name IN ('Bugzilla') ) AND bugs.product_id IN (SELECT products.id FROM products WHERE products.name IN ('Bugzilla') ) AND bugs.bug_status IN ('UNCONFIRMED','NEW','ASSIGNED','REOPENED') AND ( bugs.bug_id IN (SELECT bug_id FROM flags INNER JOIN flagtypes ON flags.type_id = flagtypes.id WHERE INSTR(CONCAT(flagtypes.name, flags.status), 'blocking') > 0) AND bugs.bug_id IN (SELECT bug_id FROM flags INNER JOIN flagtypes ON flags.type_id = flagtypes.id WHERE INSTR(CONCAT(flagtypes.name, flags.status), '+') > 0) ) GROUP BY bugs.bug_id ORDER BY bug_id LIMIT 500
note: the 4.2 query is from my dev system, not production. on prod the subselects are executed and the results inlined.
4.0 is doing: show me bugs where a single flag matches both "blocking" and "+" 4.2 is doing: show me bugs where any flags match "blocking" and any flags match "+" so it's very similar to the issue with comment matching - bug 828344
Component: General → Query/Bug List
Keywords: regression
Product: bugzilla.mozilla.org → Bugzilla
QA Contact: default-qa
Summary: saved searches involving flags is returning bugs which it shouldn't → search for "flags" "contains all of the strings" "blocking +" returns different results in 4.2 when compared with 4.0
Version: Production → 4.2.4
Flags: blocking4.4+
Flags: blocking4.2.6+
OS: Mac OS X → All
Hardware: x86 → All
Summary: search for "flags" "contains all of the strings" "blocking +" returns different results in 4.2 when compared with 4.0 → "flags" "contains all of the strings" "blocking +" is splitted into two independent criteria matching distinct flags instead of matching the same flags
Target Milestone: --- → Bugzilla 4.2
Summary: "flags" "contains all of the strings" "blocking +" is splitted into two independent criteria matching distinct flags instead of matching the same flags → "flags" "contains all of the strings" "blocking +" is split into two independent criteria matching distinct flags instead of matching the same flags
i've looked at what's required to fix this, and it's very similar to the fix for comments, marking as a duplicate of that bug.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Target Milestone: Bugzilla 4.2 → ---
You need to log in before you can comment on or make changes to this bug.