From: Mike Bayer Date: Mon, 6 Mar 2006 01:17:12 +0000 (+0000) Subject: more tweak to compoundselect parenthesizing/subquery flag X-Git-Tag: rel_0_1_4~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=51acad4b5bf4ec5517d66e111d625ac0a0fd443e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git more tweak to compoundselect parenthesizing/subquery flag --- diff --git a/lib/sqlalchemy/ansisql.py b/lib/sqlalchemy/ansisql.py index 7b39d5358e..64715cb4f1 100644 --- a/lib/sqlalchemy/ansisql.py +++ b/lib/sqlalchemy/ansisql.py @@ -186,7 +186,7 @@ class ANSICompiler(sql.Compiled): # if we are within a visit to a Select, set up the "typemap" # for this column which is used to translate result set values self.typemap.setdefault(column.key.lower(), column.type) - if column.table is not None and column.table.name is None: + if column.table is None or column.table.name is None: self.strings[column] = column.name else: self.strings[column] = "%s.%s" % (column.table.name, column.name) @@ -368,7 +368,7 @@ class ANSICompiler(sql.Compiled): text += self.visit_select_postclauses(select) - if getattr(select, 'issubquery', False): + if getattr(select, 'useparens', False): self.strings[select] = "(" + text + ")" else: self.strings[select] = text diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 5389f4bd72..d4d059d6a7 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -1208,11 +1208,8 @@ class Select(SelectBaseMixin, FromClause): self.is_where = is_where def visit_compound_select(self, cs): self.visit_select(cs) - # unselect the 'issubquery' flag on the selects within the compound, - # i.e. "SELECT foo UNION SELECT bar", since the enclosing compound select - # is the "subquery" for s in cs.selects: - s.issubquery = False + s.useparens = False def visit_column(self, c):pass def visit_table(self, c):pass def visit_select(self, select): @@ -1220,6 +1217,7 @@ class Select(SelectBaseMixin, FromClause): return select.is_where = self.is_where select.issubquery = True + select.useparens = True if getattr(select, '_correlated', None) is None: select._correlated = self.select._froms