From ee03fc37704b637dd0e34a5497b555318e616011 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Thu, 22 Aug 2019 14:45:45 +0000 Subject: [PATCH] [FIX] sql_db: flush in savepoint, following odoo/odoo@9920f20e4c7753bc17bea71dea3a90f7de687196 closes odoo/odoo#35986 Signed-off-by: Raphael Collet (rco) --- odoo/sql_db.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/odoo/sql_db.py b/odoo/sql_db.py index ed5cf07884d..4618653efd5 100644 --- a/odoo/sql_db.py +++ b/odoo/sql_db.py @@ -413,10 +413,17 @@ class Cursor(object): def savepoint(self): """context manager entering in a new savepoint""" name = uuid.uuid1().hex + env = next((e for e in Environment.envs if e.cr is self), None) + if env is not None: + env['base'].flush() self.execute('SAVEPOINT "%s"' % name) try: yield + if env is not None: + env['base'].flush() except Exception: + if env is not None: + env.clear() self.execute('ROLLBACK TO SAVEPOINT "%s"' % name) raise else: