ba33f2c600399d5b4b97dd5fd987ed2db3c891ba
chmalee
  Tue May 19 13:40:42 2026 -0700
myVariants related fixes from code review. Standardize how the code determines we are about to do something myVariants related by #defining some strings and using sameOk to check for them, remove a dead code block, and have hgc use autoSql to load the myVariants item rather than check the raw sql result, refs #37528

diff --git src/hg/hgTracks/myVariantsTrack.c src/hg/hgTracks/myVariantsTrack.c
index 363fdfd0d69..51497d5b586 100644
--- src/hg/hgTracks/myVariantsTrack.c
+++ src/hg/hgTracks/myVariantsTrack.c
@@ -810,31 +810,31 @@
             dyStringPrintf(mouseover, "<br>Alt: %s", item->alt);
         lf->mouseOver = cloneString(dyStringContents(mouseover));
         }
     slAddHead(&lfList, lf);
     }
 sqlFreeResult(&sr);
 dyStringFree(&mouseover);
 return lfList;
 }
 
 void myVariantsLoadItems(struct track *track)
 /* Load up items in track already.  Also make up a pseudo-item that is
  * where you drag to create an item. */
 {
 struct linkedFeatures *lfList = NULL;
-boolean isShared = startsWith("myVariants_shared_", track->track);
+boolean isShared = isMyVariantsSharedTrack(track->track);
 
 if (isShared)
     {
     /* Resolve via hgcentral so revoked/downgraded shares stop returning data. */
     struct myVariantsShare *share = myVariantsResolveSharedTrack(track->track, cart);
     if (share == NULL)
         return;
     /* Shared tracks are per-assembly; only load when the browser's current
      * db matches the share's db. */
     if (!sameString(share->db, database))
         {
         myVariantsShareFree(&share);
         return;
         }
     char *tableName = myVariantsGetDbTable(share->ownerUser);
@@ -1177,31 +1177,31 @@
 void myVariantsProcessSharedEdits()
 /* Process pending edits for shared tracks before any track loading.
  * This ensures edits are committed to the database before both the
  * owner's track and the shared track query for items. */
 {
 /* Anon users cannot edit shared items, regardless of share permission. */
 char *userName = getUserName();
 if (userName == NULL)
     return;
 struct hashEl *shareVars = cartFindPrefix(cart, MYVAR_SHARED_CART_PREFIX);
 struct hashEl *el;
 for (el = shareVars; el != NULL; el = el->next)
     {
     char *token = el->name + strlen(MYVAR_SHARED_CART_PREFIX);
     char trackName[512];
-    safef(trackName, sizeof(trackName), "myVariants_shared_%s", token);
+    safef(trackName, sizeof(trackName), MYVARIANTS_SHARED_TRACK_PREFIX "%s", token);
 
     /* Check if there's a pending edit for this shared track */
     char varName[256];
     safef(varName, sizeof(varName), "%s_%s", trackName, "id");
     char *idString = cartOptionalString(cart, varName);
     if (idString == NULL)
         continue;
 
     /* Revalidate via hgcentral so revoked/downgraded shares can't write. */
     struct myVariantsShare *liveShare = myVariantsResolveSharedTrack(trackName, cart);
     if (liveShare == NULL)
         continue;
     if (liveShare->permission != MYVAR_PERM_READWRITE)
         {
         myVariantsShareFree(&liveShare);