fa6888db3245288c67455ea1bd5acc76e1c4371c
braney
  Tue Jan 16 14:01:39 2018 -0800
Don't open SQL connection to get AS from bigBed.   #20775

diff --git src/hg/hgc/barChartClick.c src/hg/hgc/barChartClick.c
index 3fdc9ae..95ab9ab 100644
--- src/hg/hgc/barChartClick.c
+++ src/hg/hgc/barChartClick.c
@@ -39,44 +39,38 @@
 wordCt = chopLine(cloneString(categs), words);
 int i;
 struct hash *categoryHash = hashNew(0);
 for (i=0; i<wordCt; i++)
     {
     hashStore(categoryHash, words[i]);
     }
 return categoryHash;
 }
 
 static struct barChartBed *getBarChartFromFile(struct trackDb *tdb, char *file, 
                                                 char *item, char *chrom, int start, int end, 
                                                 struct asObject **retAs)
 /* Retrieve barChart BED item from big file */
 {
-struct sqlConnection *conn = hAllocConnTrack(database, tdb);
-struct asObject *as = NULL;
 boolean hasOffsets = TRUE;
-if (conn != NULL)
-    {
-    as = asForTdb(conn, tdb);
+struct bbiFile *bbi = bigBedFileOpen(file);
+struct asObject *as = bigBedAsOrDefault(bbi);
 if (retAs != NULL)
     *retAs = as;
 hasOffsets = (
     asColumnFind(as, BARCHART_OFFSET_COLUMN) != NULL && 
     asColumnFind(as, BARCHART_LEN_COLUMN) != NULL);
-    hFreeConn(&conn);
-    }
-struct bbiFile *bbi = bigBedFileOpen(file);
 struct lm *lm = lmInit(0);
 struct bigBedInterval *bb, *bbList =  bigBedIntervalQuery(bbi, chrom, start, end, 0, lm);
 for (bb = bbList; bb != NULL; bb = bb->next)
     {
     char startBuf[16], endBuf[16];
     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;
 }