]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Regression from this ticket caused the unsupported keyword
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 15 May 2013 19:46:29 +0000 (15:46 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 15 May 2013 19:46:29 +0000 (15:46 -0400)
"true" to render, added logic to convert this to 1/0
for SQL server.
[ticket:2682]

doc/build/changelog/changelog_08.rst
lib/sqlalchemy/dialects/mssql/base.py
test/dialect/test_mssql.py
test/dialect/test_oracle.py

index 663d3a40b2cba6d9edd758abce2350313afde472..9a09f104570550430c9c68021dcb1aa02418db21 100644 (file)
       on the apparent string message sent in the exception; tested
       against mysqlconnector 1.0.9.
 
+    .. change::
+      :tags: bug, sql, mssql
+      :tickets: 2682
+
+      Regression from this ticket caused the unsupported keyword
+      "true" to render, added logic to convert this to 1/0
+      for SQL server.
+
 .. changelog::
     :version: 0.8.1
     :released: April 27, 2013
index 70ffcb8cdf29cd1b094059c23bbfda235ead624b..fc952f4b5933ee4dfb6f7b84620a7b69e8beffe6 100644 (file)
@@ -701,6 +701,12 @@ class MSSQLCompiler(compiler.SQLCompiler):
                 (self.process(binary.left, **kw),
                 self.process(binary.right, **kw))
 
+    def visit_true(self, expr, **kw):
+        return '1'
+
+    def visit_false(self, expr, **kw):
+        return '0'
+
     def visit_match_op_binary(self, binary, operator, **kw):
         return "CONTAINS (%s, %s)" % (
                                         self.process(binary.left, **kw),
index f1cd3fe85b830b6897ab2e4654965468bc661446..7b8f533908fd066520ff034e60c1d41772432aa8 100644 (file)
@@ -17,10 +17,21 @@ from sqlalchemy.testing import emits_warning_on, assert_raises_message
 import decimal
 from sqlalchemy.engine.reflection import Inspector
 from sqlalchemy.util.compat import b
+from sqlalchemy import sql
+
 
 class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
     __dialect__ = mssql.dialect()
 
+    def test_true_false(self):
+        self.assert_compile(
+            sql.false(), "0"
+        )
+        self.assert_compile(
+            sql.true(),
+            "1"
+        )
+
     def test_select(self):
         t = table('sometable', column('somecolumn'))
         self.assert_compile(t.select(),
index 861b28c5f718c1a9def7fa9facc461bff765f5d2..def4654f026589b553c0cdc1c0ce075f4aa5a74e 100644 (file)
@@ -15,6 +15,7 @@ import decimal
 from sqlalchemy.testing.schema import Table, Column
 import datetime
 import os
+from sqlalchemy import sql
 
 
 class OutParamTest(fixtures.TestBase, AssertsExecutionResults):
@@ -106,6 +107,15 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
 
     __dialect__ = oracle.dialect()
 
+    def test_true_false(self):
+        self.assert_compile(
+            sql.false(), "0"
+        )
+        self.assert_compile(
+            sql.true(),
+            "1"
+        )
+
     def test_owner(self):
         meta = MetaData()
         parent = Table('parent', meta, Column('id', Integer,