Skip to content

Commit 7cefd67

Browse files
committed
Merge pull request django-haystack#775 from stefanw/avoid-pks-seen-on-update
Avoid unnecessary, potentially huge db query on index update
2 parents 60c8e52 + daeca3a commit 7cefd67

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

haystack/management/commands/update_index.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@ def update_backend(self, label, using):
254254
if self.verbosity >= 1:
255255
print(u"Indexing %d %s" % (total, force_text(model._meta.verbose_name_plural)))
256256

257-
pks_seen = set([smart_bytes(pk) for pk in qs.values_list('pk', flat=True)])
258257
batch_size = self.batchsize or backend.batch_size
259258

260259
if self.workers > 0:
@@ -278,8 +277,11 @@ def update_backend(self, label, using):
278277
# They're using a reduced set, which may not incorporate
279278
# all pks. Rebuild the list with everything.
280279
qs = index.index_queryset().values_list('pk', flat=True)
281-
pks_seen = set([smart_bytes(pk) for pk in qs])
280+
pks_seen = set(smart_bytes(pk) for pk in qs)
281+
282282
total = len(pks_seen)
283+
else:
284+
pks_seen = set(smart_bytes(pk) for pk in qs.values_list('pk', flat=True))
283285

284286
if self.workers > 0:
285287
ghetto_queue = []

0 commit comments

Comments
 (0)