diff --git a/sqlglot/generator.py b/sqlglot/generator.py index cb12b13bd..b3a56ae8d 100644 --- a/sqlglot/generator.py +++ b/sqlglot/generator.py @@ -3586,7 +3586,9 @@ def struct_sql(self, expression: exp.Struct) -> str: expression.set( "expressions", [ - exp.alias_(e.expression, e.this) if isinstance(e, exp.PropertyEQ) else e + exp.alias_(e.expression, e.name if e.this.is_string else e.this) + if isinstance(e, exp.PropertyEQ) + else e for e in expression.expressions ], ) diff --git a/tests/dialects/test_snowflake.py b/tests/dialects/test_snowflake.py index 411656f6a..ad169e984 100644 --- a/tests/dialects/test_snowflake.py +++ b/tests/dialects/test_snowflake.py @@ -396,6 +396,7 @@ def test_snowflake(self): write={ "duckdb": "{'a': b, 'c': d}", "snowflake": "OBJECT_CONSTRUCT('a', b, 'c', d)", + "": "STRUCT(b AS a, d AS c)", }, ) self.validate_identity("OBJECT_CONSTRUCT(a, b, c, d)")