add batch delete capabilities (#813)
* add batch delete capabilities * use session for delete queries
This commit is contained in:
parent
3ad4ea2ea0
commit
0c01417e1f
4 changed files with 16 additions and 11 deletions
|
|
@ -118,7 +118,7 @@ class Node(BaseModel, ABC):
|
|||
return False
|
||||
|
||||
@classmethod
|
||||
async def delete_by_group_id(cls, driver: GraphDriver, group_id: str):
|
||||
async def delete_by_group_id(cls, driver: GraphDriver, group_id: str, batch_size: int = 100):
|
||||
if driver.provider == GraphProvider.FALKORDB:
|
||||
for label in ['Entity', 'Episodic', 'Community']:
|
||||
await driver.execute_query(
|
||||
|
|
@ -129,13 +129,18 @@ class Node(BaseModel, ABC):
|
|||
group_id=group_id,
|
||||
)
|
||||
else:
|
||||
await driver.execute_query(
|
||||
"""
|
||||
MATCH (n:Entity|Episodic|Community {group_id: $group_id})
|
||||
DETACH DELETE n
|
||||
""",
|
||||
group_id=group_id,
|
||||
)
|
||||
async with driver.session() as session:
|
||||
await session.run(
|
||||
"""
|
||||
MATCH (n:Entity|Episodic|Community {group_id: $group_id})
|
||||
CALL {
|
||||
WITH n
|
||||
DETACH DELETE n
|
||||
} IN TRANSACTIONS OF $batch_size ROWS
|
||||
""",
|
||||
group_id=group_id,
|
||||
batch_size=batch_size,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def get_by_uuid(cls, driver: GraphDriver, uuid: str): ...
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class ComparisonOperator(Enum):
|
|||
|
||||
|
||||
class DateFilter(BaseModel):
|
||||
date: datetime = Field(description='A datetime to filter on')
|
||||
date: datetime | None = Field(description='A datetime to filter on')
|
||||
comparison_operator: ComparisonOperator = Field(
|
||||
description='Comparison operator for date filter'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[project]
|
||||
name = "graphiti-core"
|
||||
description = "A temporal graph building library"
|
||||
version = "0.18.3"
|
||||
version = "0.18.4"
|
||||
authors = [
|
||||
{ name = "Paul Paliychuk", email = "paul@getzep.com" },
|
||||
{ name = "Preston Rasmussen", email = "preston@getzep.com" },
|
||||
|
|
|
|||
2
uv.lock
generated
2
uv.lock
generated
|
|
@ -746,7 +746,7 @@ wheels = [
|
|||
|
||||
[[package]]
|
||||
name = "graphiti-core"
|
||||
version = "0.18.3"
|
||||
version = "0.18.4"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "diskcache" },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue