a71cc585c084ab038c7bc8285114aa62d7898301 angie Mon Apr 27 12:11:08 2015 -0700 Fixing bug introduced in 45990976 that broke custom tracks in hgIntegrator. refs #14579 diff --git src/hg/lib/hAnno.c src/hg/lib/hAnno.c index ed6ba07..ffc6016 100644 --- src/hg/lib/hAnno.c +++ src/hg/lib/hAnno.c @@ -187,32 +187,34 @@ char *sourceTable = trackDbSetting(tdb, "sourceTable"); char *inputsTable = trackDbSetting(tdb, "inputTrackTable"); streamer = annoStreamDbFactorSourceNew(dataDb, tdb->track, sourceTable, inputsTable, assembly, maxOutRows); } else if (sameString("knownGene", tdb->track)) { struct sqlConnection *conn = hAllocConn(dataDb); if (sqlTableExists(conn, "knownGene") && sqlTableExists(conn, "kgXref")) streamer = annoStreamDbKnownGeneNew(dataDb, assembly, maxOutRows); hFreeConn(&conn); } if (streamer == NULL) { char maybeSplitTable[HDB_MAX_TABLE_STRING]; - (void)hFindSplitTable(db, chrom, selTable, maybeSplitTable, NULL); - struct asObject *asObj = getAutoSqlForTable(dataDb, selTable, tdb, TRUE); + if (!hFindSplitTable(dataDb, chrom, dbTable, maybeSplitTable, NULL)) + errAbort("hAnnoStreamerFromTrackDb: can't find table (or split table) for '%s.%s'", + dataDb, dbTable); + struct asObject *asObj = getAutoSqlForTable(dataDb, maybeSplitTable, tdb, TRUE); streamer = annoStreamDbNew(dataDb, maybeSplitTable, assembly, asObj, maxOutRows); } return streamer; } struct annoGrator *hAnnoGratorFromBigFileUrl(char *fileOrUrl, struct annoAssembly *assembly, int maxOutRows, enum annoGratorOverlap overlapRule) /* Determine what kind of big data file/url we have and make streamer & grator for it. */ { struct annoStreamer *streamer = NULL; struct annoGrator *grator = NULL; char *type = customTrackTypeFromBigFile(fileOrUrl); if (sameString(type, "bigBed")) streamer = annoStreamBigBedNew(fileOrUrl, assembly, maxOutRows); else if (sameString(type, "vcfTabix")) @@ -300,21 +302,23 @@ struct asObject *asObj = getAutoSqlForType(db, chrom, tdb); if (!asObj && !isHubTrack(tdb->track)) { // If none of the above, it must be a database table; deduce autoSql from sql fields. char *dataDb = db, *dbTable = tdb->table; if (isCustomTrack(tdb->track)) { dbTable = trackDbSetting(tdb, "dbTableName"); if (dbTable) dataDb = CUSTOM_TRASH; else return NULL; } char maybeSplitTable[HDB_MAX_TABLE_STRING]; - (void)hFindSplitTable(db, chrom, dbTable, maybeSplitTable, NULL); + if (!hFindSplitTable(dataDb, chrom, dbTable, maybeSplitTable, NULL)) + errAbort("hAnnoGetAutoSqlForTdb: can't find table (or split table) for '%s.%s'", + dataDb, dbTable); asObj = getAutoSqlForTable(dataDb, maybeSplitTable, tdb, TRUE); } return asObj; }