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;