# 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)
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
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):
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