src/hg/inc/metaTbl.h 1.3
1.3 2010/03/19 17:34:42 tdreszer
The most useful query yet: all objs that contain every var=val pair provided.
Index: src/hg/inc/metaTbl.h
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/inc/metaTbl.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -b -B -U 4 -r1.2 -r1.3
--- src/hg/inc/metaTbl.h 18 Mar 2010 23:36:18 -0000 1.2
+++ src/hg/inc/metaTbl.h 19 Mar 2010 17:34:42 -0000 1.3
@@ -153,8 +153,9 @@
struct metaLimbVal* vals; // list of values associated with this var
struct hash* valHash; // if NOT NULL: hash of vals (val str to limbVal struct)
};
+// -------------- Enum to Strings --------------
enum metaObjType metaObjTypeStringToEnum(char *objType);
// Convert metadata objType string to enum
char *metaObjTypeEnumToString(enum metaObjType objType);
@@ -166,8 +167,9 @@
char *metaVarTypeEnumToString(enum metaVarType varType);
// Convert metadata varType enum string
+// ------ Loading files and parsing lines ------
struct metaObj *metadataLineParse(char *line);
/* Parses a single formatted metadata line into metaObj for updates or queries. */
struct metaObj *metaObjCreate(char *obj,char *type,char *var, char *varType,char *val);
@@ -178,19 +180,21 @@
struct metaByVar*metaByVarCreate(char *var, char *varType,char *val);
/* Creates a singular var=val pair struct for metadata queries. */
-
struct metaObj *metaObjsLoadFromFormattedFile(char *fileName);
// Load all metaObjs from a file containing metadata formatted lines
+
+// -------------- Updating the DB --------------
int metaObjsSetToDb(struct sqlConnection *conn,char *tableName,struct metaObj *metaObjs,boolean replace);
// Adds or updates metadata obj/var pairs into the named table. Returns total rows affected
+// ------------------ Querys -------------------
struct metaObj *metaObjQuery(struct sqlConnection *conn,char *table,struct metaObj *metaObj);
// Query the metadata table by obj and optional vars and vals in metaObj struct. If metaObj is NULL query all.
-// Retruns new metaObj struct fully populated and sorted in obj,var order.
+// Returns new metaObj struct fully populated and sorted in obj,var order.
#define metaObjsQueryAll(conn,table) metaObjQuery((conn),(table),NULL)
struct metaObj *metaObjQueryByObj(struct sqlConnection *conn,char *table,char *objName,char *varName);
// Query a single metadata object and optional var from a table (default metaTbl).
@@ -194,31 +198,36 @@
struct metaObj *metaObjQueryByObj(struct sqlConnection *conn,char *table,char *objName,char *varName);
// Query a single metadata object and optional var from a table (default metaTbl).
-
struct metaByVar *metaByVarsQuery(struct sqlConnection *conn,char *table,struct metaByVar *metaByVars);
-// Query the metadata table by vars and vals in metaByVar struct. If metaByVar is NULL query all.
-// Retruns new metaByVar struct fully populated and sorted in var,val,obj order.
+// Query the metadata table by one or more var=val pairs to find the distinct set of objs that satisfy ANY conditions.
+// Returns new metaByVar struct fully populated and sorted in var,val,obj order.
#define metaByVarsQueryAll(conn,table) metaByVarsQuery((conn),(table),NULL)
struct metaByVar *metaByVarQueryByVar(struct sqlConnection *conn,char *table,char *varName,char *val);
// Query a single metadata variable and optional val from a table (default metaTbl) for searching val->obj.
+struct metaObj *metaObjsQueryByVars(struct sqlConnection *conn,char *table,struct metaByVar *metaByVars);
+// Query the metadata table by one or more var=val pairs to find the distinct set of objs that satisfy ALL conditions.
+// Returns new metaObj struct fully populated and sorted in obj,var order.
+
+// ----------- Printing and Counting -----------
void metaObjPrint(struct metaObj *metaObjs,boolean printLong);
// prints objs and var=val pairs as formatted metadata lines or long view
void metaByVarPrint(struct metaByVar *metaByVars,boolean printLong);
// prints var=val pairs and objs that go with them single lines or long view
-int metaObjCount(struct metaObj *metaObjs);
+int metaObjCount(struct metaObj *metaObjs, boolean objs);
// returns the count of vars belonging to this obj or objs;
-int metaByVarCount(struct metaByVar *metaByVars);
+int metaByVarCount(struct metaByVar *metaByVars,boolean vars, boolean vals);
// returns the count of objs belonging to this set of vars;
+// --------------- Free at last ----------------
void metaObjsFree(struct metaObj **metaObjsPtr);
// Frees one or more metadata objects and any contained metaVars. Will free any hashes as well.
void metaByVarsFree(struct metaByVar **metaByVarsPtr);