diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-11-11 08:54:30 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-11-11 08:54:30 +0000 |
commit | 9ebe8c99ba4be74ccebf1b013f4e56ec09e023c1 (patch) | |
tree | 7ab2f39fbb6fd832aeea5cef45b54bfd59ba5ba5 /sqlglot/optimizer/simplify.py | |
parent | Adding upstream version 9.0.6. (diff) | |
download | sqlglot-9ebe8c99ba4be74ccebf1b013f4e56ec09e023c1.tar.xz sqlglot-9ebe8c99ba4be74ccebf1b013f4e56ec09e023c1.zip |
Adding upstream version 10.0.1.upstream/10.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sqlglot/optimizer/simplify.py')
-rw-r--r-- | sqlglot/optimizer/simplify.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sqlglot/optimizer/simplify.py b/sqlglot/optimizer/simplify.py index c077906..d759e86 100644 --- a/sqlglot/optimizer/simplify.py +++ b/sqlglot/optimizer/simplify.py @@ -229,7 +229,9 @@ def simplify_literals(expression): operands.append(a) if len(operands) < size: - return functools.reduce(lambda a, b: expression.__class__(this=a, expression=b), operands) + return functools.reduce( + lambda a, b: expression.__class__(this=a, expression=b), operands + ) elif isinstance(expression, exp.Neg): this = expression.this if this.is_number: @@ -255,6 +257,12 @@ def _simplify_binary(expression, a, b): return TRUE if not_ else FALSE if a == NULL: return FALSE if not_ else TRUE + elif isinstance(expression, exp.NullSafeEQ): + if a == b: + return TRUE + elif isinstance(expression, exp.NullSafeNEQ): + if a == b: + return FALSE elif NULL in (a, b): return NULL @@ -357,7 +365,7 @@ def extract_date(cast): def extract_interval(interval): try: - from dateutil.relativedelta import relativedelta + from dateutil.relativedelta import relativedelta # type: ignore except ModuleNotFoundError: return None |