diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-05-18 14:16:56 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-05-18 14:16:56 +0000 |
| commit | 030c50d20d7dfd135570e6b72edca9f3dfe14123 (patch) | |
| tree | 3f24f993e7dc698875e4f77bb338d56bc315d5e7 | |
| parent | d9bc08aac3bb11ab03824731a06ada6e95374a94 (diff) | |
| download | sqlalchemy-030c50d20d7dfd135570e6b72edca9f3dfe14123.tar.gz | |
c. martinez' fix to slicing logic
| -rw-r--r-- | lib/sqlalchemy/mods/selectresults.py | 4 | ||||
| -rw-r--r-- | test/selectresults.py | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/sqlalchemy/mods/selectresults.py b/lib/sqlalchemy/mods/selectresults.py index 5528c7bf6..bff436ace 100644 --- a/lib/sqlalchemy/mods/selectresults.py +++ b/lib/sqlalchemy/mods/selectresults.py @@ -70,11 +70,11 @@ class SelectResults(object): else: res = self.clone() if start is not None and stop is not None: - res._ops.update(dict(offset=start, limit=stop-start)) + res._ops.update(dict(offset=self._ops.get('offset', 0)+start, limit=stop-start)) elif start is None and stop is not None: res._ops.update(dict(limit=stop)) elif start is not None and stop is None: - res._ops.update(dict(offset=start)) + res._ops.update(dict(offset=self._ops.get('offset', 0)+start)) if item.step is not None: return list(res)[None:None:item.step] else: diff --git a/test/selectresults.py b/test/selectresults.py index 2e603580a..d04918683 100644 --- a/test/selectresults.py +++ b/test/selectresults.py @@ -37,6 +37,7 @@ class SelectResultsTest(PersistTest): assert list(self.res[:10]) == self.orig[:10] assert list(self.res[10:40:3]) == self.orig[10:40:3] assert list(self.res[-5:]) == self.orig[-5:] + assert self.res[10:20][5] == self.orig[10:20][5] def test_aggregate(self): assert self.res.count() == 100 |
