#11329: get_count generates incorrect SQL for query sets with extra 'select' and
'where'
---------------------------------------------------+------------------------
          Reporter:  bogklug                       |         Owner:  nobody     
                              
            Status:  new                           |     Milestone:             
                              
         Component:  Database layer (models, ORM)  |       Version:  1.0        
                              
        Resolution:                                |      Keywords:  sql, extra 
select, extra where, get_count
             Stage:  Unreviewed                    |     Has_patch:  0          
                              
        Needs_docs:  0                             |   Needs_tests:  0          
                              
Needs_better_patch:  0                             |  
---------------------------------------------------+------------------------
Changes (by Alex):

  * needs_better_patch:  => 0
  * needs_tests:  => 0
  * needs_docs:  => 0

Old description:

> Extending an example on extra 'select' from
> http://docs.djangoproject.com/en/1.0/ref/models/querysets/ with an extra
> 'with' and calling get_count:
>
> Blog.objects.extra(
>     select={
>         'entry_count': 'SELECT COUNT(*) FROM blog_entry WHERE
> blog_entry.blog_id = blog_blog.id'
>     },
>     where=['entry_count=0']
> ).query.get_count()
>
> results in OperationalError: no such column: entry_count.
>
> The SQL for the query itself is ok. It seems that the problem is caused
> by get_count.

New description:

 Extending an example on extra 'select' from
 http://docs.djangoproject.com/en/1.0/ref/models/querysets/ with an extra
 'with' and calling get_count:
 {{{
 Blog.objects.extra(
     select={
         'entry_count': 'SELECT COUNT(*) FROM blog_entry WHERE
 blog_entry.blog_id = blog_blog.id'
     },
     where=['entry_count=0']
 ).query.get_count()
 }}}
 results in OperationalError: no such column: entry_count.

 The SQL for the query itself is ok. It seems that the problem is caused by
 get_count.

Comment:

 Please use the preview option.  Also, are you using the internal
 get_count() function instead of the public count() API.

-- 
Ticket URL: <http://code.djangoproject.com/ticket/11329#comment:1>
Django <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