Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/cql.py
Show First 20 Lines • Show All 857 Lines • ▼ Show 20 Lines | ) -> Iterable[Tuple[int, OriginRow]]: | ||||
(row["tok"], OriginRow.from_dict(remove_keys(row, ("tok",)))) | (row["tok"], OriginRow.from_dict(remove_keys(row, ("tok",)))) | ||||
for row in self._execute_with_retries(statement, [start_token, limit]) | for row in self._execute_with_retries(statement, [start_token, limit]) | ||||
) | ) | ||||
@_prepared_select_statement(OriginRow) | @_prepared_select_statement(OriginRow) | ||||
def origin_iter_all(self, *, statement) -> Iterable[OriginRow]: | def origin_iter_all(self, *, statement) -> Iterable[OriginRow]: | ||||
return map(OriginRow.from_dict, self._execute_with_retries(statement, [])) | return map(OriginRow.from_dict, self._execute_with_retries(statement, [])) | ||||
@_prepared_statement( | |||||
f""" | |||||
UPDATE {OriginRow.TABLE} | |||||
SET next_visit_id=? | |||||
WHERE sha1 = ? IF next_visit_id<? | |||||
""" | |||||
) | |||||
def origin_bump_next_visit_id( | |||||
self, origin_url: str, visit_id: int, *, statement | |||||
) -> None: | |||||
origin_sha1 = hash_url(origin_url) | |||||
next_id = visit_id + 1 | |||||
self._execute_with_retries(statement, [next_id, origin_sha1, next_id]) | |||||
@_prepared_statement(f"SELECT next_visit_id FROM {OriginRow.TABLE} WHERE sha1 = ?") | @_prepared_statement(f"SELECT next_visit_id FROM {OriginRow.TABLE} WHERE sha1 = ?") | ||||
def _origin_get_next_visit_id(self, origin_sha1: bytes, *, statement) -> int: | def _origin_get_next_visit_id(self, origin_sha1: bytes, *, statement) -> int: | ||||
rows = list(self._execute_with_retries(statement, [origin_sha1])) | rows = list(self._execute_with_retries(statement, [origin_sha1])) | ||||
assert len(rows) == 1 # TODO: error handling | assert len(rows) == 1 # TODO: error handling | ||||
return rows[0]["next_visit_id"] | return rows[0]["next_visit_id"] | ||||
@_prepared_statement( | @_prepared_statement( | ||||
f""" | f""" | ||||
▲ Show 20 Lines • Show All 450 Lines • Show Last 20 Lines |