124514ebfd25805353a22085ba5bc02c7bb7c159
chmalee
  Thu Oct 1 11:12:10 2026 -0700
asmAlias: keep a name that has its own active dbDb row instead of swapping it for an alias, refs #38444

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

diff --git src/hg/lib/asmAlias.c src/hg/lib/asmAlias.c
index dbe13a1dbed..655325cd831 100644
--- src/hg/lib/asmAlias.c
+++ src/hg/lib/asmAlias.c
@@ -179,29 +179,32 @@
     }
 
 char buffer[4096];
 
 sqlSafef(buffer, sizeof buffer, "select * from asmAlias where alias='%s' limit 1", trackHubSkipHubName(alias));
 struct asmAlias *asmAlias = asmAliasLoadByQuery(centralConn, buffer);
 hDisconnectCentral(&centralConn);
 if (asmAlias)
     ret = asmAlias->browser;
 
 return ret;
 }
 
 char *asmAliasFindUnlessGenArk(char *alias)
 /* Like asmAliasFind(), but only translate through the asmAlias table if
- * alias isn't already a real, existing GenArk hub -- an accession that
- * resolves on its own should never be promoted to a merely "equivalent"
- * alias. */
+ * alias isn't already a real, existing GenArk hub or a name with its own
+ * active dbDb row -- a name that resolves on its own should never be promoted to
+ * a merely "equivalent" alias. */
 {
 if ((alias != NULL) && startsWith("hub_", alias))
     // already a decorated hub_<id>_<name> reference to a specific, already
     // attached hub -- this is not a raw accession to look up in asmAlias,
     // and the "hub_<id>_" decoration must not be stripped off.
     return alias;
 
 if (isGenArk(alias))
     return alias;
+// a name with its own active dbDb row (native db or curated hub) is not an alias
+if ((alias != NULL) && hDbIsActive(alias))
+    return alias;
 return asmAliasFind(alias);
 }