File tree Expand file tree Collapse file tree 3 files changed +17
-0
lines changed
main/scala/org/apache/comet/serde
test/scala/org/apache/comet/parquet Expand file tree Collapse file tree 3 files changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -123,6 +123,7 @@ object QueryPlanSerde extends Logging with CometExprShim {
123123 classOf [Murmur3Hash ] -> CometMurmur3Hash ,
124124 classOf [XxHash64 ] -> CometXxHash64 ,
125125 classOf [MapKeys ] -> CometMapKeys ,
126+ classOf [MapEntries ] -> CometMapEntries ,
126127 classOf [MapValues ] -> CometMapValues ,
127128 classOf [MapFromArrays ] -> CometMapFromArrays ,
128129 classOf [GetMapValue ] -> CometMapExtract ,
Original file line number Diff line number Diff line change @@ -37,6 +37,19 @@ object CometMapKeys extends CometExpressionSerde {
3737 }
3838}
3939
40+ object CometMapEntries extends CometExpressionSerde {
41+
42+ override def convert (
43+ expr : Expression ,
44+ inputs : Seq [Attribute ],
45+ binding : Boolean ): Option [ExprOuterClass .Expr ] = {
46+ val mk = expr.asInstanceOf [MapEntries ]
47+ val childExpr = exprToProtoInternal(mk.child, inputs, binding)
48+ val mapEntriesScalarExpr = scalarFunctionExprToProto(" map_entries" , childExpr)
49+ optExprWithInfo(mapEntriesScalarExpr, expr, expr.children: _* )
50+ }
51+ }
52+
4053object CometMapValues extends CometExpressionSerde {
4154
4255 override def convert (
Original file line number Diff line number Diff line change @@ -1970,6 +1970,7 @@ class ParquetReadV1Suite extends ParquetReadSuite with AdaptiveSparkPlanHelper {
19701970 " optional_map.key, " +
19711971 " optional_map.value, " +
19721972 " map_keys(complex_map), " +
1973+ " map_entries(complex_map), " +
19731974 " map_values(complex_map) " +
19741975 " from complex_types" ))
19751976 // leaf fields
@@ -1982,6 +1983,8 @@ class ParquetReadV1Suite extends ParquetReadSuite with AdaptiveSparkPlanHelper {
19821983 " optional_map.value, " +
19831984 " map_keys(complex_map)[0].key_field1, " +
19841985 " map_keys(complex_map)[0].key_field2, " +
1986+ " map_entries(complex_map)[0].key, " +
1987+ " map_entries(complex_map)[0].value, " +
19851988 " map_values(complex_map)[0].value_field1, " +
19861989 " map_values(complex_map)[0].value_field2 " +
19871990 " from complex_types" ))
You can’t perform that action at this time.
0 commit comments