Skip to content

Commit 03f1dec

Browse files
committed
update type checking
1 parent d546580 commit 03f1dec

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

sqlglot/dialects/duckdb.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1189,9 +1189,10 @@ def lower_sql(self, expression: exp.Lower) -> str:
11891189

11901190
arg = annotate_types(arg, dialect=self.dialect)
11911191

1192-
if arg.is_type(exp.DataType.Type.BINARY):
1192+
if not arg.is_type(exp.DataType.Type.VARCHAR):
11931193
expression.this.replace(exp.cast(expression.this, exp.DataType.Type.VARCHAR))
1194-
return self.sql(exp.cast(expression, exp.DataType.Type.BINARY))
1194+
if arg.is_type(exp.DataType.Type.BINARY):
1195+
return self.sql(exp.cast(expression, exp.DataType.Type.BINARY))
11951196

11961197
return self.func("LOWER", expression.this)
11971198

tests/dialects/test_bigquery.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -847,10 +847,10 @@ def test_bigquery(self):
847847
)
848848

849849
self.validate_all(
850-
"LOWER(b'\x41\x42\x43')",
850+
"LOWER(CAST('HELLO' AS BYTES))",
851851
write={
852-
"bigquery": "LOWER(b'\x41\x42\x43')",
853-
"duckdb": "CAST(LOWER(CAST(e'\x41\x42\x43' AS TEXT)) AS BLOB)",
852+
"bigquery": "LOWER(CAST('HELLO' AS BYTES))",
853+
"duckdb": "CAST(LOWER(CAST(CAST('HELLO' AS BLOB) AS TEXT)) AS BLOB)",
854854
},
855855
)
856856
self.validate_all(
@@ -1747,7 +1747,7 @@ def test_bigquery(self):
17471747
"spark": "CONTAINS(LOWER(a), LOWER(b))",
17481748
"databricks": "CONTAINS(LOWER(a), LOWER(b))",
17491749
"snowflake": "CONTAINS(LOWER(a), LOWER(b))",
1750-
"duckdb": "CONTAINS(LOWER(a), LOWER(b))",
1750+
"duckdb": "CONTAINS(LOWER(CAST(a AS TEXT)), LOWER(CAST(b AS TEXT)))",
17511751
"oracle": "CONTAINS(LOWER(a), LOWER(b))",
17521752
"bigquery": "CONTAINS_SUBSTR(a, b)",
17531753
},

0 commit comments

Comments
 (0)