diff --git a/sqlglot/transforms.py b/sqlglot/transforms.py
index 955224718c..1e6cfc8601 100644
--- a/sqlglot/transforms.py
+++ b/sqlglot/transforms.py
@@ -124,7 +124,9 @@ def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expr
other expressions. This transforms removes the precision from parameterized types in expressions.
"""
for node in expression.find_all(exp.DataType):
- node.set("expressions", [e for e in node.expressions if isinstance(e, exp.DataType)])
+ node.set(
+ "expressions", [e for e in node.expressions if not isinstance(e, exp.DataTypeSize)]
+ )
return expression
diff --git a/tests/dialects/test_bigquery.py b/tests/dialects/test_bigquery.py
index 1bed68246c..b5ab347cde 100644
--- a/tests/dialects/test_bigquery.py
+++ b/tests/dialects/test_bigquery.py
@@ -36,6 +36,7 @@ def test_bigquery(self):
self.validate_identity("SELECT CAST(CURRENT_DATE AS STRING FORMAT 'DAY') AS current_day")
self.validate_identity("SAFE_CAST(encrypted_value AS STRING FORMAT 'BASE64')")
self.validate_identity("CAST(encrypted_value AS STRING FORMAT 'BASE64')")
+ self.validate_identity("CAST(STRUCT(1) AS STRUCT)")
self.validate_identity("STRING_AGG(a)")
self.validate_identity("STRING_AGG(a, ' & ')")
self.validate_identity("STRING_AGG(DISTINCT a, ' & ')")