Django

Code

Changeset 8069

Show
Ignore:
Timestamp:
07/24/08 15:11:37 (1 month ago)
Author:
mboersma
Message:

Fixed Oracle backend failure in test suite for modeltests.queries. Item.objects.all()[0:0] was optimizing out the limits clause and returning all rows.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/oracle/query.py

    r7514 r8069  
    8888            included in the query. 
    8989            """ 
     90 
    9091            # The `do_offset` flag indicates whether we need to construct 
    9192            # the SQL needed to use limit/offset w/Oracle. 
    92             do_offset = with_limits and (self.high_mark or self.low_mark) 
     93            do_offset = with_limits and (self.high_mark is not None 
     94                                         or self.low_mark) 
    9395 
    9496            # If no offsets, just return the result of the base class 
     
    118120            # extra selection SQL. 
    119121            self.extra_select['rn'] = 'ROW_NUMBER() OVER (ORDER BY %s )' % rn_orderby 
    120             sql, params= super(OracleQuery, self).as_sql(with_limits=False, 
     122            sql, params = super(OracleQuery, self).as_sql(with_limits=False, 
    121123                    with_col_aliases=True) 
    122124 
     
    127129            # Place WHERE condition on `rn` for the desired range. 
    128130            result.append('WHERE rn > %d' % self.low_mark) 
    129             if self.high_mark
     131            if self.high_mark is not None
    130132                result.append('AND rn <= %d' % self.high_mark) 
    131133 
     
    149151    _classes[QueryClass] = OracleQuery 
    150152    return OracleQuery 
    151