diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-10-16 16:03:59 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-10-16 16:03:59 +0000 |
| commit | 9b22fc0a9b5a6e97129096dd5ee8b3eb24895ac4 (patch) | |
| tree | 798ca0b3fdffe8c045e50e09793ffbfc0adb032e /test/sql/query.py | |
| parent | 9226871456014f1283633ead19fac23487a0e429 (diff) | |
| download | sqlalchemy-9b22fc0a9b5a6e97129096dd5ee8b3eb24895ac4.tar.gz | |
- Fixed SQL compiler's awareness of top-level column labels as used
in result-set processing; nested selects which contain the same column
names don't affect the result or conflict with result-column metadata.
- query.get() and related functions (like many-to-one lazyloading)
use compile-time-aliased bind parameter names, to prevent
name conflicts with bind parameters that already exist in the
mapped selectable.
Diffstat (limited to 'test/sql/query.py')
| -rw-r--r-- | test/sql/query.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/test/sql/query.py b/test/sql/query.py index eebfb7c08..77e1421a5 100644 --- a/test/sql/query.py +++ b/test/sql/query.py @@ -362,7 +362,18 @@ class QueryTest(PersistTest): except exceptions.InvalidRequestError, e: assert str(e) == "Ambiguous column name 'user_id' in result set! try 'use_labels' option on select statement." or \ str(e) == "Ambiguous column name 'USER_ID' in result set! try 'use_labels' option on select statement." - + + def test_column_label_targeting(self): + users.insert().execute(user_id=7, user_name='ed') + + for s in ( + users.select().alias('foo'), + users.select().alias(users.name), + ): + row = s.select(use_labels=True).execute().fetchone() + assert row[s.c.user_id] == 7 + assert row[s.c.user_name] == 'ed' + def test_keys(self): users.insert().execute(user_id=1, user_name='foo') r = users.select().execute().fetchone() |
