src/hg/hgTables/asObj.c 1.4
1.4 2009/05/20 20:59:55 mikep
Libified findTdbForTable, findTypeForTable, trackIsType, hIsBigBed from hgTables so that other code can easily determine if a track is a bigBed.
Index: src/hg/hgTables/asObj.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgTables/asObj.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -b -B -U 1000000 -r1.3 -r1.4
--- src/hg/hgTables/asObj.c 17 Mar 2009 17:24:50 -0000 1.3
+++ src/hg/hgTables/asObj.c 20 May 2009 20:59:55 -0000 1.4
@@ -1,79 +1,79 @@
/* asObj - get and use parsed autoSQL objects describing table. */
#include "common.h"
#include "linefile.h"
#include "jksql.h"
#include "asParse.h"
#include "errCatch.h"
#include "hgTables.h"
static char const rcsid[] = "$Id$";
static struct asObject *asForTableOrDie(struct sqlConnection *conn, char *table)
/* Get autoSQL description if any associated with table. Abort if
* there's a problem*/
{
struct asObject *asObj = NULL;
-if (isBigBed(table))
+if (hIsBigBed(database, table, curTrack, ctLookupName))
{
asObj = bigBedAsForTable(table, conn);
}
else
{
if (sqlTableExists(conn, "tableDescriptions"))
{
char query[256];
char *asText = NULL;
/* Try split table first. */
safef(query, sizeof(query),
"select autoSqlDef from tableDescriptions where tableName='chrN_%s'",
table);
asText = sqlQuickString(conn, query);
/* If no result try unsplit table. */
if (asText == NULL)
{
safef(query, sizeof(query),
"select autoSqlDef from tableDescriptions where tableName='%s'",
table);
asText = sqlQuickString(conn, query);
}
if (asText != NULL && asText[0] != 0)
{
asObj = asParseText(asText);
}
freez(&asText);
}
}
return asObj;
}
struct asObject *asForTable(struct sqlConnection *conn, char *table)
/* Get autoSQL description if any associated with table. */
/* Wrap some error catching around asForTable. */
{
struct errCatch *errCatch = errCatchNew();
struct asObject *asObj = NULL;
if (errCatchStart(errCatch))
{
asObj = asForTableOrDie(conn, table);
}
errCatchEnd(errCatch);
errCatchFree(&errCatch);
return asObj;
}
struct asColumn *asColumnFind(struct asObject *asObj, char *name)
/* Return named column. */
{
struct asColumn *asCol = NULL;
if (asObj!= NULL)
{
for (asCol = asObj->columnList; asCol != NULL; asCol = asCol->next)
if (sameString(asCol->name, name))
break;
}
return asCol;
}