diff --git a/airflow/dag_processing/manager.py b/airflow/dag_processing/manager.py index 217e3faa5ead2e..d0876c6e8098fc 100644 --- a/airflow/dag_processing/manager.py +++ b/airflow/dag_processing/manager.py @@ -40,7 +40,7 @@ import attrs from setproctitle import setproctitle -from sqlalchemy import and_, delete, select, update +from sqlalchemy import delete, select, tuple_, update from tabulate import tabulate from uuid6 import uuid7 @@ -756,9 +756,12 @@ def clear_nonexistent_import_errors(self, session=NEW_SESSION): if self._file_paths: query = query.where( - and_( - ParseImportError.filename.notin_([f.path for f in self._file_paths]), - ParseImportError.bundle_name.notin_([f.bundle_name for f in self._file_paths]), + ( + tuple_( + (ParseImportError.filename, ParseImportError.bundle_name).notin_( + [(f.path, f.bundle_name) for f in self._file_paths] + ) + ), ) ) diff --git a/airflow/www/views.py b/airflow/www/views.py index ee4aff114be94d..c0ce8307dae2be 100644 --- a/airflow/www/views.py +++ b/airflow/www/views.py @@ -74,7 +74,7 @@ from markupsafe import Markup, escape from pendulum.datetime import DateTime from pendulum.parsing.exceptions import ParserError -from sqlalchemy import and_, case, desc, func, inspect, or_, select, union_all +from sqlalchemy import and_, case, desc, func, inspect, or_, select, tuple_, union_all from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import joinedload from wtforms import BooleanField, validators @@ -1017,11 +1017,12 @@ def index(self): if not can_read_all_dags: # if the user doesn't have access to all DAGs, only display errors from visible DAGs import_errors = import_errors.where( - ParseImportError.filename.in_( - select(DagModel.fileloc).distinct().where(DagModel.dag_id.in_(filter_dag_ids)) - ), - ParseImportError.bundle_name.in_( - select(DagModel.bundle_name).distinct().where(DagModel.dag_id.in_(filter_dag_ids)) + tuple_( + (ParseImportError.filename, ParseImportError.bundle_name).in_( + select(DagModel.fileloc, DagModel.bundle_name) + .distinct() + .where(DagModel.dag_id.in_(filter_dag_ids)) + ) ), )