|
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