an OID column if it only contained one selectable element, due to missing return in _proxy_column()
- visit_column() calls itself to render a primary key col being used as the interpretation of the oid col instead of relying upon broken partial logic
return schema_prefix + self.preparer.quote(column.table, ANONYMOUS_LABEL.sub(self._process_anon, column.table.name)) + "." + n
elif len(column.table.primary_key) != 0:
pk = list(column.table.primary_key)[0]
- pkname = (pk.is_literal and name or self._truncated_identifier("colident", pk.name))
- return schema_prefix + self.preparer.quote(column.table, ANONYMOUS_LABEL.sub(self._process_anon, column.table.name)) + "." + self.preparer.quote(pk, pkname)
+ return self.visit_column(pk, result_map=result_map, use_schema=use_schema, **kwargs)
else:
return None
elif column.table is None or not column.table.named_with_column:
if s.oid_column:
self.oid_column = self._proxy_column(s.oid_column)
-
def self_group(self, against=None):
return _FromGrouping(self)
else:
col = column._make_proxy(self)
col_ordering.append(col)
+ return col
else:
col_ordering.append(column)
existing = self._col_map[self.selects[0]][len(col_ordering) - 1]
assert u.corresponding_column(s1.c.table1_col2) is u.c.col2
assert u.corresponding_column(s2.c.table2_col2) is u.c.col2
+ def test_singular_union(self):
+ u = union(select([table.c.col1, table.c.col2, table.c.col3]), select([table.c.col1, table.c.col2, table.c.col3]))
+ assert u.oid_column is not None
+
+ u = union(select([table.c.col1, table.c.col2, table.c.col3]))
+ assert u.oid_column
+ assert u.c.col1
+ assert u.c.col2
+ assert u.c.col3
+
def testaliasunion(self):
# same as testunion, except its an alias of the union
u = select([table.c.col1, table.c.col2, table.c.col3, table.c.colx, null().label('coly')]).union(