File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed
Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -446,6 +446,9 @@ def _parse_parameter(self) -> exp.Parameter:
446446 return self .expression (exp .Parameter , this = this , expression = expression )
447447
448448 def _to_prop_eq (self , expression : exp .Expression , index : int ) -> exp .Expression :
449+ if expression .is_star :
450+ return expression
451+
449452 if isinstance (expression , exp .Column ):
450453 key = expression .this
451454 else :
@@ -577,6 +580,7 @@ class Generator(generator.Generator):
577580 exp .StrToTime : _str_to_time_sql ,
578581 exp .StrToUnix : _str_to_unix_sql ,
579582 exp .StructExtract : struct_extract_sql ,
583+ exp .StarMap : rename_func ("MAP" ),
580584 exp .Table : transforms .preprocess ([transforms .unnest_generate_series ]),
581585 exp .TimeStrToDate : rename_func ("TO_DATE" ),
582586 exp .TimeStrToTime : timestrtotime_sql ,
Original file line number Diff line number Diff line change @@ -810,6 +810,21 @@ def test_hive(self):
810810
811811 self .validate_identity ("SELECT 1_2" )
812812
813+ self .validate_all (
814+ "SELECT MAP(*), STRUCT(*) FROM t" ,
815+ read = {
816+ "hive" : "SELECT MAP(*), STRUCT(*) FROM t" ,
817+ "spark2" : "SELECT MAP(*), STRUCT(*) FROM t" ,
818+ "spark" : "SELECT MAP(*), STRUCT(*) FROM t" ,
819+ "databricks" : "SELECT MAP(*), STRUCT(*) FROM t" ,
820+ },
821+ write = {
822+ "spark2" : "SELECT MAP(*), STRUCT(*) FROM t" ,
823+ "spark" : "SELECT MAP(*), STRUCT(*) FROM t" ,
824+ "databricks" : "SELECT MAP(*), STRUCT(*) FROM t" ,
825+ },
826+ )
827+
813828 def test_escapes (self ) -> None :
814829 self .validate_identity ("'\n '" , "'\\ n'" )
815830 self .validate_identity ("'\\ n'" )
You can’t perform that action at this time.
0 commit comments