8ccd7f957e100e1a7e719fcc1a75584b534ea744 braney Fri Nov 14 14:52:32 2025 -0800 fix problem with quickLift refs #36702 diff --git src/hg/hgTracks/pubsTracks.c src/hg/hgTracks/pubsTracks.c index 058a17b0e6d..5869521030a 100644 --- src/hg/hgTracks/pubsTracks.c +++ src/hg/hgTracks/pubsTracks.c @@ -222,31 +222,33 @@ static void pubsAddExtra(struct track* tg, struct linkedFeatures* lf) /* add authorYear and title to linkedFeatures->extra */ { // no extra field if we're in dense mode if (tg->limitedVis == tvDense) { return; } char *articleTable = trackDbSettingClosestToHome(tg->tdb, "pubsArticleTable"); if(isEmpty(articleTable)) return; if (lf->extra != NULL) return; -struct sqlConnection *conn = hAllocConn(database); +char *liftDb = cloneString(trackDbSetting(tg->tdb, "quickLiftDb")); +char *db = (liftDb == NULL) ? database : liftDb; +struct sqlConnection *conn = hAllocConn(db); struct pubsExtra* extra = pubsMakeExtra(tg, articleTable, conn, lf); lf->extra = extra; hFreeConn(&conn); } struct hash* searchForKeywords(struct sqlConnection* conn, char *articleTable, char *keywords) /* return hash with the articleIds that contain a given keyword in the abstract/title/authors */ { if (isEmpty(keywords)) return NULL; char query[12000]; sqlSafef(query, sizeof(query), "SELECT articleId FROM %s WHERE " "MATCH (citation, title, authors, abstract) AGAINST ('%s' IN BOOLEAN MODE)", articleTable, keywords); //printf("query %s", query); @@ -256,31 +258,33 @@ // convert list to hash struct hash *hashA = hashNew(0); struct slName *el; for (el = artIds; el != NULL; el = el->next) hashAddInt(hashA, el->name, 1); freeMem(keywords); slFreeList(artIds); return hashA; } static void pubsLoadKeywordYearItems(struct track *tg) /* load items that fulfill keyword and year filter */ { pubsParseClassColors(); -struct sqlConnection *conn = hAllocConn(database); +char *liftDb = cloneString(trackDbSetting(tg->tdb, "quickLiftDb")); +char *db = (liftDb == NULL) ? database : liftDb; +struct sqlConnection *conn = hAllocConn(db); char *keywords = cartOptionalStringClosestToHome(cart, tg->tdb, FALSE, "pubsFilterKeywords"); char *yearFilter = cartOptionalStringClosestToHome(cart, tg->tdb, FALSE, "pubsFilterYear"); char *publFilter = cartOptionalStringClosestToHome(cart, tg->tdb, FALSE, "pubsFilterPublisher"); char *articleTable = pubsArticleTable(tg); if(sameOk(yearFilter, "anytime")) yearFilter = NULL; if(sameOk(publFilter, "all")) publFilter = NULL; if(isNotEmpty(keywords)) keywords = makeMysqlMatchStr(keywords); if (isEmpty(yearFilter) && isEmpty(keywords) && isEmpty(publFilter)) {