This is an automated email from the ASF dual-hosted git repository.
yongjiezhao 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 e3dbe8d8af fix: Query execution time is displayed as invalid date
(#19605)
e3dbe8d8af is described below
commit e3dbe8d8af434f9095309638e1df0a905f7bbf29
Author: Diego Medina <[email protected]>
AuthorDate: Tue Apr 26 23:22:50 2022 -0400
fix: Query execution time is displayed as invalid date (#19605)
* fix: Query execution time is displayed as invalid date
* PR comment
* Fix test
* unify response
* lint
---
superset/queries/api.py | 3 ++-
superset/queries/schemas.py | 42 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/superset/queries/api.py b/superset/queries/api.py
index 611c69d4bd..460e2dd466 100644
--- a/superset/queries/api.py
+++ b/superset/queries/api.py
@@ -22,7 +22,7 @@ from superset.constants import
MODEL_API_RW_METHOD_PERMISSION_MAP, RouteMethod
from superset.databases.filters import DatabaseFilter
from superset.models.sql_lab import Query
from superset.queries.filters import QueryFilter
-from superset.queries.schemas import openapi_spec_methods_override
+from superset.queries.schemas import openapi_spec_methods_override, QuerySchema
from superset.views.base_api import BaseSupersetModelRestApi,
RelatedFieldFilter
from superset.views.filters import FilterRelatedOwners
@@ -94,6 +94,7 @@ class QueryRestApi(BaseSupersetModelRestApi):
]
base_filters = [["id", QueryFilter, lambda: []]]
base_order = ("changed_on", "desc")
+ list_model_schema = QuerySchema()
openapi_spec_tag = "Queries"
openapi_spec_methods = openapi_spec_methods_override
diff --git a/superset/queries/schemas.py b/superset/queries/schemas.py
index daca322c63..f11cf37127 100644
--- a/superset/queries/schemas.py
+++ b/superset/queries/schemas.py
@@ -14,6 +14,13 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
+from typing import List
+
+from marshmallow import fields, Schema
+
+from superset.dashboards.schemas import UserSchema
+from superset.models.sql_lab import Query
+from superset.sql_parse import Table
openapi_spec_methods_override = {
"get": {"get": {"description": "Get query detail information."}},
@@ -25,3 +32,38 @@ openapi_spec_methods_override = {
}
},
}
+
+
+class DatabaseSchema(Schema):
+ database_name = fields.String()
+
+
+class QuerySchema(Schema):
+ """
+ Schema for the ``Query`` model.
+ """
+
+ changed_on = fields.DateTime()
+ database = fields.Nested(DatabaseSchema)
+ end_time = fields.Float(attribute="end_time")
+ executed_sql = fields.String()
+ id = fields.Int()
+ rows = fields.Int()
+ schema = fields.String()
+ sql = fields.String()
+ sql_tables = fields.Method("get_sql_tables")
+ start_time = fields.Float(attribute="start_time")
+ status = fields.String()
+ tab_name = fields.String()
+ tmp_table_name = fields.String()
+ tracking_url = fields.String()
+ user = fields.Nested(UserSchema)
+
+ class Meta: # pylint: disable=too-few-public-methods
+ model = Query
+ load_instance = True
+ include_relationships = True
+
+ # pylint: disable=no-self-use
+ def get_sql_tables(self, obj: Query) -> List[Table]:
+ return obj.sql_tables