]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Fixed bug in :func:`.expression.text` construct where a double-colon
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 9 Feb 2016 23:05:40 +0000 (18:05 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 9 Feb 2016 23:05:40 +0000 (18:05 -0500)
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
test/sql/test_text.py

index 6130fdcefc2e78a1fe051fe9568f443af5e97a64..d607110aae601d539e6083dcc7ecce0bb6e2328f 100644 (file)
     :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
index 78c3282ac7f3ce54390677d1d183983d76e1b473..20cb2a6fbd35bbbae42bd2872ba32d1b55f79058 100644 (file)
@@ -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)").\