diff --git a/sqlglot/dialects/snowflake.py b/sqlglot/dialects/snowflake.py index 5f1e0523bd..5a45215be9 100644 --- a/sqlglot/dialects/snowflake.py +++ b/sqlglot/dialects/snowflake.py @@ -862,7 +862,10 @@ class Generator(generator.Generator): } UNSUPPORTED_VALUES_EXPRESSIONS = { + exp.Map, + exp.StarMap, exp.Struct, + exp.VarMap, } def values_sql(self, expression: exp.Values, values_as_table: bool = True) -> str: diff --git a/tests/dialects/test_snowflake.py b/tests/dialects/test_snowflake.py index 97b83ab930..62fa5974b3 100644 --- a/tests/dialects/test_snowflake.py +++ b/tests/dialects/test_snowflake.py @@ -1436,6 +1436,9 @@ def test_minus(self): ) def test_values(self): + select = exp.select("*").from_("values (map(['a'], [1]))") + self.assertEqual(select.sql("snowflake"), "SELECT * FROM (SELECT OBJECT_CONSTRUCT('a', 1))") + self.validate_all( 'SELECT "c0", "c1" FROM (VALUES (1, 2), (3, 4)) AS "t0"("c0", "c1")', read={