a0effc171c049178f9569214bf74008ee25833a0 angie Thu Oct 27 11:03:48 2016 -0700 canIntersect wasn't recognizing bigDataUrl-only tracks. refs #18289 diff --git src/hg/hgTables/intersect.c src/hg/hgTables/intersect.c index 88318f9..6b27ac4 100644 --- src/hg/hgTables/intersect.c +++ src/hg/hgTables/intersect.c @@ -28,36 +28,42 @@ static char *curVars[] = {hgtaIntersectGroup, hgtaIntersectTrack, hgtaIntersectTable, hgtaIntersectOp, hgtaMoreThreshold, hgtaLessThreshold, hgtaInvertTable, hgtaInvertTable2, }; static char *nextVars[] = {hgtaNextIntersectGroup, hgtaNextIntersectTrack, hgtaNextIntersectTable, hgtaNextIntersectOp, hgtaNextMoreThreshold, hgtaNextLessThreshold, hgtaNextInvertTable, hgtaNextInvertTable2, }; /* This is already duplicated in correlate.c and is handy -- should be * libified, probably in cart.h. */ void removeCartVars(struct cart *cart, char **vars, int varCount); +boolean hasBigDataUrl(char *db, char *table) +{ +struct trackDb *tdb = hashFindVal(fullTableToTdbHash, table); +return (tdb && isNotEmpty(trackDbSetting(tdb, "bigDataUrl"))); +} + boolean canIntersect(char *db, char *table) /* Return true if table exists and is positional. */ { if (isCustomTrack(table) && ctLookupName(table) != NULL) return TRUE; -if (! hTableOrSplitExists(db, table)) +if (! hTableOrSplitExists(db, table) && ! hasBigDataUrl(db, table)) return FALSE; if (isLongTabixTable(table)) return TRUE; if (isBamTable(table)) return TRUE; if (isBigWigTable(table)) return TRUE; if (isBigBed(database, table, curTrack, ctLookupName)) return TRUE; if (isVcfTable(table, NULL)) return TRUE; if (isHubTrack(table)) return TRUE; if (sameWord(table, WIKI_TRACK_TABLE)) return TRUE;