### Description

The IS NULL/IS NOT NULL only care about the nullability not the value of an expression.
Given the expression x + 1 / 2, the actual result does not matter only if it's null or not - that is, it only matters if x is null or not.
So x + 1 / 2 IS NULL becomes x IS NULL - which can be opportunistically pushed down or evaluated.
x-pack/plugin/ql/src/main/java/org/elasticsearch/xpack/ql/optimizer/OptimizerRules.java
}
            }
            
            
            for (int i = 0, step = 1; i < bcs.size() - 1; i += step, step = 1) {
                BinaryComparison main = bcs.get(i);
                for (int j = i + 1; j < bcs.size(); j++) {
                    BinaryComparison other = bcs.get(j);
                    if (main.left().semanticEquals(other.left())) {
                        
                        if ((main instanceof GreaterThan || main instanceof GreaterThanOrEqual)
                            && (other instanceof LessThan || other instanceof LessThanOrEqual)) {
                            bcs.remove(j);
                            bcs.remove(i);
                            ranges.add(
                                new Range(
                                    and.source(),
                                    main.left(),
                                    main.right(),
                                    main instanceof GreaterThanOrEqual,
                                    other.right(),
                                    other instanceof LessThanOrEqual,
                                    main.zoneId()
                                )
                            );
                            changed = true;
                            step = 0;
                            break;
                        }