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

aafghahi pushed a commit to branch 
arash.afghahi/sc-46372/remove-native-druid-nosql-from-the-codebase
in repository https://gitbox.apache.org/repos/asf/superset.git

commit b237b2c5dc7f1649a8d6f951b4192ac7c9571b4a
Author: AAfghahi <[email protected]>
AuthorDate: Thu Jun 9 15:18:23 2022 -0400

    first pass at removing native Druid nosql
---
 .../src/components/Datasource/DatasourceEditor.jsx | 17 ---------------
 .../explore/components/ControlPanelsContainer.tsx  |  5 ++---
 .../DndColumnSelectControl/DndFilterSelect.tsx     | 20 ++++--------------
 .../FilterControl/AdhocFilterControl/index.jsx     | 20 ++++--------------
 .../FilterControl/AdhocFilterEditPopover/index.jsx | 15 +-------------
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |  7 -------
 .../index.tsx                                      | 14 +------------
 .../AdhocMetricEditPopover.test.tsx                | 12 -----------
 .../MetricControl/AdhocMetricEditPopover/index.jsx | 24 +++-------------------
 superset/charts/schemas.py                         |  1 +
 superset/common/query_object.py                    |  1 +
 superset/utils/core.py                             |  3 +++
 superset/viz.py                                    |  1 -
 13 files changed, 20 insertions(+), 120 deletions(-)

diff --git a/superset-frontend/src/components/Datasource/DatasourceEditor.jsx 
b/superset-frontend/src/components/Datasource/DatasourceEditor.jsx
index afa47ea80b..7c2894dca6 100644
--- a/superset-frontend/src/components/Datasource/DatasourceEditor.jsx
+++ b/superset-frontend/src/components/Datasource/DatasourceEditor.jsx
@@ -580,9 +580,6 @@ class DatasourceEditor extends React.PureComponent {
         }),
       },
       errors: [],
-      isDruid:
-        props.datasource.type === 'druid' ||
-        props.datasource.datasource_type === 'druid',
       isSqla:
         props.datasource.datasource_type === 'table' ||
         props.datasource.type === 'table',
@@ -1079,20 +1076,6 @@ class DatasourceEditor extends React.PureComponent {
                   />
                 </>
               )}
