From a56aecc72619258b0964c89efbd92ac6591adc53 Mon Sep 17 00:00:00 2001 From: Siddique Bagwan Date: Wed, 31 Jul 2024 17:47:10 +0530 Subject: [PATCH 1/2] None check --- sqlglot/optimizer/unnest_subqueries.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/sqlglot/optimizer/unnest_subqueries.py b/sqlglot/optimizer/unnest_subqueries.py index dcb2f59f51..094dada310 100644 --- a/sqlglot/optimizer/unnest_subqueries.py +++ b/sqlglot/optimizer/unnest_subqueries.py @@ -261,16 +261,19 @@ def remove_aggs(node): if key in group_by: key.replace(nested) elif isinstance(predicate, exp.EQ): - parent_predicate = _replace( - parent_predicate, - f"({parent_predicate} AND ARRAY_CONTAINS({nested}, {column}))", - ) + if parent_predicate: + parent_predicate = _replace( + parent_predicate, + f"({parent_predicate} AND ARRAY_CONTAINS({nested}, {column}))", + ) else: key.replace(exp.to_identifier("_x")) - parent_predicate = _replace( - parent_predicate, - f"({parent_predicate} AND ARRAY_ANY({nested}, _x -> {predicate}))", - ) + + if parent_predicate: + parent_predicate = _replace( + parent_predicate, + f"({parent_predicate} AND ARRAY_ANY({nested}, _x -> {predicate}))", + ) parent_select.join( select.group_by(*group_by, copy=False), From 33f66be86db51e58d618c2cd94ef84841c4d21f0 Mon Sep 17 00:00:00 2001 From: Siddique Bagwan Date: Thu, 1 Aug 2024 12:11:22 +0530 Subject: [PATCH 2/2] improve error message --- sqlglot/optimizer/scope.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sqlglot/optimizer/scope.py b/sqlglot/optimizer/scope.py index 6826bf93b4..fd44658c50 100644 --- a/sqlglot/optimizer/scope.py +++ b/sqlglot/optimizer/scope.py @@ -470,8 +470,9 @@ def traverse(self): scope.subquery_scopes, ) ) - if len(result) > MAX_SCOPE_DEPTH: - raise OptimizeError("Scope depth limit exceeded") + actual_depth = len(result) + if actual_depth > MAX_SCOPE_DEPTH: + raise OptimizeError(f"Scope depth limit({actual_depth}) exceeded max depth limit({MAX_SCOPE_DEPTH})") yield from reversed(result)