Django

Code

Changeset 541

Show
Ignore:
Timestamp:
08/19/05 16:51:14 (3 years ago)
Author:
adrian
Message:

Fixed #350 -- 'offset' DB API parameter now works in MySQL 3. Tests from [540] pass. Thanks, ronan@cremin.com

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/db/backends/mysql.py

    r495 r541  
    7171        subtractions.append(" - interval (DATE_FORMAT(%s, '%%%%m')-1) month" % field_name) 
    7272    return "(%s - %s)" % (field_name, ''.join(subtractions)) 
     73 
     74def get_limit_offset_sql(limit, offset=None): 
     75    sql = "LIMIT " 
     76    if offset and offset != 0: 
     77        sql += "%s," % offset 
     78    return sql + str(limit) 
    7379 
    7480def get_table_list(cursor): 
  • django/trunk/django/core/db/backends/postgresql.py

    r395 r541  
    7171    # http://www.postgresql.org/docs/8.0/static/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC 
    7272    return "DATE_TRUNC('%s', %s)" % (lookup_type, field_name) 
     73 
     74def get_limit_offset_sql(limit, offset=None): 
     75    sql = "LIMIT %s" % limit 
     76    if offset and offset != 0: 
     77        sql += " OFFSET %s" % offset 
     78    return sql 
    7379 
    7480def get_table_list(cursor): 
  • django/trunk/django/core/db/backends/sqlite3.py

    r395 r541  
    9898    return 'django_date_trunc("%s", %s)' % (lookup_type.lower(), field_name) 
    9999 
     100def get_limit_offset_sql(limit, offset=None): 
     101    sql = "LIMIT %s" % limit 
     102    if offset and offset != 0: 
     103        sql += " OFFSET %s" % offset 
     104    return sql 
     105 
    100106def _sqlite_date_trunc(lookup_type, dt): 
    101107    try: 
  • django/trunk/django/core/db/__init__.py

    r395 r541  
    3838get_date_extract_sql = dbmod.get_date_extract_sql 
    3939get_date_trunc_sql = dbmod.get_date_trunc_sql 
     40get_limit_offset_sql = dbmod.get_limit_offset_sql 
    4041get_table_list = dbmod.get_table_list 
    4142get_relations = dbmod.get_relations 
  • django/trunk/django/core/meta/__init__.py

    r510 r541  
    12781278    # LIMIT and OFFSET clauses 
    12791279    if kwargs.get('limit') is not None: 
    1280         limit_sql = " LIMIT %s " % kwargs['limit'] 
    1281         if kwargs.get('offset') is not None and kwargs['offset'] != 0: 
    1282             limit_sql += "OFFSET %s " % kwargs['offset'] 
     1280        limit_sql = " %s " % db.get_limit_offset_sql(kwargs['limit'], kwargs.get('offset')) 
    12831281    else: 
     1282        assert kwargs.get('offset') is None, "'offset' is not allowed without 'limit'" 
    12841283        limit_sql = "" 
    12851284