c3c923b6c7177c78d5dd26d21f0c623a528ae6fe chmalee Tue Oct 31 14:49:09 2023 -0700 Fix one bug found by Angie for historical transcript querying, should be checking for empty result, not NotEmpty result. Also sort quick query when user does not include a transcript version to order the results by newest historical transcripts first diff --git src/hg/lib/hgHgvs.c src/hg/lib/hgHgvs.c index 2f8945a..504172b 100644 --- src/hg/lib/hgHgvs.c +++ src/hg/lib/hgHgvs.c @@ -1378,34 +1378,34 @@ char *p = strchr(acc, '.'); if (p) foundVersion = atoi(p+1); } else if (hDbHasNcbiRefSeq(db)) { // ncbiRefSeq tables need versioned accessions. if (strchr(acc, '.')) normalizedAcc = cloneString(acc); else { char query[2048]; sqlSafef(query, sizeof(query), "select name from ncbiRefSeq where name like '%s.%%'", acc); struct sqlConnection *conn = hAllocConn(db); normalizedAcc = sqlQuickString(conn, query); - if (isNotEmpty(normalizedAcc) && hDbHasNcbiRefSeqHistorical(db)) + if (isEmpty(normalizedAcc) && hDbHasNcbiRefSeqHistorical(db)) { // maybe it is a deprecated transcript - sqlSafef(query, sizeof(query), "select name from ncbiRefSeqHistorical where name like '%s.%%'", acc); + sqlSafef(query, sizeof(query), "select name from ncbiRefSeqHistorical where name like '%s.%%' order by name desc", acc); normalizedAcc = sqlQuickString(conn, query); } hFreeConn(&conn); } if (isNotEmpty(normalizedAcc)) { char *p = strchr(normalizedAcc, '.'); assert(p); foundVersion = atoi(p+1); } } else { // genbank tables -- no version normalizedAcc = cloneFirstWordByDelimiter(acc, '.');