9fa9d885584e6f007336ff740b1aad5621eb19fd angie Fri Sep 11 15:56:17 2015 -0700 If the current table doesn't have hti, getIdField tries to get hti for the current track -- except that's a problem when the track is a composite track yet has a type for which we expect to have a bigDataFileOrUrl. So if the current track is a composite, don't try. Test case: Table Browser, hg19, group = Variation, track = 1000G Ph3 Accsbl; before fix, page fails trying to query the non-existent table for composite. diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c index 618d734..a4c2e6c 100644 --- src/hg/hgTables/hgTables.c +++ src/hg/hgTables/hgTables.c @@ -900,31 +900,31 @@ { return isCustomTrack(hti->rootName) || hti->isPos; #ifdef OLD ((hti->startField[0] && hti->endField[0]) && (hti->chromField[0] || sameString(hti->rootName, "gl"))); #endif /* OLD */ } char *getIdField(char *db, struct trackDb *track, char *table, struct hTableInfo *hti) /* Get ID field for table, or NULL if none. FreeMem result when done */ { char *idField = NULL; if (hti != NULL && hti->nameField[0] != 0) idField = cloneString(hti->nameField); -else if (track != NULL) +else if (track != NULL && !tdbIsComposite(track)) { struct hTableInfo *trackHti = maybeGetHtiOnDb(db, track->table); if (trackHti != NULL && isCustomTrack(table)) idField = cloneString(trackHti->nameField); else if (hti != NULL && trackHti != NULL && trackHti->nameField[0] != 0) { struct joinerPair *jp, *jpList; jpList = joinerRelate(allJoiner, db, track->table); for (jp = jpList; jp != NULL; jp = jp->next) { if (sameString(jp->a->field, trackHti->nameField)) { if ( sameString(jp->b->database, db) && sameString(jp->b->table, table) ) {