remove redundant query from sync_missing_blobs

This commit is contained in:
Jack Robison 2019-09-17 10:25:40 -04:00
parent 1aa2983216
commit e6c549c457
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2

View file

@ -370,22 +370,18 @@ class SQLiteStorage(SQLiteMixin):
def sync_missing_blobs(self, blob_files: typing.Set[str]) -> typing.Awaitable[typing.Set[str]]: def sync_missing_blobs(self, blob_files: typing.Set[str]) -> typing.Awaitable[typing.Set[str]]:
def _sync_blobs(transaction: sqlite3.Connection) -> typing.Set[str]: def _sync_blobs(transaction: sqlite3.Connection) -> typing.Set[str]:
to_update = [ finished_blob_hashes = tuple(
(blob_hash, ) blob_hash for (blob_hash, ) in transaction.execute(
for (blob_hash, ) in transaction.execute("select blob_hash from blob where status='finished'") "select blob_hash from blob where status='finished'"
if blob_hash not in blob_files ).fetchall()
] )
finished_blobs_set = set(finished_blob_hashes)
to_update_set = finished_blobs_set.difference(blob_files)
transaction.executemany( transaction.executemany(
"update blob set status='pending' where blob_hash=?", "update blob set status='pending' where blob_hash=?",
to_update ((blob_hash, ) for blob_hash in to_update_set)
) ).fetchall()
return { return blob_files.intersection(finished_blobs_set)
blob_hash
for blob_hash, in _batched_select(
transaction, "select blob_hash from blob where status='finished' and blob_hash in {}",
list(blob_files)
)
}
return self.db.run(_sync_blobs) return self.db.run(_sync_blobs)
# # # # # # # # # stream functions # # # # # # # # # # # # # # # # # # stream functions # # # # # # # # #