ffebd51c178297e99a5a4d2ba4dd43230034077c angie Thu Apr 23 10:33:20 2015 -0700 In getBedFieldSlNameList, when parsing the field string from bedSqlFieldsExceptForChrom, skip over placeholder field '.' in addition to placeholder 0. Letting the '.' slip through was not a problem until 1d8a8611 in which joinerDtfFromDottedTriple was changed to use strrchr instead of strchr to separate the field name from the track name, to accommodate track hubs with . in the track name. refs #15117 diff --git src/hg/hgTables/joining.c src/hg/hgTables/joining.c index 34a5183..772439e 100644 --- src/hg/hgTables/joining.c +++ src/hg/hgTables/joining.c @@ -1055,31 +1055,32 @@ { struct slName *snList = NULL, *sn = NULL; int fieldCount = 0; char *fields = NULL; char *words[16]; char dtf[256]; int i; if (hti == NULL) errAbort("Can't find table info for table %s.%s", db, table); bedSqlFieldsExceptForChrom(hti, &fieldCount, &fields); /* Update our notion of fieldCount -- the chrom field is omitted, and * (if applicable) the reserved field is omitted too: */ fieldCount = chopCommas(fields, words); for (i=fieldCount-1; i >= 0; i--) { - if (sameString(words[i], "0")) + // Skip placeholder field names: + if (sameString(words[i], "0") || sameString(words[i], "'.'")) continue; safef(dtf, sizeof(dtf), "%s.%s.%s", db, table, words[i]); sn = slNameNew(dtf); slAddHead(&snList, sn); } safef(dtf, sizeof(dtf), "%s.%s.%s", db, table, hti->chromField); sn = slNameNew(dtf); slAddHead(&snList, sn); freez(&fields); return snList; } static int *getBedFieldIndices(struct joinedTables *joined, struct hTableInfo *hti)