Add support in IS boolean filter (#474)

* Add support in IS TRUE IS FALSE

* Fix lint

* Add test for is false
This commit is contained in:
yuval-illumex 2022-05-02 21:02:28 +03:00 committed by GitHub
parent 525ba527bb
commit 7732c34b19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 1 deletions

View file

@ -1130,9 +1130,21 @@ impl<'a> Parser<'a> {
{
let expr2 = self.parse_expr()?;
Ok(Expr::IsNotDistinctFrom(Box::new(expr), Box::new(expr2)))
} else if let Some(right) =
self.parse_one_of_keywords(&[Keyword::TRUE, Keyword::FALSE])
{
let mut val = Value::Boolean(true);
if right == Keyword::FALSE {
val = Value::Boolean(false);
}
Ok(Expr::BinaryOp {
left: Box::new(expr),
op: BinaryOperator::Eq,
right: Box::new(Expr::Value(val)),
})
} else {
self.expected(
"[NOT] NULL or [NOT] DISTINCT FROM after IS",
"[NOT] NULL or [NOT] DISTINCT FROM TRUE FALSE after IS",
self.peek_token(),
)
}