852fd481e68ca3d3feaf29e1da20e1b49304f9ce
angie
  Fri Mar 14 10:03:48 2014 -0700
Fixing problem with hgVai code not recognizing a genePred whoseasObject was derived from sql field info.  Unfortunately, when a sql
field's type is longblob, we don't know whether its autoSql definition
was a list (like exonStarts[exonCount]) or just an lstring.  To play
it safe, we call it an lstring which works fine for feeding data
through the annoGrator system.  However, when comparing a sql-derived
asObj with lstring to the real autoSql-derived asObj, asCompareObjs
will see different types for the same field and return false.  So
for the purposes of recognizing a genePred, we need to simply compare
column names.

diff --git src/hg/hgVai/libifyMe.c src/hg/hgVai/libifyMe.c
index 93eb928..450c49b 100644
--- src/hg/hgVai/libifyMe.c
+++ src/hg/hgVai/libifyMe.c
@@ -448,24 +448,24 @@
 	if (bigDataUrl != NULL)
 	    grator = gratorFromBigDataFileOrUrl(bigDataUrl, assembly, maxOutRows, overlapRule);
 	else
 	    errAbort("Can't find dbTableName or bigDataUrl for custom track %s", selTable);
 	}
     }
 if (startsWith("wig", tdb->type))
     {
     grator = annoGrateWigDbNew(dataDb, dbTable, assembly, maxOutRows);
     }
 else
     {
     struct annoStreamer *streamer = streamerFromTrack(assembly, dbTable, tdb, chrom, maxOutRows);
     if (primaryAsObj != NULL &&
 	(asObjectsMatch(primaryAsObj, pgSnpAsObj()) || asObjectsMatch(primaryAsObj, vcfAsObj()))
-	&& asObjectsMatchFirstN(streamer->asObj, genePredAsObj(), 10))
+	&& asColumnNamesMatchFirstN(streamer->asObj, genePredAsObj(), 10))
 	grator = annoGratorGpVarNew(streamer);
     else
 	grator = annoGratorNew(streamer);
     }
 grator->setOverlapRule(grator, overlapRule);
 return grator;
 }