d6864c715f90b3ec37e81db09597adc478efd942 max Fri Sep 21 11:28:04 2012 -0700 changes after code review, #9122 diff --git src/hg/lib/jksql.c src/hg/lib/jksql.c index c401f38..51e55fc 100644 --- src/hg/lib/jksql.c +++ src/hg/lib/jksql.c @@ -1063,30 +1063,40 @@ } boolean sqlTableExists(struct sqlConnection *sc, char *table) /* Return TRUE if a table exists. */ { char query[256]; struct sqlResult *sr; safef(query, sizeof(query), "SELECT 1 FROM %s LIMIT 0", table); if ((sr = sqlUseOrStore(sc,query,mysql_use_result, FALSE)) == NULL) return FALSE; sqlFreeResult(&sr); return TRUE; } +bool sqlColumnExists(struct sqlConnection *conn, char *tableName, char *column) +/* return TRUE if column exists in table. tableName can contain sql wildcards */ +{ + char query[1024]; + safef(query, 1024, "SHOW COLUMNS FROM `%s` LIKE '%s'", tableName, column); + char buf[1024]; + char *ret = sqlQuickQuery(conn, query, buf, 1024); + return (ret!=NULL); +} + int sqlTableSizeIfExists(struct sqlConnection *sc, char *table) /* Return row count if a table exists, -1 if it doesn't. */ { char query[256]; struct sqlResult *sr; char **row = 0; int ret = 0; safef(query, sizeof(query), "select count(*) from %s", table); if ((sr = sqlUseOrStore(sc,query,mysql_use_result, FALSE)) == NULL) return -1; row = sqlNextRow(sr); if (row != NULL && row[0] != NULL) ret = atoi(row[0]); sqlFreeResult(&sr);