|
33 | 33 | import numpy as np |
34 | 34 | import pandas as pd |
35 | 35 | import sqlalchemy as sa |
36 | | -import sqlparse |
37 | 36 | from flask import escape, Markup |
38 | 37 | from flask_appbuilder import Model |
39 | 38 | from flask_appbuilder.security.sqla.models import User |
|
104 | 103 | ExploreMixin, |
105 | 104 | ImportExportMixin, |
106 | 105 | QueryResult, |
107 | | - QueryStringExtended, |
108 | 106 | validate_adhoc_subquery, |
109 | 107 | ) |
110 | 108 | from superset.models.slice import Slice |
@@ -1099,7 +1097,9 @@ def _process_sql_expression( |
1099 | 1097 |
|
1100 | 1098 |
|
1101 | 1099 | class SqlaTable( |
1102 | | - Model, BaseDatasource, ExploreMixin |
| 1100 | + Model, |
| 1101 | + BaseDatasource, |
| 1102 | + ExploreMixin, |
1103 | 1103 | ): # pylint: disable=too-many-public-methods |
1104 | 1104 | """An ORM object for SqlAlchemy table references""" |
1105 | 1105 |
|
@@ -1413,26 +1413,6 @@ def mutate_query_from_config(self, sql: str) -> str: |
1413 | 1413 | def get_template_processor(self, **kwargs: Any) -> BaseTemplateProcessor: |
1414 | 1414 | return get_template_processor(table=self, database=self.database, **kwargs) |
1415 | 1415 |
|
1416 | | - def get_query_str_extended( |
1417 | | - self, |
1418 | | - query_obj: QueryObjectDict, |
1419 | | - mutate: bool = True, |
1420 | | - ) -> QueryStringExtended: |
1421 | | - sqlaq = self.get_sqla_query(**query_obj) |
1422 | | - sql = self.database.compile_sqla_query(sqlaq.sqla_query) |
1423 | | - sql = self._apply_cte(sql, sqlaq.cte) |
1424 | | - sql = sqlparse.format(sql, reindent=True) |
1425 | | - if mutate: |
1426 | | - sql = self.mutate_query_from_config(sql) |
1427 | | - return QueryStringExtended( |
1428 | | - applied_template_filters=sqlaq.applied_template_filters, |
1429 | | - applied_filter_columns=sqlaq.applied_filter_columns, |
1430 | | - rejected_filter_columns=sqlaq.rejected_filter_columns, |
1431 | | - labels_expected=sqlaq.labels_expected, |
1432 | | - prequeries=sqlaq.prequeries, |
1433 | | - sql=sql, |
1434 | | - ) |
1435 | | - |
1436 | 1416 | def get_query_str(self, query_obj: QueryObjectDict) -> str: |
1437 | 1417 | query_str_ext = self.get_query_str_extended(query_obj) |
1438 | 1418 | all_queries = query_str_ext.prequeries + [query_str_ext.sql] |
@@ -1474,33 +1454,6 @@ def get_from_clause( |
1474 | 1454 |
|
1475 | 1455 | return from_clause, cte |
1476 | 1456 |
|
1477 | | - def get_rendered_sql( |
1478 | | - self, template_processor: BaseTemplateProcessor | None = None |
1479 | | - ) -> str: |
1480 | | - """ |
1481 | | - Render sql with template engine (Jinja). |
1482 | | - """ |
1483 | | - |
1484 | | - sql = self.sql |
1485 | | - if template_processor: |
1486 | | - try: |
1487 | | - sql = template_processor.process_template(sql) |
1488 | | - except TemplateError as ex: |
1489 | | - raise QueryObjectValidationError( |
1490 | | - _( |
1491 | | - "Error while rendering virtual dataset query: %(msg)s", |
1492 | | - msg=ex.message, |
1493 | | - ) |
1494 | | - ) from ex |
1495 | | - sql = sqlparse.format(sql.strip("\t\r\n; "), strip_comments=True) |
1496 | | - if not sql: |
1497 | | - raise QueryObjectValidationError(_("Virtual dataset query cannot be empty")) |
1498 | | - if len(sqlparse.split(sql)) > 1: |
1499 | | - raise QueryObjectValidationError( |
1500 | | - _("Virtual dataset query cannot consist of multiple statements") |
1501 | | - ) |
1502 | | - return sql |
1503 | | - |
1504 | 1457 | def adhoc_metric_to_sqla( |
1505 | 1458 | self, |
1506 | 1459 | metric: AdhocMetric, |
|
0 commit comments