src/hg/lib/hdb.c 1.426

1.426 2010/05/11 01:43:29 kent
Refactoring to split the trackDb.tableName field into separate track and table fields. Similarly track.mapName field goes to the same track and table fields.
Index: src/hg/lib/hdb.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hdb.c,v
retrieving revision 1.425
retrieving revision 1.426
diff -b -B -U 4 -r1.425 -r1.426
--- src/hg/lib/hdb.c	7 May 2010 05:03:55 -0000	1.425
+++ src/hg/lib/hdb.c	11 May 2010 01:43:29 -0000	1.426
@@ -3316,11 +3316,11 @@
     {
     struct trackDb *oneTable = trackDbLoadWhere(conn, tbl, where), *oneRow;
     while ((oneRow = slPopHead(&oneTable)) != NULL)
         {
-        if (!hashLookup(loaded, oneRow->tableName))
+        if (!hashLookup(loaded, oneRow->track))
             {
-            hashAdd(loaded, oneRow->tableName, NULL);
+            hashAdd(loaded, oneRow->track, NULL);
             slAddHead(tdbList, oneRow);
             // record for use in check available tracks
             char *profileName = getTrackProfileName(oneRow);
             if (profileName != NULL)
@@ -3357,17 +3357,18 @@
 hashFree(&loaded);
 
 /* fill in supertrack fields, if any in settings */
 trackDbSuperMarkup(tdbList);
+trackDbAddTableField(tdbList);
 return tdbList;
 }
 
 static void addTrackIfDataAccessible(char *database, struct trackDb *tdb, char *chrom,
                            boolean privateHost, struct trackDb **tdbRetList)
 /* check if a trackDb entry should be included in display, and if so
  * add it to the list, otherwise free it */
 {
-if ((!tdb->private || privateHost) && hTableForTrack(database, tdb->tableName) != NULL)
+if ((!tdb->private || privateHost) && hTableForTrack(database, tdb->table) != NULL)
     slAddHead(tdbRetList, tdb);
 else
     trackDbFree(&tdb);
 }
@@ -3402,9 +3403,9 @@
  * this is no longer needed, but am leaving it in until such time as the 
  * supertrack system as a whole is factored out -jk. */
 {
 assert(subtrackTdb->parent == compositeTdb);
-subtrackTdb->parentName = compositeTdb->tableName; 
+subtrackTdb->parentName = compositeTdb->track; 
 if (!trackDbSettingClosestToHome(subtrackTdb, "noInherit"))
     {
     if (isEmpty(subtrackTdb->type))
         subtrackTdb->type = cloneString(compositeTdb->type);
@@ -3490,9 +3491,9 @@
 {
 struct trackDb *tdb;
 for (tdb = tdbList; tdb != NULL; tdb = tdb->next)
     {
-    if (sameString(track, tdb->tableName))
+    if (sameString(track, tdb->track))
         return tdb;
     struct trackDb *matchingChild = rFindTrack(level+1, tdb->subtracks, track);
     if (matchingChild != NULL)
         return matchingChild;
@@ -3503,9 +3504,9 @@
     {
     for (tdb = tdbList; tdb != NULL; tdb = tdb->next)
 	{
 	struct trackDb *p = tdb->parent;
-	if (p != NULL && sameString(track, p->tableName))
+	if (p != NULL && sameString(track, p->track))
 	    return p;
 	}
     }
 
@@ -3573,9 +3574,9 @@
 struct sqlConnection *conn = hAllocConn(db);
 char where[256];
 safef(where, sizeof(where),
    "settings rlike '^(.*\n)?superTrack %s([ \n].*)?$' order by priority desc",
-    tdb->tableName);
+    tdb->track);
 tdb->subtracks = loadAndLookupTrackDb(conn, where);       // TODO: Straighten out when super points to children and when not!
 struct trackDb *subTdb;
 for (subTdb = tdb->subtracks; subTdb != NULL; subTdb = subTdb->next)
     {