d8be7e6e88c0712589dac72c1f023c84028a0d1c angie Wed Feb 7 11:49:17 2018 -0800 To prevent joinerRoute from searching over all databases for routes from some genome db to hgFixed metadata tables, add a new optional arg to joinerRelate to apply joinerExclusiveCheck to the genome db in addition to the current table's database. This reduces the time to find the route hg19.refSeqAli --> hgFixed.gbCdnaInfo --> hgFixed.cds from ~1.5s to ~0.1s. It also keeps the related-table selection in hgTables and hgIntegrator from showing >5000 related tables when starting with a genome db table and adding hgFixed.gbCdnaInfo. refs #20949 diff --git src/hg/hgTables/schema.c src/hg/hgTables/schema.c index 617fc73..3408294 100644 --- src/hg/hgTables/schema.c +++ src/hg/hgTables/schema.c @@ -386,31 +386,31 @@ if (date != NULL) printf("   Data last updated: %s
\n", date); if (asObj != NULL) hPrintf("Format description: %s
", asObj->comment); if (cartTrackDbIsNoGenome(db, table)) hPrintf(" Note: genome-wide queries are not available for this table."); describeFields(db, splitTable, asObj, conn); if (tdbForConn != NULL) { char *type = tdbForConn->type; if (startsWithWord("bigWig", type)) printf("
This table points to a file in " "" "BigWig format.
\n"); } -jpList = joinerRelate(joiner, db, table); +jpList = joinerRelate(joiner, db, table, NULL); /* sort and unique list */ slUniqify(&jpList, joinerPairCmpOnAandB, joinerPairFree); if (jpList != NULL) { webNewSection("Connected Tables and Joining Fields"); for (jp = jpList; jp != NULL; jp = jp->next) { if (cartTrackDbIsAccessDenied(jp->b->database, jp->b->table)) continue; struct joinerSet *js = jp->identifier; boolean aViaIndex, bViaIndex; hPrintSpaces(6); hPrintf("%s.", jp->b->database);