From 9667750919a9c853e38053335868ed447ad78748 Mon Sep 17 00:00:00 2001 From: Pranay Kumar Karvi Date: Fri, 13 Mar 2026 09:34:46 +0530 Subject: [PATCH] fix: quote reserved MySQL keyword 'interval' in deadline_alert queries using SQLAlchemy table/column --- ...101_3_2_0_ui_improvements_for_deadlines.py | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/airflow-core/src/airflow/migrations/versions/0101_3_2_0_ui_improvements_for_deadlines.py b/airflow-core/src/airflow/migrations/versions/0101_3_2_0_ui_improvements_for_deadlines.py index 92bfc558d4726..159c897425402 100644 --- a/airflow-core/src/airflow/migrations/versions/0101_3_2_0_ui_improvements_for_deadlines.py +++ b/airflow-core/src/airflow/migrations/versions/0101_3_2_0_ui_improvements_for_deadlines.py @@ -73,6 +73,15 @@ DEFAULT_BATCH_SIZE = 1000 ENCODING_TYPE = "deadline_alert" +deadline_alert_table = sa.table( + "deadline_alert", + sa.column("reference"), + sa.column("interval"), + sa.column("callback_def"), + sa.column("id"), + sa.column("serialized_dag_id"), +) + def upgrade() -> None: """Make changes to enable adding DeadlineAlerts to the UI.""" @@ -280,11 +289,11 @@ def validate_written_data( # disable validation for large deployments where performance is critical?? validation_result = conn.execute( - sa.text(""" - SELECT reference, interval, callback_def - FROM deadline_alert - WHERE id = :alert_id - """), + sa.select( + deadline_alert_table.c.reference, + deadline_alert_table.c.interval, + deadline_alert_table.c.callback_def, + ).where(deadline_alert_table.c.id == sa.bindparam("alert_id")), {"alert_id": deadline_alert_id}, ).fetchone() @@ -661,11 +670,11 @@ def migrate_deadline_alert_data_back_to_serialized_dag() -> None: restored_deadline_objects = [] alert_result = conn.execute( - sa.text(""" - SELECT reference, interval, callback_def - FROM deadline_alert - WHERE serialized_dag_id = :serialized_dag_id - """), + sa.select( + deadline_alert_table.c.reference, + deadline_alert_table.c.interval, + deadline_alert_table.c.callback_def, + ).where(deadline_alert_table.c.serialized_dag_id == sa.bindparam("serialized_dag_id")), {"serialized_dag_id": serialized_dag_id}, ).fetchall()