summaryrefslogtreecommitdiff
path: root/test/sql/test_select.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/sql/test_select.py')
-rw-r--r--test/sql/test_select.py43
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