70dd30683fe3a9795bb81067da75d34521265577
kate
  Thu May 4 16:41:16 2017 -0700
Add custom track suport for type barChart. refs #18736

diff --git src/hg/hgc/barChartClick.c src/hg/hgc/barChartClick.c
index 7418989..f35c130 100644
--- src/hg/hgc/barChartClick.c
+++ src/hg/hgc/barChartClick.c
@@ -73,31 +73,39 @@
     char *row[32];
     bigBedIntervalToRow(bb, chrom, startBuf, endBuf, row, ArraySize(row));
     struct barChartBed *barChart = barChartBedLoadOptionalOffsets(row, hasOffsets);
     if (barChart == NULL)
         continue;
     if (sameString(barChart->name, item))
         return barChart;
     }
 return NULL;
 }
 
 static struct barChartBed *getBarChartFromTable(struct trackDb *tdb, char *table, 
                                                 char *item, char *chrom, int start, int end)
 /* Retrieve barChart BED item from track table */
 {
-struct sqlConnection *conn = hAllocConn(database);
+struct sqlConnection *conn = NULL;
+struct customTrack *ct = lookupCt(tdb->track);
+if (ct == NULL)
+    conn = hAllocConnTrack(database, tdb);
+else
+    {
+    conn = hAllocConn(CUSTOM_TRASH);
+    table = ct->dbTableName;
+    }
 if (conn == NULL)
     return NULL;
 struct barChartBed *barChart = NULL;
 char **row;
 char query[512];
 struct sqlResult *sr;
 if (sqlTableExists(conn, table))
     {
     boolean hasOffsets = (sqlColumnExists(conn, table, BARCHART_OFFSET_COLUMN) &&
                          sqlColumnExists(conn, table, BARCHART_LEN_COLUMN));
     sqlSafef(query, sizeof query, 
                 "SELECT * FROM %s WHERE name='%s'"
                     "AND chrom='%s' AND chromStart=%d AND chromEnd=%d", 
                                 table, item, chrom, start, end);
     sr = sqlGetResult(conn, query);