Add document deletion support to PGDocStatusStorage
This commit is contained in:
@@ -898,6 +898,35 @@ class PGDocStatusStorage(DocStatusStorage):
|
|||||||
# PG handles persistence automatically
|
# PG handles persistence automatically
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
async def delete(self, ids: list[str]) -> None:
|
||||||
|
"""Delete specific records from storage by their IDs
|
||||||
|
|
||||||
|
Args:
|
||||||
|
ids (list[str]): List of document IDs to be deleted from storage
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None
|
||||||
|
"""
|
||||||
|
if not ids:
|
||||||
|
return
|
||||||
|
|
||||||
|
table_name = namespace_to_table_name(self.namespace)
|
||||||
|
if not table_name:
|
||||||
|
logger.error(f"Unknown namespace for deletion: {self.namespace}")
|
||||||
|
return
|
||||||
|
|
||||||
|
delete_sql = f"DELETE FROM {table_name} WHERE workspace=$1 AND id = ANY($2)"
|
||||||
|
|
||||||
|
try:
|
||||||
|
await self.db.execute(
|
||||||
|
delete_sql, {"workspace": self.db.workspace, "ids": ids}
|
||||||
|
)
|
||||||
|
logger.debug(
|
||||||
|
f"Successfully deleted {len(ids)} records from {self.namespace}"
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error while deleting records from {self.namespace}: {e}")
|
||||||
|
|
||||||
async def upsert(self, data: dict[str, dict[str, Any]]) -> None:
|
async def upsert(self, data: dict[str, dict[str, Any]]) -> None:
|
||||||
"""Update or insert document status
|
"""Update or insert document status
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user