File tree Expand file tree Collapse file tree 2 files changed +27
-3
lines changed
Expand file tree Collapse file tree 2 files changed +27
-3
lines changed Original file line number Diff line number Diff line change @@ -336,10 +336,18 @@ def parse_expression(
336336
337337
338338def parse_bool (v : t .Any ) -> bool :
339- if isinstance (v , exp .Boolean ):
340- return v .this
341339 if isinstance (v , exp .Expression ):
340+ if not isinstance (v , exp .Boolean ):
341+ from sqlglot .optimizer .simplify import simplify
342+
343+ # Try to reduce expressions like (1 = 1) (see: T-SQL boolean generation)
344+ v = simplify (v )
345+
346+ if isinstance (v , exp .Boolean ):
347+ return v .this
348+
342349 return str_to_bool (v .name )
350+
343351 return str_to_bool (str (v or "" ))
344352
345353
Original file line number Diff line number Diff line change @@ -10445,7 +10445,7 @@ def test_invalid_sql_model_query() -> None:
1044510445 load_sql_based_model (expressions )
1044610446
1044710447
10448- def test_query_label_and_authorization_macro ():
10448+ def test_query_label_and_authorization_macro () -> None :
1044910449 @macro ()
1045010450 def test_query_label_macro (evaluator ):
1045110451 return "[('key', 'value')]"
@@ -10478,3 +10478,19 @@ def test_authorization_macro(evaluator):
1047810478 "query_label" : d .parse_one ("[('key', 'value')]" ),
1047910479 "authorization" : d .parse_one ("'test_authorization'" ),
1048010480 }
10481+
10482+
10483+ def test_boolean_property_validation () -> None :
10484+ expressions = d .parse (
10485+ """
10486+ MODEL (
10487+ name db.table,
10488+ enabled @IF(TRUE, TRUE, FALSE),
10489+ dialect tsql
10490+ );
10491+
10492+ SELECT 1 AS c;
10493+ """
10494+ )
10495+ model = load_sql_based_model (expressions , dialect = "tsql" )
10496+ assert model .enabled
You can’t perform that action at this time.
0 commit comments