Projet

Général

Profil

0002-feeder-insert-data-inside-a-transaction-56039.patch

Benjamin Dauvergne, 07 août 2021 19:22

Télécharger (1,36 ko)

Voir les différences:

Subject: [PATCH 2/2] feeder: insert data inside a transaction (#56039)

 wcs_olap/feeder.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
wcs_olap/feeder.py
340 340
            self.logger.error('Failed to execute %r with vars %s, raised %s', sql, reprlib.repr(vars or []), e)
341 341
            raise
342 342

  
343
    @contextlib.contextmanager
344
    def atomic(self):
345
        self.ex('BEGIN')
346
        try:
347
            yield
348
            self.ex('COMMIT')
349
        except Exception:
350
            self.ex('ROLLBACK')
351
            raise
352

  
343 353
    def do_schema(self):
344 354
        self.ex('SET search_path = public')
345 355
        self.logger.debug('dropping schema %s', self.schema_temp)
......
1175 1185
                self.logger.info('feed formdef %s', self.formdef.slug)
1176 1186
                self.do_statuses()
1177 1187
                self.do_data_table()
1178
                self.do_data()
1188
                with self.atomic():
1189
                    self.do_data()
1179 1190
            finally:
1180 1191
                self.olap_feeder.ctx.pop()
1181
-