﻿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
3190	"Empty list in an ""in""-lookup leads to a ProgrammingError"	Thomas Steinacher <tom@…>	Adrian Holovaty	"This code leads to a ProgrammingError instead of returning an empty QuerySet:
{{{
>>> models.FooBar.objects.filter(pk__in=[])
Traceback (most recent call last):
  File ""<console>"", line 1, in ?
  File ""/usr/lib/python2.4/site-packages/django/db/models/query.py"", line 97, in __repr__
    return repr(self._get_data())
  File ""/usr/lib/python2.4/site-packages/django/db/models/query.py"", line 430, in _get_data
    self._result_cache = list(self.iterator())
  File ""/usr/lib/python2.4/site-packages/django/db/models/query.py"", line 172, in iterator
    cursor.execute(""SELECT "" + (self._distinct and ""DISTINCT "" or """") + "","".join(select) + sql, params)
  File ""/usr/lib/python2.4/site-packages/django/db/backends/util.py"", line 12, in execute
    return self.cursor.execute(sql, params)
  File ""/usr/lib/python2.4/site-packages/django/db/backends/mysql/base.py"", line 42, in execute
    return self.cursor.execute(sql, params)
  File ""/usr/lib/python2.4/site-packages/MySQLdb/cursors.py"", line 137, in execute
    self.errorhandler(self, exc, value)
  File ""/usr/lib/python2.4/site-packages/MySQLdb/connections.py"", line 33, in defaulterrorhandler
    raise errorclass, errorvalue
ProgrammingError: (1064, ""You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1"")
>>>
}}}

I'm using MySQL and Django SVN.
"	defect	closed	Database layer (models, ORM)		normal	duplicate		tom@…	Unreviewed	0	0	0	0	0	0
