Prevent dbapi from nesting transactions for metadata

Fixes #10038.
This commit is contained in:
prculley 2017-07-29 21:03:17 +01:00 committed by Nick Hall
parent c7249b5ca9
commit 2d592fa521

View File

@ -224,23 +224,26 @@ class DBAPI(DbGeneric):
Lowlevel interface to the backend transaction. Lowlevel interface to the backend transaction.
Executes a db BEGIN; Executes a db BEGIN;
""" """
_LOG.debug(" DBAPI %s transaction begin", hex(id(self))) if self.transaction == None:
self.dbapi.begin() _LOG.debug(" DBAPI %s transaction begin", hex(id(self)))
self.dbapi.begin()
def _txn_commit(self): def _txn_commit(self):
""" """
Lowlevel interface to the backend transaction. Lowlevel interface to the backend transaction.
Executes a db END; Executes a db END;
""" """
_LOG.debug(" DBAPI %s transaction commit", hex(id(self))) if self.transaction == None:
self.dbapi.commit() _LOG.debug(" DBAPI %s transaction commit", hex(id(self)))
self.dbapi.commit()
def _txn_abort(self): def _txn_abort(self):
""" """
Lowlevel interface to the backend transaction. Lowlevel interface to the backend transaction.
Executes a db ROLLBACK; Executes a db ROLLBACK;
""" """
self.dbapi.rollback() if self.transaction == None:
self.dbapi.rollback()
def transaction_begin(self, transaction): def transaction_begin(self, transaction):
""" """