2a3ad7819d330c0b7cde7bd748c379685533630b braney Tue Dec 12 12:16:13 2023 -0800 add schema to delete command. diff --git src/hg/utils/fixTrackDb/fixTrackDb.c src/hg/utils/fixTrackDb/fixTrackDb.c index 06414b1..e54bd59 100644 --- src/hg/utils/fixTrackDb/fixTrackDb.c +++ src/hg/utils/fixTrackDb/fixTrackDb.c @@ -14,90 +14,90 @@ "usage:\n" " fixTrackDb database trackDbTable\n" "options:\n" " -gbdbList=list - list of files to confirm existance of bigDataUrl files\n" ); } static struct hash *gbdbHash = NULL; /* Command line validation table. */ static struct optionSpec options[] = { {"gbdbList", OPTION_STRING}, {NULL, 0}, }; -static void drop(char *trackDb, char *name) +static void drop(char *db, char *trackDb, char *name) { -printf("delete from %s where tableName = '%s';\n", trackDb, name); +printf("delete from %s.%s where tableName = '%s';\n", db, trackDb, name); } static boolean checkAvail(char *db, char *trackDb, struct trackDb *tdbList, boolean top) { struct trackDb *tdb; boolean foundOne = FALSE; struct hash *superHash = newHash(0); for (tdb = tdbList; tdb != NULL; tdb = tdb->next) { if (top && (tdb->parent != NULL)) { if (hashLookup(superHash, tdb->parent->track) == NULL) hashAdd(superHash, tdb->parent->track, 0); } if (tdb->subtracks != NULL) // composite { if (!checkAvail(db, trackDb, tdb->subtracks, FALSE)) { // none of the children exist, drop composite - drop(trackDb,tdb->track); + drop(db, trackDb,tdb->track); continue; } foundOne = TRUE; } else if (tdbIsDownloadsOnly(tdb) || trackDataAccessibleHash(db, tdb, gbdbHash)) { foundOne = TRUE; } else { - drop(trackDb,tdb->track); + drop(db, trackDb,tdb->track); continue; } // this tdb has data if (top && (tdb->parent != NULL)) { struct hashEl *hel; if ((hel = hashLookup(superHash, tdb->parent->track)) == NULL) errAbort("can't find superTrack %s\n", tdb->parent->track); // record that supertrack has at least one child hel->val = NULL + 1; } } if (top) { struct hashCookie cook = hashFirst(superHash); struct hashEl* hel; while((hel = hashNext(&cook)) != NULL) { // none of the children exist, drop supertrack if (hel->val == NULL) - drop(trackDb,(char *)hel->name); + drop(db, trackDb,(char *)hel->name); } } return foundOne; } static struct trackDb *loadTdb(char *db, char *trackDb) // load the trackDb table { struct hash *loaded = hashNew(0); extern boolean loadOneTrackDb(char *db, char *where, char *tblSpec, struct trackDb **tdbList, struct hash *loaded); struct trackDb *tdbList = NULL; if (!loadOneTrackDb(db, NULL, trackDb, &tdbList, loaded)) errAbort("can't open %s\n", trackDb); hashFree(&loaded);