﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
4739	len(queryset) is slow	tclugg@…	Adrian Holovaty	"len(queryset) uses queryset.iterator, which performs SQL SELECT instead of SQL COUNT.  queryset.__len__ should instead call queryset.count() which is much faster as it will use the cached result of SELECT if available, otherwise performing a SQL COUNT.

Index: django/db/models/query.py
===================================================================
--- django/db/models/query.py   (revision 5583)
+++ django/db/models/query.py   (working copy)
@@ -106,7 +106,7 @@
         return repr(self._get_data())

     def __len__(self):
-        return len(self._get_data())
+        return self.count()

     def __iter__(self):
         return iter(self._get_data())
"		closed	Database layer (models, ORM)	dev		wontfix	queryset, len, count, select		Unreviewed	1	0	0	0	0	0
