diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-10-22 13:29:12 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2012-10-22 13:29:12 -0400 |
| commit | 0c9d55db73776d12a6898929092a42e586f3c4bf (patch) | |
| tree | 106acd13b92679374af143d7a1cdc79344f77e00 /test/sql/test_compiler.py | |
| parent | bd8ccf436cbf9e1250bb026ae2193bad47468984 (diff) | |
| download | sqlalchemy-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.py | 13 |
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 |
