From 5eeeb5c62ea6a171b805e543e0fa1782dbabb266 Mon Sep 17 00:00:00 2001 From: iwakiriK Date: Thu, 24 Aug 2023 05:12:22 +0900 Subject: [PATCH] Fix: Cannot refresh if a query name contain control characters. (#5602) --- redash/handlers/query_results.py | 4 +++- requirements.txt | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/redash/handlers/query_results.py b/redash/handlers/query_results.py index 59ef9d88d4..bfc4371d08 100644 --- a/redash/handlers/query_results.py +++ b/redash/handlers/query_results.py @@ -1,6 +1,7 @@ import unicodedata from urllib.parse import quote +import regex from flask import make_response, request from flask_login import current_user from flask_restful import abort @@ -115,7 +116,8 @@ def run_query(query, parameters, data_source, query_id, should_apply_auto_limit, def get_download_filename(query_result, query, filetype): retrieved_at = query_result.retrieved_at.strftime("%Y_%m_%d") if query: - filename = to_filename(query.name) if query.name != "" else str(query.id) + query_name = regex.sub(r"\p{C}", "", query.name) + filename = to_filename(query_name) if query_name != "" else str(query.id) else: filename = str(query_result.id) return "{}_{}.{}".format(filename, retrieved_at, filetype) diff --git a/requirements.txt b/requirements.txt index 2dd6fb0fef..9c93603e4a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -41,6 +41,7 @@ python-dotenv==0.19.2 pytz>=2019.3 PyYAML==6.0.1 redis==4.4.4 +regex==2023.8.8 requests==2.31.0 RestrictedPython==6.1 rq==1.5.0