summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r--lib/sqlalchemy/sql.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py
index 8c10a44d9..5edfe6f1f 100644
--- a/lib/sqlalchemy/sql.py
+++ b/lib/sqlalchemy/sql.py
@@ -540,8 +540,12 @@ class CompareMixin(object):
def _compare(self, operator, obj):
if _is_literal(obj):
if obj is None:
- if operator != '=':
- raise ArgumentError("Only '=' operator can be used with NULL")
+ if operator == '=':
+ return BooleanExpression(self._compare_self(), null(), 'IS')
+ elif operator == '!=':
+ return BooleanExpression(self._compare_self(), null(), 'IS NOT')
+ else:
+ raise exceptions.ArgumentError("Only '='/'!=' operators can be used with NULL")
return BooleanExpression(self._compare_self(), null(), 'IS')
else:
obj = self._bind_param(obj)