fix: avoid parsing reserved keywords and simple strings
This commit is contained in:
parent
414b1beffd
commit
3facad0a25
2 changed files with 8 additions and 6 deletions
|
|
@ -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"]
|
||||
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue