Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#2008 closed defect (fixed)

Negative offset in DB query set array-slicing fails silently

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


Ordinary Python array-slicing allows negative offsets to indicate accessing items from the end of an array, e.g.

l = ["foo", "bar", "baz"]
l[-1] <- returns "baz"
l[-2] <- returns "bar"

The same apparently does not work for querysets if they are not evaluated. Instead it fails silently. I've looked up the reference for select statements in SQLite and MySQL without finding anything obvious to remedy the problem, other than to reverse the ordering if present. But at least Django should give an error and not fail silently.

I'm using the syntax to extract the first and the last item of a sequence to summarize a larger set of items.

Change History (1)

comment:1 Changed 12 years ago by Adrian Holovaty

Resolution: fixed
Status: newclosed

Fixed in [2992].

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