9723799cf6f1a8fb714ae1493b224b8e91aebf09 tdreszer Mon Jul 30 12:17:38 2012 -0700 Making final pass through tree of checkins as dictated by Jim. None of these changes should affect executables in any way. This pass is due to expanding fingerprint caused by kompare. diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c index e8d4bbf..e552aa6 100644 --- src/hg/lib/mdb.c +++ src/hg/lib/mdb.c @@ -362,31 +362,31 @@ limbVal->val = thisRow->val; if ( buildHashes ) { // Pointer to struct to get to objHash hashAddUnique(rootVar->valHash, limbVal->val, limbVal); limbVal->objHash = hashNew(10); } slAddHead(&(rootVar->vals),limbVal); } else freeMem(thisRow->val); // Already got this from prev row // End with leaf AllocVar(leafObj); leafObj->obj = thisRow->obj; if ( buildHashes ) - hashAddUnique(limbVal->objHash, leafObj->obj, leafObj);// Pointer to struct to resolve type! + hashAddUnique(limbVal->objHash, leafObj->obj, leafObj);// Pointer to struct to resolve type slAddHead(&(limbVal->objs),leafObj); freeMem(thisRow); } // Finish very last object if (rootVars && rootVars->vals && rootVars->vals->objs) slReverse(&(rootVars->vals->objs)); if (rootVars && rootVars->vals) slReverse(&(rootVars->vals)); if (rootVars && rootVars->vals) slReverse(&rootVars); return rootVars; } @@ -1094,47 +1094,44 @@ // Now it is time for update or add! for (mdbVar = mdbObj->vars;mdbVar != NULL; mdbVar = mdbVar->next) { stripEnclosingDoubleQuotes(mdbVar->val); // Ensures values are stripped of enclosing quotes // Be sure to check for var existence first, then update if (!replace) { struct mdbObj *objExists = mdbObjQueryByObj(conn,tableName,mdbObj->obj,mdbVar->var); if (objExists) { if (differentString(mdbVar->val,objExists->vars->val)) { safef(query, sizeof(query), "update %s set val = '%s' where obj = '%s' and var = '%s'", - tableName, - sqlEscapeString(mdbVar->val), - mdbObj->obj,mdbVar->var); + tableName, sqlEscapeString(mdbVar->val), mdbObj->obj, mdbVar->var); verbose(2, "Requesting update of 1 row:\n\t%s;\n",query); if (!testOnly) sqlUpdate(conn, query); count++; } mdbObjsFree(&objExists); continue; // The object was found/updated so done with it } } // Finally ready to insert new vars safef(query, sizeof(query), "insert into %s set obj='%s', var='%s', val='%s'", - tableName,mdbObj->obj,mdbVar->var, - sqlEscapeString(mdbVar->val)); // FIXME Strip quotes + tableName,mdbObj->obj,mdbVar->var,sqlEscapeString(mdbVar->val)); verbose(2, "Requesting insert of one row:\n\t%s;\n",query); if (!testOnly) sqlUpdate(conn, query); count++; } } sqlReleaseLock(conn, lock); return count; } int mdbObjsLoadToDb(struct sqlConnection *conn,char *tableName,struct mdbObj *mdbObjs, boolean testOnly) // Adds mdb Objs with minimal error checking { int count = 0; @@ -2469,31 +2466,31 @@ // Filters mdb objects to only those that include/exclude var=val pairs // (e.g. "var1=val1 var2 var3!=val3 var4=None"). // Supports != ("var!=" means var not found). Optionally supports var=None equal to var is not found // Returns matched or unmatched items objects as requested. // Multiple passes means sort order is destroyed. { struct mdbObj *mdbObjsMatch = *pMdbObjs; struct mdbObj *mdbObjsNoMatch = NULL; char *varsLine = cloneString(vars); int ix=0,count = chopByWhite(varsLine,NULL,0); char **var = needMem(count * sizeof(char *)); chopByWhite(varsLine,var,count); for (ix=0;ix