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