6823728f16334d9b53bd595688c8f5780cf833fe
braney
  Sun Feb 16 12:13:13 2025 -0800
ongoing work on quickLift.  Added support for SQL beds

diff --git src/hg/hgTracks/bedTrack.c src/hg/hgTracks/bedTrack.c
index e54034a037f..2fe5540082a 100644
--- src/hg/hgTracks/bedTrack.c
+++ src/hg/hgTracks/bedTrack.c
@@ -79,57 +79,57 @@
     {
     struct hash *settings = tg->tdb->settingsHash;
     char *bigDataUrl = hashFindVal(settings, "bigDataUrl");
     struct bedTabixFile *btf = bedTabixFileMayOpen(bigDataUrl, NULL, 0, 0);
     list = bedTabixReadBeds(btf, chromName, winStart, winEnd, loader);
     bedTabixFileClose(&btf);
     }
 else if (tg->isBigBed)
     { // avoid opening an unneeded db connection for bigBed; required not to use mysql for parallel fetch tracks
     struct lm *lm = lmInit(0);
     struct bbiFile *bbi = fetchBbiForTrack(tg);
     char *quickLiftFile = cloneString(trackDbSetting(tg->tdb, "quickLiftUrl"));
     struct hash *chainHash = NULL;
     struct bigBedInterval *bb, *bbList = NULL;
     if (quickLiftFile)
-        bbList = quickLiftIntervals(quickLiftFile, bbi, chromName, winStart, winEnd, &chainHash);
+        bbList = quickLiftGetIntervals(quickLiftFile, bbi, chromName, winStart, winEnd, &chainHash);
     else
         bbList = bigBedSelectRange(tg, chromName, winStart, winEnd, lm);
 
     char *bedRow[bbi->fieldCount];
     char startBuf[16], endBuf[16];
 
     struct bigBedFilter *filters = bigBedBuildFilters(cart, bbi, tg->tdb);
     if (compositeChildHideEmptySubtracks(cart, tg->tdb, NULL, NULL))
        labelTrackAsHideEmpty(tg);
 
      if (tg->itemName == bedName && !trackDbSettingClosestToHomeOn(tg->tdb, "linkIdInName"))
         tg->itemName = bigBedItemName;
 
     bigBedLabelCalculateFields(cart, tg->tdb, bbi,  &tg->labelColumns);
     unsigned filtered = 0;
     for (bb = bbList; bb != NULL; bb = bb->next)
         {
         bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow));
         if (!bigBedFilterInterval(bbi, bedRow, filters))
             {
             filtered++;
             continue;
             }
         if (quickLiftFile)
             {
-            if ((bed = quickLiftBed(bbi, chainHash, bb)) == NULL)
+            if ((bed = quickLiftIntervalsToBed(bbi, chainHash, bb)) == NULL)
                 continue;
             }
         else
             bed = loader(bedRow);
         // FIXME BRANEY: either disable for all tracks with NUM_FIELDS > label field or better,
         // fix how label is stored so it doesn't trash custom bed field
         // BRANEY says: the loader should be returning bed structures which include the label field.
         if (differentString(tg->tdb->type, "bigInteract"))
             bed->label = bigBedMakeLabel(tg->tdb, tg->labelColumns, bb, chromName);
 
         slAddHead(&list, bed);
         }
 
     if (filtered)
        labelTrackAsFilteredNumber(tg, filtered);