diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index dff741ac4e..6a0aa1167d 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -190,6 +190,11 @@ def is_standard(fieldname): @lru_cache def extract_fieldnames(field): + from frappe.database.schema import SPECIAL_CHAR_PATTERN + + if not SPECIAL_CHAR_PATTERN.findall(field): + return [field] + parser = Parser(f"select {field}, _frappe_dummy from _dummy") columns = [col for col in parser.columns if col != "_frappe_dummy"] diff --git a/frappe/tests/test_reportview.py b/frappe/tests/test_reportview.py index 7581dc42fb..98dc3a84e5 100644 --- a/frappe/tests/test_reportview.py +++ b/frappe/tests/test_reportview.py @@ -39,6 +39,7 @@ class TestReportview(FrappeTestCase): ) self.assertEqual(extract_fieldnames("owner")[0], "owner") + self.assertEqual(extract_fieldnames("from")[0], "from") self.assertEqual(extract_fieldnames("module")[0], "module") @@ -63,9 +64,7 @@ class TestReportview(FrappeTestCase): "tabAddress.name", ) - self.assertEqual( - extract_fieldnames("EXTRACT(MONTH FROM date_column) AS month")[0], "date_column" - ) + self.assertEqual(extract_fieldnames("EXTRACT(MONTH FROM date_column) AS month")[0], "date_column") self.assertEqual(extract_fieldnames("COUNT(*) AS count")[0], "*") @@ -89,6 +88,4 @@ class TestReportview(FrappeTestCase): self.assertEqual(extract_fieldnames("tablefield.fiedname")[0], "tablefield.fiedname") - self.assertEqual( - extract_fieldnames("`tabChild DocType`.`fiedname`")[0], "tabChild DocType.fiedname" - ) + self.assertEqual(extract_fieldnames("`tabChild DocType`.`fiedname`")[0], "tabChild DocType.fiedname")