#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
-~----------~----~----~----~------~----~------~--~---

Reply via email to