217c8a80da9dfabfda95956e5b9b40435f0a9a79
kent
  Thu Jan 13 19:56:32 2011 -0800
Making hub work with table browser.
diff --git src/hg/hgTables/schema.c src/hg/hgTables/schema.c
index 1418738..ebb2126 100644
--- src/hg/hgTables/schema.c
+++ src/hg/hgTables/schema.c
@@ -11,30 +11,31 @@
 #include "jksql.h"
 #include "hdb.h"
 #include "web.h"
 #include "trackDb.h"
 #include "joiner.h"
 #include "tableDescriptions.h"
 #include "asParse.h"
 #include "customTrack.h"
 #include "bedCart.h"
 #include "hgMaf.h"
 #include "hgTables.h"
 #include "wikiTrack.h"
 #include "makeItemsItem.h"
 #include "bedDetail.h"
 #include "pgSnp.h"
+#include "hubConnect.h"
 
 static char const rcsid[] = "$Id: schema.c,v 1.66 2010/06/07 16:53:10 angie Exp $";
 
 static char *nbForNothing(char *val)
 /* substitute   for empty strings to keep table formating sane */
 {
 char *s = skipLeadingSpaces(val);
 if ((s == NULL) || (s[0] == '\0'))
     return " ";
 else
     return val;
 }
 
 static char *abbreviateInPlace(char *val, int len)
 /* Abbreviate a string to len characters.  */
@@ -567,45 +568,57 @@
     showSchemaCtBed(table, ct);
 else if (startsWithWord("maf", type))
     showSchemaCtMaf(table, ct);
 else if (startsWithWord("array", type))
     showSchemaCtArray(table, ct);
 else if (startsWithWord("makeItems", type))
     showSchemaWithAutoSqlString(db, table, ct, makeItemsItemAutoSqlString);
 else if (sameWord("bedDetail", type))
     showSchemaWithAutoSqlString(db, table, ct, bedDetailAutoSqlString);
 else if (sameWord("pgSnp", type))
     showSchemaWithAutoSqlString(db, table, ct, pgSnpAutoSqlString);
 else
     errAbort("Unrecognized customTrack type %s", type);
 }
 
+static void showSchemaHub(char *db, char *table)
+/* Show schema on a hub track. */
+{
+struct trackDb *tdb = hashMustFindVal(fullTrackAndSubtrackHash, table);
+char *type = cloneFirstWord(tdb->type);
+hPrintf("Binary file of type %s stored at %s<BR>\n",
+	type, trackDbSetting(tdb, "bigDataUrl"));
+if (sameString(type, "bigBed"))
+    showSchemaBigBed(table);
+}
 
 static void showSchemaWiki(struct trackDb *tdb, char *table)
 /* Show schema for the wikiTrack. */
 {
 hPrintf("<B>User annotations to UCSC genes or genome regions</B><BR>\n");
 showSchemaDb(wikiDbName(), tdb, table);
 }
 
 static void showSchema(char *db, struct trackDb *tdb, char *table)
 /* Show schema to open html page. */
 {
 if (hIsBigBed(database, table, curTrack, ctLookupName))
     showSchemaBigBed(table);
 else if (isCustomTrack(table))
     showSchemaCt(db, table);
+else if (isHubTrack(table))
+    showSchemaHub(db, table);
 else if (sameWord(table, WIKI_TRACK_TABLE))
     showSchemaWiki(tdb, table);
 else
     showSchemaDb(db, tdb, table);
 }
 
 void doTableSchema(char *db, char *table, struct sqlConnection *conn)
 /* Show schema around table (which is not described by curTrack). */
 {
 struct trackDb *tdb = NULL;
 char parseBuf[256];
 dbOverrideFromTable(parseBuf, &db, &table);
 htmlOpen("Schema for %s", table);
 tdb = hTrackDbForTrack(database, table);
 showSchema(db, tdb, table);