adamv avatar adamv committed 3f7f1ed

Fix for issue 48, changed
if self.high_mark and not self.low_mark:
to
if self.high_mark is not None and not self.low_mark:

if "self.high_mark" is 0, then we let the logic happen, which will generate "top 0" and return no rows.

Comments (0)

Files changed (2)

source/sqlserver_ado/query.py

             raw_sql, fields = super(SqlServerQuery, self).as_sql(False, with_col_aliases)
             
             # Check for high mark only and replace with "TOP"
-            if self.high_mark and not self.low_mark:
+            if self.high_mark is not None and not self.low_mark:
                 sql = re.sub(r'(?i)^SELECT', 'SELECT TOP %s' % self.high_mark, raw_sql, 1)
                 return sql, fields
                 

tests/test_main/slicing/models.py

     3
     >>> len(list(p.all()[5:]))
     2
+    >>> p.all()[0:0]
+    []
+    >>> p.all()[0:0][:10]
+    []
     >>> pn = p.order_by('name')
     >>> list(pn)
     [A, B, C, D, E, F, G]
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.