da4634bf1f2792c8742b4b8a28927ef82c65cea7 tdreszer Wed Mar 30 12:43:36 2011 -0700 Cleaned up fileSortOrderGet's discovery of sortable vars to use cv.ra searchable with a couple of exceptions diff --git src/hg/inc/mdb.h src/hg/inc/mdb.h index 69666a5..8e6d339 100644 --- src/hg/inc/mdb.h +++ src/hg/inc/mdb.h @@ -99,36 +99,41 @@ #define MDB_VAL "val" // OBJECT TYPES #define MDB_OBJ_TYPE "objType" #define MDB_OBJ_TYPE_TABLE "table" #define MDB_OBJ_TYPE_FILE "file" #define MDB_OBJ_TYPE_COMPOSITE "composite" // WELL KNOWN MDB VARS #define MDB_VAR_PI CV_TERM_GRANT #define MDB_VAR_LAB CV_TERM_LAB #define MDB_VAR_COMPOSITE MDB_OBJ_TYPE_COMPOSITE #define MDB_VAR_ANTIBODY CV_TERM_ANTIBODY #define MDB_VAR_CELL CV_TERM_CELL #define MDB_VAR_DATATYPE CV_TERM_DATA_TYPE +#define MDB_VAR_VIEW CV_TERM_VIEW #define MDB_VAR_CONTROL CV_TERM_CONTROL #define MDB_VAR_TABLENAME "tableName" #define MDB_VAR_FILENAME "fileName" #define MDB_VAR_FILEINDEX "fileIndex" #define MDB_VAR_DCC_ACCESSION "dccAccession" #define MDB_VAR_PROJECT "project" +#define MDB_VAR_REPLICATE "replicate" +#define MDB_VAR_LAB_VERSION "labVersion" +#define MDB_VAR_SOFTWARE_VERSION "softwareVersion" +#define MDB_VAR_SUBMIT_VERSION "submittedDataVersion" // ENCODE Specific (at least for now) #define MDB_VAL_ENCODE_PROJECT "wgEncode" #define MDB_VAR_ENCODE_SUBID "subId" #define MDB_VAR_ENCODE_EDVS "expVars" #define MDB_VAR_ENCODE_EXP_ID "expId" #define MDB_VAL_ENCODE_EDV_NONE "None" // The mdb holds metadata primarily for tables. // Many types of objects could be supported, though currently files are the only other type. // It is easy to imagine using the current mdb to support hierarchical trees of metadata. // For example a composite type object called "myComposte" could have metadata that is valid for // all tables that have the var=composite val=myComposte metadata defined. // @@ -334,30 +339,33 @@ void mdbObjsSortOnVarPairs(struct mdbObj **mdbObjs,struct slPair *varValPairs); // Sorts on var,val pairs vars lists: fwd case-sensitive. Assumes all objs' vars are in identical order. // This method will use mdbObjsSortOnVars() void mdbObjsSortOnCv(struct mdbObj **mdbObjs, boolean includeHidden); // Puts obj->vars in order based upon cv.ra typeOfTerms priority, // then case-sensitively sorts all objs in list based upon that var order. void mdbObjRemoveVars(struct mdbObj *mdbObjs, char *vars); // Prunes list of vars for an object, freeing the memory. Doesn't touch DB. void mdbObjRemoveHiddenVars(struct mdbObj *mdbObjs); // Prunes list of vars for mdb objs that have been declared as hidden in cv.ra typeOfTerms +boolean mdbObjsHasCommonVar(struct mdbObj *mdbList, char *var, boolean missingOk); +// Returns TRUE if all mbObjs passed in have the var with the same value + char *mdbRemoveCommonVar(struct mdbObj *mdbList, char *var); // Removes var from set of mdbObjs but only if all that hav it have a commmon val // Returns the val if removed, else NULL boolean mdbObjSetVar(struct mdbObj *mdbObj, char *var,char *val); // Sets the string value to a single var in an obj, preparing for DB update. // returns TRUE if updated, FALSE if added boolean mdbObjSetVarInt(struct mdbObj *mdbObj, char *var,int val); // Sets an integer value to a single var in an obj, preparing for DB update. // returns TRUE if updated, FALSE if added void mdbObjSwapVars(struct mdbObj *mdbObjs, char *vars,boolean deleteThis); // Replaces objs' vars with var=vap pairs provided, preparing for DB update.