From 9a6947427af58eeb6ebf09ec6de2a1b7ec12d828 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 2 Sep 2016 11:48:15 -0400 Subject: Allow stringify compiler to render unnamed column Stringify of expression with unnamed :class:`.Column` objects, as occurs in lots of situations including ORM error reporting, will now render the name in string context as "" rather than raising a compile error. Change-Id: I76f637c5eb4cfdb1b526964cb001565b97e296da Fixes: #3789 --- test/sql/test_compiler.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'test/sql') diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py index a0db9864e..6896c9857 100644 --- a/test/sql/test_compiler.py +++ b/test/sql/test_compiler.py @@ -2432,14 +2432,16 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL): assert_raises_message( exc.CompileError, "Cannot compile Column object until its 'name' is assigned.", - str, sel2 + sel2.compile, + dialect=default.DefaultDialect() ) sel3 = select([my_str]).as_scalar() assert_raises_message( exc.CompileError, "Cannot compile Column object until its 'name' is assigned.", - str, sel3 + sel3.compile, + dialect=default.DefaultDialect() ) my_str.name = 'foo' @@ -2709,6 +2711,13 @@ class StringifySpecialTest(fixtures.TestBase): "FROM mytable WHERE mytable.myid = :myid_1" ) + def test_unnamed_column(self): + stmt = Column(Integer) == 5 + eq_ignore_whitespace( + str(stmt), + '"" = :param_1' + ) + def test_cte(self): # stringify of these was supported anyway by defaultdialect. stmt = select([table1.c.myid]).cte() -- cgit v1.2.1