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

potiuk 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 c6f863e1b39 Fix provider YAML validation for common SQL analytics 
operator (#63393)
c6f863e1b39 is described below

commit c6f863e1b390c860b130e215e36afd48c2f46620
Author: GPK <[email protected]>
AuthorDate: Wed Mar 11 23:44:29 2026 +0000

    Fix provider YAML validation for common SQL analytics operator (#63393)
---
 .../providers/common/sql/operators/analytics.py       | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git 
a/providers/common/sql/src/airflow/providers/common/sql/operators/analytics.py 
b/providers/common/sql/src/airflow/providers/common/sql/operators/analytics.py
index 0ed922ed986..fd814139ec7 100644
--- 
a/providers/common/sql/src/airflow/providers/common/sql/operators/analytics.py
+++ 
b/providers/common/sql/src/airflow/providers/common/sql/operators/analytics.py
@@ -21,11 +21,15 @@ from collections.abc import Sequence
 from functools import cached_property
 from typing import TYPE_CHECKING, Any, Literal
 
-from airflow.providers.common.compat.sdk import BaseOperator, Context
-from airflow.providers.common.sql.datafusion.engine import DataFusionEngine
+from airflow.providers.common.compat.sdk import (
+    AirflowOptionalProviderFeatureException,
+    BaseOperator,
+    Context,
+)
 
 if TYPE_CHECKING:
     from airflow.providers.common.sql.config import DataSourceConfig
+    from airflow.providers.common.sql.datafusion.engine import DataFusionEngine
 
 
 class AnalyticsOperator(BaseOperator):
@@ -63,8 +67,17 @@ class AnalyticsOperator(BaseOperator):
         self.result_output_format = result_output_format
 
     @cached_property
-    def _df_engine(self):
+    def _df_engine(self) -> DataFusionEngine:
         if self.engine is None:
+            try:
+                from airflow.providers.common.sql.datafusion.engine import 
DataFusionEngine
+            except ModuleNotFoundError as e:
+                if e.name == "datafusion":
+                    raise AirflowOptionalProviderFeatureException(
+                        "Failed to import DataFusion. To use the 
AnalyticsOperator, please install the "
+                        "`apache-airflow-providers-common-sql[datafusion]` 
extra."
+                    ) from e
+                raise
             return DataFusionEngine()
         return self.engine
 

Reply via email to