diff --git a/r2/r2/lib/db/operators.py b/r2/r2/lib/db/operators.py index 652249fa7..84137ceda 100644 --- a/r2/r2/lib/db/operators.py +++ b/r2/r2/lib/db/operators.py @@ -29,6 +29,7 @@ class BooleanOp(object): class or_(BooleanOp): pass class and_(BooleanOp): pass +class not_(BooleanOp): pass class op(object): def __init__(self, lval, lval_name, rval): diff --git a/r2/r2/lib/db/tdb_sql.py b/r2/r2/lib/db/tdb_sql.py index 09661212f..491072cc8 100644 --- a/r2/r2/lib/db/tdb_sql.py +++ b/r2/r2/lib/db/tdb_sql.py @@ -710,6 +710,8 @@ def sa_op(op): return sa.or_(*[sa_op(o) for o in op.ops]) elif isinstance(op, operators.and_): return sa.and_(*[sa_op(o) for o in op.ops]) + elif isinstance(op, operators.not_): + return sa.not_(*[sa_op(o) for o in op.ops]) #else, assume op is an instance of op if isinstance(op, operators.eq):