-              {this.state.isDruid && (
-                <Field
-                  fieldKey="json"
-                  label={t('JSON')}
-                  description={
-                    <div>
-                      {t('The JSON metric or post aggregation definition.')}
-                    </div>
-                  }
-                  control={
-                    <TextAreaControl language="json" offerEditInModal={false} 
/>
-                  }
-                />
-              )}
             </div>
           )}
           {this.state.datasourceType === DATASOURCE_TYPES.physical.key && (
diff --git 
a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx 
b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
index 6ed73f2b38..23f4ca041c 100644
--- a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
+++ b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx
@@ -175,9 +175,8 @@ const isTimeSection = (section: ControlPanelSectionConfig): 
boolean =>
     sections.legacyTimeseriesTime.label === section.label);
 
 const hasTimeColumn = (datasource: Dataset): boolean =>
-  datasource?.columns?.some(c => c.is_dttm) ||
-  datasource.type === DatasourceType.Druid;
-
+  datasource?.columns?.some(c => c.is_dttm) 
+  //unsure about this one because I think it is for the time column. 
 const sectionsToExpand = (
   sections: ControlPanelSectionConfig[],
   datasource: Dataset,
diff --git 
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
 
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
index 4a08c214de..097283adfa 100644
--- 
a/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
+++ 
b/superset-frontend/src/explore/components/controls/DndColumnSelectControl/DndFilterSelect.tsx
@@ -222,14 +222,8 @@ export const DndFilterSelect = (props: 
DndFilterSelectProps) => {
       // via datasource saved metric
       if (filterOptions.saved_metric_name) {
         return new AdhocFilter({
-          expressionType:
-            datasource.type === 'druid'
-              ? EXPRESSION_TYPES.SIMPLE
-              : EXPRESSION_TYPES.SQL,
-          subject:
-            datasource.type === 'druid'
-              ? filterOptions.saved_metric_name
-              : getMetricExpression(filterOptions.saved_metric_name),
+          expressionType: EXPRESSION_TYPES.SQL,
+          subject: getMetricExpression(filterOptions.saved_metric_name),
           operator:
             OPERATOR_ENUM_TO_OPERATOR_TYPE[Operators.GREATER_THAN].operation,
           operatorId: Operators.GREATER_THAN,
@@ -240,14 +234,8 @@ export const DndFilterSelect = (props: 
DndFilterSelectProps) => {
       // has a custom label, meaning it's custom column
       if (filterOptions.label) {
         return new AdhocFilter({
-          expressionType:
-            datasource.type === 'druid'
-              ? EXPRESSION_TYPES.SIMPLE
-              : EXPRESSION_TYPES.SQL,
-          subject:
-            datasource.type === 'druid'
-              ? filterOptions.label
-              : new AdhocMetric(option).translateToSql(),
+          expressionType:  EXPRESSION_TYPES.SQL,
+          subject: new AdhocMetric(option).translateToSql(),
           operator:
             OPERATOR_ENUM_TO_OPERATOR_TYPE[Operators.GREATER_THAN].operation,
           operatorId: Operators.GREATER_THAN,
diff --git 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx
 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx
index 876eca1e75..a8e80d7ee6 100644
--- 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx
+++ 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/index.jsx
@@ -241,14 +241,8 @@ class AdhocFilterControl extends React.Component {
     // via datasource saved metric
     if (option.saved_metric_name) {
       return new AdhocFilter({
-        expressionType:
-          this.props.datasource.type === 'druid'
-            ? EXPRESSION_TYPES.SIMPLE
-            : EXPRESSION_TYPES.SQL,
-        subject:
-          this.props.datasource.type === 'druid'
-            ? option.saved_metric_name
-            : this.getMetricExpression(option.saved_metric_name),
+        expressionType: EXPRESSION_TYPES.SQL,
+        subject:this.getMetricExpression(option.saved_metric_name),
         operator:
           OPERATOR_ENUM_TO_OPERATOR_TYPE[Operators.GREATER_THAN].operation,
         comparator: 0,
@@ -258,14 +252,8 @@ class AdhocFilterControl extends React.Component {
     // has a custom label, meaning it's custom column
     if (option.label) {
       return new AdhocFilter({
-        expressionType:
-          this.props.datasource.type === 'druid'
-            ? EXPRESSION_TYPES.SIMPLE
-            : EXPRESSION_TYPES.SQL,
-        subject:
-          this.props.datasource.type === 'druid'
-            ? option.label
-            : new AdhocMetric(option).translateToSql(),
+        expressionType: EXPRESSION_TYPES.SQL,
+        subject: new AdhocMetric(option).translateToSql(),
         operator:
           OPERATOR_ENUM_TO_OPERATOR_TYPE[Operators.GREATER_THAN].operation,
         comparator: 0,
diff --git 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx
 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx
index 8ae706fc54..0febc0a307 100644
--- 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx
+++ 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/index.jsx
@@ -227,20 +227,7 @@ export default class AdhocFilterEditPopover extends 
React.Component {
           <Tabs.TabPane
             className="adhoc-filter-edit-tab"
             key={EXPRESSION_TYPES.SQL}
-            tab={
-              datasource?.type === 'druid' ? (
-                <Tooltip
-                  title={t(
-                    'Custom SQL ad-hoc filters are not available for the 
native Druid connector',
-                  )}
-                >
-                  {t('Custom SQL')}
-                </Tooltip>
-              ) : (
-                t('Custom SQL')
-              )
-            }
-            disabled={datasource?.type === 'druid'}
+            tab={ t('Custom SQL') }
           >
             <ErrorBoundary>
               <AdhocFilterEditPopoverSqlTabContent
diff --git 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/AdhocFilterEditPopoverSimpleTabContent.test.tsx
 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/AdhocFilterEditPopoverSimpleTabContent.test.tsx
index a34a77c442..887db94847 100644
--- 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/AdhocFilterEditPopoverSimpleTabContent.test.tsx
+++ 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/AdhocFilterEditPopoverSimpleTabContent.test.tsx
@@ -239,13 +239,6 @@ describe('AdhocFilterEditPopoverSimpleTabContent', () => {
     expect(isOperatorRelevant(Operators.LIKE, 'value')).toBe(true);
   });
 
-  it('will filter operators for druid datasources', () => {
-    const { props } = setup({ datasource: { type: 'druid' } });
-    const { isOperatorRelevant } = useSimpleTabFilterProps(props);
-    expect(isOperatorRelevant(Operators.REGEX, 'value')).toBe(true);
-    expect(isOperatorRelevant(Operators.LIKE, 'value')).toBe(false);
-  });
-
   it('will show LATEST PARTITION operator', () => {
     const { props } = setup({
       datasource: {
diff --git 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
index c24282f09e..337eaac98c 100644
--- 
a/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
+++ 
b/superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopoverSimpleTabContent/index.tsx
@@ -141,8 +141,6 @@ export const useSimpleTabFilterProps = (props: Props) => {
       );
     }
     return !(
-      (props.datasource.type === 'druid' &&
-        TABLE_ONLY_OPERATORS.indexOf(operator) >= 0) ||
       (props.datasource.type === 'table' &&
         DRUID_ONLY_OPERATORS.indexOf(operator) >= 0) ||
       (props.adhocFilter.clause === CLAUSES.HAVING &&
@@ -315,16 +313,7 @@ const AdhocFilterEditPopoverSimpleTabContent: 
React.FC<Props> = props => {
     autoFocus: !subject,
     placeholder: '',
   };
-
-  if (props.datasource.type === 'druid') {
-    subjectSelectProps.placeholder = t(
-      '%s column(s) and metric(s)',
-      columns.length,
-    );
-  } else {
-    // we cannot support simple ad-hoc filters for metrics because we don't 
know what type
-    // the value should be cast to (without knowing the output type of the 
aggregate, which
-    // becomes a rather complicated problem)
+  
     subjectSelectProps.placeholder =
       props.adhocFilter.clause === CLAUSES.WHERE
         ? t('%s column(s)', columns.length)
@@ -332,7 +321,6 @@ const AdhocFilterEditPopoverSimpleTabContent: 
React.FC<Props> = props => {
     columns = props.options.filter(
       option => 'column_name' in option && option.column_name,
     );
-  }
 
   const operatorSelectProps = {
     placeholder: t(
diff --git 
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
 
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
index d665befcca..b364fa67a2 100644
--- 
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
+++ 
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
@@ -80,18 +80,6 @@ test('Should render correct elements for SQL', () => {
   expect(screen.getByRole('tabpanel', { name: 'Saved' })).toBeVisible();
 });
 
-test('Should render correct elements for native Druid', () => {
-  const props = { ...createProps(), datasource: { type: 'druid' } };
-  render(<AdhocMetricEditPopover {...props} />);
-  expect(screen.getByRole('tab', { name: 'Custom SQL' })).toHaveAttribute(
-    'aria-disabled',
-    'true',
-  );
-  expect(screen.getByRole('tab', { name: 'Simple' })).toBeEnabled();
-  expect(screen.getByRole('tab', { name: 'Saved' })).toBeEnabled();
-  expect(screen.getByRole('tabpanel', { name: 'Saved' })).toBeVisible();
-});
-
 test('Should render correct elements for allow ad-hoc metrics', () => {
   const props = {
     ...createProps(),
diff --git 
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
 
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
index decad4c12d..e63b22b645 100644
--- 
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
+++ 
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
@@ -323,15 +323,6 @@ export default class AdhocMetricEditPopover extends 
React.PureComponent {
       autoFocus: true,
     };
 
-    if (
-      this.props.datasource?.type === 'druid' &&
-      aggregateSelectProps.options
-    ) {
-      aggregateSelectProps.options = aggregateSelectProps.options.filter(
-        aggregate => aggregate !== 'AVG',
-      );
-    }
-
     const stateIsValid = adhocMetric.isValid() || savedMetric?.metric_name;
     const hasUnsavedChanges =
       !adhocMetric.equals(propsAdhocMetric) ||
@@ -431,17 +422,9 @@ export default class AdhocMetricEditPopover extends 
React.PureComponent {
           <Tabs.TabPane
             key={EXPRESSION_TYPES.SQL}
             tab={
-              extra.disallow_adhoc_metrics ||
-              this.props.datasource?.type === 'druid' ? (
+              extra.disallow_adhoc_metrics  ? (
                 <Tooltip
-                  title={
-                    this.props.datasource?.type === 'druid'
-                      ? t(
-                          'Custom SQL ad-hoc metrics are not available for the 
native Druid connector',
-                        )
-                      : t(
-                          'Custom SQL ad-hoc metrics are not enabled for this 
dataset',
-                        )
+                  title={t('Custom SQL ad-hoc metrics are not enabled for this 
dataset',)
                   }
                 >
                   {t('Custom SQL')}
@@ -452,8 +435,7 @@ export default class AdhocMetricEditPopover extends 
React.PureComponent {
             }
             data-test="adhoc-metric-edit-tab#custom"
             disabled={
-              extra.disallow_adhoc_metrics ||
-              this.props.datasource?.type === 'druid'
+              extra.disallow_adhoc_metrics
             }
           >
             <SQLEditor
diff --git a/superset/charts/schemas.py b/superset/charts/schemas.py
index 8a82e364be..e3ab15f7bb 100644
--- a/superset/charts/schemas.py
+++ b/superset/charts/schemas.py
@@ -854,6 +854,7 @@ class ChartDataExtrasSchema(Schema):
     having_druid = fields.List(
         fields.Nested(ChartDataFilterSchema),
         description="HAVING filters to be added to legacy Druid datasource 
queries.",
+        deprecated= True,
     )
     time_grain_sqla = fields.String(
         description="To what level of granularity should the temporal column 
be "
diff --git a/superset/common/query_object.py b/superset/common/query_object.py
index 40d37041b9..c36cb3f217 100644
--- a/superset/common/query_object.py
+++ b/superset/common/query_object.py
@@ -61,6 +61,7 @@ class DeprecatedField(NamedTuple):
     new_name: str
 
 
+# Since we are getting rid of druid we are not replacing it with a new field. 
Should this be updated?
 DEPRECATED_FIELDS = (
     DeprecatedField(old_name="granularity_sqla", new_name="granularity"),
     DeprecatedField(old_name="groupby", new_name="columns"),
diff --git a/superset/utils/core.py b/superset/utils/core.py
index 6c90837959..d070a4f1ca 100644
--- a/superset/utils/core.py
+++ b/superset/utils/core.py
@@ -1737,6 +1737,8 @@ def get_time_filter_status(
             )
 
     if ExtraFiltersTimeColumnType.TIME_ORIGIN in applied_time_extras:
+        # This seems like it is to do with the druid time series, which I 
think we 
+        # are still keeping mentions of. 
         if datasource.type == "druid":
             applied.append({"column": ExtraFiltersTimeColumnType.TIME_ORIGIN})
         else:
@@ -1748,6 +1750,7 @@ def get_time_filter_status(
             )
 
     if ExtraFiltersTimeColumnType.GRANULARITY in applied_time_extras:
+        # Same here
         if datasource.type == "druid":
             applied.append({"column": ExtraFiltersTimeColumnType.GRANULARITY})
         else:
diff --git a/superset/viz.py b/superset/viz.py
index e83e012777..b1a02337b0 100644
--- a/superset/viz.py
+++ b/superset/viz.py
@@ -399,7 +399,6 @@ class BaseViz:  # pylint: disable=too-many-public-methods
         extras = {
             "druid_time_origin": self.form_data.get("druid_time_origin", ""),
             "having": self.form_data.get("having", ""),
-            "having_druid": self.form_data.get("having_filters", []),
             "time_grain_sqla": self.form_data.get("time_grain_sqla"),
             "where": self.form_data.get("where", ""),
         }

Reply via email to