|
10 | 10 | from sqlalchemy.sql import between |
11 | 11 | from sqlalchemy.sql import func |
12 | 12 | from sqlalchemy.sql.functions import ReturnTypeFromArgs |
| 13 | +from sqlalchemy.sql.elements import Null |
13 | 14 | from sqlalchemy.sql import expression |
14 | 15 | from sqlalchemy.sql import schema |
15 | 16 | from sqlalchemy import sql, text |
@@ -445,6 +446,22 @@ def visit_is_true_unary_operator(self, element, operator, **kw): |
445 | 446 | def visit_is_false_unary_operator(self, element, operator, **kw): |
446 | 447 | return "%s = 0" % self.process(element.element, **kw) |
447 | 448 |
|
| 449 | + def visit_is__binary(self, binary, operator, **kw): |
| 450 | + op = "IS" if isinstance(binary.right, Null) else "=" |
| 451 | + return "%s %s %s" % ( |
| 452 | + self.process(binary.left), |
| 453 | + op, |
| 454 | + self.process(binary.right), |
| 455 | + ) |
| 456 | + |
| 457 | + def visit_is_not_binary(self, binary, operator, **kw): |
| 458 | + op = "IS NOT" if isinstance(binary.right, Null) else "<>" |
| 459 | + return "%s %s %s" % ( |
| 460 | + self.process(binary.left), |
| 461 | + op, |
| 462 | + self.process(binary.right), |
| 463 | + ) |
| 464 | + |
448 | 465 | def get_select_precolumns(self, select, **kw): |
449 | 466 | text = "" |
450 | 467 | if select._distinct or select._distinct_on: |
|
0 commit comments