diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-10-20 17:12:58 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-10-20 17:12:58 +0000 |
| commit | 404f43894a63cea858189240c4027a7451b87bf2 (patch) | |
| tree | 9d8bfbcbcf78d4e53c01383784a4f0e0df1f3615 /test/sql | |
| parent | 7b457b973102c8fe7c3105d5984f48a3265a5168 (diff) | |
| download | sqlalchemy-404f43894a63cea858189240c4027a7451b87bf2.tar.gz | |
merge r6418 from 0.5, dedupe expressions on clause ident, not string value
[ticket:1574]
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_select.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/sql/test_select.py b/test/sql/test_select.py index 757dc5213..3dc09c9df 100644 --- a/test/sql/test_select.py +++ b/test/sql/test_select.py @@ -182,6 +182,49 @@ sq.myothertable_othername AS sq_myothertable_othername FROM (" + sqstring + ") A , dialect=default.DefaultDialect(paramstyle='pyformat') ) + def test_dupe_columns(self): + """test that deduping is performed against clause element identity, not rendered result.""" + + self.assert_compile( + select([column('a'), column('a'), column('a')]), + "SELECT a, a, a" + , dialect=default.DefaultDialect() + ) + + c = column('a') + self.assert_compile( + select([c, c, c]), + "SELECT a" + , dialect=default.DefaultDialect() + ) + + a, b = column('a'), column('b') + self.assert_compile( + select([a, b, b, b, a, a]), + "SELECT a, b" + , dialect=default.DefaultDialect() + ) + + self.assert_compile( + select([bindparam('a'), bindparam('b'), bindparam('c')]), + "SELECT :a, :b, :c" + , dialect=default.DefaultDialect(paramstyle='named') + ) + + self.assert_compile( + select([bindparam('a'), bindparam('b'), bindparam('c')]), + "SELECT ?, ?, ?" + , dialect=default.DefaultDialect(paramstyle='qmark'), + ) + + self.assert_compile( + select(["a", "a", "a"]), + "SELECT a, a, a" + ) + + s = select([bindparam('a'), bindparam('b'), bindparam('c')]) + s = s.compile(dialect=default.DefaultDialect(paramstyle='qmark')) + eq_(s.positiontup, ['a', 'b', 'c']) def test_nested_uselabels(self): """test nested anonymous label generation. this |
