030283b12881d07a2cf7c84b2af320dd9c39b30a
braney
  Sat Feb 28 13:21:59 2026 -0800
fix problem that cause crash if the trackDb cache was turned on and one
of the tables in the hg.conf trackDb setting doesn't exist.  No RM.
Reported by Hillier.

diff --git src/hg/inc/jksql.h src/hg/inc/jksql.h
index 67e8d20b88c..81e0f5c0bd9 100644
--- src/hg/inc/jksql.h
+++ src/hg/inc/jksql.h
@@ -506,32 +506,35 @@
 
 long sqlDateToUnixTime(char *sqlDate);
 /* Convert a SQL date such as "2003-12-09 11:18:43" to clock time
  * (seconds since midnight 1/1/1970 in UNIX). */
 
 char *sqlUnixTimeToDate(time_t *timep, boolean gmTime);
 /* Convert a clock time (seconds since 1970-01-01 00:00:00 unix epoch)
  *	to the string: "YYYY-MM-DD HH:MM:SS"
  *  returned string is malloced, can be freed after use
  *  boolean gmTime requests GMT time instead of local time
  */
 
 char *sqlTableUpdate(struct sqlConnection *conn, char *table);
 /* Get last update time for table as an SQL string */
 
+time_t sqlTableMaybeUpdateTime(struct sqlConnection *conn, char *table);
+/* Get last update time for table (in Unix terms). Return 0 if table doesn't exist. */
+
 time_t sqlTableUpdateTime(struct sqlConnection *conn, char *table);
-/* Get last update time for table (in Unix terms). */
+/* Get last update time for table (in Unix terms). ErrAbort if table doesn't exist. */
 
 char *sqlGetPrimaryKey(struct sqlConnection *conn, char *table);
 /* Get primary key if any for table, return NULL if none. */
 
 char** sqlGetEnumDef(struct sqlConnection *conn, char* table, char* colName);
 /* Get the definitions of a enum column in a table, returning a
  * null-terminated array of enum values.  Free array when finished.  */
 
 struct slName *sqlRandomSample(char *db, char *table, char *field, int count);
 /* Get random sample from database. */
 
 struct slName *sqlRandomSampleConn(struct sqlConnection *conn, char *table,
 				   char *field, int count);
 /* Get random sample from conn. */