From fd50542f5472b230297aba372d909dbd3c3e5d60 Mon Sep 17 00:00:00 2001 From: Rohan Yadav Date: Mon, 8 Jun 2026 23:22:24 -0400 Subject: [PATCH] Add offending view name to error logs in view_migrate --- src/databricks/labs/ucx/hive_metastore/view_migrate.py | 6 +++--- tests/unit/hive_metastore/test_view_migrate.py | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/databricks/labs/ucx/hive_metastore/view_migrate.py b/src/databricks/labs/ucx/hive_metastore/view_migrate.py index c17ea31b36..8303f31a37 100644 --- a/src/databricks/labs/ucx/hive_metastore/view_migrate.py +++ b/src/databricks/labs/ucx/hive_metastore/view_migrate.py @@ -28,9 +28,9 @@ def _view_dependencies(self): try: statements = sqlglot.parse(self.src.view_text, read='databricks') except ParseError as e: - raise ValueError(f"Could not analyze view SQL: {self.src.view_text}") from e + raise ValueError(f"Could not analyze view SQL: {self.src.view_text} for view {self.src.key}") from e if len(statements) != 1 or statements[0] is None: - raise ValueError(f"Could not analyze view SQL: {self.src.view_text}") + raise ValueError(f"Could not analyze view SQL: {self.src.view_text} for view {self.src.key}") statement = statements[0] aliases = self._read_aliases(statement) for old_table in statement.find_all(expressions.Table): @@ -40,7 +40,7 @@ def _view_dependencies(self): continue src_db = old_table.db if old_table.db else self.src.database if not src_db: - logger.error(f"Could not determine schema for table {old_table.name}") + logger.error(f"Could not determine schema for table {old_table.name} in view {self.src.key}") continue yield TableView("hive_metastore", src_db, old_table.name) diff --git a/tests/unit/hive_metastore/test_view_migrate.py b/tests/unit/hive_metastore/test_view_migrate.py index 0715b00dc6..c9a8c0531b 100644 --- a/tests/unit/hive_metastore/test_view_migrate.py +++ b/tests/unit/hive_metastore/test_view_migrate.py @@ -188,6 +188,8 @@ def test_sequence_view_with_invalid_query_raises_value_error(tables) -> None: with pytest.raises(ValueError) as error: sequencer.sequence_batches() assert "Could not analyze view SQL:" in str(error) + # The offending view name must be included in the error to aid troubleshooting (issue #4438) + assert tables[0].src.key in str(error) @pytest.mark.parametrize("tables", [("db1.v9",)], indirect=True)