here, so this has been re-instated and of
course tested. [ticket:2558]
+ - [bug] Added missing operators is_(), isnot()
+ to the ColumnOperators base, so that these long-available
+ operators are present as methods like all
+ the other operators. [ticket:2544]
+
- engine
- [bug] Fixed bug whereby
a disconnect detect + dispose that occurs
"nullsfirst_op": (_scalar, nullsfirst),
"nullslast_op": (_scalar, nullslast),
"in_op": (_in_impl, operators.notin_op),
+ "is_": (_boolean_compare, operators.is_),
+ "isnot": (_boolean_compare, operators.isnot),
"collate": (_collate_impl,),
"match_op": (_match_impl,),
"distinct_op": (_distinct_impl,),
"""
return self.operate(in_op, other)
+ def is_(self, other):
+ """Implement the ``IS`` operator.
+
+ Normally, ``IS`` is generated automatically when comparing to a
+ value of ``None``, which resolves to ``NULL``. However, explicit
+ usage of ``IS`` may be desirable if comparing to boolean values
+ on certain platforms.
+
+ .. versionadded:: 0.7.9
+
+ .. seealso:: :meth:`.ColumnOperators.isnot`
+
+ """
+ return self.operate(is_, other)
+
+ def isnot(self, other):
+ """Implement the ``IS NOT`` operator.
+
+ Normally, ``IS NOT`` is generated automatically when comparing to a
+ value of ``None``, which resolves to ``NULL``. However, explicit
+ usage of ``IS NOT`` may be desirable if comparing to boolean values
+ on certain platforms.
+
+ .. versionadded:: 0.7.9
+
+ .. seealso:: :meth:`.ColumnOperators.is_`
+
+ """
+ return self.operate(isnot, other)
+
def startswith(self, other, **kwargs):
"""Implement the ``startwith`` operator.
BinaryExpression(left, right, operator)
)
+ assert operator(left, right).compare(
+ BinaryExpression(left, right, operator)
+ )
+
def test_desc(self):
self._do_scalar_test(operators.desc_op, desc)
def test_plus(self):
self._do_operate_test(operators.add)
+ def test_is(self):
+ self._do_operate_test(operators.is_)
+
+ def test_isnot(self):
+ self._do_operate_test(operators.isnot)
+
def test_no_getitem(self):
assert_raises_message(
NotImplementedError,