Changeset 995 for trunk/pgdb.py


Ignore:
Timestamp:
Apr 25, 2019, 10:10:20 AM (7 months ago)
Author:
cito
Message:

Support autocommit attribute on pgdb connections

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/pgdb.py

    r989 r995  
    10481048        sql = "BEGIN"
    10491049        try:
    1050             if not self._dbcnx._tnx:
     1050            if not self._dbcnx._tnx and not self._dbcnx.autocommit:
    10511051                try:
    10521052                    self._src.execute(sql)
     
    10551055                except Exception:
    10561056                    raise _op_error("Can't start transaction")
    1057                 self._dbcnx._tnx = True
     1057                else:
     1058                    self._dbcnx._tnx = True
    10581059            for parameters in seq_of_parameters:
    10591060                sql = operation
     
    14641465        self.type_cache = TypeCache(cnx)
    14651466        self.cursor_type = Cursor
     1467        self.autocommit = False
    14661468        try:
    14671469            self._cnx.source()
     
    14731475
    14741476        The runtime context can be used for running transactions.
     1477
     1478        This also starts a transaction in autocommit mode.
    14751479        """
     1480        if self.autocommit:
     1481            try:
     1482                self._cnx.source().execute("BEGIN")
     1483            except DatabaseError:
     1484                raise  # database provides error message
     1485            except Exception:
     1486                raise _op_error("Can't start transaction")
     1487            else:
     1488                self._tnx = True
    14761489        return self
    14771490
     
    15151528                    self._cnx.source().execute("COMMIT")
    15161529                except DatabaseError:
    1517                     raise
     1530                    raise  # database provides error message
    15181531                except Exception:
    1519                     raise _op_error("Can't commit")
     1532                    raise _op_error("Can't commit transaction")
    15201533        else:
    15211534            raise _op_error("Connection has been closed")
     
    15291542                    self._cnx.source().execute("ROLLBACK")
    15301543                except DatabaseError:
    1531                     raise
     1544                    raise  # database provides error message
    15321545                except Exception:
    1533                     raise _op_error("Can't rollback")
     1546                    raise _op_error("Can't rollback transaction")
    15341547        else:
    15351548            raise _op_error("Connection has been closed")
Note: See TracChangeset for help on using the changeset viewer.