This is an automated email from the ASF dual-hosted git repository.
amoghrajesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 067e33ab59e Warn for bad combination of parameters for
RedshiftDataOperator (#69524)
067e33ab59e is described below
commit 067e33ab59e1e4f668db911cabc4380be4260272
Author: Amogh Desai <[email protected]>
AuthorDate: Thu Jul 9 10:55:35 2026 +0530
Warn for bad combination of parameters for RedshiftDataOperator (#69524)
---
.../providers/amazon/aws/operators/redshift_data.py | 5 +++++
.../tests/unit/amazon/aws/operators/test_redshift_data.py | 15 +++++++++++++++
2 files changed, 20 insertions(+)
diff --git
a/providers/amazon/src/airflow/providers/amazon/aws/operators/redshift_data.py
b/providers/amazon/src/airflow/providers/amazon/aws/operators/redshift_data.py
index 3168b9f69c4..04dc8c32162 100644
---
a/providers/amazon/src/airflow/providers/amazon/aws/operators/redshift_data.py
+++
b/providers/amazon/src/airflow/providers/amazon/aws/operators/redshift_data.py
@@ -125,6 +125,11 @@ class
RedshiftDataOperator(AwsBaseOperator[RedshiftDataHook]):
self.deferrable = deferrable
self.session_id = session_id
self.session_keep_alive_seconds = session_keep_alive_seconds
+ if self.deferrable and not self.wait_for_completion:
+ self.log.warning(
+ "deferrable=True and wait_for_completion=False are set;
deferrable will be "
+ "ignored and this task will run non-deferrable."
+ )
def execute(self, context: Context) ->
list[GetStatementResultResponseTypeDef] | list[str]:
"""Execute a statement against Amazon Redshift."""
diff --git
a/providers/amazon/tests/unit/amazon/aws/operators/test_redshift_data.py
b/providers/amazon/tests/unit/amazon/aws/operators/test_redshift_data.py
index 19182eb4c86..cb2f08db7e7 100644
--- a/providers/amazon/tests/unit/amazon/aws/operators/test_redshift_data.py
+++ b/providers/amazon/tests/unit/amazon/aws/operators/test_redshift_data.py
@@ -87,6 +87,21 @@ class TestRedshiftDataOperator:
assert op.hook._verify is None
assert op.hook._config is None
+ @mock.patch.object(RedshiftDataOperator, "log",
new_callable=mock.MagicMock)
+ def test_init_warns_when_deferrable_has_no_effect(self, mock_log):
+ """deferrable=True is a no-op when wait_for_completion=False; the user
should be told."""
+ RedshiftDataOperator(
+ task_id=TASK_ID,
+ database=DATABASE,
+ sql=SQL,
+ deferrable=True,
+ wait_for_completion=False,
+ )
+ mock_log.warning.assert_called_once_with(
+ "deferrable=True and wait_for_completion=False are set; deferrable
will be "
+ "ignored and this task will run non-deferrable."
+ )
+
@mock.patch("airflow.providers.amazon.aws.hooks.redshift_data.RedshiftDataHook.execute_query")
@mock.patch("airflow.providers.amazon.aws.hooks.redshift_data.RedshiftDataHook.conn")
def test_execute(self, mock_conn, mock_exec_query):