src/hg/hgTables/bigBed.c 1.6
1.6 2009/03/17 20:48:36 kent
Starting to add filtering. Collects input now, but doesn't actually run filter.
Index: src/hg/hgTables/bigBed.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTables/bigBed.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 4 -r1.5 -r1.6
--- src/hg/hgTables/bigBed.c 17 Mar 2009 17:24:50 -0000 1.5
+++ src/hg/hgTables/bigBed.c 17 Mar 2009 20:48:36 -0000 1.6
@@ -136,8 +136,36 @@
bbiFileClose(&bbi);
return names;
}
+struct sqlFieldType *sqlFieldTypesFromAs(struct asObject *as)
+/* Convert asObject to list of sqlFieldTypes */
+{
+struct sqlFieldType *ft, *list = NULL;
+struct asColumn *col;
+for (col = as->columnList; col != NULL; col = col->next)
+ {
+ struct dyString *type = asColumnToSqlType(col);
+ ft = sqlFieldTypeNew(col->name, type->string);
+ slAddHead(&list, ft);
+ dyStringFree(&type);
+ }
+slReverse(&list);
+return list;
+}
+
+struct sqlFieldType *bigBedListFieldsAndTypes(char *table, struct sqlConnection *conn)
+/* Get fields of bigBed as list of sqlFieldType. */
+{
+char *fileName = bigBedFileName(table, conn);
+struct bbiFile *bbi = bigBedFileOpen(fileName);
+struct asObject *as = bigBedAsOrDefault(bbi);
+struct sqlFieldType *list = sqlFieldTypesFromAs(as);
+freeMem(fileName);
+bbiFileClose(&bbi);
+return list;
+}
+
void bigBedTabOut(char *table, struct sqlConnection *conn, char *fields, FILE *f)
/* Print out selected fields from Big Bed. If fields is NULL, then print out all fields. */
{
if (f == NULL)