src/hg/lib/metaTbl.c 1.5

1.5 2010/03/24 17:37:12 tdreszer
Check for metaTbl before querying.
Index: src/hg/lib/metaTbl.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/metaTbl.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -b -B -U 4 -r1.4 -r1.5
--- src/hg/lib/metaTbl.c	19 Mar 2010 21:22:59 -0000	1.4
+++ src/hg/lib/metaTbl.c	24 Mar 2010 17:37:12 -0000	1.5
@@ -677,8 +677,10 @@
     if(tableName == NULL)
         tableName = METATBL_DEFAULT_NAME;
 
 struct sqlConnection *conn = sqlConnect(db);
+    if(!sqlTableExists(conn,tableName))
+        errAbort("metaObjsSetToDb attempting to update non-existent table.\n");
 
 for(metaObj = metaObjs;metaObj != NULL; metaObj = metaObj->next)
     {
     // Handle delete requests first
@@ -815,8 +817,14 @@
     dyStringPrintf(dy, " order by objName, var");
     verbose(2, "Query: %s\n",dyStringContents(dy));
 
     struct sqlConnection *conn = sqlConnect(db);
+    if(!sqlTableExists(conn,table))
+        {
+        dyStringFree(&dy);
+        return NULL;
+        }
+
     struct metaTbl *metaTbl = metaTblLoadByQuery(conn, dyStringCannibalize(&dy));
     sqlDisconnect(&conn);
     verbose(2, "rows returned: %d\n",slCount(metaTbl));
     return metaObjsLoadFromMemory(&metaTbl,buildHash);
@@ -873,8 +881,13 @@
     dyStringPrintf(dy, " order by var, val, objName");
     verbose(2, "Query: %s\n",dyStringContents(dy));
 
     struct sqlConnection *conn = sqlConnect(db);
+    if(!sqlTableExists(conn,table))
+        {
+        dyStringFree(&dy);
+        return NULL;
+        }
     struct metaTbl *metaTbl = metaTblLoadByQuery(conn, dyStringCannibalize(&dy));
     sqlDisconnect(&conn);
     verbose(2, "rows returned: %d\n",slCount(metaTbl));
     return metaByVarsLoadFromMemory(&metaTbl,TRUE);
@@ -931,8 +944,13 @@
     dyStringPrintf(dy, " order by objName, var");
     verbose(2, "Query: %s\n",dyStringContents(dy));
 
     struct sqlConnection *conn = sqlConnect(db);
+    if(!sqlTableExists(conn,table))
+        {
+        dyStringFree(&dy);
+        return NULL;
+        }
     struct metaTbl *metaTbl = metaTblLoadByQuery(conn, dyStringCannibalize(&dy));
     sqlDisconnect(&conn);
     verbose(2, "rows returned: %d\n",slCount(metaTbl));
     return metaObjsLoadFromMemory(&metaTbl,TRUE);
@@ -981,23 +999,20 @@
         {
         if(limbVal->val == NULL)
             continue;
 
-        printf("metaVariable %s=",rootVar->var);
-        if(rootVar->varType == vtBinary)
-            printf("binary%s",(printLong?"\n\t":" "));
-        else
-            printf("%s%s",limbVal->val,(printLong?"\n\t":" "));
+        printf("metaVariable %s=%s",rootVar->var,
+            (rootVar->varType == vtBinary?"binary":limbVal->val));
 
         struct metaLeafObj *leafObj = NULL;
         for(leafObj=limbVal->objs;leafObj!=NULL;leafObj=leafObj->next)
             {
             if(leafObj->objName != NULL)
-                printf("%s%s",leafObj->objName,(printLong?"\n\t":" "));
-            }
+                printf("%s%s%s",(printLong?"\n\t":" "),leafObj->objName,(printLong?"\n":""));
         }
     printf("\n");
     }
+    }
 }
 
 
 int metaObjCount(struct metaObj *metaObjs,boolean objs)