From d070f880e2267dc563b9c3ea37614b1c05438397 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 14 Sep 2016 15:36:25 +0530 Subject: [PATCH 1/2] Validate length of fieldname --- frappe/model/db_schema.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frappe/model/db_schema.py b/frappe/model/db_schema.py index 3f62859487..8be6c7c3aa 100644 --- a/frappe/model/db_schema.py +++ b/frappe/model/db_schema.py @@ -102,6 +102,9 @@ class DbTable: columns += self.columns.values() for col in columns: + if len(col.fieldname) >= 64: + frappe.throw(_("Fieldname is limited to 64 characters")) + if col.fieldtype in type_map and type_map[col.fieldtype][0]=="varchar": # validate length range @@ -112,7 +115,7 @@ class DbTable: try: # check for truncation max_length = frappe.db.sql("""select max(char_length(`{fieldname}`)) from `tab{doctype}`"""\ - .format(fieldname=col.fieldname, doctype=self.doctype)) + .format(fieldname=col.fieldname, doctype=self.doctype), debug=1) except MySQLdb.OperationalError, e: if e.args[0]==1054: From 53838827547386dc4e0d8efae075ad09c31c4268 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 20 Sep 2016 11:20:57 +0530 Subject: [PATCH 2/2] Update db_schema.py --- frappe/model/db_schema.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/model/db_schema.py b/frappe/model/db_schema.py index 8be6c7c3aa..ccb6f0dc43 100644 --- a/frappe/model/db_schema.py +++ b/frappe/model/db_schema.py @@ -115,7 +115,7 @@ class DbTable: try: # check for truncation max_length = frappe.db.sql("""select max(char_length(`{fieldname}`)) from `tab{doctype}`"""\ - .format(fieldname=col.fieldname, doctype=self.doctype), debug=1) + .format(fieldname=col.fieldname, doctype=self.doctype)) except MySQLdb.OperationalError, e: if e.args[0]==1054: