It's all about the answers!

Ask a question

Is it true that work item that combine multiple conditions ... run each condition on the full set of items?


Edwin Guenthner (28177) | asked Apr 17 '13, 7:41 a.m.
Hello there,

our dev org will switch from our home-grown tool to RTC 4.02 next month;
and todays education sessions raised some eyebrows. What we heard (or better: what we understood) is:

a) when queries combine multiple condition, each condition is evaluated separately on the FULL set of items in the database
b) the individual result sets are subject to "internal limitation"; meaning: if the query would actually result 10 000 items, RTC just returns a smaller subset (like 1000, 2000, or so) of these 10 000.
c) intersection happens in the end, using the "limited" results from step "b)"

So, theoretically it could happen that:
- condition 1 matches 10 000 items
- condition 2 matches 50 items (all of them matching cond1, too)

If "condition 1" is now reduced to just 1000 items ... and those 1000 contain only 5 out of the 50 for cond2 ... the final result would be 5 items; and not 50. That would be like ... very bad.

Can someone with real insight confirm (or hopefully refute) these thoughts?
 

Accepted answer


permanent link
Kot T. (1.5k11319) | answered Apr 17 '13, 1:10 p.m.
JAZZ DEVELOPER
Hi Edwin,

Although I cannot really confirm on the sequence in your question, I believe the limit is generally applied after the intersection/union (and/or). An exception might be with the 'fulltext' condition (which seems to be evaluated separately)

I'd like to share my test results below:

I changed the following 2 settings in CCM Admin > Advanced properties:
- Full Text Merge Limit ==> 5
- Maximum Query Result Set Size ==> 10

According to the above settings, I expect the max # of work items returned by a query to be 10. If a 'fulltext' is used in my query, it will return 5 work items.

In a project area, I have 11 defects and 4 tasks. All work items have the word 'Defect' in the summary field.
1. I ran a query to list all work items (no condition) ==> Got 10 of 15 work items
2. I added a 'FullText' condition and search on 'Defect' ==> Got 5 work items (the Full Text Merge Limit of 5 is applied here)
select distinct t1.ITEM_ID, t1.STATE_ID from MODEL.WORK_ITEM t1 where ((t1.PROJECT_AREA_ITEM_ID = ?) and t1.ITEM_ID  in('_kIwjAIXJEeKlGtXVZ5cngw', '_jgWtUI_cEeKuZOtxyMUbNA', '_zosp4I_cEeKuZOtxyMUbNA', '_0ncKEo_cEeKuZOtxyMUbNA', '_HKqGQI_gEeKuZOtxyMUbNA'))

3. I removed the 'FullText' condition, and added 'type' to filter for defect type only ==> Got 10 defect work items
select distinct t1.ITEM_ID, t1.STATE_ID from MODEL.WORK_ITEM t1 where ((t1.PROJECT_AREA_ITEM_ID = ?) and (t1.WORK_ITEM_TYPE = ?)

4. I ran a query with both full text = 'defect' AND type = 'defect' ==> Got 5 work items
select distinct t1.ITEM_ID, t1.STATE_ID from MODEL.WORK_ITEM t1 where ((t1.PROJECT_AREA_ITEM_ID = ?) and t1.ITEM_ID  in('_kIwjAIXJEeKlGtXVZ5cngw', '_jgWtUI_cEeKuZOtxyMUbNA', '_zosp4I_cEeKuZOtxyMUbNA', '_0ncKEo_cEeKuZOtxyMUbNA', '_HKqGQI_gEeKuZOtxyMUbNA') and (t1.WORK_ITEM_TYPE = ?))

5. I ran a query with both full text = 'defect' OR type = 'defect' ==> Got 10 work items
select distinct t1.ITEM_ID, t1.STATE_ID from MODEL.WORK_ITEM t1 where ((t1.PROJECT_AREA_ITEM_ID = ?) and (t1.ITEM_ID  in('_kIwjAIXJEeKlGtXVZ5cngw', '_jgWtUI_cEeKuZOtxyMUbNA', '_zosp4I_cEeKuZOtxyMUbNA', '_0ncKEo_cEeKuZOtxyMUbNA', '_HKqGQI_gEeKuZOtxyMUbNA') or (t1.WORK_ITEM_TYPE = ?)))

6. I ran a query with both full text = 'defect' AND type = 'task' ==> Got NO work item. This is because all the work items returned from the fulltext condition are of 'defect' type.

7. a query with type = 'defect' and 'created by' = current user ==> Unlike 'fulltext' condition, the conditions in this case are evaluated together in a single query.
select distinct t1.ITEM_ID, t1.STATE_ID from MODEL.WORK_ITEM t1 where ((t1.PROJECT_AREA_ITEM_ID = ?) and (t1.WORK_ITEM_TYPE = ?) and (t1.CREATOR_ITEM_ID = ?))


Edwin Guenthner selected this answer as the correct answer

Comments
Kot T. commented Apr 17 '13, 1:12 p.m.
JAZZ DEVELOPER

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.