d229ccd25b8ed02ab143f8cfc2e174ebd749a03b
braney
  Tue Jun 28 17:37:20 2016 -0700
deal with table names in idXref statements of the form db.table

diff --git src/hg/hgTables/identifiers.c src/hg/hgTables/identifiers.c
index 54940e6..4a4e160 100644
--- src/hg/hgTables/identifiers.c
+++ src/hg/hgTables/identifiers.c
@@ -127,36 +127,41 @@
     hPrintf("Some example values:<BR>\n");
     exampleList = getExamples(db, conn, curTable, idField,
 			      aliasField != NULL ? 3 : 5);
     for (ex = exampleList;  ex != NULL;  ex = ex->next)
 	{
 	char *tmp = htmlEncode(ex->name);
 	hPrintf("<TT>%s</TT><BR>\n", tmp);
 	freeMem(tmp);
 	}
 
     if (aliasField != NULL)
 	{
 	char tmpTable[512];
 	char query[2048];
 	// do not use any db. prefix on curTable for name
+	char *plainXrefTable = strrchr(xrefTable, '.');  
+	if (plainXrefTable)
+	    plainXrefTable++;
+	else
+	    plainXrefTable = xrefTable;
 	char *plainCurTable = strrchr(curTable, '.');  
 	if (plainCurTable)
 	    plainCurTable++;
 	else
 	    plainCurTable = curTable;
-	safef(tmpTable, sizeof(tmpTable), "hgTemp.tmp%s%s", plainCurTable, xrefTable);
+	safef(tmpTable, sizeof(tmpTable), "hgTemp.tmp%s%s", plainCurTable, plainXrefTable);
 	if (differentString(xrefTable, curTable))
 	    sqlSafef(query, sizeof(query),
 		  "create temporary table %s select %s.%s as %s from %s,%s "
 		  "where %s.%s = %s.%s and %s.%s != %s.%s limit 100000",
 		  tmpTable, xrefTable, aliasField, aliasField, xrefTable, curTable,
 		  xrefTable, xrefIdField, curTable, idField,
 		  xrefTable, xrefIdField, xrefTable, aliasField);
 	else
 	    sqlSafef(query, sizeof(query),
 		  "create temporary table %s select %s from %s "
 		  "where %s != %s limit 100000",
 		  tmpTable, aliasField, xrefTable, aliasField, xrefIdField);
 	sqlUpdate(conn, query);
 
 	exampleList = getExamples(db, conn, tmpTable, aliasField, 3);