diff options
Diffstat (limited to 'test/sql/test_select.py')
| -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 |
