From 1b9d0fa48136c7b8cdc8ffddd745bb50146ad42a Mon Sep 17 00:00:00 2001 From: Daniel Dico Date: Mon, 23 Jan 2017 11:28:16 -0500 Subject: [PATCH] [FIX] anonymization: escape table and field name to avoid postgresql reserved keywords. fields like fetchmail_server.user or mail_mail.references uses reserves keywords and must be escaped Closes #15177 --- addons/anonymization/anonymization.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py index 728745354b7..eecea7bcdde 100644 --- a/addons/anonymization/anonymization.py +++ b/addons/anonymization/anonymization.py @@ -399,7 +399,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory): table_name = self.pool[model_name]._table # get the current value - sql = "select id, %s from %s" % (field_name, table_name) + sql = "select id, \"%s\" from \"%s\"" % (field_name, table_name) cr.execute(sql) records = cr.dictfetchall() for record in records: @@ -436,7 +436,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory): if anonymized_value is None: self._raise_after_history_update(cr, uid, history_id, _('Error !'), _("Anonymized value can not be empty.")) - sql = "update %(table)s set %(field)s = %%(anonymized_value)s where id = %%(id)s" % { + sql = "update \"%(table)s\" set \"%(field)s\" = %%(anonymized_value)s where id = %%(id)s" % { 'table': table_name, 'field': field_name, }