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): | |||
19 | def __init__(self, conn, table, nohist): | 19 | def __init__(self, conn, table, nohist): |
20 | self.conn = conn | 20 | self.conn = conn |
21 | self.nohist = nohist | 21 | self.nohist = nohist |
22 | self.dirty = False | ||
22 | if nohist: | 23 | if nohist: |
23 | self.table = "%s_nohist" % table | 24 | self.table = "%s_nohist" % table |
24 | else: | 25 | else: |
@@ -47,6 +48,11 @@ class PRTable(object): | |||
47 | self.conn.commit() | 48 | self.conn.commit() |
48 | self._execute("BEGIN EXCLUSIVE TRANSACTION") | 49 | self._execute("BEGIN EXCLUSIVE TRANSACTION") |
49 | 50 | ||
51 | def sync_if_dirty(self): | ||
52 | if self.dirty: | ||
53 | self.sync() | ||
54 | self.dirty = False | ||
55 | |||
50 | def _getValueHist(self, version, pkgarch, checksum): | 56 | def _getValueHist(self, version, pkgarch, checksum): |
51 | data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, | 57 | data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, |
52 | (version, pkgarch, checksum)) | 58 | (version, pkgarch, checksum)) |
@@ -62,6 +68,8 @@ class PRTable(object): | |||
62 | except sqlite3.IntegrityError as exc: | 68 | except sqlite3.IntegrityError as exc: |
63 | logger.error(str(exc)) | 69 | logger.error(str(exc)) |
64 | 70 | ||
71 | self.dirty = True | ||
72 | |||
65 | data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, | 73 | data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, |
66 | (version, pkgarch, checksum)) | 74 | (version, pkgarch, checksum)) |
67 | row=data.fetchone() | 75 | row=data.fetchone() |
@@ -89,6 +97,8 @@ class PRTable(object): | |||
89 | logger.error(str(exc)) | 97 | logger.error(str(exc)) |
90 | self.conn.rollback() | 98 | self.conn.rollback() |
91 | 99 | ||
100 | self.dirty = True | ||
101 | |||
92 | data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, | 102 | data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, |
93 | (version, pkgarch, checksum)) | 103 | (version, pkgarch, checksum)) |
94 | row=data.fetchone() | 104 | row=data.fetchone() |
@@ -118,6 +128,8 @@ class PRTable(object): | |||
118 | except sqlite3.IntegrityError as exc: | 128 | except sqlite3.IntegrityError as exc: |
119 | logger.error(str(exc)) | 129 | logger.error(str(exc)) |
120 | 130 | ||
131 | self.dirty = True | ||
132 | |||
121 | data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, | 133 | data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table, |
122 | (version, pkgarch, checksum)) | 134 | (version, pkgarch, checksum)) |
123 | row = data.fetchone() | 135 | row = data.fetchone() |
@@ -139,6 +151,8 @@ class PRTable(object): | |||
139 | except sqlite3.IntegrityError as exc: | 151 | except sqlite3.IntegrityError as exc: |
140 | logger.error(str(exc)) | 152 | logger.error(str(exc)) |
141 | 153 | ||
154 | self.dirty = True | ||
155 | |||
142 | data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table, | 156 | data = self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=? AND value>=?;" % self.table, |
143 | (version,pkgarch,checksum,value)) | 157 | (version,pkgarch,checksum,value)) |
144 | row=data.fetchone() | 158 | row=data.fetchone() |