0b9c2a6f9930555f65104385a9edcb00147a5bc6 braney Mon Feb 3 09:31:56 2025 -0800 add support for quikLifting mySQL beds. diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c index dbfe6bd813c..16ed80748ca 100644 --- src/hg/lib/hubConnect.c +++ src/hg/lib/hubConnect.c @@ -463,42 +463,43 @@ return p; } void hubConnectAddDescription(char *database, struct trackDb *tdb) /* Fetch tdb->track's html description (or nearest ancestor's non-empty description) * and store in tdb->html. */ { unsigned hubId = hubIdFromTrackName(tdb->track); struct hubConnectStatus *hub = hubFromId(hubId); struct trackHubGenome *hubGenome = trackHubFindGenome(hub->trackHub, database); trackHubPolishTrackNames(hub->trackHub, tdb); trackHubAddDescription(hubGenome->trackDbFile, tdb); } -static void assignQuickLift(struct trackDb *tdbList, char *quickLiftChain) +static void assignQuickLift(struct trackDb *tdbList, char *quickLiftChain, char *db) /* step through a trackDb list and assign a quickLift chain to each track */ { if (tdbList == NULL) return; struct trackDb *tdb; for(tdb = tdbList; tdb; tdb = tdb->next) { - assignQuickLift(tdb->subtracks, quickLiftChain); + assignQuickLift(tdb->subtracks, quickLiftChain, db); hashAdd(tdb->settingsHash, "quickLiftUrl", quickLiftChain); + hashAdd(tdb->settingsHash, "quickLiftDb", db); } } // a string to define trackDb for quickLift chain static char *chainTdbString = "shortLabel chain to %s\n" "longLabel chain to %s\n" "type bigChain %s\n" "chainType reverse\n" "bigDataUrl %s\n"; static struct trackDb *makeQuickLiftChainTdb(struct trackHubGenome *hubGenome, struct hubConnectStatus *hub) // make a trackDb entry for a quickLift chain { struct trackDb *tdb; @@ -508,31 +509,31 @@ char buffer[4096]; safef(buffer, sizeof buffer, "hub_%d_quickLiftChain", hub->id); tdb->table = tdb->track = cloneString(buffer); safef(buffer, sizeof buffer, chainTdbString, hubGenome->quickLiftDb, hubGenome->quickLiftDb, hubGenome->quickLiftDb, hubGenome->quickLiftChain); tdb->settings = cloneString(buffer); tdb->settingsHash = trackDbSettingsFromString(tdb, buffer); trackDbFieldsFromSettings(tdb); tdb->visibility = tvDense; return tdb; } static struct trackDb *fixForQuickLift(struct trackDb *tdbList, struct trackHubGenome *hubGenome, struct hubConnectStatus *hub) // assign a quickLift chain to the tdbList and make a trackDb entry for the chain. { -assignQuickLift(tdbList, hubGenome->quickLiftChain); +assignQuickLift(tdbList, hubGenome->quickLiftChain, hub->trackHub->defaultDb); struct trackDb *quickLiftTdb = makeQuickLiftChainTdb(hubGenome, hub); quickLiftTdb->grp = tdbList->grp; slAddHead(&tdbList, quickLiftTdb); return tdbList; } struct trackDb *hubConnectAddHubForTrackAndFindTdb( char *database, char *trackName, struct trackDb **pTdbList, struct hash *trackHash) /* Go find hub for trackName (which will begin with hub_), and load the tracks * for it, appending to end of list and adding to trackHash. Return the * trackDb associated with trackName. This will also fill in the html fields, * but just for that track and it's parents. */ {