diff --git a/superset/utils.py b/superset/utils.py index 518a68fb1ab0..ad1e61b270eb 100644 --- a/superset/utils.py +++ b/superset/utils.py @@ -1016,3 +1016,7 @@ def get_username(): def MediumText(): return Text().with_variant(MEDIUMTEXT(), 'mysql') + + +def shortid(): + return '{}'.format(uuid.uuid4())[-12:] diff --git a/superset/views/core.py b/superset/views/core.py index f5d511042cac..7e2b4665178a 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -2407,6 +2407,8 @@ def sql_json_call(self, request): tmp_table_name, ) + client_id = request.form.get('client_id') or utils.shortid() + query = Query( database_id=int(database_id), limit=mydb.db_engine_spec.get_limit_from_sql(sql), @@ -2418,8 +2420,8 @@ def sql_json_call(self, request): status=QueryStatus.PENDING if async_ else QueryStatus.RUNNING, sql_editor_id=request.form.get('sql_editor_id'), tmp_table_name=tmp_table_name, - user_id=int(g.user.get_id()) if g.user and g.user.get_id() else None, - client_id=request.form.get('client_id'), + user_id=g.user.get_id() if g.user else None, + client_id=client_id, ) session.add(query) session.flush()