Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/cql.py
Show First 20 Lines • Show All 653 Lines • ▼ Show 20 Lines | def origin_generate_unique_visit_id(self, origin_url: str, *, statement) -> int: | ||||
return next_id | return next_id | ||||
########################## | ########################## | ||||
# 'origin_visit' table | # 'origin_visit' table | ||||
########################## | ########################## | ||||
@_prepared_select_statement( | @_prepared_select_statement( | ||||
OriginVisitRow, "WHERE origin = ? AND visit > ? ORDER BY visit ASC" | |||||
) | |||||
def _origin_visit_get_pagination_asc_no_limit( | |||||
self, origin_url: str, last_visit: int, *, statement | |||||
) -> ResultSet: | |||||
return self._execute_with_retries(statement, [origin_url, last_visit]) | |||||
@_prepared_select_statement( | |||||
OriginVisitRow, "WHERE origin = ? AND visit > ? ORDER BY visit ASC LIMIT ?" | OriginVisitRow, "WHERE origin = ? AND visit > ? ORDER BY visit ASC LIMIT ?" | ||||
) | ) | ||||
def _origin_visit_get_pagination_asc_limit( | def _origin_visit_get_pagination_asc( | ||||
self, origin_url: str, last_visit: int, limit: int, *, statement | self, origin_url: str, last_visit: int, limit: int, *, statement | ||||
) -> ResultSet: | ) -> ResultSet: | ||||
return self._execute_with_retries(statement, [origin_url, last_visit, limit]) | return self._execute_with_retries(statement, [origin_url, last_visit, limit]) | ||||
@_prepared_select_statement( | @_prepared_select_statement( | ||||
OriginVisitRow, "WHERE origin = ? AND visit < ? ORDER BY visit DESC" | |||||
) | |||||
def _origin_visit_get_pagination_desc_no_limit( | |||||
self, origin_url: str, last_visit: int, *, statement | |||||
) -> ResultSet: | |||||
return self._execute_with_retries(statement, [origin_url, last_visit]) | |||||
@_prepared_select_statement( | |||||
OriginVisitRow, "WHERE origin = ? AND visit < ? ORDER BY visit DESC LIMIT ?" | OriginVisitRow, "WHERE origin = ? AND visit < ? ORDER BY visit DESC LIMIT ?" | ||||
) | ) | ||||
def _origin_visit_get_pagination_desc_limit( | def _origin_visit_get_pagination_desc( | ||||
self, origin_url: str, last_visit: int, limit: int, *, statement | self, origin_url: str, last_visit: int, limit: int, *, statement | ||||
) -> ResultSet: | ) -> ResultSet: | ||||
return self._execute_with_retries(statement, [origin_url, last_visit, limit]) | return self._execute_with_retries(statement, [origin_url, last_visit, limit]) | ||||
@_prepared_select_statement( | @_prepared_select_statement( | ||||
OriginVisitRow, "WHERE origin = ? ORDER BY visit ASC LIMIT ?" | OriginVisitRow, "WHERE origin = ? ORDER BY visit ASC LIMIT ?" | ||||
) | ) | ||||
def _origin_visit_get_no_pagination_asc_limit( | def _origin_visit_get_no_pagination_asc( | ||||
self, origin_url: str, limit: int, *, statement | self, origin_url: str, limit: int, *, statement | ||||
) -> ResultSet: | ) -> ResultSet: | ||||
return self._execute_with_retries(statement, [origin_url, limit]) | return self._execute_with_retries(statement, [origin_url, limit]) | ||||
@_prepared_select_statement(OriginVisitRow, "WHERE origin = ? ORDER BY visit ASC ") | |||||
def _origin_visit_get_no_pagination_asc_no_limit( | |||||
self, origin_url: str, *, statement | |||||
) -> ResultSet: | |||||
return self._execute_with_retries(statement, [origin_url]) | |||||
@_prepared_select_statement(OriginVisitRow, "WHERE origin = ? ORDER BY visit DESC") | |||||
def _origin_visit_get_no_pagination_desc_no_limit( | |||||
self, origin_url: str, *, statement | |||||
) -> ResultSet: | |||||
return self._execute_with_retries(statement, [origin_url]) | |||||
@_prepared_select_statement( | @_prepared_select_statement( | ||||
OriginVisitRow, "WHERE origin = ? ORDER BY visit DESC LIMIT ?" | OriginVisitRow, "WHERE origin = ? ORDER BY visit DESC LIMIT ?" | ||||
) | ) | ||||
def _origin_visit_get_no_pagination_desc_limit( | def _origin_visit_get_no_pagination_desc( | ||||
self, origin_url: str, limit: int, *, statement | self, origin_url: str, limit: int, *, statement | ||||
) -> ResultSet: | ) -> ResultSet: | ||||
return self._execute_with_retries(statement, [origin_url, limit]) | return self._execute_with_retries(statement, [origin_url, limit]) | ||||
def origin_visit_get( | def origin_visit_get( | ||||
self, | self, origin_url: str, last_visit: Optional[int], limit: int, order: ListOrder, | ||||
origin_url: str, | |||||
last_visit: Optional[int], | |||||
limit: Optional[int], | |||||
order: ListOrder, | |||||
) -> Iterable[OriginVisitRow]: | ) -> Iterable[OriginVisitRow]: | ||||
args: List[Any] = [origin_url] | args: List[Any] = [origin_url] | ||||
if last_visit is not None: | if last_visit is not None: | ||||
page_name = "pagination" | page_name = "pagination" | ||||
args.append(last_visit) | args.append(last_visit) | ||||
else: | else: | ||||
page_name = "no_pagination" | page_name = "no_pagination" | ||||
if limit is not None: | |||||
limit_name = "limit" | |||||
args.append(limit) | args.append(limit) | ||||
else: | |||||
limit_name = "no_limit" | |||||
method_name = f"_origin_visit_get_{page_name}_{order.value}_{limit_name}" | method_name = f"_origin_visit_get_{page_name}_{order.value}" | ||||
origin_visit_get_method = getattr(self, method_name) | origin_visit_get_method = getattr(self, method_name) | ||||
return map(OriginVisitRow.from_dict, origin_visit_get_method(*args)) | return map(OriginVisitRow.from_dict, origin_visit_get_method(*args)) | ||||
@_prepared_insert_statement(OriginVisitRow) | @_prepared_insert_statement(OriginVisitRow) | ||||
def origin_visit_add_one(self, visit: OriginVisitRow, *, statement) -> None: | def origin_visit_add_one(self, visit: OriginVisitRow, *, statement) -> None: | ||||
self._add_one(statement, visit) | self._add_one(statement, visit) | ||||
@_prepared_select_statement(OriginVisitRow, "WHERE origin = ? AND visit = ?") | @_prepared_select_statement(OriginVisitRow, "WHERE origin = ? AND visit = ?") | ||||
▲ Show 20 Lines • Show All 262 Lines • Show Last 20 Lines |