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;
 }