This is an automated email from the ASF dual-hosted git repository.

diegopucci pushed a commit to branch fix/default-temporal-column
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 5bf605980d9258f9474b23f2b7b4d9c18f8060a6
Author: geido <[email protected]>
AuthorDate: Tue Oct 18 14:30:59 2022 +0300

    WIP
---
 .../controls/DatasourceControl/index.jsx           | 34 ++++++++++++++--------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git 
a/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx 
b/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx
index 9fa4a8a2ba..b30c172204 100644
--- 
a/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx
+++ 
b/superset-frontend/src/explore/components/controls/DatasourceControl/index.jsx
@@ -169,21 +169,31 @@ class DatasourceControl extends React.PureComponent {
     };
   }
 
-  onDatasourceSave = datasource => {
+  onDatasourceSave = (datasource) => {
     this.props.actions.changeDatasource(datasource);
-    const timeCol = this.props.form_data?.granularity_sqla;
     const { columns } = this.props.datasource;
-    const firstDttmCol = columns.find(column => column.is_dttm);
-    if (
-      datasource.type === 'table' &&
-      !columns.find(({ column_name }) => column_name === timeCol)?.is_dttm
-    ) {
-      // set `granularity_sqla` to first datatime column name or null
-      this.props.actions.setControlValue(
-        'granularity_sqla',
-        firstDttmCol ? firstDttmCol.column_name : null,
-      );
+    const timeCol = this.props.form_data?.granularity_sqla;
+    const timeColConf = columns.find(({ column_name }) => column_name === 
timeCol);
+    const firstDttmCol = columns.find(column => column.is_dttm)?.column_name 
|| null;
+    const currentMainDttmCol = columns.find(c => c.column_name === 
datasource.main_dttm_col);
+    const setDttmCol = currentMainDttmCol?.is_dttm ? 
currentMainDttmCol.column_name : firstDttmCol;
+    console.log("firstDttmCol", firstDttmCol);
+    console.log("currentMainDttmCol", currentMainDttmCol);
+
+
+    if (datasource.type === 'table') {
+      // resets new default time col or picks the first available one
+      if (
+        datasource.main_dttm_col !== timeCol || !timeColConf?.is_dttm
+      ) {
+          console.log("setDttmCol", setDttmCol);
+          this.props.actions.setControlValue(
+            'granularity_sqla',
+            setDttmCol,
+          );
+      }
     }
+
     if (this.props.onDatasourceSave) {
       this.props.onDatasourceSave(datasource);
     }

Reply via email to