9af188ea6147f9edb20bd531d3ec988501cf997c
chmalee
  Fri Feb 6 12:18:25 2026 -0800
Fix jsonOutputArrays columnTypes output when more than one track is requested with /getData/track. Leaves /list/schema alone. Add option to hgTracks Downloads -> Download track data in view menu to include column headers in output, refs #36858

diff --git src/hg/hubApi/dataApi.h src/hg/hubApi/dataApi.h
index 22a8508f656..a741786bec9 100644
--- src/hg/hubApi/dataApi.h
+++ src/hg/hubApi/dataApi.h
@@ -225,41 +225,41 @@
     char *endpoint, char *hubUrl);
 /* given open 'hub', find the specified 'genome' called from 'endpoint' */
 
 struct dbDb *ucscDbDb();
 /* return the dbDb table as an slList */
 
 long long genArkSize();
 /* return the number of rows in genark table */
 
 struct genark *genArkList(char *oneAccession);
 /* return the genark table as an slList, or just the one accession when given */
 
 boolean isSupportedType(char *type);
 /* is given type in the supportedTypes list ? */
 
-void wigColumnTypes(struct jsonWrite *jw);
+void wigColumnTypes(struct jsonWrite *jw, char *track);
 /* output column headers for a wiggle data output schema */
 
 void outputSchema(struct trackDb *tdb, struct jsonWrite *jw,
     char *columnNames[], char *columnTypes[], int jsonTypes[],
 	struct hTableInfo *hti, int columnCount, int asColumnCount,
-	    struct asColumn *columnEl);
+	    struct asColumn *columnEl, char *track);
 /* print out the SQL schema for this trackDb */
 
 void bigColumnTypes(struct jsonWrite *jw, struct sqlFieldType *fiList,
-    struct asObject *as);
+    struct asObject *as, char *track);
 /* show the column types from a big file autoSql definitions */
 
 boolean trackHasData(struct trackDb *tdb);
 /* check if this is actually a data track:
  *	TRUE when has data, FALSE if has no data
  * When NO trackDb, can't tell at this point, will check that later
  */
 
 #define trackHasNoData(tdb) (!trackHasData(tdb))
 
 boolean protectedTrack(char *db, struct trackDb *tdb, char *trackName);
 /* determine if track is off-limits protected data */
 
 boolean isWiggleDataTable(char *type);
 /* is this a wiggle data track table */