fix(v3-vision): prevent process hang on lu_ tables missing id_random
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user