summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-10-31 20:00:42 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-10-31 20:00:42 -0400
commit7bf5ac9c1e814c999d4930941935e1d5cfd236bf (patch)
tree38d17ab75456492f7a6984723a001d8935501318
parentd2c1edfb15334a2fb6ada5b064563c144ac22ad7 (diff)
downloadsqlalchemy-7bf5ac9c1e814c999d4930941935e1d5cfd236bf.tar.gz
- ensure kwargs are passed for limit clause on a compound select as well,
further fixes for #3034
-rw-r--r--lib/sqlalchemy/sql/compiler.py2
-rw-r--r--test/sql/test_compiler.py16
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index a6c30b7dc..5fa78ad0f 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -813,7 +813,7 @@ class SQLCompiler(Compiled):
text += self.order_by_clause(cs, **kwargs)
text += (cs._limit_clause is not None
or cs._offset_clause is not None) and \
- self.limit_clause(cs) or ""
+ self.limit_clause(cs, **kwargs) or ""
if self.ctes and \
compound_index == 0 and toplevel:
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py
index 3e6b87351..bfafed599 100644
--- a/test/sql/test_compiler.py
+++ b/test/sql/test_compiler.py
@@ -238,6 +238,22 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
checkparams=params
)
+ def test_limit_offset_select_literal_binds(self):
+ stmt = select([1]).limit(5).offset(6)
+ self.assert_compile(
+ stmt,
+ "SELECT 1 LIMIT 5 OFFSET 6",
+ literal_binds=True
+ )
+
+ def test_limit_offset_compound_select_literal_binds(self):
+ stmt = select([1]).union(select([2])).limit(5).offset(6)
+ self.assert_compile(
+ stmt,
+ "SELECT 1 UNION SELECT 2 LIMIT 5 OFFSET 6",
+ literal_binds=True
+ )
+
def test_select_precol_compile_ordering(self):
s1 = select([column('x')]).select_from(text('a')).limit(5).as_scalar()
s2 = select([s1]).limit(10)