You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2022/09/29 05:19:55 UTC
[superset] branch fix-21635 created (now 1e6e2cfa8a)
This is an automated email from the ASF dual-hosted git repository.
mayurnewase pushed a change to branch fix-21635
in repository https://gitbox.apache.org/repos/asf/superset.git
at 1e6e2cfa8a check slice cache timeout
This branch includes the following new commits:
new 7e29e210db check slice cache timeout
new 1e6e2cfa8a check slice cache timeout
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[superset] 01/02: check slice cache timeout
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mayurnewase pushed a commit to branch fix-21635
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 7e29e210dbb3d90514522b7900e1bd6f672363a9
Author: Mayur <ma...@gmail.com>
AuthorDate: Thu Sep 29 10:48:58 2022 +0530
check slice cache timeout
---
superset/common/query_context.py | 6 ++++++
superset/common/query_context_factory.py | 12 ++++++++++++
2 files changed, 18 insertions(+)
diff --git a/superset/common/query_context.py b/superset/common/query_context.py
index 4a91c6ad6d..b9414fddd1 100644
--- a/superset/common/query_context.py
+++ b/superset/common/query_context.py
@@ -27,6 +27,7 @@ from superset.common.query_context_processor import (
QueryContextProcessor,
)
from superset.common.query_object import QueryObject
+from superset.models.slice import Slice
if TYPE_CHECKING:
from superset.connectors.base.models import BaseDatasource
@@ -46,6 +47,7 @@ class QueryContext:
enforce_numerical_metrics: ClassVar[bool] = True
datasource: BaseDatasource
+ slice_id: Optional[int] = None
queries: List[QueryObject]
form_data: Optional[Dict[str, Any]]
result_type: ChartDataResultType
@@ -64,6 +66,7 @@ class QueryContext:
*,
datasource: BaseDatasource,
queries: List[QueryObject],
+ slice: Optional[Slice],
form_data: Optional[Dict[str, Any]],
result_type: ChartDataResultType,
result_format: ChartDataResultFormat,
@@ -72,6 +75,7 @@ class QueryContext:
cache_values: Dict[str, Any],
) -> None:
self.datasource = datasource
+ self.slice = slice
self.result_type = result_type
self.result_format = result_format
self.queries = queries
@@ -98,6 +102,8 @@ class QueryContext:
def get_cache_timeout(self) -> Optional[int]:
if self.custom_cache_timeout is not None:
return self.custom_cache_timeout
+ if self.slice and self.slice.cache_timeout:
+ return self.slice.cache_timeout
if self.datasource.cache_timeout is not None:
return self.datasource.cache_timeout
if hasattr(self.datasource, "database"):
diff --git a/superset/common/query_context_factory.py b/superset/common/query_context_factory.py
index dc43d28de9..84fdeb7109 100644
--- a/superset/common/query_context_factory.py
+++ b/superset/common/query_context_factory.py
@@ -19,10 +19,12 @@ from __future__ import annotations
from typing import Any, Dict, List, Optional, TYPE_CHECKING
from superset import app, db
+from superset.charts.dao import ChartDAO
from superset.common.chart_data import ChartDataResultFormat, ChartDataResultType
from superset.common.query_context import QueryContext
from superset.common.query_object_factory import QueryObjectFactory
from superset.datasource.dao import DatasourceDAO
+from superset.models.slice import Slice
from superset.utils.core import DatasourceDict, DatasourceType
if TYPE_CHECKING:
@@ -55,6 +57,12 @@ class QueryContextFactory: # pylint: disable=too-few-public-methods
datasource_model_instance = None
if datasource:
datasource_model_instance = self._convert_to_model(datasource)
+
+ slice = None
+ if form_data and form_data.get("slice_id") is not None:
+ slice_id = form_data.get("slice_id")
+ slice = self._get_slice(slice_id)
+
result_type = result_type or ChartDataResultType.FULL
result_format = result_format or ChartDataResultFormat.JSON
queries_ = [
@@ -72,6 +80,7 @@ class QueryContextFactory: # pylint: disable=too-few-public-methods
return QueryContext(
datasource=datasource_model_instance,
queries=queries_,
+ slice=slice,
form_data=form_data,
result_type=result_type,
result_format=result_format,
@@ -88,3 +97,6 @@ class QueryContextFactory: # pylint: disable=too-few-public-methods
datasource_type=DatasourceType(datasource["type"]),
datasource_id=int(datasource["id"]),
)
+
+ def _get_slice(self, slice_id: Any) -> Optional[Slice]:
+ return ChartDAO.find_by_id(slice_id)
[superset] 02/02: check slice cache timeout
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
mayurnewase pushed a commit to branch fix-21635
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 1e6e2cfa8ad8628cbbdf26623b8a2d4e34b4886a
Author: Mayur <ma...@gmail.com>
AuthorDate: Thu Sep 29 10:49:15 2022 +0530
check slice cache timeout
---
superset/common/query_context_factory.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/superset/common/query_context_factory.py b/superset/common/query_context_factory.py
index 84fdeb7109..ee6fdefe34 100644
--- a/superset/common/query_context_factory.py
+++ b/superset/common/query_context_factory.py
@@ -60,8 +60,7 @@ class QueryContextFactory: # pylint: disable=too-few-public-methods
slice = None
if form_data and form_data.get("slice_id") is not None:
- slice_id = form_data.get("slice_id")
- slice = self._get_slice(slice_id)
+ slice = self._get_slice(form_data.get("slice_id"))
result_type = result_type or ChartDataResultType.FULL
result_format = result_format or ChartDataResultFormat.JSON