From f8d67c6b8d3d2d596f7c01ed381b3f32cd3d8319 Mon Sep 17 00:00:00 2001 From: erik_ritter Date: Fri, 24 Jan 2020 15:43:37 -0800 Subject: [PATCH] [SQL Lab] Cache function names query --- 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 924614cca69e..ec922d762906 100644 --- a/superset/db_engine_specs/hive.py +++ b/superset/db_engine_specs/hive.py @@ -29,7 +29,7 @@ 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 @@ def execute( # type: ignore 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 ee0117cac6b2..0da8dd52e4d9 100644 --- a/superset/db_engine_specs/presto.py +++ b/superset/db_engine_specs/presto.py @@ -32,7 +32,7 @@ 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 @@ def latest_sub_partition(cls, table_name, schema, database, **kwargs): 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.