02bb68341e8992635e774e508b168149d16c00d5
tdreszer
  Mon Jan 31 09:33:49 2011 -0800
In mdbObjsValidate() added verbose=2 print of vars that are not defined in cv.ra.
diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c
index 693ceda..cae4db3 100644
--- src/hg/lib/mdb.c
+++ src/hg/lib/mdb.c
@@ -2667,31 +2667,37 @@
 }
 
 int mdbObjsValidate(struct mdbObj *mdbObjs)
 // Validates vars and vals against cv.ra.  Returns count of errors found
 {
 struct hash *termTypeHash = mdbCvTermTypeHash();
 struct mdbObj *mdbObj = NULL;
 int invalids = 0;
 for( mdbObj=mdbObjs; mdbObj!=NULL; mdbObj=mdbObj->next )
     {
     struct mdbVar *mdbVar = NULL;
     for(mdbVar = mdbObj->vars;mdbVar != NULL;mdbVar=mdbVar->next)
         {
         struct hash *termHash = hashFindVal(termTypeHash,mdbVar->var);
         if (termHash == NULL) // No cv definition for term so no validation can be done
+            {
+            if (sameString(mdbVar->var,"objType")
+            && (sameString(mdbVar->val,"table") || sameString(mdbVar->val,"file")))
+                continue;
+            verbose(2,"Variable '%s' not defined in cv.ra: %s -> %s = %s\n",mdbVar->var,mdbObj->obj,mdbVar->var,mdbVar->val);
             continue;
+            }
         char *validationRule = hashFindVal(termHash,"validate");
         if (validationRule == NULL)
             {
             verbose(1,"ERROR in cv.ra: Term %s in typeOfTerms but has no 'validate' setting.\n",mdbVar->var);
             continue;  // Should we errAbort?
             }
 
         // NOTE: Working on memory in hash but we are throwing away a comment and removing trailing spaces so that is okay
         strSwapChar(validationRule,'#','\0'); // Chop off any comment in the setting
         validationRule = trimSpaces(validationRule);
 
         // Validate should be or start with known word
         if (startsWithWord("cv",validationRule))
             {
             if (SETTING_NOT_ON(hashFindVal(termHash,"cvDefined"))) // Known type of term but no validation to be done