This is an automated email from the ASF dual-hosted git repository.
mobuchowski 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 78dee381419 Prevent OpenLineage failure when BigQuery table metadata
is missing (#60380)
78dee381419 is described below
commit 78dee38141997b6cba769c90265b0e8d4f5f4d23
Author: kamran Imaz <[email protected]>
AuthorDate: Thu Jan 15 22:10:48 2026 +0530
Prevent OpenLineage failure when BigQuery table metadata is missing (#60380)
* modified
* replaced back the imports
---
.../providers/google/cloud/operators/bigquery.py | 3 +++
.../tests/unit/google/cloud/operators/test_bigquery.py | 18 ++++++++++++++++++
2 files changed, 21 insertions(+)
diff --git
a/providers/google/src/airflow/providers/google/cloud/operators/bigquery.py
b/providers/google/src/airflow/providers/google/cloud/operators/bigquery.py
index b27392ab04b..54994bc5d59 100644
--- a/providers/google/src/airflow/providers/google/cloud/operators/bigquery.py
+++ b/providers/google/src/airflow/providers/google/cloud/operators/bigquery.py
@@ -2211,6 +2211,9 @@ class
BigQueryUpdateTableSchemaOperator(GoogleCloudBaseOperator):
)
from airflow.providers.openlineage.extractors import OperatorLineage
+ if self._table is None:
+ self.log.debug("Skipping OpenLineage emission because table
metadata is unavailable.")
+ return OperatorLineage()
table = Table.from_api_repr(self._table)
output_dataset = Dataset(
namespace=BIGQUERY_NAMESPACE,
diff --git
a/providers/google/tests/unit/google/cloud/operators/test_bigquery.py
b/providers/google/tests/unit/google/cloud/operators/test_bigquery.py
index b9ee35e709a..bdecca4f46b 100644
--- a/providers/google/tests/unit/google/cloud/operators/test_bigquery.py
+++ b/providers/google/tests/unit/google/cloud/operators/test_bigquery.py
@@ -569,6 +569,24 @@ class TestBigQueryUpdateTableSchemaOperator:
"documentation": DocumentationDatasetFacet(description="Table
description."),
}
+ def test_get_openlineage_facets_on_complete_when_table_is_none(self):
+ operator = BigQueryUpdateTableSchemaOperator(
+ schema_fields_updates=[],
+ include_policy_tags=False,
+ task_id=TASK_ID,
+ dataset_id=TEST_DATASET,
+ table_id=TEST_TABLE_ID,
+ project_id=TEST_GCP_PROJECT_ID,
+ )
+ # Simulate update_table_schema returning None
+ operator._table = None
+ result = operator.get_openlineage_facets_on_complete(None)
+ assert result is not None
+ assert not result.run_facets
+ assert not result.job_facets
+ assert not result.inputs
+ assert not result.outputs
+
class TestBigQueryUpdateDatasetOperator:
@mock.patch("airflow.providers.google.cloud.operators.bigquery.BigQueryHook")