You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ju...@apache.org on 2024/12/06 18:11:32 UTC
(superset) branch 4.1-airbnb updated: fix(sqllab): Remove update_saved_query_exec_info to reduce lag (#31294)
This is an automated email from the ASF dual-hosted git repository.
justinpark pushed a commit to branch 4.1-airbnb
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/4.1-airbnb by this push:
new 1962da1279 fix(sqllab): Remove update_saved_query_exec_info to reduce lag (#31294)
1962da1279 is described below
commit 1962da1279103bb8bea720b1aa942fb82baf7a3f
Author: JUST.in DO IT <ju...@airbnb.com>
AuthorDate: Fri Dec 6 10:09:02 2024 -0800
fix(sqllab): Remove update_saved_query_exec_info to reduce lag (#31294)
---
.../src/features/home/SavedQueries.tsx | 2 +-
superset/daos/query.py | 19 -------------
superset/sqllab/sql_json_executer.py | 2 --
tests/integration_tests/sqllab_tests.py | 32 +---------------------
4 files changed, 2 insertions(+), 53 deletions(-)
diff --git a/superset-frontend/src/features/home/SavedQueries.tsx b/superset-frontend/src/features/home/SavedQueries.tsx
index 55535fc501..7c6a5979f5 100644
--- a/superset-frontend/src/features/home/SavedQueries.tsx
+++ b/superset-frontend/src/features/home/SavedQueries.tsx
@@ -278,7 +278,7 @@ const SavedQueries = ({
url={`/sqllab?savedQueryId=${q.id}`}
title={q.label}
imgFallbackURL="/static/assets/images/empty-query.svg"
- description={t('Ran %s', q.changed_on_delta_humanized)}
+ description={t('Modified %s', q.changed_on_delta_humanized)}
cover={
q?.sql?.length && showThumbnails && featureFlag ? (
<QueryContainer>
diff --git a/superset/daos/query.py b/superset/daos/query.py
index 55287ebd9f..e5a96d16fe 100644
--- a/superset/daos/query.py
+++ b/superset/daos/query.py
@@ -35,25 +35,6 @@ logger = logging.getLogger(__name__)
class QueryDAO(BaseDAO[Query]):
base_filter = QueryFilter
- @staticmethod
- def update_saved_query_exec_info(query_id: int) -> None:
- """
- Propagates query execution info back to saved query if applicable
-
- :param query_id: The query id
- :return:
- """
- query = db.session.query(Query).get(query_id)
- related_saved_queries = (
- db.session.query(SavedQuery)
- .filter(SavedQuery.database == query.database)
- .filter(SavedQuery.sql == query.sql)
- ).all()
- if related_saved_queries:
- for saved_query in related_saved_queries:
- saved_query.rows = query.rows
- saved_query.last_run = datetime.now()
-
@staticmethod
def save_metadata(query: Query, payload: dict[str, Any]) -> None:
# pull relevant data from payload and store in extra_json
diff --git a/superset/sqllab/sql_json_executer.py b/superset/sqllab/sql_json_executer.py
index 27483fb31c..e0d723c7b8 100644
--- a/superset/sqllab/sql_json_executer.py
+++ b/superset/sqllab/sql_json_executer.py
@@ -95,7 +95,6 @@ class SynchronousSqlJsonExecutor(SqlJsonExecutorBase):
data = self._get_sql_results_with_timeout(
execution_context, rendered_query, log_params
)
- self._query_dao.update_saved_query_exec_info(query_id)
execution_context.set_execution_result(data)
except SupersetTimeoutException:
raise
@@ -200,5 +199,4 @@ class ASynchronousSqlJsonExecutor(SqlJsonExecutorBase):
query.status = QueryStatus.FAILED
query.error_message = message
raise SupersetErrorException(error) from ex
- self._query_dao.update_saved_query_exec_info(query_id)
return SqlJsonExecutionStatus.QUERY_IS_RUNNING
diff --git a/tests/integration_tests/sqllab_tests.py b/tests/integration_tests/sqllab_tests.py
index cc1a813c93..0a1346e794 100644
--- a/tests/integration_tests/sqllab_tests.py
+++ b/tests/integration_tests/sqllab_tests.py
@@ -17,7 +17,6 @@
# isort:skip_file
"""Unit tests for Sql Lab"""
-from datetime import datetime
from textwrap import dedent
import pytest
@@ -26,7 +25,6 @@ from parameterized import parameterized
from unittest import mock
import prison
-from freezegun import freeze_time
from superset import db, security_manager
from superset.connectors.sqla.models import SqlaTable # noqa: F401
from superset.db_engine_specs import BaseEngineSpec
@@ -34,7 +32,7 @@ from superset.db_engine_specs.hive import HiveEngineSpec
from superset.db_engine_specs.presto import PrestoEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
from superset.exceptions import SupersetErrorException
-from superset.models.sql_lab import Query, SavedQuery
+from superset.models.sql_lab import Query
from superset.result_set import SupersetResultSet
from superset.sqllab.limiting_factor import LimitingFactor
from superset.sql_lab import (
@@ -156,34 +154,6 @@ class TestSqlLab(SupersetTestCase):
]
}
- @pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
- def test_sql_json_to_saved_query_info(self):
- """
- SQLLab: Test SQLLab query execution info propagation to saved queries
- """
- self.login(ADMIN_USERNAME)
-
- sql_statement = "SELECT * FROM birth_names LIMIT 10"
- examples_db_id = get_example_database().id
- saved_query = SavedQuery(db_id=examples_db_id, sql=sql_statement)
- db.session.add(saved_query)
- db.session.commit()
-
- with freeze_time(datetime.now().isoformat(timespec="seconds")):
- self.run_sql(sql_statement, "1")
- saved_query_ = (
- db.session.query(SavedQuery)
- .filter(
- SavedQuery.db_id == examples_db_id, SavedQuery.sql == sql_statement
- )
- .one_or_none()
- )
- assert saved_query_.rows is not None
- assert saved_query_.last_run == datetime.now()
- # Rollback changes
- db.session.delete(saved_query_)
- db.session.commit()
-
@parameterized.expand([CtasMethod.TABLE, CtasMethod.VIEW])
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_sql_json_cta_dynamic_db(self, ctas_method):