Skip to content

Commit 5454ed4

Browse files
authored
chore: extract CreateArray from QueryPlanSerde (#1991)
1 parent 7f47bf1 commit 5454ed4

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

spark/src/main/scala/org/apache/comet/serde/QueryPlanSerde.scala

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ object QueryPlanSerde extends Logging with CometExprShim {
7979
classOf[ArrayRepeat] -> CometArrayRepeat,
8080
classOf[ArraysOverlap] -> CometArraysOverlap,
8181
classOf[ArrayUnion] -> CometArrayUnion,
82+
classOf[CreateArray] -> CometCreateArray,
8283
classOf[Ascii] -> CometAscii,
8384
classOf[ConcatWs] -> CometConcatWs,
8485
classOf[Chr] -> CometChr,
@@ -1855,16 +1856,6 @@ object QueryPlanSerde extends Logging with CometExprShim {
18551856
.build()
18561857
}
18571858

1858-
case CreateArray(children, _) =>
1859-
val childExprs = children.map(exprToProtoInternal(_, inputs, binding))
1860-
1861-
if (childExprs.forall(_.isDefined)) {
1862-
scalarFunctionExprToProto("make_array", childExprs: _*)
1863-
} else {
1864-
withInfo(expr, "unsupported arguments for CreateArray", children: _*)
1865-
None
1866-
}
1867-
18681859
case GetArrayItem(child, ordinal, failOnError) =>
18691860
val childExpr = exprToProtoInternal(child, inputs, binding)
18701861
val ordinalExpr = exprToProtoInternal(ordinal, inputs, binding)

spark/src/main/scala/org/apache/comet/serde/arrays.scala

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,3 +361,20 @@ object CometArrayUnion extends CometExpressionSerde with IncompatExpr {
361361
optExprWithInfo(arraysUnionScalarExpr, expr, expr.children: _*)
362362
}
363363
}
364+
365+
object CometCreateArray extends CometExpressionSerde {
366+
override def convert(
367+
expr: Expression,
368+
inputs: Seq[Attribute],
369+
binding: Boolean): Option[ExprOuterClass.Expr] = {
370+
val children = expr.children
371+
val childExprs = children.map(exprToProtoInternal(_, inputs, binding))
372+
373+
if (childExprs.forall(_.isDefined)) {
374+
scalarFunctionExprToProto("make_array", childExprs: _*)
375+
} else {
376+
withInfo(expr, "unsupported arguments for CreateArray", children: _*)
377+
None
378+
}
379+
}
380+
}

0 commit comments

Comments
 (0)