Django

Code

Changeset 5959

Show
Ignore:
Timestamp:
08/19/07 18:24:59 (1 year ago)
Author:
adrian
Message:

Refactored get_limit_offset_sql() to DatabaseOperations?.limit_offset_sql(). Refs #5106

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/backends/ado_mssql/base.py

    r5958 r5959  
    101101dictfetchall  = util.dictfetchall 
    102102 
    103 def get_limit_offset_sql(limit, offset=None): 
    104     # TODO: This is a guess. Make sure this is correct. 
    105     sql = "LIMIT %s" % limit 
    106     if offset and offset != 0: 
    107         sql += " OFFSET %s" % offset 
    108     return sql 
    109  
    110103def get_random_function_sql(): 
    111104    return "RAND()" 
  • django/trunk/django/db/backends/dummy/base.py

    r5958 r5959  
    4444dictfetchmany = complain 
    4545dictfetchall = complain 
    46 get_limit_offset_sql = complain 
    4746get_random_function_sql = complain 
    4847get_pk_default_value = complain 
  • django/trunk/django/db/backends/__init__.py

    r5958 r5959  
    110110        """ 
    111111        return cursor.lastrowid 
     112 
     113    def limit_offset_sql(self, limit, offset=None): 
     114        """ 
     115        Returns a LIMIT/OFFSET SQL clause, given a limit and optional offset. 
     116        """ 
     117        # 'LIMIT 40 OFFSET 20' 
     118        sql = "LIMIT %s" % limit 
     119        if offset and offset != 0: 
     120            sql += " OFFSET %s" % offset 
     121        return sql 
  • django/trunk/django/db/backends/mysql/base.py

    r5958 r5959  
    7777    def fulltext_search_sql(self, field_name): 
    7878        return 'MATCH (%s) AGAINST (%%s IN BOOLEAN MODE)' % field_name 
     79 
     80    def limit_offset_sql(self, limit, offset=None): 
     81        # 'LIMIT 20,40' 
     82        sql = "LIMIT " 
     83        if offset and offset != 0: 
     84            sql += "%s," % offset 
     85        return sql + str(limit) 
    7986 
    8087class DatabaseWrapper(BaseDatabaseWrapper): 
     
    156163dictfetchall  = util.dictfetchall 
    157164 
    158 def get_limit_offset_sql(limit, offset=None): 
    159     sql = "LIMIT " 
    160     if offset and offset != 0: 
    161         sql += "%s," % offset 
    162     return sql + str(limit) 
    163  
    164165def get_random_function_sql(): 
    165166    return "RAND()" 
  • django/trunk/django/db/backends/mysql_old/base.py

    r5958 r5959  
    8787    def fulltext_search_sql(self, field_name): 
    8888        return 'MATCH (%s) AGAINST (%%s IN BOOLEAN MODE)' % field_name 
     89 
     90    def limit_offset_sql(self, limit, offset=None): 
     91        # 'LIMIT 20,40' 
     92        sql = "LIMIT " 
     93        if offset and offset != 0: 
     94            sql += "%s," % offset 
     95        return sql + str(limit) 
    8996 
    9097class DatabaseWrapper(BaseDatabaseWrapper): 
     
    175182dictfetchall  = util.dictfetchall 
    176183 
    177 def get_limit_offset_sql(limit, offset=None): 
    178     sql = "LIMIT " 
    179     if offset and offset != 0: 
    180         sql += "%s," % offset 
    181     return sql + str(limit) 
    182  
    183184def get_random_function_sql(): 
    184185    return "RAND()" 
  • django/trunk/django/db/backends/oracle/base.py

    r5958 r5959  
    6363        return cursor.fetchone()[0] 
    6464 
     65    def limit_offset_sql(self, limit, offset=None): 
     66        # Limits and offset are too complicated to be handled here. 
     67        # Instead, they are handled in django/db/backends/oracle/query.py. 
     68        return "" 
     69 
    6570class DatabaseWrapper(BaseDatabaseWrapper): 
    6671    ops = DatabaseOperations() 
     
    178183    else: 
    179184        return "%s%s" 
    180  
    181 def get_limit_offset_sql(limit, offset=None): 
    182     # Limits and offset are too complicated to be handled here. 
    183     # Instead, they are handled in django/db/backends/oracle/query.py. 
    184     return "" 
    185185 
    186186def get_random_function_sql(): 
  • django/trunk/django/db/backends/postgresql/base.py

    r5958 r5959  
    131131    "Returns all rows from a cursor as a dict" 
    132132    return cursor.dictfetchall() 
    133  
    134 def get_limit_offset_sql(limit, offset=None): 
    135     sql = "LIMIT %s" % limit 
    136     if offset and offset != 0: 
    137         sql += " OFFSET %s" % offset 
    138     return sql 
    139133 
    140134def get_random_function_sql(): 
  • django/trunk/django/db/backends/postgresql_psycopg2/base.py

    r5958 r5959  
    8585dictfetchmany = util.dictfetchmany 
    8686dictfetchall = util.dictfetchall 
    87  
    88 def get_limit_offset_sql(limit, offset=None): 
    89     sql = "LIMIT %s" % limit 
    90     if offset and offset != 0: 
    91         sql += " OFFSET %s" % offset 
    92     return sql 
    9387 
    9488def get_random_function_sql(): 
  • django/trunk/django/db/backends/sqlite3/base.py

    r5958 r5959  
    116116    return str(getattr(dt, lookup_type)) 
    117117 
    118 def get_limit_offset_sql(limit, offset=None): 
    119     sql = "LIMIT %s" % limit 
    120     if offset and offset != 0: 
    121         sql += " OFFSET %s" % offset 
    122     return sql 
    123  
    124118def get_random_function_sql(): 
    125119    return "RANDOM()" 
  • django/trunk/django/db/models/query.py

    r5957 r5959  
    556556        # LIMIT and OFFSET clauses 
    557557        if self._limit is not None: 
    558             sql.append("%s " % backend.get_limit_offset_sql(self._limit, self._offset)) 
     558            sql.append("%s " % connection.ops.limit_offset_sql(self._limit, self._offset)) 
    559559        else: 
    560560            assert self._offset is None, "'offset' is not allowed without 'limit'"