Exemplo n.º 1
0
    def visit_binary(self, binary, **kwargs):
        """Move bind parameters to the right-hand side of an operator, where
        possible.

        """
        if (isinstance(binary.left, expression._BindParamClause)
                and binary.operator == operator.eq
                and not isinstance(binary.right, expression._BindParamClause)):
            return self.process(
                expression._BinaryExpression(binary.right, binary.left,
                                             binary.operator), **kwargs)
        else:
            if ((binary.operator is operator.eq
                 or binary.operator is operator.ne) and
                ((isinstance(binary.left, expression._FromGrouping) and
                  isinstance(binary.left.element, expression._ScalarSelect)) or
                 (isinstance(binary.right, expression._FromGrouping) and
                  isinstance(binary.right.element, expression._ScalarSelect))
                 or isinstance(binary.left, expression._ScalarSelect)
                 or isinstance(binary.right, expression._ScalarSelect))):
                op = binary.operator == operator.eq and "IN" or "NOT IN"
                return self.process(
                    expression._BinaryExpression(binary.left, binary.right,
                                                 op), **kwargs)
            return super(MSSQLCompiler, self).visit_binary(binary, **kwargs)
Exemplo n.º 2
0
    def visit_binary(self, binary, **kwargs):
        """Move bind parameters to the right-hand side of an operator, where
        possible.

        """
        if (
            isinstance(binary.left, expression._BindParamClause)
            and binary.operator == operator.eq
            and not isinstance(binary.right, expression._BindParamClause)
        ):
            return self.process(expression._BinaryExpression(binary.right, binary.left, binary.operator), **kwargs)
        else:
            if (binary.operator is operator.eq or binary.operator is operator.ne) and (
                (
                    isinstance(binary.left, expression._FromGrouping)
                    and isinstance(binary.left.element, expression._ScalarSelect)
                )
                or (
                    isinstance(binary.right, expression._FromGrouping)
                    and isinstance(binary.right.element, expression._ScalarSelect)
                )
                or isinstance(binary.left, expression._ScalarSelect)
                or isinstance(binary.right, expression._ScalarSelect)
            ):
                op = binary.operator == operator.eq and "IN" or "NOT IN"
                return self.process(expression._BinaryExpression(binary.left, binary.right, op), **kwargs)
            return super(MSSQLCompiler, self).visit_binary(binary, **kwargs)
Exemplo n.º 3
0
 def visit_binary(self, binary):
     """Move bind parameters to the right-hand side of an operator, where possible."""
     if isinstance(binary.left, expression._BindParamClause
                   ) and binary.operator == operator.eq:
         return self.process(
             expression._BinaryExpression(binary.right, binary.left,
                                          binary.operator))
     else:
         return super(SybaseSQLCompiler, self).visit_binary(binary)
Exemplo n.º 4
0
 def visit_binary(self, binary, **kwargs):
     """Move bind parameters to the right-hand side of an operator, where possible."""
     if isinstance(binary.left, expression._BindParamClause) and binary.operator == operator.eq:
         return self.process(expression._BinaryExpression(binary.right, binary.left, binary.operator), **kwargs)
     else:
         return super(MSSQLCompiler, self).visit_binary(binary, **kwargs)