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:
\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("%s
\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);