Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/postgresql/storage.py
Show First 20 Lines • Show All 1,240 Lines • ▼ Show 20 Lines | ) -> None: | ||||
self.journal_writer.raw_extrinsic_metadata_add(metadata) | self.journal_writer.raw_extrinsic_metadata_add(metadata) | ||||
counter = Counter[MetadataTargetType]() | counter = Counter[MetadataTargetType]() | ||||
for metadata_entry in metadata: | for metadata_entry in metadata: | ||||
authority_id = self._get_authority_id(metadata_entry.authority, db, cur) | authority_id = self._get_authority_id(metadata_entry.authority, db, cur) | ||||
fetcher_id = self._get_fetcher_id(metadata_entry.fetcher, db, cur) | fetcher_id = self._get_fetcher_id(metadata_entry.fetcher, db, cur) | ||||
db.raw_extrinsic_metadata_add( | db.raw_extrinsic_metadata_add( | ||||
type=metadata_entry.type.value, | type=metadata_entry.type.value, | ||||
id=str(metadata_entry.target), | target=str(metadata_entry.target), | ||||
discovery_date=metadata_entry.discovery_date, | discovery_date=metadata_entry.discovery_date, | ||||
authority_id=authority_id, | authority_id=authority_id, | ||||
fetcher_id=fetcher_id, | fetcher_id=fetcher_id, | ||||
format=metadata_entry.format, | format=metadata_entry.format, | ||||
metadata=metadata_entry.metadata, | metadata=metadata_entry.metadata, | ||||
origin=metadata_entry.origin, | origin=metadata_entry.origin, | ||||
visit=metadata_entry.visit, | visit=metadata_entry.visit, | ||||
snapshot=map_optional(str, metadata_entry.snapshot), | snapshot=map_optional(str, metadata_entry.snapshot), | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | ) -> PagedResult[RawExtrinsicMetadata]: | ||||
return PagedResult(next_page_token=None, results=[],) | return PagedResult(next_page_token=None, results=[],) | ||||
rows = db.raw_extrinsic_metadata_get( | rows = db.raw_extrinsic_metadata_get( | ||||
type, str(id), authority_id, after_time, after_fetcher, limit + 1, cur, | type, str(id), authority_id, after_time, after_fetcher, limit + 1, cur, | ||||
) | ) | ||||
rows = [dict(zip(db.raw_extrinsic_metadata_get_cols, row)) for row in rows] | rows = [dict(zip(db.raw_extrinsic_metadata_get_cols, row)) for row in rows] | ||||
results = [] | results = [] | ||||
for row in rows: | for row in rows: | ||||
assert str(id) == row["raw_extrinsic_metadata.id"] | assert str(id) == row["raw_extrinsic_metadata.target"] | ||||
results.append(converters.db_to_raw_extrinsic_metadata(row)) | results.append(converters.db_to_raw_extrinsic_metadata(row)) | ||||
if len(results) > limit: | if len(results) > limit: | ||||
results.pop() | results.pop() | ||||
assert len(results) == limit | assert len(results) == limit | ||||
last_returned_row = rows[-2] # rows[-1] corresponds to the popped result | last_returned_row = rows[-2] # rows[-1] corresponds to the popped result | ||||
next_page_token: Optional[str] = base64.b64encode( | next_page_token: Optional[str] = base64.b64encode( | ||||
msgpack_dumps( | msgpack_dumps( | ||||
▲ Show 20 Lines • Show All 94 Lines • Show Last 20 Lines |