This is an automated email from the ASF dual-hosted git repository.
vavila pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 43a97f86f5 fix: Load cached DB metadata as DatasourceName and add
catalog to schema_list cache key (#31948)
43a97f86f5 is described below
commit 43a97f86f5c2c4d7fe0b1c9a7f537be1541b3ac9
Author: Vitor Avila <[email protected]>
AuthorDate: Tue Jan 21 16:36:25 2025 -0300
fix: Load cached DB metadata as DatasourceName and add catalog to
schema_list cache key (#31948)
---
superset/commands/database/tables.py | 7 +++++--
superset/models/core.py | 12 ++++++------
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/superset/commands/database/tables.py
b/superset/commands/database/tables.py
index b28d4f065f..c8fa88400c 100644
--- a/superset/commands/database/tables.py
+++ b/superset/commands/database/tables.py
@@ -32,6 +32,7 @@ from superset.daos.database import DatabaseDAO
from superset.exceptions import SupersetException
from superset.extensions import db, security_manager
from superset.models.core import Database
+from superset.utils.core import DatasourceName
logger = logging.getLogger(__name__)
@@ -59,7 +60,8 @@ class TablesDatabaseCommand(BaseCommand):
catalog=self._catalog_name,
schema=self._schema_name,
datasource_names=sorted(
- self._model.get_all_table_names_in_schema(
+ DatasourceName(*datasource_name)
+ for datasource_name in
self._model.get_all_table_names_in_schema(
catalog=self._catalog_name,
schema=self._schema_name,
force=self._force,
@@ -74,7 +76,8 @@ class TablesDatabaseCommand(BaseCommand):
catalog=self._catalog_name,
schema=self._schema_name,
datasource_names=sorted(
- self._model.get_all_view_names_in_schema(
+ DatasourceName(*datasource_name)
+ for datasource_name in
self._model.get_all_view_names_in_schema(
catalog=self._catalog_name,
schema=self._schema_name,
force=self._force,
diff --git a/superset/models/core.py b/superset/models/core.py
index 39775291f1..6f32383ab8 100755
--- a/superset/models/core.py
+++ b/superset/models/core.py
@@ -83,7 +83,7 @@ from superset.superset_typing import (
)
from superset.utils import cache as cache_util, core as utils, json
from superset.utils.backports import StrEnum
-from superset.utils.core import DatasourceName, get_username
+from superset.utils.core import get_username
from superset.utils.oauth2 import get_oauth2_access_token,
OAuth2ClientConfigSchema
config = app.config
@@ -798,7 +798,7 @@ class Database(Model, AuditMixinNullable,
ImportExportMixin): # pylint: disable
self,
catalog: str | None,
schema: str,
- ) -> set[DatasourceName]:
+ ) -> set[tuple[str, str, str | None]]:
"""Parameters need to be passed as keyword arguments.
For unused parameters, they are referenced in
@@ -814,7 +814,7 @@ class Database(Model, AuditMixinNullable,
ImportExportMixin): # pylint: disable
try:
with self.get_inspector(catalog=catalog, schema=schema) as
inspector:
return {
- DatasourceName(table, schema, catalog)
+ (table, schema, catalog)
for table in self.db_engine_spec.get_table_names(
database=self,
inspector=inspector,
@@ -832,7 +832,7 @@ class Database(Model, AuditMixinNullable,
ImportExportMixin): # pylint: disable
self,
catalog: str | None,
schema: str,
- ) -> set[DatasourceName]:
+ ) -> set[tuple[str, str, str | None]]:
"""Parameters need to be passed as keyword arguments.
For unused parameters, they are referenced in
@@ -848,7 +848,7 @@ class Database(Model, AuditMixinNullable,
ImportExportMixin): # pylint: disable
try:
with self.get_inspector(catalog=catalog, schema=schema) as
inspector:
return {
- DatasourceName(view, schema, catalog)
+ (view, schema, catalog)
for view in self.db_engine_spec.get_view_names(
database=self,
inspector=inspector,
@@ -873,7 +873,7 @@ class Database(Model, AuditMixinNullable,
ImportExportMixin): # pylint: disable
yield sqla.inspect(engine)
@cache_util.memoized_func(
- key="db:{self.id}:schema_list",
+ key="db:{self.id}:catalog:{catalog}:schema_list",
cache=cache_manager.cache,
)
def get_all_schema_names(