summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-01-08 21:53:37 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-01-08 21:53:37 +0000
commit6eb9c11e7b0b99d7bc76633fbfebf6e280ae9994 (patch)
tree045a1900667782417386dfe0c4ef7f25f7fbda50
parent93d6f1d58ad3aa9d4da61178553ea0e914426cd1 (diff)
downloadsqlalchemy-6eb9c11e7b0b99d7bc76633fbfebf6e280ae9994.tar.gz
- fixed bug in union() so that select() statements which don't derive
from FromClause objects can be unioned
-rw-r--r--CHANGES3
-rw-r--r--lib/sqlalchemy/sql/expression.py3
-rw-r--r--test/sql/select.py9
3 files changed, 14 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 6b0bffc34..d90bbe607 100644
--- 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.
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py
index 3dc7242d7..b2eaa4221 100644
--- a/lib/sqlalchemy/sql/expression.py
+++ b/lib/sqlalchemy/sql/expression.py
@@ -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):
diff --git a/test/sql/select.py b/test/sql/select.py
index 0df575c7c..ae49659f7 100644
--- a/test/sql/select.py
+++ b/test/sql/select.py
@@ -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(