]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- fixed bug in union() so that select() statements which don't derive
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 8 Jan 2008 21:53:37 +0000 (21:53 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 8 Jan 2008 21:53:37 +0000 (21:53 +0000)
from FromClause objects can be unioned

CHANGES
lib/sqlalchemy/sql/expression.py
test/sql/select.py

diff --git a/CHANGES b/CHANGES
index 6b0bffc34ac78d826970c63584d41735f559a6e9..d90bbe6072fda7cb20b648e868a44a78f6d52b27 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,9 @@ CHANGES
     - Text type is properly exported now and does not raise a warning
       on DDL create
       
+    - fixed bug in union() so that select() statements which don't derive
+      from FromClause objects can be unioned
+      
 - dialects
     - Fixed reflection of mysql empty string column defaults.
 
index 3dc7242d7ae50deeec0840dcf96773716fea6ac6..b2eaa4221d7192daf6d2798198d001350f41ae7b 100644 (file)
@@ -2898,7 +2898,8 @@ class CompoundSelect(_SelectBaseMixin, FromClause):
         _SelectBaseMixin.__init__(self, **kwargs)
 
         for s in self.selects:
-            self.oid_column = self._proxy_column(s.oid_column)
+            if s.oid_column:
+                self.oid_column = self._proxy_column(s.oid_column)
 
 
     def self_group(self, against=None):
index 0df575c7c0e85bcf1f3c88aac96129a52c94551f..ae49659f7fda673488fe02bbc13df129b4f7f279 100644 (file)
@@ -888,6 +888,15 @@ WHERE mytable.name = :mytable_name_1 GROUP BY mytable.myid, mytable.name UNION S
 FROM mytable WHERE mytable.name = :mytable_name_2"
             )
 
+            self.assert_compile(
+                union(
+                    select([literal(100).label('value')]),
+                    select([literal(200).label('value')])
+                    ),
+                    "SELECT :param_1 AS value UNION SELECT :param_2 AS value"
+            )
+
+
     def test_compound_select_grouping(self):
             self.assert_compile(
                 union_all(