]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
c. martinez' fix to slicing logic
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 18 May 2006 14:16:56 +0000 (14:16 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 18 May 2006 14:16:56 +0000 (14:16 +0000)
lib/sqlalchemy/mods/selectresults.py
test/selectresults.py

index 5528c7bf660b4fb817ce1d79acb814ac8f6d134f..bff436acebc8868c71cda24bf49ee64e03bec8de 100644 (file)
@@ -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:
index 2e603580acdb2b72215d176aa9391b9a9bfa81ee..d049186837997e2fb69120b695af12035b7bd819 100644 (file)
@@ -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