This is an automated email from the ASF dual-hosted git repository.
johnbodley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push:
new 7bfa24d [fix] Re-cleanup legacy filters (#8523)
7bfa24d is described below
commit 7bfa24d0daa30a0c80e4c545bb641e6968ca0fe5
Author: John Bodley <[email protected]>
AuthorDate: Tue Nov 12 12:29:00 2019 -0800
[fix] Re-cleanup legacy filters (#8523)
---
superset/examples/birth_names.py | 1 -
superset/examples/country_map.py | 1 -
superset/examples/deck.py | 21 ------
superset/examples/energy.py | 10 +--
superset/examples/long_lat.py | 1 -
superset/examples/multiformat_time_series.py | 1 -
superset/examples/random_time_series.py | 1 -
superset/examples/unicode_test_data.py | 1 -
superset/examples/world_bank.py | 12 ++--
...127d0d1d_reconvert_legacy_filters_into_adhoc.py | 76 ++++++++++++++++++++++
10 files changed, 85 insertions(+), 40 deletions(-)
diff --git a/superset/examples/birth_names.py b/superset/examples/birth_names.py
index ec79dd7..b9142db 100644
--- a/superset/examples/birth_names.py
+++ b/superset/examples/birth_names.py
@@ -126,7 +126,6 @@ def load_birth_names(only_metadata=False, force=False):
"since": "100 years ago",
"until": "now",
"viz_type": "table",
- "where": "",
"markup_type": "markdown",
}
diff --git a/superset/examples/country_map.py b/superset/examples/country_map.py
index d18b512..7876da1 100644
--- a/superset/examples/country_map.py
+++ b/superset/examples/country_map.py
@@ -90,7 +90,6 @@ def load_country_map_data(only_metadata=False, force=False):
"granularity_sqla": "",
"since": "",
"until": "",
- "where": "",
"viz_type": "country_map",
"entity": "DEPT_ID",
"metric": {
diff --git a/superset/examples/deck.py b/superset/examples/deck.py
index 7b80e56..2628700 100644
--- a/superset/examples/deck.py
+++ b/superset/examples/deck.py
@@ -173,10 +173,8 @@ def load_deck_dash():
"spatial": {"type": "latlong", "lonCol": "LON", "latCol": "LAT"},
"color_picker": COLOR_RED,
"datasource": "5__table",
- "filters": [],
"granularity_sqla": None,
"groupby": [],
- "having": "",
"mapbox_style": "mapbox://styles/mapbox/light-v9",
"multiplier": 10,
"point_radius_fixed": {"type": "metric", "value": "count"},
@@ -195,7 +193,6 @@ def load_deck_dash():
"zoom": 12.729132798697304,
},
"viz_type": "deck_scatter",
- "where": "",
}
print("Creating Scatterplot slice")
@@ -211,7 +208,6 @@ def load_deck_dash():
slice_data = {
"point_unit": "square_m",
- "filters": [],
"row_limit": 5000,
"spatial": {"type": "latlong", "lonCol": "LON", "latCol": "LAT"},
"mapbox_style": "mapbox://styles/mapbox/dark-v9",
@@ -222,8 +218,6 @@ def load_deck_dash():
"point_radius": "Auto",
"color_picker": {"a": 1, "r": 14, "b": 0, "g": 255},
"grid_size": 20,
- "where": "",
- "having": "",
"viewport": {
"zoom": 14.161641703941438,
"longitude": -122.41827069521386,
@@ -249,7 +243,6 @@ def load_deck_dash():
slice_data = {
"spatial": {"type": "latlong", "lonCol": "LON", "latCol": "LAT"},
- "filters": [],
"row_limit": 5000,
"mapbox_style": "mapbox://styles/mapbox/streets-v9",
"granularity_sqla": None,
@@ -261,7 +254,6 @@ def load_deck_dash():
"color_picker": {"a": 1, "r": 14, "b": 0, "g": 255},
"grid_size": 40,
"extruded": True,
- "having": "",
"viewport": {
"latitude": 37.789795085160335,
"pitch": 54.08961642447763,
@@ -269,7 +261,6 @@ def load_deck_dash():
"longitude": -122.40632230075536,
"bearing": -2.3984797349335167,
},
- "where": "",
"point_radius_fixed": {"type": "fix", "value": 2000},
"datasource": "5__table",
"time_grain_sqla": None,
@@ -288,7 +279,6 @@ def load_deck_dash():
slice_data = {
"spatial": {"type": "latlong", "lonCol": "LON", "latCol": "LAT"},
- "filters": [],
"row_limit": 5000,
"mapbox_style": "mapbox://styles/mapbox/satellite-streets-v9",
"granularity_sqla": None,
@@ -300,7 +290,6 @@ def load_deck_dash():
"color_picker": {"a": 1, "r": 14, "b": 0, "g": 255},
"grid_size": 120,
"extruded": True,
- "having": "",
"viewport": {
"longitude": -122.42066918995666,
"bearing": 155.80099696026355,
@@ -308,7 +297,6 @@ def load_deck_dash():
"latitude": 37.7942314882596,
"pitch": 53.470800300695146,
},
- "where": "",
"point_radius_fixed": {"type": "fix", "value": 2000},
"datasource": "5__table",
"time_grain_sqla": None,
@@ -403,9 +391,6 @@ def load_deck_dash():
"js_onclick_href": "",
"legend_format": ".1s",
"legend_position": "tr",
- "where": "",
- "having": "",
- "filters": [],
}
print("Creating Polygon slice")
@@ -456,9 +441,6 @@ def load_deck_dash():
},
"color_picker": {"r": 0, "g": 122, "b": 135, "a": 1},
"stroke_width": 1,
- "where": "",
- "having": "",
- "filters": [],
}
print("Creating Arc slice")
@@ -508,9 +490,6 @@ def load_deck_dash():
"}));",
"js_tooltip": "",
"js_onclick_href": "",
- "where": "",
- "having": "",
- "filters": [],
}
print("Creating Path slice")
diff --git a/superset/examples/energy.py b/superset/examples/energy.py
index 49c15d8..359828b 100644
--- a/superset/examples/energy.py
+++ b/superset/examples/energy.py
@@ -77,12 +77,10 @@ def load_energy(only_metadata=False, force=False):
"source",
"target"
],
- "having": "",
"metric": "sum__value",
"row_limit": "5000",
"slice_name": "Energy Sankey",
- "viz_type": "sankey",
- "where": ""
+ "viz_type": "sankey"
}
"""
),
@@ -104,13 +102,11 @@ def load_energy(only_metadata=False, force=False):
"source",
"target"
],
- "having": "",
"link_length": "200",
"metric": "sum__value",
"row_limit": "5000",
"slice_name": "Force",
- "viz_type": "directed_force",
- "where": ""
+ "viz_type": "directed_force"
}
"""
),
@@ -130,13 +126,11 @@ def load_energy(only_metadata=False, force=False):
"all_columns_y": "target",
"canvas_image_rendering": "pixelated",
"collapsed_fieldsets": "",
- "having": "",
"linear_color_scheme": "blue_white_yellow",
"metric": "sum__value",
"normalize_across": "heatmap",
"slice_name": "Heatmap",
"viz_type": "heatmap",
- "where": "",
"xscale_interval": "1",
"yscale_interval": "1"
}
diff --git a/superset/examples/long_lat.py b/superset/examples/long_lat.py
index 40ddf35..4e8178c 100644
--- a/superset/examples/long_lat.py
+++ b/superset/examples/long_lat.py
@@ -96,7 +96,6 @@ def load_long_lat_data(only_metadata=False, force=False):
"granularity_sqla": "day",
"since": "2014-01-01",
"until": "now",
- "where": "",
"viz_type": "mapbox",
"all_columns_x": "LON",
"all_columns_y": "LAT",
diff --git a/superset/examples/multiformat_time_series.py
b/superset/examples/multiformat_time_series.py
index 84ac93e..8c62c46 100644
--- a/superset/examples/multiformat_time_series.py
+++ b/superset/examples/multiformat_time_series.py
@@ -98,7 +98,6 @@ def load_multiformat_time_series(only_metadata=False,
force=False):
"row_limit": config["ROW_LIMIT"],
"since": "2015",
"until": "2016",
- "where": "",
"viz_type": "cal_heatmap",
"domain_granularity": "month",
"subdomain_granularity": "day",
diff --git a/superset/examples/random_time_series.py
b/superset/examples/random_time_series.py
index eb1e827..b12c44a 100644
--- a/superset/examples/random_time_series.py
+++ b/superset/examples/random_time_series.py
@@ -62,7 +62,6 @@ def load_random_time_series_data(only_metadata=False,
force=False):
"since": "1 year ago",
"until": "now",
"metric": "count",
- "where": "",
"viz_type": "cal_heatmap",
"domain_granularity": "month",
"subdomain_granularity": "day",
diff --git a/superset/examples/unicode_test_data.py
b/superset/examples/unicode_test_data.py
index 14e6918..aed109c 100644
--- a/superset/examples/unicode_test_data.py
+++ b/superset/examples/unicode_test_data.py
@@ -90,7 +90,6 @@ def load_unicode_test_data(only_metadata=False, force=False):
"row_limit": config["ROW_LIMIT"],
"since": "100 years ago",
"until": "now",
- "where": "",
"viz_type": "word_cloud",
"size_from": "10",
"series": "short_phrase",
diff --git a/superset/examples/world_bank.py b/superset/examples/world_bank.py
index 8c1e11a..2a4b607 100644
--- a/superset/examples/world_bank.py
+++ b/superset/examples/world_bank.py
@@ -108,7 +108,6 @@ def load_world_bank_health_n_pop(only_metadata=False,
force=False):
"since": "2014-01-01",
"until": "2014-01-02",
"time_range": "2014-01-01 : 2014-01-02",
- "where": "",
"markup_type": "markdown",
"country_fieldtype": "cca3",
"secondary_metric": {
@@ -226,10 +225,12 @@ def load_world_bank_health_n_pop(only_metadata=False,
force=False):
y="sum__SP_DYN_LE00_IN",
size="sum__SP_POP_TOTL",
max_bubble_size="50",
- filters=[
+ adhoc_filters=[
{
- "col": "country_code",
- "val": [
+ "clause": "WHERE",
+ "expressionType": "SIMPLE",
+ "filterOptionName": "2745eae5",
+ "comparator": [
"TCA",
"MNP",
"DMA",
@@ -245,7 +246,8 @@ def load_world_bank_health_n_pop(only_metadata=False,
force=False):
"AMA",
"PLW",
],
- "op": "not in",
+ "operator": "not in",
+ "subject": "country_code",
}
],
),
diff --git
a/superset/migrations/versions/78ee127d0d1d_reconvert_legacy_filters_into_adhoc.py
b/superset/migrations/versions/78ee127d0d1d_reconvert_legacy_filters_into_adhoc.py
new file mode 100644
index 0000000..1d0690c
--- /dev/null
+++
b/superset/migrations/versions/78ee127d0d1d_reconvert_legacy_filters_into_adhoc.py
@@ -0,0 +1,76 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+"""reconvert legacy filters into adhoc
+
+Revision ID: 78ee127d0d1d
+Revises: c2acd2cf3df2
+Create Date: 2019-11-06 15:23:26.497876
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = "78ee127d0d1d"
+down_revision = "c2acd2cf3df2"
+
+import copy
+import json
+import logging
+import uuid
+from collections import defaultdict
+
+from alembic import op
+from sqlalchemy import Column, Integer, Text
+from sqlalchemy.ext.declarative import declarative_base
+
+from superset import db
+from superset.utils.core import (
+ convert_legacy_filters_into_adhoc,
+ split_adhoc_filters_into_base_filters,
+)
+
+Base = declarative_base()
+
+
+class Slice(Base):
+ __tablename__ = "slices"
+
+ id = Column(Integer, primary_key=True)
+ params = Column(Text)
+
+
+def upgrade():
+ bind = op.get_bind()
+ session = db.Session(bind=bind)
+
+ for slc in session.query(Slice).all():
+ if slc.params:
+ try:
+ source = json.loads(slc.params)
+ target = copy.deepcopy(source)
+ convert_legacy_filters_into_adhoc(target)
+
+ if source != target:
+ slc.params = json.dumps(target, sort_keys=True)
+ except Exception as ex:
+ logging.warn(ex)
+
+ session.commit()
+ session.close()
+
+
+def downgrade():
+ pass