summaryrefslogtreecommitdiffstats
path: root/sqlglot/optimizer/simplify.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-02-08 05:38:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-02-08 05:38:42 +0000
commitc66e4a33e1a07c439f03fe47f146a6c6482bf6df (patch)
treecfdf01111c063b3e50841695e6c2768833aea4dc /sqlglot/optimizer/simplify.py
parentReleasing debian version 20.11.0-1. (diff)
downloadsqlglot-c66e4a33e1a07c439f03fe47f146a6c6482bf6df.tar.xz
sqlglot-c66e4a33e1a07c439f03fe47f146a6c6482bf6df.zip
Merging upstream version 21.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.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/sqlglot/optimizer/simplify.py b/sqlglot/optimizer/simplify.py
index d5b9119..90357dd 100644
--- a/sqlglot/optimizer/simplify.py
+++ b/sqlglot/optimizer/simplify.py
@@ -104,7 +104,6 @@ def simplify(
if root:
expression.replace(node)
-
return node
expression = while_changing(expression, _simplify)
@@ -174,16 +173,20 @@ def simplify_not(expression):
if isinstance(this, exp.Paren):
condition = this.unnest()
if isinstance(condition, exp.And):
- return exp.or_(
- exp.not_(condition.left, copy=False),
- exp.not_(condition.right, copy=False),
- copy=False,
+ return exp.paren(
+ exp.or_(
+ exp.not_(condition.left, copy=False),
+ exp.not_(condition.right, copy=False),
+ copy=False,
+ )
)
if isinstance(condition, exp.Or):
- return exp.and_(
- exp.not_(condition.left, copy=False),
- exp.not_(condition.right, copy=False),
- copy=False,
+ return exp.paren(
+ exp.and_(
+ exp.not_(condition.left, copy=False),
+ exp.not_(condition.right, copy=False),
+ copy=False,
+ )
)
if is_null(condition):
return exp.null()
@@ -490,7 +493,7 @@ def simplify_equality(expression: exp.Expression) -> exp.Expression:
if isinstance(expression, COMPARISONS):
l, r = expression.left, expression.right
- if not l.__class__ in INVERSE_OPS:
+ if l.__class__ not in INVERSE_OPS:
return expression
if r.is_number:
@@ -714,8 +717,7 @@ def simplify_concat(expression):
"""Reduces all groups that contain string literals by concatenating them."""
if not isinstance(expression, CONCATS) or (
# We can't reduce a CONCAT_WS call if we don't statically know the separator
- isinstance(expression, exp.ConcatWs)
- and not expression.expressions[0].is_string
+ isinstance(expression, exp.ConcatWs) and not expression.expressions[0].is_string
):
return expression