import datetime
import functools
import io
+import itertools
import logging
import sqlalchemy.dialects.postgresql
import sqlalchemy.orm
)
# De-list the redundant domains
- await self.backend.db.execute(
- sqlmodel
- .update(
- domains.Domain,
- )
- .values(
- subsumed = True,
- )
- .where(
- domains.Domain.list == self,
- domains.Domain.removed_at == None,
- domains.Domain.name.in_(
- redundant_names,
+ for batch in itertools.batched(redundant_names, 1000):
+ await self.backend.db.execute(
+ sqlmodel
+ .update(
+ domains.Domain,
+ )
+ .values(
+ subsumed = True,
+ )
+ .where(
+ domains.Domain.list == self,
+ domains.Domain.removed_at == None,
+ domains.Domain.name.in_(
+ batch,
+ )
)
)
- )
# Update all stats afterwards
if update_stats: