fix(v3-vision): prevent process hang on lu_ tables missing id_random

This commit is contained in:
Scott Idem
2026-02-10 17:30:38 -05:00
parent 68e883ba98
commit 6d5633dc86
3 changed files with 20 additions and 15 deletions

View File

@@ -112,13 +112,27 @@ def get_id_random(
"""
Looks up the 'id_random' for a given internal integer ID.
"""
from app.db_sql import sql_select
from app.db_sql import sql_select, get_last_sql_error
log.setLevel(log_lvl)
# Hardened check: Skip lookups for tables known to not have random IDs (e.g. lu_ tables)
if not table_name or table_name.startswith('lu_') or table_name.startswith('v_lu_'):
return None
data = { 'id': record_id }
sql = f"SELECT id_random FROM `{table_name}` AS `table` WHERE `table`.id = :id;"
if select_results := sql_select(sql=sql, data=data):
select_results = sql_select(sql=sql, data=data)
# Check for "Unknown column 'id_random'" error if sql_select failed
if select_results is False:
err = str(get_last_sql_error())
if "1054" in err and "id_random" in err:
log.info(f"Table '{table_name}' does not have an 'id_random' column. Skipping.")
return None
return False
if select_results:
if isinstance(select_results, dict):
if record_id_random := select_results.get('id_random'):
return str(record_id_random)

View File

@@ -68,7 +68,6 @@ class Event_File_Base(BaseModel):
('event_presenter_id', 'event_presenter'),
('event_session_id', 'event_session'),
('event_track_id', 'event_track'),
('lu_file_purpose_id', 'lu_file_purpose'),
]
# 2a. Handle specific relational fields