From 581d90ef927eb50cea7741fd8e18a1b07b197ec4 Mon Sep 17 00:00:00 2001 From: hughhhh Date: Tue, 29 Mar 2022 18:27:52 -0700 Subject: [PATCH 1/7] template for remove time_range_endpoints from query context --- ...0b36b94_rm_time_range_endpoints_from_qc.py | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py new file mode 100644 index 0000000000000..a3b152341ca77 --- /dev/null +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -0,0 +1,64 @@ +# 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. +"""rm_time_range_endpoints_from_qc + +Revision ID: 2ed890b36b94 +Revises: 58df9d617f14 +Create Date: 2022-03-29 18:03:48.977741 + +""" + +# revision identifiers, used by Alembic. +revision = "2ed890b36b94" +down_revision = "58df9d617f14" + +import json + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.dialects import postgresql +from sqlalchemy.ext.declarative import declarative_base + +from superset import db + +Base = declarative_base() + + +class MyModel(Base): + __tablename__ = "MyModel" + id = sa.Column(sa.Integer, primary_key=True) + queries = sa.Column(sa.Text) + + +def upgrade(): + bind = op.get_bind() + session = db.Session(bind=bind) + + for m in session.query(MyModel): + queries = json.loads(m.queries) + for q in queries: + extras = q.get("extras") + if extras: + extras.pop("time_range_endpoints", None) + m.queries = json.dumps(queries) + + session.commit() + session.close() + + +def downgrade(): + pass From d7f9d555627cf96ba5b31ca28b8e6ad206d585c5 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Tue, 29 Mar 2022 22:24:31 -0700 Subject: [PATCH 2/7] Update superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py Co-authored-by: Yongjie Zhao --- .../versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index a3b152341ca77..67d74e93d00ec 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -38,8 +38,8 @@ Base = declarative_base() -class MyModel(Base): - __tablename__ = "MyModel" +class Slice(Base): + __tablename__ = "slices" id = sa.Column(sa.Integer, primary_key=True) queries = sa.Column(sa.Text) From c3955b2472e599d686b51ec314c6a3fd43b85c63 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Tue, 29 Mar 2022 22:24:46 -0700 Subject: [PATCH 3/7] Update superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py Co-authored-by: Yongjie Zhao --- .../2ed890b36b94_rm_time_range_endpoints_from_qc.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index 67d74e93d00ec..bc89e62b98e28 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -47,14 +47,11 @@ class Slice(Base): def upgrade(): bind = op.get_bind() session = db.Session(bind=bind) - - for m in session.query(MyModel): - queries = json.loads(m.queries) - for q in queries: - extras = q.get("extras") - if extras: - extras.pop("time_range_endpoints", None) - m.queries = json.dumps(queries) + for slc in session.query(Slice): + queries = json.loads(slc.queries) + for query in queries: + query.get("extras", {}).pop("time_range_endpoints", None) + slc.queries = json.dumps(queries) session.commit() session.close() From 8bcacdee02ea48709d797b024c940ffc83059b4e Mon Sep 17 00:00:00 2001 From: hughhhh Date: Wed, 30 Mar 2022 10:11:49 -0700 Subject: [PATCH 4/7] fix reference --- .../versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index bc89e62b98e28..38f93ecea3329 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -48,7 +48,8 @@ def upgrade(): bind = op.get_bind() session = db.Session(bind=bind) for slc in session.query(Slice): - queries = json.loads(slc.queries) + query_context = json.loads(slc.query_context) + queries = query_context.get("queries") for query in queries: query.get("extras", {}).pop("time_range_endpoints", None) slc.queries = json.dumps(queries) From 98c73afd4bbeb68395f93bc69dc93dbf716fec7a Mon Sep 17 00:00:00 2001 From: hughhhh Date: Wed, 30 Mar 2022 10:22:24 -0700 Subject: [PATCH 5/7] fix column reference --- .../versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index 38f93ecea3329..2190562758700 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -41,7 +41,7 @@ class Slice(Base): __tablename__ = "slices" id = sa.Column(sa.Integer, primary_key=True) - queries = sa.Column(sa.Text) + query_context = sa.Column(sa.Text) def upgrade(): From 5e22f58c1a5b19fcfc869971b5304449a3b85a80 Mon Sep 17 00:00:00 2001 From: hughhhh Date: Wed, 30 Mar 2022 12:09:15 -0700 Subject: [PATCH 6/7] fix --- ...2ed890b36b94_rm_time_range_endpoints_from_qc.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index 2190562758700..22a4bed63b590 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -48,11 +48,15 @@ def upgrade(): bind = op.get_bind() session = db.Session(bind=bind) for slc in session.query(Slice): - query_context = json.loads(slc.query_context) - queries = query_context.get("queries") - for query in queries: - query.get("extras", {}).pop("time_range_endpoints", None) - slc.queries = json.dumps(queries) + if slc.query_context: + try: + query_context = json.loads(slc.query_context) + queries = query_context.get("queries") + for query in queries: + query.get("extras", {}).pop("time_range_endpoints", None) + slc.queries = json.dumps(queries) + except json.decoder.JSONDecodeError: + pass session.commit() session.close() From a2159fe19332d8625c41b773d3d6d4cc7dbb82d8 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Wed, 30 Mar 2022 12:17:25 -0700 Subject: [PATCH 7/7] Update superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py Co-authored-by: Beto Dealmeida --- .../2ed890b36b94_rm_time_range_endpoints_from_qc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py index 22a4bed63b590..34b833dabd200 100644 --- a/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py +++ b/superset/migrations/versions/2ed890b36b94_rm_time_range_endpoints_from_qc.py @@ -51,12 +51,12 @@ def upgrade(): if slc.query_context: try: query_context = json.loads(slc.query_context) - queries = query_context.get("queries") - for query in queries: - query.get("extras", {}).pop("time_range_endpoints", None) - slc.queries = json.dumps(queries) except json.decoder.JSONDecodeError: - pass + continue + queries = query_context.get("queries") + for query in queries: + query.get("extras", {}).pop("time_range_endpoints", None) + slc.queries = json.dumps(queries) session.commit() session.close()