0ca57143506dc2b09c5e0268eb32b1e437e3fa25 tdreszer Thu Jan 6 10:08:56 2011 -0800 Fixed bug an multiple mdb term query where early round has no results, so later hits are mistakenly seen as valid. diff --git src/hg/hgTracks/searchTracks.c src/hg/hgTracks/searchTracks.c index 12b87d8..732c0e0 100644 --- src/hg/hgTracks/searchTracks.c +++ src/hg/hgTracks/searchTracks.c @@ -505,30 +505,32 @@ } if (tmp != NULL) { if(metaTracks == NULL) metaTracks = tmp; else metaTracks = slNameIntersection(metaTracks, tmp); } #else///ifndif CV_SEARCH_SUPPORTS_FREETEXT struct slName *tmp = mdbObjSearch(conn, mdbVar[i], mdbVal[i], "is", MDB_VAL_STD_TRUNCATION, TRUE, FALSE); if(metaTracks == NULL) metaTracks = tmp; else metaTracks = slNameIntersection(metaTracks, tmp); #endif///ndef CV_SEARCH_SUPPORTS_FREETEXT + if (metaTracks == NULL) + break; // If there are no results in a round, then successive intersections will be empty too } } for (el = metaTracks; el != NULL; el = el->next) hashAddInt(matchingTracks, el->name, 1); struct group *group; for (group = groupList; group != NULL; group = group->next) { if(groupSearch == NULL || sameString(group->name, groupSearch)) { if (group->trackList != NULL) { struct trackRef *tr; for (tr = group->trackList; tr != NULL; tr = tr->next) {