summaryrefslogtreecommitdiff
path: root/test/sql/test_compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-10-22 13:29:12 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-10-22 13:29:12 -0400
commit0c9d55db73776d12a6898929092a42e586f3c4bf (patch)
tree106acd13b92679374af143d7a1cdc79344f77e00 /test/sql/test_compiler.py
parentbd8ccf436cbf9e1250bb026ae2193bad47468984 (diff)
downloadsqlalchemy-0c9d55db73776d12a6898929092a42e586f3c4bf.tar.gz
The auto-correlation feature of :func:`.select`, and
by proxy that of :class:`.orm.Query`, will not take effect for a SELECT statement that is being rendered directly in the FROM list of the enclosing SELECT. Correlation in SQL only applies to column expressions such as those in the WHERE, ORDER BY, columns clause. [ticket:2595]
Diffstat (limited to 'test/sql/test_compiler.py')
-rw-r--r--test/sql/test_compiler.py13
1 files changed, 4 insertions, 9 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py
index 5b7a5d1d7..04443a0ed 100644
--- a/test/sql/test_compiler.py
+++ b/test/sql/test_compiler.py
@@ -516,11 +516,13 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
def test_where_subquery(self):
s = select([addresses.c.street], addresses.c.user_id
== users.c.user_id, correlate=True).alias('s')
+
+ # don't correlate in a FROM list
self.assert_compile(select([users, s.c.street], from_obj=s),
"SELECT users.user_id, users.user_name, "
"users.password, s.street FROM users, "
"(SELECT addresses.street AS street FROM "
- "addresses WHERE addresses.user_id = "
+ "addresses, users WHERE addresses.user_id = "
"users.user_id) AS s")
self.assert_compile(table1.select(table1.c.myid
== select([table1.c.myid], table1.c.name
@@ -556,14 +558,7 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
'mytable AS ta WHERE EXISTS (SELECT 1 FROM '
'myothertable WHERE myothertable.otherid = '
'ta.myid)) AS sq2, mytable')
- s = select([addresses.c.street], addresses.c.user_id
- == users.c.user_id, correlate=True).alias('s')
- self.assert_compile(select([users, s.c.street], from_obj=s),
- "SELECT users.user_id, users.user_name, "
- "users.password, s.street FROM users, "
- "(SELECT addresses.street AS street FROM "
- "addresses WHERE addresses.user_id = "
- "users.user_id) AS s")
+
# test constructing the outer query via append_column(), which
# occurs in the ORM's Query object