#2945: DB Api - non-numeric __getitem__ parameter being inserted into LIMIT
clause
---------------------------------+------------------------------------------
Reporter: [EMAIL PROTECTED] | Owner: adrian
Status: closed | Component: Database wrapper
Version: SVN | Resolution: duplicate
Keywords: | Stage: Unreviewed
Has_patch: 0 | Needs_docs: 0
Needs_tests: 0 | Needs_better_patch: 0
---------------------------------+------------------------------------------
Old description:
> This seems to happen once, refreshing the view and its gone. It's
> throwing "count" where the limit (of some sorts) should be.
>
> The query its executing is:
> 'SELECT
> `files_version`.`id`,`files_version`.`file_id`,`files_version`.`md5`,`files_version`.`name`,`files_version`.`post_date`,`files_version`.`archive`,`files_version`.`change_log`,`files_version`.`author_id`,`files_version`.`downloads`,`files_version`.`type_id`
> FROM `files_version` WHERE (`files_version`.`file_id` = %s) ORDER BY
> `files_version`.`post_date` DESC LIMIT count,1'
>
> Traceback (most recent call last):
> File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py" in
> get_response
> 74. response = callback(request, *callback_args, **callback_kwargs)
> File "/home/www/cursedjango/cursesite/../cursesite/files/views.py" in
> detail
> 272. return render_to_response('files/detail.html',
> context_instance=context)
> File "/usr/lib/python2.4/site-packages/django/shortcuts/__init__.py" in
> render_to_response
> 10. return HttpResponse(loader.render_to_string(*args, **kwargs))
> File "/usr/lib/python2.4/site-packages/django/template/loader.py" in
> render_to_string
> 104. return t.render(context_instance)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render
> 155. return self.nodelist.render(context)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render
> 688. bits.append(self.render_node(node, context))
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render_node
> 701. return(node.render(context))
> File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in
> render
> 82. return compiled_parent.render(context)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render
> 155. return self.nodelist.render(context)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render
> 688. bits.append(self.render_node(node, context))
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render_node
> 701. return(node.render(context))
> File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in
> render
> 23. result = self.nodelist.render(context)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render
> 688. bits.append(self.render_node(node, context))
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render_node
> 701. return(node.render(context))
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> render
> 746. output = self.filter_expression.resolve(context)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> resolve
> 548. obj = resolve_variable(self.var, context)
> File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
> resolve_variable
> 634. current = current[bits[0]]
> File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
> __getitem__
> 144. return list(self._clone(_offset=k, _limit=1))[0]
> File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
> __iter__
> 103. return iter(self._get_data())
> File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
> _get_data
> 430. self._result_cache = list(self.iterator())
> File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
> iterator
> 172. cursor.execute("SELECT " + (self._distinct and "DISTINCT " or "")
> + ",".join(select) + sql, params)
> File "/usr/lib/python2.4/site-packages/django/db/backends/util.py" in
> execute
> 12. return self.cursor.execute(sql, params)
> File "/usr/lib/python2.4/site-packages/django/db/backends/mysql/base.py"
> in execute
> 35. return self.cursor.execute(sql, params)
> File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py" in execute
> 137. self.errorhandler(self, exc, value)
> File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py" in
> defaulterrorhandler
> 33. raise errorclass, errorvalue
>
> ProgrammingError at /en/files/details/4647/blackuweather-fishing/
> (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
> 'count,1' at line 1")
New description:
This seems to happen once, refreshing the view and its gone. It's throwing
"count" where the limit (of some sorts) should be.
The query its executing is:
'SELECT
`files_version`.`id`,`files_version`.`file_id`,`files_version`.`md5`,`files_version`.`name`,`files_version`.`post_date`,`files_version`.`archive`,`files_version`.`change_log`,`files_version`.`author_id`,`files_version`.`downloads`,`files_version`.`type_id`
FROM `files_version` WHERE (`files_version`.`file_id` = %s) ORDER BY
`files_version`.`post_date` DESC LIMIT count,1'
{{{
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py" in
get_response
74. response = callback(request, *callback_args, **callback_kwargs)
File "/home/www/cursedjango/cursesite/../cursesite/files/views.py" in
detail
272. return render_to_response('files/detail.html',
context_instance=context)
File "/usr/lib/python2.4/site-packages/django/shortcuts/__init__.py" in
render_to_response
10. return HttpResponse(loader.render_to_string(*args, **kwargs))
File "/usr/lib/python2.4/site-packages/django/template/loader.py" in
render_to_string
104. return t.render(context_instance)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render
155. return self.nodelist.render(context)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render
688. bits.append(self.render_node(node, context))
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render_node
701. return(node.render(context))
File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in
render
82. return compiled_parent.render(context)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render
155. return self.nodelist.render(context)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render
688. bits.append(self.render_node(node, context))
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render_node
701. return(node.render(context))
File "/usr/lib/python2.4/site-packages/django/template/loader_tags.py" in
render
23. result = self.nodelist.render(context)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render
688. bits.append(self.render_node(node, context))
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render_node
701. return(node.render(context))
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
render
746. output = self.filter_expression.resolve(context)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
resolve
548. obj = resolve_variable(self.var, context)
File "/usr/lib/python2.4/site-packages/django/template/__init__.py" in
resolve_variable
634. current = current[bits[0]]
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
__getitem__
144. return list(self._clone(_offset=k, _limit=1))[0]
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
__iter__
103. return iter(self._get_data())
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
_get_data
430. self._result_cache = list(self.iterator())
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in
iterator
172. cursor.execute("SELECT " + (self._distinct and "DISTINCT " or "") +
",".join(select) + sql, params)
File "/usr/lib/python2.4/site-packages/django/db/backends/util.py" in
execute
12. return self.cursor.execute(sql, params)
File "/usr/lib/python2.4/site-packages/django/db/backends/mysql/base.py"
in execute
35. return self.cursor.execute(sql, params)
File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py" in execute
137. self.errorhandler(self, exc, value)
File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py" in
defaulterrorhandler
33. raise errorclass, errorvalue
ProgrammingError at /en/files/details/4647/blackuweather-fishing/
(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
'count,1' at line 1")
}}}
Comment (by ubernostrum):
Reformatting the traceback to make it easier to read...
--
Ticket URL: <http://code.djangoproject.com/ticket/2945#comment:8>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---