From 29dcaa2b0ae2d26b36ec624be80f56e03ab9095e Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 9 Feb 2016 18:05:40 -0500 Subject: - Fixed bug in :func:`.expression.text` construct where a double-colon expression would not escape properly, e.g. ``some\:\:expr``, as is most commonly required when rendering Postgresql-style CAST expressions. fixes #3644 --- doc/build/changelog/changelog_10.rst | 8 ++++++++ test/sql/test_text.py | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/doc/build/changelog/changelog_10.rst b/doc/build/changelog/changelog_10.rst index 6130fdcef..d607110aa 100644 --- a/doc/build/changelog/changelog_10.rst +++ b/doc/build/changelog/changelog_10.rst @@ -19,6 +19,14 @@ :version: 1.0.12 :released: + .. change:: + :tags: bug, postgresql + :tickets: 3644 + + Fixed bug in :func:`.expression.text` construct where a double-colon + expression would not escape properly, e.g. ``some\:\:expr``, as is most + commonly required when rendering Postgresql-style CAST expressions. + .. change:: :tags: bug, sql :tickets: 3643 diff --git a/test/sql/test_text.py b/test/sql/test_text.py index 78c3282ac..20cb2a6fb 100644 --- a/test/sql/test_text.py +++ b/test/sql/test_text.py @@ -281,6 +281,17 @@ class BindParamTest(fixtures.TestBase, AssertsCompiledSQL): dialect="postgresql" ) + def test_escaping_double_colons(self): + self.assert_compile( + text( + "SELECT * FROM pg_attribute WHERE " + "attrelid = :tab\:\:regclass"), + "SELECT * FROM pg_attribute WHERE " + "attrelid = %(tab)s::regclass", + params={'tab': None}, + dialect="postgresql" + ) + def test_text_in_select_nonfrom(self): generate_series = text("generate_series(:x, :y, :z) as s(a)").\ -- cgit v1.2.1