src/hg/makeDb/hgTrackDb/hgTrackDb.c 1.67
1.67 2010/05/11 01:43:30 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/makeDb/hgTrackDb/hgTrackDb.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/makeDb/hgTrackDb/hgTrackDb.c,v
retrieving revision 1.66
retrieving revision 1.67
diff -b -B -U 4 -r1.66 -r1.67
--- src/hg/makeDb/hgTrackDb/hgTrackDb.c 7 May 2010 05:05:05 -0000 1.66
+++ src/hg/makeDb/hgTrackDb/hgTrackDb.c 11 May 2010 01:43:30 -0000 1.67
@@ -97,23 +97,23 @@
struct trackDb *newList = NULL, *tdb, *next;
for (tdb = tdbList; tdb != NULL; tdb = next)
{
next = tdb->next;
- verbose(3,"pruneStrict checking table: '%s'\n", tdb->tableName);
+ verbose(3,"pruneStrict checking track: '%s'\n", tdb->track);
if (tdb->subtracks != NULL)
{
tdb->subtracks = pruneStrict(tdb->subtracks, db);
}
if (tdb->subtracks != NULL)
{
slAddHead(&newList, tdb);
}
- else if (hTableOrSplitExists(db, tdb->tableName))
+ else if (hTableOrSplitExists(db, tdb->table))
{
slAddHead(&newList, tdb);
}
else
- verbose(3,"pruneStrict removing table: '%s'\n", tdb->tableName);
+ verbose(3,"pruneStrict removing track: '%s' no table %s\n", tdb->track, tdb->table);
}
slReverse(&newList);
return newList;
}
@@ -132,9 +132,9 @@
if (tdb->subtracks != NULL)
slAddHead(&newList, tdb);
else
verbose(3,"pruneEmptyContainers: empty track: '%s'\n",
- tdb->tableName);
+ tdb->track);
}
else
{
slAddHead(&newList, tdb);
@@ -192,19 +192,19 @@
if (trackRelBits & releaseBit)
{
/* we want to include this track, check to see if we already have it */
struct hashEl *hel;
- if ((hel = hashLookup(haveHash, tdb->tableName)) != NULL)
+ if ((hel = hashLookup(haveHash, tdb->track)) != NULL)
errAbort("found two copies of table %s: one with release %s, the other %s\n",
- tdb->tableName, (char *)hel->val, release);
+ tdb->track, (char *)hel->val, release);
- hashAdd(haveHash, tdb->tableName, rel);
+ hashAdd(haveHash, tdb->track, rel);
hashRemove(tdb->settingsHash, "release");
slAddHead(&relList, tdb);
}
else
verbose(3,"pruneRelease: removing '%s', release: '%s' != '%s'\n",
- tdb->tableName, rel, release);
+ tdb->track, rel, release);
}
freeHash(&haveHash);
return relList;
@@ -233,11 +233,11 @@
slAddHead(&nonOrphanList, tdb);
}
else
{
- verbose(3,"pruneOrhans: removing '%s'\n",
- tdb->tableName);
- hashRemove(trackHash, tdb->tableName);
+ verbose(3,"pruneOrphans: removing '%s'\n",
+ tdb->track);
+ hashRemove(trackHash, tdb->track);
done = FALSE;
}
freeMem(parentName);
}
@@ -249,9 +249,9 @@
static void applyOverride(struct hash *trackHash,
struct trackDb *overTd)
/* Apply a trackDb override to a track, if it exists */
{
-struct trackDb *tdb = hashFindVal(trackHash, overTd->tableName);
+struct trackDb *tdb = hashFindVal(trackHash, overTd->track);
if (tdb != NULL)
trackDbOverride(tdb, overTd);
}
@@ -270,9 +270,9 @@
{
if (tdb->overrides != NULL)
applyOverride(trackHash, tdb);
else
- hashStore(trackHash, tdb->tableName)->val = tdb;
+ hashStore(trackHash, tdb->track)->val = tdb;
}
}
void updateBigTextField(struct sqlConnection *conn, char *table,
@@ -348,9 +348,9 @@
if (isEmpty(td->html))
{
char *htmlName = trackDbSetting(td, "html");
if (htmlName == NULL)
- htmlName = td->tableName;
+ htmlName = td->track;
safef(fileName, sizeof(fileName), "%s/%s.html", dirName, htmlName);
if (fileExists(fileName))
{
readInGulp(fileName, &td->html, NULL);
@@ -408,9 +408,9 @@
char subGroupName[256];
AllocVar(sgd);
sgd->compositeTdb = td;
- verbose(3,"getting subgroups for %s\n", td->tableName);
+ verbose(3,"getting subgroups for %s\n", td->track);
for(i=1; ; i++)
{
safef(subGroupName, sizeof(subGroupName), "subGroup%d", i);
char *sgSetting = trackDbSetting(td, subGroupName);
@@ -430,9 +430,9 @@
sgd->nameHash = newHash(3);
verbose(3," adding group %s\n", sgName);
hashAdd(sgd->nameHash, sgName, subGroupHash);
}
- hashAdd(compositeHash, td->tableName, sgd);
+ hashAdd(compositeHash, td->track, sgd);
}
}
return compositeHash;
}
@@ -441,18 +441,18 @@
struct trackDb *td, struct subGroupData *sgd)
{
char *subGroups = trackDbSetting(td, "subGroups");
-verbose(2, " checkOne %s %s\n", compositeName, td->tableName);
+verbose(2, " checkOne %s %s\n", compositeName, td->track);
if (subGroups && (sgd->nameHash == NULL))
{
errAbort("subTrack %s has groups not defined in parent %s\n",
- td->tableName, compositeName);
+ td->track, compositeName);
}
else if (!subGroups && (sgd->nameHash != NULL))
{
errAbort("subtrack %s is missing subGroups defined in parent %s\n",
- td->tableName, compositeName);
+ td->track, compositeName);
}
if (!subGroups && (sgd->nameHash == NULL))
return; /* nothing to do */
@@ -465,17 +465,17 @@
{
struct hashEl *hel = hashLookup( sgd->nameHash, slPair->name);
if (hel == NULL)
errAbort("subtrack %s has subGroup (%s) not found in parent\n",
- td->tableName, slPair->name);
+ td->track, slPair->name);
struct hash *subHash = hel->val;
hashStore(foundHash, slPair->name);
if (hashLookup(subHash, slPair->val) == NULL)
{
errAbort("subtrack %s has subGroup (%s) with value (%s) not found in parent\n",
- td->tableName, slPair->name, (char *)slPair->val);
+ td->track, slPair->name, (char *)slPair->val);
}
}
struct hashCookie cookie = hashFirst(sgd->nameHash);
@@ -483,9 +483,9 @@
while ((hel = hashNext(&cookie)) != NULL)
{
if (hashLookup(foundHash, hel->name) == NULL)
errAbort("subtrack %s is missing required subGroup %s\n",
- td->tableName, hel->name);
+ td->track, hel->name);
}
}
@@ -501,20 +501,20 @@
{
struct slRef *childList = trackDbListGetRefsToDescendantLeaves(
tdb->subtracks);
- verbose(2,"verifying %s child %p\n",tdb->tableName, childList);
+ verbose(2,"verifying %s child %p\n",tdb->track, childList);
for (child = childList; child != NULL; child = child->next)
{
struct trackDb *childTdb = child->val;
- verbose(2, " checking child %s\n",childTdb->tableName);
+ verbose(2, " checking child %s\n",childTdb->track);
/* Look for some ancestor in composite hash and set sgd to it. */
- struct subGroupData *sgd = hashFindVal(compositeHash, tdb->tableName);
+ struct subGroupData *sgd = hashFindVal(compositeHash, tdb->track);
verbose(2, "looking for %s in compositeHash got %p\n",
- tdb->tableName, sgd);
+ tdb->track, sgd);
assert(sgd != NULL);
- checkOneSubGroups(tdb->tableName, childTdb, sgd);
+ checkOneSubGroups(tdb->track, childTdb, sgd);
}
}
}
}
@@ -566,9 +566,9 @@
if(item != NULL)
slAddHead(&itemsToSort, item);
else
{
- verbose(1,"Error: '%s' missing shortLabels or sortOrder setting is inconsistent.\n",tdbContainer->tableName);
+ verbose(1,"Error: '%s' missing shortLabels or sortOrder setting is inconsistent.\n",tdbContainer->track);
needsSorting = FALSE;
sortableTdbItemCreate(tdbItem,sortOrder);
break;
}
@@ -576,9 +576,9 @@
// Does this container need to be sorted?
if(needsSorting && slCount(itemsToSort))
{
- verbose(2,"Sorting '%s' with %d items\n",tdbContainer->tableName,slCount(itemsToSort));
+ verbose(2,"Sorting '%s' with %d items\n",tdbContainer->track,slCount(itemsToSort));
sortTdbItemsAndUpdatePriorities(&itemsToSort);
countOfSortedContainers++;
}
@@ -674,8 +674,9 @@
layerOnRa(strict, database, asmDir, trackHash, FALSE);
/* Represent hash as list */
struct trackDb *tdbList = trackDbListFromHash(trackHash);
+trackDbAddTableField(tdbList);
/* Get rid of orphans with no parent of the correct release. */
tdbList = pruneOrphans(tdbList, trackHash);
@@ -721,11 +722,11 @@
if (parent != NULL && parent->subtracks == NULL) /* Our supertrack clue. */
{
/* The supertrack may appear as a 'floating' parent for multiple tracks.
* Only put it on the list once. */
- if (!hashLookup(superTrackHash, parent->tableName))
+ if (!hashLookup(superTrackHash, parent->track))
{
- hashAdd(superTrackHash, parent->tableName, parent);
+ hashAdd(superTrackHash, parent->track, parent);
slAddHead(&tdbList, parent);
}
}
slAddHead(&tdbList, tdb);
@@ -787,25 +788,25 @@
{
if (isEmpty(td->html))
{
if (strict && !trackDbLocalSetting(td, "parent") && !trackDbLocalSetting(td, "superTrack") &&
- !sameString(td->tableName,"cytoBandIdeo"))
+ !sameString(td->track,"cytoBandIdeo"))
{
- fprintf(stderr, "Warning: html missing for %s %s %s '%s'\n",org, database, td->tableName, td->shortLabel);
+ fprintf(stderr, "Warning: html missing for %s %s %s '%s'\n",org, database, td->track, td->shortLabel);
}
}
else
{
- updateBigTextField(conn, trackDbName, "tableName", td->tableName, "html", td->html);
+ updateBigTextField(conn, trackDbName, "tableName", td->table, "html", td->html);
}
if (td->settingsHash != NULL)
{
char *settings = settingsFromHash(td->settingsHash);
- updateBigTextField(conn, trackDbName, "tableName", td->tableName,
+ updateBigTextField(conn, trackDbName, "tableName", td->track,
"settings", settings);
if (showSettings)
{
- verbose(1, "%s: type='%s';", td->tableName, td->type);
+ verbose(1, "%s: type='%s';", td->track, td->type);
if (isNotEmpty(settings))
{
char *oneLine = replaceChars(settings, "\n", "; ");
eraseTrailingSpaces(oneLine);