summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-08-26 14:42:18 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-08-26 14:42:18 +0000
commit23e3420fc93342dc66c6845863716bfb6d648a22 (patch)
tree9f41e66e25cc0478e3eb16e9eadabf02d003689d /lib
parent8260ca2723ab3b08339ec9273fa729f70862fdf3 (diff)
downloadsqlalchemy-23e3420fc93342dc66c6845863716bfb6d648a22.tar.gz
added limit/offset to union queries
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/ansisql.py9
-rw-r--r--lib/sqlalchemy/sql.py2
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py
index f77e855e4..da6f4bf83 100644
--- a/lib/sqlalchemy/ansisql.py
+++ b/lib/sqlalchemy/ansisql.py
@@ -244,6 +244,7 @@ class ANSICompiler(sql.Compiled):
order_by = self.get_str(cs.order_by_clause)
if order_by:
text += " ORDER BY " + order_by
+ text += self.visit_select_postclauses(cs)
if cs.parens:
self.strings[cs] = "(" + text + ")"
else:
@@ -409,12 +410,14 @@ class ANSICompiler(sql.Compiled):
return (select.limit or select.offset) and self.limit_clause(select) or ""
def limit_clause(self, select):
+ text = ""
if select.limit is not None:
- return " \n LIMIT " + str(select.limit)
+ text += " \n LIMIT " + str(select.limit)
if select.offset is not None:
if select.limit is None:
- return " \n LIMIT -1"
- return " OFFSET " + str(select.offset)
+ text += " \n LIMIT -1"
+ text += " OFFSET " + str(select.offset)
+ return text
def visit_table(self, table):
self.froms[table] = self.preparer.format_table(table)
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py
index 2aa1342ca..596e0e8ee 100644
--- a/lib/sqlalchemy/sql.py
+++ b/lib/sqlalchemy/sql.py
@@ -1347,6 +1347,8 @@ class CompoundSelect(SelectBaseMixin, FromClause):
self.correlate = kwargs.pop('correlate', False)
self.for_update = kwargs.pop('for_update', False)
self.nowait = kwargs.pop('nowait', False)
+ self.limit = kwargs.get('limit', None)
+ self.offset = kwargs.get('offset', None)
for s in self.selects:
s.group_by(None)
s.order_by(None)