diff --git a/superset/db_engine_specs/trino.py b/superset/db_engine_specs/trino.py index f05bd67ec35ab..c3bdccc7753a8 100644 --- a/superset/db_engine_specs/trino.py +++ b/superset/db_engine_specs/trino.py @@ -86,9 +86,10 @@ def extra_table_metadata( } if database.has_view_by_name(table_name, schema_name): - metadata["view"] = database.inspector.get_view_definition( - table_name, schema_name - ) + with database.get_inspector_with_context() as inspector: + metadata["view"] = inspector.get_view_definition( + table_name, schema_name + ) return metadata diff --git a/superset/models/core.py b/superset/models/core.py index bf4651fed9327..f59cd1159b63b 100755 --- a/superset/models/core.py +++ b/superset/models/core.py @@ -668,11 +668,6 @@ def apply_limit_to_sql( def safe_sqlalchemy_uri(self) -> str: return self.sqlalchemy_uri - @property - def inspector(self) -> Inspector: - with self.get_sqla_engine_with_context() as engine: - return sqla.inspect(engine) - @cache_util.memoized_func( key="db:{self.id}:schema:{schema}:table_list", cache=cache_manager.cache, diff --git a/tests/integration_tests/celery_tests.py b/tests/integration_tests/celery_tests.py index 8693a888879d4..29a1f7a66afa0 100644 --- a/tests/integration_tests/celery_tests.py +++ b/tests/integration_tests/celery_tests.py @@ -120,9 +120,8 @@ def drop_table_if_exists(table_name: str, table_type: CtasMethod) -> None: def quote_f(value: Optional[str]): if not value: return value - return get_example_database().inspector.engine.dialect.identifier_preparer.quote_identifier( - value - ) + with get_example_database().get_inspector_with_context() as inspector: + return inspector.engine.dialect.identifier_preparer.quote_identifier(value) def cta_result(ctas_method: CtasMethod): diff --git a/tests/integration_tests/charts/data/api_tests.py b/tests/integration_tests/charts/data/api_tests.py index da3a28f1ba81b..dc82026986245 100644 --- a/tests/integration_tests/charts/data/api_tests.py +++ b/tests/integration_tests/charts/data/api_tests.py @@ -113,9 +113,10 @@ def get_expected_row_count(self, client_id: str) -> int: def quote_name(self, name: str): if get_main_database().backend in {"presto", "hive"}: - return get_example_database().inspector.engine.dialect.identifier_preparer.quote_identifier( - name - ) + with get_example_database().get_inspector_with_context() as inspector: # E: Ne + return inspector.engine.dialect.identifier_preparer.quote_identifier( + name + ) return name diff --git a/tests/integration_tests/model_tests.py b/tests/integration_tests/model_tests.py index 3a5f7c0a77a1c..5222c1cb34ef1 100644 --- a/tests/integration_tests/model_tests.py +++ b/tests/integration_tests/model_tests.py @@ -296,7 +296,8 @@ def test_select_star(self): db = get_example_database() table_name = "energy_usage" sql = db.select_star(table_name, show_cols=False, latest_partition=False) - quote = db.inspector.engine.dialect.identifier_preparer.quote_identifier + with db.get_sqla_engine_with_context() as engine: + quote = engine.dialect.identifier_preparer.quote_identifier expected = ( textwrap.dedent( f"""\