This is an automated email from the ASF dual-hosted git repository.

shahar1 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 e16a0f78cd2 Fix Teradata transfer template field initialization 
(#70392)
e16a0f78cd2 is described below

commit e16a0f78cd207546a0119e0c92982de40116503a
Author: Vincent Hsiao <[email protected]>
AuthorDate: Fri Jul 24 23:28:19 2026 +0800

    Fix Teradata transfer template field initialization (#70392)
---
 .../teradata/transfers/teradata_to_teradata.py        |  4 +---
 .../teradata/transfers/test_teradata_to_teradata.py   | 19 +++++++++++++++++++
 .../ci/prek/validate_operators_init_exemptions.txt    |  1 -
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git 
a/providers/teradata/src/airflow/providers/teradata/transfers/teradata_to_teradata.py
 
b/providers/teradata/src/airflow/providers/teradata/transfers/teradata_to_teradata.py
index 126146cae36..3fa10082dd8 100644
--- 
a/providers/teradata/src/airflow/providers/teradata/transfers/teradata_to_teradata.py
+++ 
b/providers/teradata/src/airflow/providers/teradata/transfers/teradata_to_teradata.py
@@ -64,8 +64,6 @@ class TeradataToTeradataOperator(BaseOperator):
         **kwargs,
     ) -> None:
         super().__init__(**kwargs)
-        if sql_params is None:
-            sql_params = {}
         self.dest_teradata_conn_id = dest_teradata_conn_id
         self.destination_table = destination_table
         self.source_teradata_conn_id = source_teradata_conn_id
@@ -86,7 +84,7 @@ class TeradataToTeradataOperator(BaseOperator):
         dest_hook = self.dest_hook
         with src_hook.get_conn() as src_conn:
             cursor = src_conn.cursor()
-            cursor.execute(self.sql, self.sql_params)
+            cursor.execute(self.sql, self.sql_params or {})
             target_fields = [field[0] for field in cursor.description]
             rows_total = 0
             if len(target_fields) != 0:
diff --git 
a/providers/teradata/tests/unit/teradata/transfers/test_teradata_to_teradata.py 
b/providers/teradata/tests/unit/teradata/transfers/test_teradata_to_teradata.py
index 023ca9e3651..385a12532b7 100644
--- 
a/providers/teradata/tests/unit/teradata/transfers/test_teradata_to_teradata.py
+++ 
b/providers/teradata/tests/unit/teradata/transfers/test_teradata_to_teradata.py
@@ -77,6 +77,25 @@ class TestTeradataToTeradataTransfer:
         assert hook is op.dest_hook
         assert hook.teradata_conn_id == "dest_teradata_conn_id"
 
+    def test_sql_params_default_is_applied_at_execution(self, mocked_src_hook):
+        op = TeradataToTeradataOperator(
+            task_id="transfer_data",
+            dest_teradata_conn_id=self.dest_teradata_conn_id,
+            destination_table=self.destination_table,
+            source_teradata_conn_id=self.source_teradata_conn_id,
+            sql=self.sql,
+        )
+
+        assert op.sql_params is None
+
+        mock_src_conn = 
mocked_src_hook.get_conn.return_value.__enter__.return_value
+        mock_cursor = mock_src_conn.cursor.return_value
+        mock_cursor.description.__iter__.return_value = []
+
+        op.execute({})
+
+        mock_cursor.execute.assert_called_once_with(self.sql, {})
+
     def test_execution(self, mocked_src_hook, mocked_dest_hook):
         cursor_description = [
             ["user_id", Decimal, None, 8, 10, 0, False],
diff --git a/scripts/ci/prek/validate_operators_init_exemptions.txt 
b/scripts/ci/prek/validate_operators_init_exemptions.txt
index a1c334b20c2..71a13973e4c 100644
--- a/scripts/ci/prek/validate_operators_init_exemptions.txt
+++ b/scripts/ci/prek/validate_operators_init_exemptions.txt
@@ -69,5 +69,4 @@ 
providers/ssh/src/airflow/providers/ssh/operators/ssh_remote_job.py::SSHRemoteJo
 
providers/standard/src/airflow/providers/standard/operators/bash.py::BashOperator
 
providers/standard/src/airflow/providers/standard/operators/trigger_dagrun.py::TriggerDagRunOperator
 
providers/standard/src/airflow/providers/standard/sensors/date_time.py::DateTimeSensor
-providers/teradata/src/airflow/providers/teradata/transfers/teradata_to_teradata.py::TeradataToTeradataOperator
 
providers/weaviate/src/airflow/providers/weaviate/operators/weaviate.py::WeaviateIngestOperator

Reply via email to