Django

Code

Changeset 6961

Show
Ignore:
Timestamp:
12/19/07 07:06:45 (1 year ago)
Author:
mtredinnick
Message:

queryset-refactor: Reverted [6762] because it generates invalid SQL. It only worked accidentally with SQLite.

Refs #4002.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/queryset-refactor/django/db/models/sql/query.py

    r6960 r6961  
    724724        alias = self.join((None, opts.db_table, None, None)) 
    725725 
    726         try: 
    727             field, target, unused, join_list = self.setup_joins(parts, opts, 
    728                     alias, (connector == AND)) 
    729         except TypeError, e: 
    730             if len(parts) != 1 or parts[0] not in self.extra_select: 
    731                 raise e 
    732             # Filtering on some alias from extra(select=...) 
    733             self.where.add([None, parts[0], None, lookup_type, value], 
    734                     connector) 
    735             return 
     726        field, target, unused, join_list, = self.setup_joins(parts, opts, 
     727                alias, (connector == AND)) 
    736728        col = target.column 
    737729        alias = join_list[-1][-1] 
  • django/branches/queryset-refactor/django/db/models/sql/where.py

    r6868 r6961  
    66from django.utils import tree 
    77from django.db import connection 
    8 from django.db.models.fields import Field 
    98from datastructures import EmptyResultSet 
    109 
     
    104103            format = '%s %s' 
    105104 
    106         if field: 
    107             params = field.get_db_prep_lookup(lookup_type, value) 
    108         else: 
    109             params = Field().get_db_prep_lookup(lookup_type, value) 
     105        params = field.get_db_prep_lookup(lookup_type, value) 
    110106 
    111107        if lookup_type in connection.operators: 
  • django/branches/queryset-refactor/tests/regressiontests/queries/models.py

    r6959 r6961  
    459459{'a': u'one', 'b': u'two'} 
    460460 
    461 Bug #4002 
    462 Attributes used in extra(select=...) are available for use in subsequent 
    463 order_by() and filter() calls. 
    464  
    465461# Order by the number of tags attached to an item. 
    466462>>> l = Item.objects.extra(select={'count': 'select count(*) from queries_item_tags where queries_item_tags.item_id = queries_item.id'}).order_by('-count') 
    467463>>> [o.count for o in l] 
    468464[2, 2, 1, 0] 
    469  
    470 # Filter those items that have exactly one tag attached. 
    471 >>> Item.objects.extra(select={'count': 'select count(*) from queries_item_tags where queries_item_tags.item_id = queries_item.id'}).filter(count=1) 
    472 [<Item: four>] 
    473465 
    474466Bug #6154