diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-08-26 14:42:18 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-08-26 14:42:18 +0000 |
| commit | 23e3420fc93342dc66c6845863716bfb6d648a22 (patch) | |
| tree | 9f41e66e25cc0478e3eb16e9eadabf02d003689d /lib | |
| parent | 8260ca2723ab3b08339ec9273fa729f70862fdf3 (diff) | |
| download | sqlalchemy-23e3420fc93342dc66c6845863716bfb6d648a22.tar.gz | |
added limit/offset to union queries
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/ansisql.py | 9 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql.py | 2 |
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) |
