You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2026/03/11 23:44:36 UTC
(airflow) branch main updated: Fix provider YAML validation for common SQL analytics operator (#63393)
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 <go...@gmail.com>
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