- hardwire the huge LIMIT number on MySQL. this might fix the OurSQL py3k

bug we're having, though I'm not able to get a good run of OurSQL
on OSX right now either Python 2 or 3.
This commit is contained in:
Mike Bayer
2010-12-06 18:45:19 -05:00
parent 987828194e
commit 83be34c047
2 changed files with 14 additions and 4 deletions
+12 -2
View File
@@ -1224,9 +1224,19 @@ class MySQLCompiler(compiler.SQLCompiler):
elif offset is not None:
# As suggested by the MySQL docs, need to apply an
# artificial limit if one wasn't provided
# http://dev.mysql.com/doc/refman/5.0/en/select.html
if limit is None:
limit = 18446744073709551615
return ' \n LIMIT %s, %s' % (
# hardwire the upper limit. Currently
# needed by OurSQL with Python 3
# (https://bugs.launchpad.net/oursql/+bug/686232),
# but also is consistent with the usage of the upper
# bound as part of MySQL's "syntax" for OFFSET with
# no LIMIT
return ' \n LIMIT %s, %s' % (
self.process(sql.literal(offset)),
"18446744073709551615")
else:
return ' \n LIMIT %s, %s' % (
self.process(sql.literal(offset)),
self.process(sql.literal(limit)))
else:
+2 -2
View File
@@ -1073,8 +1073,8 @@ class SQLTest(TestBase, AssertsCompiledSQL):
self.assert_compile(
select([t]).offset(10),
"SELECT t.col1, t.col2 FROM t LIMIT %s, %s",
{'param_1':10, 'param_2':18446744073709551615}
"SELECT t.col1, t.col2 FROM t LIMIT %s, 18446744073709551615",
{'param_1':10}
)
def test_varchar_raise(self):