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.