diff options
Diffstat (limited to 'bitbake/lib/prserv/db.py')
-rw-r--r-- | bitbake/lib/prserv/db.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/bitbake/lib/prserv/db.py b/bitbake/lib/prserv/db.py index 49f36da1ad..3bdc04692e 100644 --- a/bitbake/lib/prserv/db.py +++ b/bitbake/lib/prserv/db.py @@ -19,6 +19,7 @@ class PRTable(object): def __init__(self, conn, table, nohist): self.conn = conn self.nohist = nohist + self.dirty = False if nohist: self.table = "%s_nohist" % table else: @@ -47,6 +48,11 @@ class PRTable(object): self.conn.commit() self._execute("BEGIN EXCLUSIVE TRANSACTION") + def sync_if_dirty(self): + if self.dirty: + self.sync() + self.dirty = False + def _getValueHist(self, version, pkgarch, checksum): data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, (version, pkgarch, checksum)) @@ -62,6 +68,8 @@ class PRTable(object): except sqlite3.IntegrityError as exc: logger.error(str(exc)) + self.dirty = True + data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, (version, pkgarch, checksum)) row=data.fetchone() @@ -89,6 +97,8 @@ class PRTable(object): logger.error(str(exc)) self.conn.rollback() + self.dirty = True + data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, (version, pkgarch, checksum)) row=data.fetchone() @@ -118,6 +128,8 @@ class PRTable(object): except sqlite3.IntegrityError as exc: logger.error(str(exc)) + self.dirty = True + data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, (version, pkgarch, checksum)) row = data.fetchone() @@ -139,6 +151,8 @@ class PRTable(object): except sqlite3.IntegrityError as exc: logger.error(str(exc)) + self.dirty = True + data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table, (version,pkgarch,checksum,value)) row=data.fetchone() |