]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
merged r6556 of trunk for [ticket:1641]
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 18 Dec 2009 18:48:57 +0000 (18:48 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 18 Dec 2009 18:48:57 +0000 (18:48 +0000)
CHANGES
lib/sqlalchemy/sql/expression.py
test/sql/test_generative.py

diff --git a/CHANGES b/CHANGES
index e804822c375b32adf7a62ee837cb023a65375e69..b7209ec5848189eaa401d979b695ece953f6ad32 100644 (file)
--- 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]
index a1ebb179fc5bf9634b34e68a4379ca05abb2c4fd..2341cf79c2154ef205582a95d0e630f8841c11e8 100644 (file)
@@ -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):
index 7c094c26b05bf9f143f03925b8dad11c6d1f2a66..1f3be13e28ff3175c0eeebf38aaa0637acdc9176 100644 (file)
@@ -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):