From: Mike Bayer Date: Fri, 18 Dec 2009 18:48:57 +0000 (+0000) Subject: merged r6556 of trunk for [ticket:1641] X-Git-Tag: rel_0_5_7~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee9d7372cb51f48bafc3166f3fc0d678282f3910;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git merged r6556 of trunk for [ticket:1641] --- diff --git a/CHANGES b/CHANGES index e804822c37..b7209ec584 100644 --- a/CHANGES +++ b/CHANGES @@ -92,6 +92,10 @@ CHANGES a Text/String, PickleType/Binary, etc. Part of [ticket:1556]. + - Fixed bug preventing alias() of an alias() from being + cloned or adapted (occurs frequently in ORM operations). + [ticket:1641] + - sqlite - sqlite dialect properly generates CREATE INDEX for a table that is in an alternate schema. [ticket:1439] diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index a1ebb179fc..2341cf79c2 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2659,7 +2659,7 @@ class Alias(FromClause): self.element = _clone(self.element) baseselectable = self.element while isinstance(baseselectable, Alias): - baseselectable = baseselectable.selectable + baseselectable = baseselectable.element self.original = baseselectable def get_children(self, column_collections=True, aliased_selectables=True, **kwargs): diff --git a/test/sql/test_generative.py b/test/sql/test_generative.py index 7c094c26b0..1f3be13e28 100644 --- a/test/sql/test_generative.py +++ b/test/sql/test_generative.py @@ -338,6 +338,11 @@ class ClauseTest(TestBase, AssertsCompiledSQL): s4 = sql_util.ClauseAdapter(table('foo')).traverse(s3) assert orig == str(s) == str(s3) == str(s4) + subq = subq.alias('subq') + s = select([t1.c.col1, subq.c.col1], from_obj=[t1, subq, t1.join(subq, t1.c.col1==subq.c.col2)]) + s5 = CloningVisitor().traverse(s) + assert orig == str(s) == str(s5) + def test_correlated_select(self): s = select(['*'], t1.c.col1==t2.c.col1, from_obj=[t1, t2]).correlate(t2) class Vis(CloningVisitor):