diff --git a/djaosdb/sql2mongo/operators.py b/djaosdb/sql2mongo/operators.py index 12e53e6f6cdf442497898abccd681cb76a54d24c..323e772cb8b92fe7d7d0e0946626a8f6c531f0ce 100644 --- a/djaosdb/sql2mongo/operators.py +++ b/djaosdb/sql2mongo/operators.py @@ -241,7 +241,11 @@ class BetweenOp(_BinaryOp): def negate(self): self.is_negated = True + def to_mongo(self): + if self._lower == self._upper: + return {"type": "pov", "p": self._field, + "o": " in ", "v": self._upper, "negation": self.is_negated} if not self.is_negated: return { self._field: { @@ -483,7 +487,8 @@ class _StatementParser: op = self._token2op(prev_op, tok, statement) if not op: continue - if isinstance(op, (_InNotInOp, LikeOp, IsOp, NotOp, CmpOp)) and prev_op is not None and isinstance(prev_op, IsTrueOp): + if isinstance(op, (_InNotInOp, LikeOp, IsOp, NotOp, CmpOp, + BetweenOp)) and prev_op is not None and isinstance(prev_op, IsTrueOp): self._ops.remove(prev_op) prev_op = prev_op.lhs link_op()