From 98d5537435b2951b36c45f1fda667fa27c165794 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 3 May 2023 11:12:24 +0200 Subject: Adding upstream version 11.7.1. Signed-off-by: Daniel Baumann --- sqlglot/optimizer/simplify.py | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) (limited to 'sqlglot/optimizer/simplify.py') diff --git a/sqlglot/optimizer/simplify.py b/sqlglot/optimizer/simplify.py index 28ae86d..4e6c910 100644 --- a/sqlglot/optimizer/simplify.py +++ b/sqlglot/optimizer/simplify.py @@ -201,23 +201,24 @@ def _simplify_comparison(expression, left, right, or_=False): return left if (av < bv if or_ else av >= bv) else right # we can't ever shortcut to true because the column could be null - if isinstance(a, exp.LT) and isinstance(b, GT_GTE): - if not or_ and av <= bv: - return exp.false() - elif isinstance(a, exp.GT) and isinstance(b, LT_LTE): - if not or_ and av >= bv: - return exp.false() - elif isinstance(a, exp.EQ): - if isinstance(b, exp.LT): - return exp.false() if av >= bv else a - if isinstance(b, exp.LTE): - return exp.false() if av > bv else a - if isinstance(b, exp.GT): - return exp.false() if av <= bv else a - if isinstance(b, exp.GTE): - return exp.false() if av < bv else a - if isinstance(b, exp.NEQ): - return exp.false() if av == bv else a + if not or_: + if isinstance(a, exp.LT) and isinstance(b, GT_GTE): + if av <= bv: + return exp.false() + elif isinstance(a, exp.GT) and isinstance(b, LT_LTE): + if av >= bv: + return exp.false() + elif isinstance(a, exp.EQ): + if isinstance(b, exp.LT): + return exp.false() if av >= bv else a + if isinstance(b, exp.LTE): + return exp.false() if av > bv else a + if isinstance(b, exp.GT): + return exp.false() if av <= bv else a + if isinstance(b, exp.GTE): + return exp.false() if av < bv else a + if isinstance(b, exp.NEQ): + return exp.false() if av == bv else a return None -- cgit v1.2.3