summaryrefslogtreecommitdiff
path: root/test/sql/test_compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-02-26 15:45:52 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-02-26 15:45:52 -0500
commit6aeec027a0fb33348bdb8ec5b448044a67eff7c5 (patch)
treef7f1528f6827e1259678904765db296fdd016324 /test/sql/test_compiler.py
parent302ad6228a12fe5cb4c5d332e5bab65ed373bc01 (diff)
downloadsqlalchemy-6aeec027a0fb33348bdb8ec5b448044a67eff7c5.tar.gz
- Adjusted the logic which applies names to the .c collection when
a no-name :class:`.BindParameter` is received, e.g. via :func:`.sql.literal` or similar; the "key" of the bind param is used as the key within .c. rather than the rendered name. Since these binds have "anonymous" names in any case, this allows individual bound parameters to have their own name within a selectable if they are otherwise unlabeled. fixes #2974
Diffstat (limited to 'test/sql/test_compiler.py')
-rw-r--r--test/sql/test_compiler.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py
index 25aa78b03..b1c807df6 100644
--- a/test/sql/test_compiler.py
+++ b/test/sql/test_compiler.py
@@ -2082,6 +2082,10 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
)
def test_naming(self):
+ # TODO: the part where we check c.keys() are not "compile" tests, they
+ # belong probably in test_selectable, or some broken up
+ # version of that suite
+
f1 = func.hoho(table1.c.name)
s1 = select([table1.c.myid, table1.c.myid.label('foobar'),
f1,
@@ -2098,7 +2102,8 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
exprs = (
table1.c.myid == 12,
func.hoho(table1.c.myid),
- cast(table1.c.name, Numeric)
+ cast(table1.c.name, Numeric),
+ literal('x'),
)
for col, key, expr, label in (
(table1.c.name, 'name', 'mytable.name', None),
@@ -2108,7 +2113,8 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
'CAST(mytable.name AS NUMERIC)', 'anon_1'),
(t1.c.col1, 'col1', 'mytable.col1', None),
(column('some wacky thing'), 'some wacky thing',
- '"some wacky thing"', '')
+ '"some wacky thing"', ''),
+ (exprs[3], exprs[3].key, ":param_1", "anon_1")
):
if getattr(col, 'table', None) is not None:
t = col.table