src/hg/makeDb/metaTblUpdate/metaTblPrint.c 1.4

1.4 2010/03/25 21:56:41 tdreszer
Some adjustments recommended by Mark in code reivew
Index: src/hg/makeDb/metaTblUpdate/metaTblPrint.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/makeDb/metaTblUpdate/metaTblPrint.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -b -B -U 4 -r1.3 -r1.4
--- src/hg/makeDb/metaTblUpdate/metaTblPrint.c	19 Mar 2010 21:25:26 -0000	1.3
+++ src/hg/makeDb/metaTblUpdate/metaTblPrint.c	25 Mar 2010 21:56:41 -0000	1.4
@@ -15,9 +15,8 @@
 #include "metaTbl.h"
 
 static char const rcsid[] = "$Id$";
 
-#define DB_DEFAULT      "hg19"
 #define OBJTYPE_DEFAULT "table"
 
 void usage()
 /* Explain usage and exit. */
@@ -31,15 +30,15 @@
   "each object and var=val on a separate line with tab indentation.  Alternatively, count will "
   "return a count of unique obj var=val combinations. It is also possible to select a "
   "combination of vars by entering a string of var=val pairs.\n\n"
   "usage:\n"
-  "   metaTblPrint [-db=] [-table=] [-long/-countObjs/-countVarss/-countVals]\n"
+  "   metaTblPrint -db= [-table=] [-long/-countObjs/-countVarss/-countVals]\n"
   "                [-all [-byVar]]\n"
   "                [-obj=] [-var= [-val=]]]\n"
   "                [-var= [-val=]]\n"
   "                [-vars=\"var1=val1 var2=val2...\" [-byVar]]\n\n"
   "Options:\n"
-  "    -db      Database to query.  Default is '" DB_DEFAULT "'.\n"
+  "    -db      Database to query.  This argument is required.\n"
   "    -table   Table to query.  Default is '" METATBL_DEFAULT_NAME "'.\n"
   "    -long    Print each obj, var=val as separate line.\n"
   "    -countObjs   Just print count of objects returned in the query.\n"
   "    -countVars   Just print count of variables returned in the query.\n"
@@ -85,9 +84,12 @@
 struct metaByVar * metaByVars = NULL;
 int objsCnt=0, varsCnt=0,valsCnt=0;
 
 optionInit(&argc, argv, optionSpecs);
-char *db    = optionVal("db",   DB_DEFAULT);
+if(!optionExists("db"))
+    usage();
+
+char *db    = optionVal("db",NULL);
 char *table = optionVal("table",METATBL_DEFAULT_NAME);
 boolean printLong = optionExists("long");
 boolean cntObjs = optionExists("countObjs");
 boolean cntVars = optionExists("countVars");
@@ -123,15 +125,16 @@
     }
 else
     usage();
 
+struct sqlConnection *conn = sqlConnect(db);
 if(byVar)
     {
-    if(metaByVars == NULL) // assertable
+    if(!all && metaByVars == NULL) // assertable
         usage();
 
     // Requested a single var
-    struct metaByVar * queryResults = metaByVarsQuery(db,table,metaByVars);
+    struct metaByVar * queryResults = metaByVarsQuery(conn,table,metaByVars);
     if(queryResults == NULL)
         verbose(1, "No metadata met your selection criteria\n");
     else
         {
@@ -148,14 +151,14 @@
     struct metaObj * queryResults = NULL;
     if(metaByVars != NULL)
         {
         // Requested a set of var=val pairs and looking for the unique list of objects that have all of them!
-        queryResults = metaObjsQueryByVars(db,table,metaByVars);
+        queryResults = metaObjsQueryByVars(conn,table,metaByVars);
         }
     else
         {
         // Requested a single obj
-        queryResults = metaObjQuery(db,table,metaObjs);
+        queryResults = metaObjQuery(conn,table,metaObjs);
         }
 
     if(queryResults == NULL)
         verbose(1, "No metadata met your selection criteria\n");
@@ -168,8 +171,9 @@
             metaObjPrint(queryResults,printLong);
         metaObjsFree(&queryResults);
         }
     }
+sqlDisconnect(&conn);
 
 if(cntObjs || cntVars || cntVals)
     {
     if(cntObjs)