d983323cd2570af1cf3971763d14ef2d88c06fe4 jcasper Wed Feb 19 17:00:19 2025 -0800 sqlTableSize needs to support tables with more than 2B rows (rarely, but it does), refs #35262 diff --git src/hg/hgTables/rangeHistogram.c src/hg/hgTables/rangeHistogram.c index 0e1805e6d4d..48bbeae3bed 100644 --- src/hg/hgTables/rangeHistogram.c +++ src/hg/hgTables/rangeHistogram.c @@ -12,30 +12,39 @@ #include "jksql.h" #include "hgTables.h" #include "bedCart.h" static void printValueHistogram(char *db, char *table, char *field) /* Print very simple-minded text histogram. */ { double maxHist = 60; double scale = -1.0; struct sqlConnection *conn = hAllocConn(db); struct sqlResult *sr; char **row; char query[256]; +#define TOO_BIG_FOR_HISTO 500000 +boolean tooBig = (sqlTableSize(conn, table) > TOO_BIG_FOR_HISTO); +if (tooBig) + { + hPrintf("This table has too many rows for histogram view"); + hFreeConn(&conn); + return; + } + sqlSafef(query, sizeof(query), "select %s, count(*) as count from %s group by %s order by count desc", field, table, field); sr = sqlGetResult(conn, query); hTableStart(); hPrintf("