From 922eec2db2a30bcaf90e0163667fffdf9780a0b5 Mon Sep 17 00:00:00 2001 From: Erik Ritter Date: Fri, 24 Jan 2020 16:45:41 -0800 Subject: [PATCH] [SQL Lab] Cache function names query (#9019) --- superset/db_engine_specs/hive.py | 3 ++- superset/db_engine_specs/presto.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/superset/db_engine_specs/hive.py b/superset/db_engine_specs/hive.py index 924614cca..ec922d762 100644 --- a/superset/db_engine_specs/hive.py +++ b/superset/db_engine_specs/hive.py @@ -29,7 +29,7 @@ from sqlalchemy.engine.url import make_url from sqlalchemy.sql.expression import ColumnClause, Select from werkzeug.utils import secure_filename -from superset import app, conf +from superset import app, cache, conf from superset.db_engine_specs.base import BaseEngineSpec from superset.db_engine_specs.presto import PrestoEngineSpec from superset.utils import core as utils @@ -428,6 +428,7 @@ class HiveEngineSpec(PrestoEngineSpec): cursor.execute(query, **kwargs) @classmethod + @cache.memoize() def get_function_names(cls, database: "Database") -> List[str]: """ Get a list of function names that are able to be called on the database. diff --git a/superset/db_engine_specs/presto.py b/superset/db_engine_specs/presto.py index ee0117cac..0da8dd52e 100644 --- a/superset/db_engine_specs/presto.py +++ b/superset/db_engine_specs/presto.py @@ -32,7 +32,7 @@ from sqlalchemy.engine.reflection import Inspector from sqlalchemy.engine.result import RowProxy from sqlalchemy.sql.expression import ColumnClause, Select -from superset import app, is_feature_enabled, security_manager +from superset import app, cache, is_feature_enabled, security_manager from superset.db_engine_specs.base import BaseEngineSpec from superset.exceptions import SupersetTemplateException from superset.models.sql_types.presto_sql_types import type_map as presto_type_map @@ -947,6 +947,7 @@ class PrestoEngineSpec(BaseEngineSpec): return df.to_dict()[field_to_return][0] @classmethod + @cache.memoize() def get_function_names(cls, database: "Database") -> List[str]: """ Get a list of function names that are able to be called on the database.