diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-06-07 03:02:03 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-06-07 03:02:03 +0000 |
commit | bf8d8436ec81a1aa5ad35b849285966753cfe629 (patch) | |
tree | 8ba4a08fb5f9282eb74a2d49d8eb4f0958bb5fdf | |
parent | a74da6d21e7f5f2dd31dbaa8bc6cbf11e165360e (diff) | |
download | sqlalchemy-bf8d8436ec81a1aa5ad35b849285966753cfe629.tar.gz |
extra test for corresponding column fix
-rw-r--r-- | lib/sqlalchemy/sql.py | 2 | ||||
-rwxr-xr-x | test/sql/selectable.py | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 3a8a27d67..41b61d4af 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -1734,6 +1734,8 @@ class FromClause(Selectable): for co in self._adjusted_exportable_columns(): cp = self._proxy_column(co) for ci in cp.orig_set: + # note that some ambiguity is raised here, whereby a selectable might have more than + # one column that maps to an "original" column. examples include unions and joins self._orig_cols[ci] = cp if self.oid_column is not None: for ci in self.oid_column.orig_set: diff --git a/test/sql/selectable.py b/test/sql/selectable.py index 221d8430c..57ad99886 100755 --- a/test/sql/selectable.py +++ b/test/sql/selectable.py @@ -27,6 +27,11 @@ table2 = Table('table2', db, )
class SelectableTest(testbase.AssertMixin):
+ def testjoinagainstself(self):
+ jj = select([table.c.col1.label('bar_col1')])
+ jjj = join(table, jj, table.c.col1==jj.c.bar_col1)
+ assert jjj.corresponding_column(jjj.c.table1_col1) is jjj.c.table1_col1
+
def testjoinagainstjoin(self):
j = outerjoin(table, table2, table.c.col1==table2.c.col2)
jj = select([ table.c.col1.label('bar_col1')],from_obj=[j]).alias('foo')
|