11a82397d8d5c6d013cc62cdc99b84bc5506747e
braney
  Fri Jul 17 12:55:23 2020 -0700
ongoing work on the GENCODE merge

diff --git src/hg/lib/hdb.c src/hg/lib/hdb.c
index 51d950f..7eaf6ab 100644
--- src/hg/lib/hdb.c
+++ src/hg/lib/hdb.c
@@ -5791,15 +5791,57 @@
     struct sqlConnection *conn = hAllocConn(db);
     accHash = sqlQuickHash(conn,
                            NOSQLINJ "select chrom, alias from chromAlias where source = 'refseq'");
     if (hashNumEntries(accHash) == 0)
         // No RefSeq accessions -- make accHash NULL
         hashFree(&accHash);
     hFreeConn(&conn);
     checkExistence = FALSE;
     }
 if (accHash)
     seqAcc = cloneString(hashFindVal(accHash, chrom));
 if (seqAcc == NULL)
     seqAcc = cloneString(chrom);
 return seqAcc;
 }
+
+char *hdbGetMasterGeneTrack(char *knownDb)
+/* Get the native gene track for a knownGene database. */
+{
+static char *masterGeneTrack = NULL;
+
+if (masterGeneTrack)            // if we already know it, return it.
+    return masterGeneTrack;
+
+struct sqlConnection *conn = hAllocConn(knownDb);
+
+char query[4096];
+sqlSafef(query, ArraySize(query), "select name from masterGeneTrack");
+masterGeneTrack = sqlQuickString(conn, query);
+hFreeConn(&conn);
+
+return masterGeneTrack;
+}
+
+char *hdbDefaultKnownDb(char *db)
+/* Get the default knownGene database from the defaultKnown table. */
+{
+static char *knownDb = NULL;
+
+if (knownDb)            // if we already know it, return it.
+    return knownDb;
+
+struct sqlConnection *conn = hAllocConn(db);
+
+if (sqlTableExists(conn, "defaultKnown"))
+    {
+    char query[4096];
+    sqlSafef(query, ArraySize(query), "select name from defaultKnown");
+    knownDb = sqlQuickString(conn, query);
+    }
+hFreeConn(&conn);
+
+if (knownDb == NULL)
+    knownDb = db;
+
+return knownDb;
+}