diff --git a/superset/utils.py b/superset/utils.py index b1583084ebbc8..6bfbb34cfed67 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 2e4a8e8bc56f5..11fc06bc90dcb 100755 --- a/superset/views/core.py +++ b/superset/views/core.py @@ -2395,6 +2395,8 @@ def sql_json(self): 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), @@ -2406,8 +2408,8 @@ def sql_json(self): 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()), - client_id=request.form.get('client_id'), + user_id=int(g.user.get_id()) if g.user and g.user.get_id() else None, + client_id=client_id, ) session.add(query) session.flush()