a0a4b8da0f9b067d5aeff3d05959001d6c0f3608 tdreszer Thu Jul 8 10:44:48 2010 -0700 mdbUpdate no longer uses .sql file for table definition. Also tightened usage print. As per Hiram's requests. diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c index b122e6f..55b9de3 100644 --- src/hg/lib/mdb.c +++ src/hg/lib/mdb.c @@ -877,38 +877,33 @@ } // ------ Table name and creation ------ -#define MDB_SPEC_LOCATION "/cluster/bin/sqlCreate/metaDb.sql" void mdbReCreate(struct sqlConnection *conn,char *tblName,boolean testOnly) // Creates ore Recreates the named mdb. { +char *sqlCreate = +"# Contains metadata for a table, file or other objects.\n" +"CREATE TABLE %s (\n" +" obj varchar(255) not null, # Object name or ID.\n" +" var varchar(255) not null, # Metadata variable name.\n" +" varType enum ('txt','binary') # Most vars are txt\n" +" not null default 'txt',\n" +" val longblob not null, # Metadata value.\n" +" #Indices\n" +" PRIMARY KEY(obj,var),\n" +" UNIQUE(var,val(32),obj)\n" +")"; + if(sqlTableExists(conn,tblName)) verbose(2, "Table '%s' already exists. It will be recreated.\n",tblName); -char *sql = NULL; -readInGulp(MDB_SPEC_LOCATION, &sql, NULL); -char *pos = strchr(sql, ';'); -if ( pos != NULL) - *pos = 0; -char *oldSql = cloneString(sql); -pos = stringIn("CREATE TABLE ", oldSql); -if (pos == NULL) - errAbort("Can't find CREATE TABLE in %s\n", MDB_SPEC_LOCATION); -nextWord(&pos); -nextWord(&pos); -char *oldName = nextWord(&pos); -if(differentWord(oldName, tblName)) - { - char *saveSql = cloneString(sql); - freeMem(sql); - sql = replaceChars(saveSql, oldName, tblName); - freeMem(saveSql); - } -freeMem(oldSql); -verbose(2, "Requesting table creation:\n\t%s;\n", sql); +struct dyString *dy = newDyString(512); +dyStringPrintf(dy, sqlCreate, tblName); +verbose(2, "Requesting table creation:\n%s;\n", dyStringContents(dy)); if(!testOnly) - sqlRemakeTable(conn,tblName, sql); -freeMem(sql); + sqlRemakeTable(conn, tblName, dyStringContents(dy)); + +dyStringFree(&dy); } char*mdbTableName(struct sqlConnection *conn,boolean mySandBox)