Opened 19 years ago

Last modified 18 years ago

#350 closed defect

"offset" keyword does not work on MySQL 3.x — at Version 2

Reported by: ronan@… Owned by: Adrian Holovaty
Component: Database layer (models, ORM) Version:
Severity: major Keywords: mysql database offset
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Adrian Holovaty)

When you use the Django API to query your data using the get_items(offset=X) style call, the SQL that is generated seems to be in Postgres style that is only recently supported in MySQL (4.x and later, as far as I can tell.) The SQL generated is something like the following:

SELECT ... ORDER BY ... DESC LIMIT 5 OFFSET 4

On MySQL 3.x this gives the following error:

"You have an error in your SQL syntax near 'OFFSET 4 '"

It works fine on my 4.1.

As far as I can tell from the MySQL manual, there is an alternate form of query that should work on all versions of MySQL. Here's the relevant snippet from the SELECT format:

 [LIMIT {[offset,] row_count | row_count OFFSET offset}]

Since 3.23 is the default MySQL version for Fedora Core etc, this could affect quite a few people.

Change History (2)

comment:1 by Adrian Holovaty, 19 years ago

Status: newassigned

comment:2 by Adrian Holovaty, 19 years ago

Description: modified (diff)

(Fixed formatting in description.)

Note: See TracTickets for help on using tickets.
Back to Top