249
249
cursor.execute("DELETE FROM locked")
252
def get_package_locks(self, cursor):
253
"""Get all package locks."""
254
cursor.execute("SELECT name, relation, version FROM package_locks")
255
return [(row[0], row[1], row[2]) for row in cursor.fetchall()]
258
def add_package_locks(self, cursor, locks):
259
"""Add a list of package locks to the store.
261
@param locks: A C{list} of ternary tuples each one contains the
262
name, the relation and the version of the package lock to be added.
264
for name, relation, version in locks:
265
cursor.execute("REPLACE INTO package_locks VALUES (?, ?, ?)",
266
(name, relation or "", version or "",))
269
def remove_package_locks(self, cursor, locks):
270
"""Remove a list of package locks from the store.
272
@param locks: A C{list} of ternary tuples each one contains the name,
273
the relation and the version of the package lock to be removed.
275
for name, relation, version in locks:
276
cursor.execute("DELETE FROM package_locks WHERE name=? AND "
277
"relation=? AND version=?",
278
(name, relation or "", version or ""))
281
def clear_package_locks(self, cursor):
282
"""Remove all package locks."""
283
cursor.execute("DELETE FROM package_locks")
286
252
def add_hash_id_request(self, cursor, hashes):
287
253
hashes = list(hashes)
288
254
cursor.execute("INSERT INTO hash_id_request (hashes, timestamp)"
459
425
cursor = db.cursor()
461
cursor.execute("CREATE TABLE package_locks"
462
" (name TEXT NOT NULL, relation TEXT, version TEXT,"
463
" UNIQUE(name, relation, version))")
464
427
cursor.execute("CREATE TABLE locked"
465
428
" (id INTEGER PRIMARY KEY)")
466
429
cursor.execute("CREATE TABLE available"