You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by bb...@apache.org on 2022/04/20 19:00:56 UTC
[airflow] 14/19: fixup! Introduce tuple_().in_() shim for MSSQL compat
This is an automated email from the ASF dual-hosted git repository.
bbovenzi pushed a commit to branch mapped-instance-actions
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 3d25f2ebba5fe55195f6148dffb61527d9480416
Author: Tzu-ping Chung <tp...@astronomer.io>
AuthorDate: Wed Apr 20 10:37:53 2022 +0800
fixup! Introduce tuple_().in_() shim for MSSQL compat
---
airflow/utils/sqlalchemy.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/airflow/utils/sqlalchemy.py b/airflow/utils/sqlalchemy.py
index 5c36d826b2..2838a30d60 100644
--- a/airflow/utils/sqlalchemy.py
+++ b/airflow/utils/sqlalchemy.py
@@ -24,7 +24,7 @@ from typing import Any, Dict, Iterable, Tuple
import pendulum
from dateutil import relativedelta
-from sqlalchemy import event, nullsfirst, tuple_
+from sqlalchemy import event, false, nullsfirst, tuple_
from sqlalchemy.exc import OperationalError
from sqlalchemy.orm.session import Session
from sqlalchemy.sql import ColumnElement
@@ -339,4 +339,7 @@ def tuple_in_condition(
"""
if settings.engine.dialect.name != "mssql":
return tuple_(*columns).in_(collection)
- return or_(*(and_(*(c == v for c, v in zip(columns, values))) for values in collection))
+ clauses = [and_(*(c == v for c, v in zip(columns, values))) for values in collection]
+ if not clauses:
+ return false()
+ return or_(*clauses)