You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by hu...@apache.org on 2023/04/12 17:52:04 UTC
[superset] 01/01: ok testing
This is an automated email from the ASF dual-hosted git repository.
hugh pushed a commit to branch fix-preset-ci
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 4fe2decff78ac5c25a1fdf009b6517252e12e64f
Author: hughhhh <hu...@gmail.com>
AuthorDate: Wed Apr 12 13:51:33 2023 -0400
ok testing
---
superset/connectors/sqla/models.py | 58 +++++++++++++++++++-------------------
superset/models/helpers.py | 24 +++++++++++++---
2 files changed, 49 insertions(+), 33 deletions(-)
diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py
index 6180a546e7..c1a8336f20 100644
--- a/superset/connectors/sqla/models.py
+++ b/superset/connectors/sqla/models.py
@@ -379,35 +379,35 @@ class TableColumn(Model, BaseColumn, CertificationMixin):
time_expr = self.db_engine_spec.get_timestamp_expr(col, pdf, time_grain)
return self.table.make_sqla_column_compatible(time_expr, label)
- def dttm_sql_literal(self, dttm: DateTime) -> str:
- """Convert datetime object to a SQL expression string"""
- sql = (
- self.db_engine_spec.convert_dttm(self.type, dttm, db_extra=self.db_extra)
- if self.type
- else None
- )
-
- if sql:
- return sql
-
- tf = self.python_date_format
-
- # Fallback to the default format (if defined).
- if not tf:
- tf = self.db_extra.get("python_date_format_by_column_name", {}).get(
- self.column_name
- )
-
- if tf:
- if tf in ["epoch_ms", "epoch_s"]:
- seconds_since_epoch = int(dttm.timestamp())
- if tf == "epoch_s":
- return str(seconds_since_epoch)
- return str(seconds_since_epoch * 1000)
- return f"'{dttm.strftime(tf)}'"
-
- # TODO(john-bodley): SIP-15 will explicitly require a type conversion.
- return f"""'{dttm.strftime("%Y-%m-%d %H:%M:%S.%f")}'"""
+ # def dttm_sql_literal(self, dttm: DateTime) -> str:
+ # """Convert datetime object to a SQL expression string"""
+ # sql = (
+ # self.db_engine_spec.convert_dttm(self.type, dttm, db_extra=self.db_extra)
+ # if self.type
+ # else None
+ # )
+
+ # if sql:
+ # return sql
+
+ # tf = self.python_date_format
+
+ # # Fallback to the default format (if defined).
+ # if not tf:
+ # tf = self.db_extra.get("python_date_format_by_column_name", {}).get(
+ # self.column_name
+ # )
+
+ # if tf:
+ # if tf in ["epoch_ms", "epoch_s"]:
+ # seconds_since_epoch = int(dttm.timestamp())
+ # if tf == "epoch_s":
+ # return str(seconds_since_epoch)
+ # return str(seconds_since_epoch * 1000)
+ # return f"'{dttm.strftime(tf)}'"
+
+ # # TODO(john-bodley): SIP-15 will explicitly require a type conversion.
+ # return f"""'{dttm.strftime("%Y-%m-%d %H:%M:%S.%f")}'"""
@property
def data(self) -> Dict[str, Any]:
diff --git a/superset/models/helpers.py b/superset/models/helpers.py
index cc3b34ae62..38d04def69 100644
--- a/superset/models/helpers.py
+++ b/superset/models/helpers.py
@@ -1304,17 +1304,33 @@ class ExploreMixin: # pylint: disable=too-many-public-methods
def dttm_sql_literal(self, dttm: sa.DateTime, col_type: Optional[str]) -> str:
"""Convert datetime object to a SQL expression string"""
-
sql = (
- self.db_engine_spec.convert_dttm(col_type, dttm, db_extra=None)
- if col_type
+ self.db_engine_spec.convert_dttm(self.type, dttm, db_extra=self.db_extra)
+ if self.type
else None
)
if sql:
return sql
- return f'{dttm.strftime("%Y-%m-%d %H:%M:%S.%f")}'
+ tf = self.python_date_format
+
+ # Fallback to the default format (if defined).
+ if not tf:
+ tf = self.db_extra.get("python_date_format_by_column_name", {}).get(
+ self.column_name
+ )
+
+ if tf:
+ if tf in ["epoch_ms", "epoch_s"]:
+ seconds_since_epoch = int(dttm.timestamp())
+ if tf == "epoch_s":
+ return str(seconds_since_epoch)
+ return str(seconds_since_epoch * 1000)
+ return f"'{dttm.strftime(tf)}'"
+
+ # TODO(john-bodley): SIP-15 will explicitly require a type conversion.
+ return f"""'{dttm.strftime("%Y-%m-%d %H:%M:%S.%f")}'"""
def get_time_filter( # pylint: disable=too-many-arguments
self,