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