The AST has one variant to support both IN (subquery) and NOT IN (subquery):
InSubquery {
expr: Box<Expr>,
subquery: Box<Query>,
negated: bool,
},
However, the variant for EXISTS does not handle NOT EXISTS:
NOT EXISTS is represented in the AST by wrapping Exists in a UnaryOp with UnaryOperator::Not.
It would be nice if we could use a more consistent approach.