diff options
| author | Jairo Llopis <yajo.sk8@gmail.com> | 2019-09-23 11:15:46 +0000 |
|---|---|---|
| committer | Jairo Llopis <yajo.sk8@gmail.com> | 2019-09-30 08:08:07 +0000 |
| commit | 974913c316a712dac2373e6e7401b0589207e5f7 (patch) | |
| tree | b6b82d2300cd5fdac4955c201e59ab5778dc49a7 /odoo | |
| parent | e06117bd85c6b39dd62d4979b0c1c437b92dbafa (diff) | |
[IMP] Support psycopg2.sql module
[`psycopg2` includes a submodule called `sql`][1] which provides more safety and comfort when dealing with raw SQL queries.
As of today, it works fine with Odoo unless SQL query logging is enabled.
This patch fixes that problem, allowing usage of that module.
[1]: http://initd.org/psycopg/docs/sql.html
closes odoo/odoo#37561
Signed-off-by: Christophe Simonis <chs@odoo.com>
Diffstat (limited to 'odoo')
| -rw-r--r-- | odoo/sql_db.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/odoo/sql_db.py b/odoo/sql_db.py index 1d1f74748a0..55c420f9d13 100644 --- a/odoo/sql_db.py +++ b/odoo/sql_db.py @@ -240,7 +240,7 @@ class Cursor(object): res = self._obj.execute(query, params) except Exception as e: if self._default_log_exceptions if log_exceptions is None else log_exceptions: - _logger.error("bad query: %s\nERROR: %s", self._obj.query or query, e) + _logger.error("bad query: %s\nERROR: %s", self._obj.query.decode() or query, e) raise # simple query count is always computed @@ -254,12 +254,13 @@ class Cursor(object): if self.sql_log: delay *= 1E6 - res_from = re_from.match(query.lower()) + query_lower = self._obj.query.decode().lower() + res_from = re_from.match(query_lower) if res_from: self.sql_from_log.setdefault(res_from.group(1), [0, 0]) self.sql_from_log[res_from.group(1)][0] += 1 self.sql_from_log[res_from.group(1)][1] += delay - res_into = re_into.match(query.lower()) + res_into = re_into.match(query_lower) if res_into: self.sql_into_log.setdefault(res_into.group(1), [0, 0]) self.sql_into_log[res_into.group(1)][0] += 1 |
