This is an automated email from the ASF dual-hosted git repository. comphead pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/datafusion-comet.git
The following commit(s) were added to refs/heads/main by this push: new a91498df4 feat: support `map_entries` (#2059) a91498df4 is described below commit a91498df45b7831f4ee96624484896206c9386e6 Author: Oleks V <comph...@users.noreply.github.com> AuthorDate: Fri Aug 1 16:17:22 2025 -0700 feat: support `map_entries` (#2059) --- .../main/scala/org/apache/comet/serde/QueryPlanSerde.scala | 1 + spark/src/main/scala/org/apache/comet/serde/maps.scala | 13 +++++++++++++ .../scala/org/apache/comet/parquet/ParquetReadSuite.scala | 3 +++ 3 files changed, 17 insertions(+) diff --git a/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala b/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala index 45ca67ed7..022480cc9 100644 --- a/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala +++ b/spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala @@ -123,6 +123,7 @@ object QueryPlanSerde extends Logging with CometExprShim { classOf[Murmur3Hash] -> CometMurmur3Hash, classOf[XxHash64] -> CometXxHash64, classOf[MapKeys] -> CometMapKeys, + classOf[MapEntries] -> CometMapEntries, classOf[MapValues] -> CometMapValues, classOf[MapFromArrays] -> CometMapFromArrays, classOf[GetMapValue] -> CometMapExtract, diff --git a/spark/src/main/scala/org/apache/comet/serde/maps.scala b/spark/src/main/scala/org/apache/comet/serde/maps.scala index 682d03ba7..ca4e9850e 100644 --- a/spark/src/main/scala/org/apache/comet/serde/maps.scala +++ b/spark/src/main/scala/org/apache/comet/serde/maps.scala @@ -37,6 +37,19 @@ object CometMapKeys extends CometExpressionSerde { } } +object CometMapEntries extends CometExpressionSerde { + + override def convert( + expr: Expression, + inputs: Seq[Attribute], + binding: Boolean): Option[ExprOuterClass.Expr] = { + val mk = expr.asInstanceOf[MapEntries] + val childExpr = exprToProtoInternal(mk.child, inputs, binding) + val mapEntriesScalarExpr = scalarFunctionExprToProto("map_entries", childExpr) + optExprWithInfo(mapEntriesScalarExpr, expr, expr.children: _*) + } +} + object CometMapValues extends CometExpressionSerde { override def convert( diff --git a/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala b/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala index 581c60611..a3858f169 100644 --- a/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala +++ b/spark/src/test/scala/org/apache/comet/parquet/ParquetReadSuite.scala @@ -1970,6 +1970,7 @@ class ParquetReadV1Suite extends ParquetReadSuite with AdaptiveSparkPlanHelper { "optional_map.key, " + "optional_map.value, " + "map_keys(complex_map), " + + "map_entries(complex_map), " + "map_values(complex_map) " + "from complex_types")) // leaf fields @@ -1982,6 +1983,8 @@ class ParquetReadV1Suite extends ParquetReadSuite with AdaptiveSparkPlanHelper { "optional_map.value, " + "map_keys(complex_map)[0].key_field1, " + "map_keys(complex_map)[0].key_field2, " + + "map_entries(complex_map)[0].key, " + + "map_entries(complex_map)[0].value, " + "map_values(complex_map)[0].value_field1, " + "map_values(complex_map)[0].value_field2 " + "from complex_types")) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@datafusion.apache.org For additional commands, e-mail: commits-h...@datafusion.apache.org